您好,欢迎访问三七文档
离散实验—闭包运算网133139074347王先海一.实验目的:1.通过上机程序,进一步加深对自反,对称,传递闭包的认识与理解。2.通过实验,帮助学生更好地掌握计算机科学技术常用的离散数学中集合的基本运算,提高学生编写实验报告、总结实验结果的能力,培养学生的逻辑思维能力和算法设计的思想,能够独立完成简单的算法设计和分析,进一步用它们来解决实际问题,帮助学生学习掌握C/C++语言程序设计的基本方法和各种调试手段,使学生具备程序设计的能力。二.实验内容:利用矩阵求有限集上给定关系的自反,对称,传递闭包。通过键盘输入,屏幕输出结果。三.实验环境:程序用C语言在vc6.0的环境下编译,测试和运行的。四、源程序#includestdlib.h#includestdio.hvoidmenu();//输出输出闭包运算信息菜单选项voidinput();voidoutput(ints[][100]);voidzifan(ints2[][100]);voidduichen(ints2[][100]);voidchuandi1(ints2[][100]);ints[100][100],z;intd,n,i,j;intmain(){input();while(1){menu();printf(\n请输入您要选择的操作序号,按回车键确认:);scanf(%d,&z);switch(z){case1:zifan(s);break;case2:chuandi1(s);break;case3:duichen(s);break;case4:exit(0);default:printf(输入错误,请输入列表中存在的序号!\n);}}return0;}voidmenu()//输出输出闭包运算信息菜单选项{printf(*════════*\n);printf(════════╣*单项比赛信息*╠═════\n);printf(║*════════*║\n);printf(║【1】自反闭包║\n);printf(║║\n);printf(║【2】传递闭包║\n);printf(║║\n);printf(║【3】对称闭包║\n);printf(║║\n);printf(║【4】退出系统║\n);printf(═══════════════════════\n);}voidinput(){printf(请输入矩阵的行数(必须小于10)\n);scanf(%d,&n);printf(请输入矩阵的列数(必须小于10)\n);scanf(%d,&d);printf(请输入关系矩阵\n);for(i=0;in;i++){printf(\n);printf(请输入矩阵的第%d行元素,i);for(j=0;jd;j++)scanf(%d,&s[i][j]);}}voidoutput(ints[][100]){printf(所求关系矩阵为\n);for(i=0;in;i++){for(j=0;jd;j++)printf(%4d,s[i][j]);printf(\n);}}voidzifan(ints2[][100]){for(i=0;in;i++)s2[i][i]=1;output(s2);}voidduichen(ints2[][100]){ints1[100][100];for(i=0;in;i++)for(j=0;jd;j++)s1[j][i]=s2[i][j];for(i=0;in;i++)for(j=0;jd;j++){s2[i][j]=s2[i][j]+s1[i][j];if(s2[i][j]1)s2[i][j]=1;}output(s2);}voidchuandi1(ints2[][100]){intm[100][100],a[100][100],k,h;intt[100][100];for(i=0;in;i++)for(j=0;jd;j++){a[i][j]=0;t[i][j]=s2[i][j];m[i][j]=s2[i][j];}for(h=0;hn;h++){for(i=0;in;i++)for(j=0;jd;j++)if(m[i][j]==1){for(k=0;kn;k++)if(s2[j][k]==1)a[i][k]=1;}for(i=0;in;i++)for(j=0;jd;j++){m[i][j]=a[i][j];t[i][j]+=a[i][j];a[i][j]=0;if(t[i][j]1)t[i][j]=1;}}output(t);}五、实验结果六、实验体会通过编写程序更进一步了解了集合的几个性质,相比看书练习记忆更深刻理解更透彻。在编写程序过程中添加了自己喜欢的元素增添了编程乐趣,从而编程能力也得到一定的锻炼。在此过程中也发现了自己思考问题的很多不足,编程方法的多样化和编程细节错误等等。以后会在实验中多加改进。同时,更加深了对闭包运算的理解。
本文标题:离散实验-闭包运算
链接地址:https://www.777doc.com/doc-2149236 .html