安徽工业大学离散数学实验报告定稿版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
安徽工业大学离散数学实验报告精编W O R D
版
IBM system office room 【A0816H-A0912AAAHH-GX8Q8-GNTHHJ8】
《离散数学》实验报告专业
软件工程
班级
163班
姓名周掌珍
学号
授课教师杨思春
二 O 一七年六月
目录
实验一联结词的运算
实验二集合的运算
实验三二元关系的性质判定
实验四图的矩阵运算
实验一联结词的运算
一.实验目的
通过上机实验操作,将命题连接词运算融入到C语言的程序编写中,一方面加强对命题连接词运算的理解,另一方面通过编程实现命题连接词运算,帮助学生复习和锻炼C语言知识,将理论知识与实际操作结合,让学生更加容易理解和记忆命题连接词运算。
二.实验原理
(1) 非运算, 符号: ,当P=T时,P为F, 当P=F时,P为T 。
(2) 合取, 符号: ∧ , 当且仅当P和Q的真值同为真,命题P∧Q的真值才为真;否则,P∧Q的真值为假。
(3) 析取, 符号: ∨ , 当且仅当P和Q的真值同为假,命题P∨Q的真值才为假;否则,P∨Q的真值为真。
(4) 异或, 符号: ▽ , 当且仅当P和Q的真值不同时,命题P▽Q的真值才为真;否则,P▽Q的真值为真。
(5) 蕴涵, 符号: → , 当且仅当P为T,Q为F时,命题P→Q的真值才为假;否则,P→Q的真值为真。
(6) 等价, 符号: , 当且仅当P,Q的真值不同时,命题PQ的真值才为假;否则,P→Q的真值为真。
三.实验内容
编写一个程序实现非运算、合取运算、析取运算、异或运算、蕴涵运算、等价运算。
四.算法程序
内容格式:新罗马,小五号,行间距固定值18磅
#include
int main()
{
char m;
int P,Q;
printf("请输入P,Q的真值与逻辑连接词:(P逻辑联结Q)\na:与\tb:或\tc(请先输入0):非\td:蕴含\te:等价\tf:异或\n");
scanf("%d%c%d",&P,&m,&Q);
switch(m)
{
case 'a': if(P==1&&Q==1) printf("P与Q=1\n");
else printf("p合取Q=0\n");break;
case 'b': if(P==0&&Q==0) printf("P或Q=0\n");
else printf("P或Q=1\n");break;
case 'c': if(P==1) printf("非P=0\n");
else printf("非P=1\n");break;
case 'd': if(P==1&&Q==0) printf("P蕴含Q=0\n");
else printf("P蕴含Q=1\n");break;
case 'e': if(P==Q) printf("P等价Q=1\n");
else printf("P等价Q=0\n");break;
case 'f': if(P==Q) printf("P异或Q=0\n");
else printf("P异或Q=1\n");break;
}
五.实验结果
实验结果截图大小为:宽(10cm)×高(8cm)
六.心得体会
内容格式:宋体,五号,行间距固定值18磅
实验二集合的运算
一.实验目的
集合运算主要包括并运算,交运算,相对差,对称差运算,集合论的语言适合于描述和研究离散对象及其关系,所以也是计算机科学与工程的理论基础,在程序设计、关系数据库、排队论、开关理论,形式语言和自动机理论等学科领域中都有重要的应用。集合运算是学习集合论的基础,通过编程实现集合的相关运算,帮助同学们学好集合论相关知识打下基础。
二.实验原理
交运算:任何二个集合A和B的交集A∩B是由A和B所共有的全部元素构成的集合,
即:A∩B={x | x A∧ x B}
并运算:A、B是任意二个集合,A和B的并集A∪B是由A和B的所有元素构成的集合。
即:A∪B={x│ xA∨xB}
相对差:设A和B是二个任意集合,B对A的相对差(A-B)是由属于A且不属于B的所有元素组成的集合。即:A-B={x│xA∧xB}={x│xA∧xB}
对称差:设A、B是任意二集合,A和B的环和记作A⊕B。
即:A⊕B=(A-B)∪(B-A)=(A∩~B)∪(B∩~A)
或者x(A⊕B)x{x |xAxB}
三.实验内容
深入理解集合的四种基本运算,根据每个运算定义,编程实现各个运算。
四.算法程序
内容格式:新罗马,小五号,行间距固定值18磅
交集运算:
#include
int main()
{
int a[10],b[10],c[20],i,m,n,j,k=0;
printf("请输入集合A,集合B中的元素个数:\n");
scanf("%d%d",&m,&n);
printf("请输入集合A的元素:\n");
for(i=0;i scanf("%d",&a[i]); printf("请输入集合B的元素:\n"); for(i=0;i scanf("%d",&b[i]); printf("A={ "); for(i=0;i