资源描述:
《离散数学数理逻辑C++或C语言实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、离散数学实验报告专业班级:12级计算机本部一班姓名:鲍佳珍学号:1016实验成绩:1.【实验题目】命题逻辑实验一2.【实验目的】熟悉掌握命题逻辑中的联接词,实现二元合取、析取、蕴涵和等价表达式的计算。熟悉连接词逻辑运算规则,利用程序语言实现逻辑这几种逻辑运算。3.【实验内容】从键盘输入两个命题变元P和Q的真值,求它们的合取、析取、条件和双条件的真值。(A)4、【实验要求】C或C++语言编程实现5.【算法描述】1.实验原理(1)合取:二元命题联结词。将两个命题P、Q联结起来,构成一个新的命题P∧Q
2、,读作P、Q的合取,也可读作P与Q。这个新命题的真值与构成它的命题P、Q的真值间的关系为只有当两个命题变项P=T,Q=T时方可P∧Q=T,而P、Q只要有一为F则P∧Q=F。这样看来,P∧Q可用来表示日常用语P与Q,或P并且Q。(2)析取:二元命题联结词。将两个命题P、Q联结起来,构成一个新的命题P∨Q,读作P、Q的析取,也可读作P或Q。这个新命题的真值与构成它的命题P、Q的真值间的关系为只有当两个命题变项P=F,Q=F时方可P∨Q=F,而P、Q只要有一为T则P∨Q=T。这样看来,P∨Q可用来表示日
3、常用语P或者Q。(3)条件:二元命题联结词。将两个命题P、Q联结起来,构成一个新的命题P→Q,读作P条件Q,也可读作如果P,那么Q。这个新命题的真值与构成它的命题P、Q的真值间的关系为只有当两个命题变项P=T,Q=F时方可P→Q=F,其余均为T。(4)双条件:二元命题联结词。将两个命题P、Q联结起来,构成一个新的命题P←→Q,读作P双条件于Q。这个新命题的真值与构成它的命题P、Q的真值间的关系为当两个命题变项P=T,Q=T时方可P←→Q=T,其余均为F。2.实验过程(1)A题部分,首先是对各个输入
4、量的处理,要确定输入的为0或1,否则则为出错,接下来就是运算处理,在C语言中本身支持的有与或非这三种,可以用!,&&,
5、
6、来表示,而在这个实验中,不是与或非的可以通过转化而变为与或非的形式,具体流程图如下:开始P为1或0P为1或0运算是否继续结束YYYNNN输入P值输入Q值输出结果求合取、析取、条件和双条件的真值流程图6.【源程序(带注释)】#includevoidxiqu(intm,intn);voidhequ(intm,intn);voidyunhan(intm,intn);
7、voidshuang(intm,intn);//声明四个自定义函数intmain(){intp,q,a;printf("欢迎使用数理逻辑软件");printf("请输入P:");scanf("%d",&p);while(p!=0&&p!=1){printf("输入错误,请再次输入P:");//为满足P,Q不是1,0的情况scanf("%d",&p);}printf("请输入Q:");scanf("%d",&q);while(q!=0&&q!=1){printf("输入错误,请再次输入Q:");
8、//为满足P,Q不是1,0的情况scanf("%d",&q);}printf("1.析取2.合取3.蕴含4.双条件0.退出5.再次输入");//主界面printf("请输入选项:");scanf("%d",&a);while(a)//用switch语句进行选择{switch(a){case1:xiqu(p,q);break;case2:hequ(p,q);break;case3:yunhan(p,q);break;case4:shuang(p,q);break;case5://可重新输入P,Q
9、printf("请输入P:");scanf("%d",&p);while(p!=0&&p!=1){printf("输入错误,请再次输入P:");//为满足P,Q不是1,0的情况scanf("%d",&p);}printf("请输入Q:");scanf("%d",&q);while(q!=0&&q!=1){printf("输入错误,请再次输入Q:");//为满足P,Q不是1,0的情况scanf("%d",&q);}case0:break;default:printf("输入错误,请再次输入");
10、break;}scanf("%d",&a);}return0;}voidxiqu(intm,intn){//定义四个函数intb=1;if(m==0&&n==0){b=0;}printf("析取值为:");printf("%d",b);}voidhequ(intm,intn){intb=0;if(m==1&&n==1){b=1;}printf("合取值为:");printf("%d",b);}voidyunhan(intm,intn){intb=1;if(m==1&&n==