离散数学实验报告(共8页).doc
精选优质文档-倾情为你奉上大连民族学院计算机科学与工程学院实验报告实验题目: 判断关系的性质 课程名称: 离散数学 实验类型:演示性 验证性 操作性 设计性 综合性专业: 班级: 学生姓名: 学号: 实验日期: 年 月 日 实验地点: 实验学时: 实验成绩:指导教师签字: 年 月 日实验报告正文部分(具体要求详见实验报告格式要求)实验报告格式实验题目 判断关系的性质实验目的 使学生掌握利用计算机语言实现判断关系性质的基本方法。实验环境 Microsoft Visual C+6.0实验原理 实验内容与要求:对给定表示有穷集上关系的矩阵,确定这个关系是否是自反的或反自反的;对称的或反对称的;是否传递的。 通过二元关系与关系矩阵的联系,可以引入N维数组,以数组的运算来实现二元关系的判断。图示:性质关系矩阵特性自反性主对角线元素全为1反自反性主对角线元素全为0对称性对称矩阵反对称性非主对角线上的元素等于1且与之对称的元素等于0传递性矩阵(M*M)中1所在的位置,M中与之相对应位置鲜红都为1程序源代码:#include<stdio.h>#define N 4main() int i,j,k; int f,e,z; int MNN; printf("判断R是否为自反关系、对称关系、是否可传递?n"); printf("请输入一个4*4的矩阵。n"); for(i=0;i<N;i+) /*输入一个4*4的矩阵*/ for(j=0;j<N;j+) scanf("%d",&Mij); for(i=0;i<N;i+) for(j=0;j<N;j+) printf("%4d",Mij); printf("n"); for(i=0;i<N;i+) if(Mii=1)/判断自反性 if(i=N-1) e=0; else ; else if(Mii=0)/判断反自反性 if(i=N-1) e=1; else ; else e=2; break; for(i=0;i<N;i+) for(j=0;j<N;j+) if(Mij!=Mji)/判断对称性 f=1; break; for(i=0;i<N;i+) for(j=0;j<N;j+) if(Mij=1)/判断反对称性 if(Mji=0) if(i=(N-1)&&j=N-1) f=0; else break; if(f!=0&&f!=1) f=2; for(i=0;i<N;i+)/判断可传递性 for(j=0;j<N;j+) if(Mij=1) continue; else for(k=0;k<N;k+) if(Mik*Mki=0) continue; else z=0; if(e=0) printf("关系R是自反关系n"); else if(e=1) printf("关系R是反自反关系n"); else if(e=2) printf("关系R是反自反关系n"); if(f=0) printf("关系R是反对称关系n"); else if(f=1) printf("关系R不是对称关系n"); else if(f=2) printf("关系R是对称关系n"); if(z=0) printf("关系R是不可传递关系n"); else printf("关系R是可传递关系n");实验步骤和实验记录程序运行截图:i、程序启动截图: ii、程序输入截图:ii、程序运行结果截图:实验总结:实验简洁高效地判断二元关系的性质。思考与分析专心-专注-专业