-
安徽工业大学离散数学实
验报告
Prepared on 21 November 2021
《离散数学》实验报告
专 业
班 级
姓 名
软件工程
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< br> scanf(
switch(m)
{
case 'a':
if(P==1&&Q==1) printf(与Q=1n
else printf(合取Q=0n
case 'b':
if(P==0&&Q==0) printf(或Q=0n
else printf(或Q=1n
case 'c':
if(P==1) printf(非P=0n
else printf(非P=1n
case 'd':
if(P==1&&Q==0) printf(蕴含Q=0n
else printf(蕴含Q=1n
case 'e':
if(P==Q) printf(等价Q=1n
else printf(等价Q=0n
case 'f':
if(P==Q) printf(异或Q=0n
else printf(异或Q=1n
}
五.实验结果
实验结果截图大小为:宽(10cm)×高(8cm)
六.心得体会
内容格式:宋体,五号,行间距固定值18磅
实验二 集合的运算
一.实验目的
集合运算主要包括并运算,交运算,相对差,对称差运算,集合论的语 言适合于描述
和研究离散对象及其关系,所以也是计算机科学与工程的理论基础,在程序设计、关系数< br>据库、排队论、开关理论,形式语言和自动机理论等学科领域中都有重要的应用。集合运
算是学习集合论的基础,通过编程实现集合的相关运算,帮助同学们学好集合论相关知识打下基础。
二.实验原理
交运算:任何二个集合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(
printf(请输入集合A的元素:n
for( i=0;i
}
printf(请输入集合B的元素:n
for(i=0;i
printf(
for(i=0;i
putchar('b');
printf(
printf(
for(i=0;i
putchar('b');
printf(
for(i=0;i
for(j=0;j
printf(
for(i=0;i
putchar('b');
printf(
并集运算:
#include<>
int main()
{
int a[10],b[10],c[20],i,m,n,j,k=0; < br>printf(请输入集合A,集合B中的元素个数:n
scanf(
printf(请 输入集合A的元素:n
for(i=0;i
printf(请输入集合B的元素:n
for(i=0;i
printf(
for(i=0;i
putchar('b');
printf(
printf(
for(i=0;i
putchar('b');
}
printf(
for(i=0;i
for(j=0;j
}
printf(∪B={
for(i=0;i
for(i=0;i
if(i==m) c[k++]=b[j];
putchar('b');
printf(
相对差:
#include<>
int main()
{
int a[10],b[10],c[20],i,m,n,j,k=0,t;
printf(请输入集合A,集合B中的元素个数:n
scanf(
-
-
-
-
-
-
-
-
本文更新与2020-11-30 07:45,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/472368.html
-
上一篇:大学数学实验心得体会
下一篇:云南大学数学与统计学院复试资料