离散数学上机实验报告
更新时间:2024-01-05 21:10:01 阅读量: 教育文库 文档下载
离散数学实验报告
姓名: 学号: 专业:
实验一、真值运算
一、实验内容
从键盘输入两个命题P和Q的真值,求它们的合取、析取、条件和双条件的真值,并输出。 二、实验步骤
编写程序,将P,Q以不同真值带入,观察程序运行结果,调式程序。 三、实验代码
#include
int p,q; char t; while(t) {
printf(\是否运算程序(y/n):\\n\scanf(\if('y'==t) {
printf(\输入p,q的真值(0或1):\scanf(\if((p!=1)&&(p!=0)) {
printf(\请重新输入p值\
}
scanf(\
if((q!=1)&&(q!=0)) { }
if(q==0&&p==0) { }
else if(p==0&&q==1) {
printf(\﹁p=1\\n\printf(\﹁q=0\\n\printf(\∧q=0\\n\printf(\∨q=1\\n\printf(\→q=1\\n\printf(\﹁p=1\\n\printf(\﹁q=1\\n\printf(\∧q=0\\n\printf(\∨q=0\\n\printf(\→q=1\\n\printf(\printf(\请重新输入q值\scanf(\
}
}
printf(\
else if(p==1&&q==0) { }
else if(p==1&&q==1) { } continue;
printf(\﹁p=0\\n\printf(\﹁q=0\\n\printf(\∧q=1\\n\printf(\∨q=1\\n\printf(\→q=1\\n\printf(\printf(\﹁p=0\\n\printf(\﹁q=1\\n\printf(\∧q=0\\n\printf(\∨q=1\\n\printf(\→q=0\\n\printf(\
if('n'==t)
}
break;
return 0; }
四、实验体会
求真值运算中,应注意各种连接词的试用方法,以及其在不同情况下的真值。
实验二、关系的复合
一、实验内容
从键盘输入两个关系,求它们的复合关系,并输出。 二、实验步骤
编写程序,从键盘输入几种不同的二元关系,如果是关系矩阵,则关系矩阵应能够相乘,然后观察它们的复合结果,调试程序。 三、实验代码 #include
printf(\输入X中二元关系R的关系矩阵:\\n\ for(i=0;i } printf(\输入X中二元关系S的关系矩阵:\\n\ for(m=0;m } printf(\输出X中二元关系R的关系矩阵:\\n\ for(i=0;i { } printf(\输出X中二元关系S的关系矩阵:\\n\for(m=0;m for(n=0;n printf(\if(n==k-1) printf(\ for(j=0;j printf(\if(j==k-1) printf(\ for(i=0;i for(n=0;n for(j=0,m=0;j c[i][n]=sum; sum=0; sum+=a[i][j]*b[m][n]; if(sum>1) sum=1; printf(\输出RοS的关系矩阵:\\n\ } for(i=0;i for(j=0;j printf(\if(j==k-1) printf(\ 四、实验体会 在求关系的复合中,先求出其关系矩阵,关系矩阵的运算和普通矩阵的运算一样,但是值得注意的是,关系矩阵中只有0和1,所以当大于1时,应该返回1,其余不变。 实验三、用沃尔算法求传递闭包 一、实验内容 从键盘输入二元关系用沃尔算法求出它的传递闭包,并输出。 二、实验步骤 熟悉沃尔算法,然后将其用程序编写出来,任意输入二元关系,观察程序运行结果, 用另一种算法算出结果,与其比较,调试程序。 三、实验代码 #include printf(\输入一个X集合中的元素:\ scanf(\ printf(\输入一个关系矩阵:\\n\ for(i=0;i scanf(\ for(j=0;j a[i][k]=1; } } } } printf(\输出传递闭包:\\n\for(i=0;i for(j=0;j printf(\ if(j==n-1) } return 0; printf(\ 四、实验体会 熟悉并使用沃尔算法,关系矩阵中只有0和1,所以用沃尔算法求得的数若大于1,应该返回1,其余不变。 实验四、三种闭包运算 一、实验内容 从键盘输入一个二元关系,求它的自反闭包,对称闭包,传递闭包,并输出。 二、实验步骤 编写程序,从键盘输入一个二元关系,当求传递闭包时,试与沃尔算法的传递闭包做比较,观察程序运行结果,调试程序。 三、实验代码 #include printf(\是否开始新的运算?(Y/N)\\n\ do { ch=getchar(); }while(ch!='N'&&ch!='Y'); if(ch=='Y') aa(); return 0; } void aa() { char c; printf(\请输入矩阵的行数(必须小于10)\\n \scanf(\ printf(\请输入矩阵的列数(必须小于10)\\n \scanf(\ printf(\请输入关系矩阵\\n\for(i=0;i printf(\输入对应序号选择算法\\n1:自反闭包\\n2:传递闭包\\n3:对称闭包\\n\scanf(\switch(z) { case 1:zifan(s); break; case 2:chuandi1(s);break; case 3:duichen(s); break; } printf(\ printf(\请输入矩阵的第%d行元素\for(j=0;j printf(\您选择继续吗(Y/N)?\\n\ do } { c=getchar(); }while(c!='N'&&c!='Y'); } while(c=='Y'); void output(int s[][100]) { } void zifan(int s2[][100]) { } void duichen(int s2[][100]) { for(i=0;i printf(\所求关系矩阵为:\\n\for(i=0;i for(j=0;j printf(\ printf(\ } int s1[100][100]; for(i=0;i output(s2); s2[i][j]=s2[i][j]+s1[i][j]; if(s2[i][j]>1) s2[i][j]=1; void chuandi1(int s2[][100]) { int m[100][100],a[100][100],k,h; int t[100][100]; for(i=0;i for(j=0;j { } for(h=0;h for(i=0;i for(j=0;j if(m[i][j]==1) a[i][j]=0; t[i][j]=s2[i][j]; m[i][j]=s2[i][j]; } } { } for(i=0;i for(j=0;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; } for(k=0;k if(s2[j][k]==1) a[i][k]=1; output(t); 四、实验体会 此程序要求的算法较多,所以应该用函数调用来实现每一个算法的功能,这样易于管理,自反闭包和传递闭包相对简单一些,在编写对称闭包时,并不运用沃尔算法,应注意返回的只有0和1。 实验五、邻接矩阵判断可达矩阵 一、实验内容 从键盘输入一个邻接矩阵,用其判断出它的可达矩阵,并输出。 二、实验步骤 编写程序,从键盘输入一个邻接矩阵,求出它的可达矩阵,并输出,观察程序运行结果,调试程序。 三、实验代码 #include int a[100][100],b[100][100],c[100][100],d[100][100],i,j,k,t,p,q,n; printf(\请输入邻接矩阵的阶数\\n\scanf(\ printf(\请输入此邻接矩阵\\n\for(i=0;i for(t=0;t for(i=0;i for(j=0;j scanf(\c[i][j]=a[i][j]; d[i][j]=a[i][j]; b[i][j]=0; } } } for(j=0;j for(k=0;k for(p=0;p for(q=0;q c[p][q]=b[p][q]; b[p][q]=0; d[p][q]+=c[p][q]; printf(\该关系矩阵的可达型矩阵为\\n\for(i=0;i for(j=0;j printf(\ if(d[i][j]>=1) else d[i][j]=0; d[i][j]=1; printf(\ 四、实验体会 用邻接矩阵应先判断出两个节点有没有路,然后返回给可达矩阵,有路返回1,没有返回0,然后根据其关系输出可达矩阵。
正在阅读:
离散数学上机实验报告01-05
有利于学生发现问题,解决问题的教学总结10-09
选修4-4:坐标系与参数方程教案12-21
电磁铁推拉力测试系统 - 控制部分05-02
工学结合一体化课程教学资源建设初探05-12
神秘的感恩节礼物作文600字06-28
抽油泵项目文献综述(完全版) - 图文10-03
2016年东北林业大学经济管理学院823管理学考研必备复习题库及答04-05
新课改实践后的感想11-11
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 离散
- 上机
- 数学
- 实验
- 报告