从键盘输入两个命题变元P和Q的真值-求它们的合取、析取、蕴含和等价的真值

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

长治学院《离散数学》实验报告专业:计算机科学与技术班级:计科1202班学号:12407237姓名:武文超组别:1指导老师:李艳玲2013.11.30~2013.12.21目录一、实验目的··································3二、算法思想··································3三、流程图····································4四、实验结果(截图)···························5五、程序代码··································7六、总结·····································10一、实验目的本实验课程是信息专业学生的一门专业基础课程,通过实验,帮助学生更好地掌握计算机科学技术常用的离散数学中的概念、性质和运算;通过实验提高学生编写实验报告、总结实验结果的能力;使学生具备程序设计的思想,能够独立完成简单的算法设计和分析。熟悉掌握合取、析取、蕴涵和等价,进一步能用它们来解决实际问题。二、算法思想1.从键盘输入两个命题变元P和Q的真值,求它们的合取、析取、蕴含和等价的真值。(1)合取:二元命题联结词。将两个命题P、Q联结起来,构成一个新的命题P∧Q,读作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可用来表示日常用语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三、流程图:开始P为1或0输入P值NY输入Q值NP为1或0Y运算输出结果Y是否继续结束N求合取、析取、蕴含件和等价的真值流程图四、实验结果(截图)进入界面正确运算结果错误控制和输入正确后退出五、程序代码#includestdio.hinta,b;charc;voidmenu();voidshuru();voidyunsuan();intmain(){menu();yunsuan();return0;}voidshuru(){printf(请输入P的值(0或1),以回车结束:);scanf(%d,&a);printf(请输入Q的值(0或1),以回车结束:);scanf(%d,&b);}voidmenu(){printf(************************************************\n);printf(****\n);printf(**欢迎来到逻辑运算软件**\n);printf(****\n);printf(************************************************\n);printf(\n);}voidyunsuan(){shuru();while((a!=1||a!=0)&&(b!=1||b!=0)){if((a==1||a==0)&&(b==1||b==0))break;printf(输入错误,重新输入\n);shuru();}if(a==0&&b==0){printf(合取:\n);printf(P∧Q=0\n);printf(析取:\n);printf(P∨Q=0\n);printf(蕴含:\n);printf(P-Q=1\n);printf(等价:\n);printf(P-Q=1\n);}if(a==0&&b==1){printf(合取:\n);printf(P∧Q=0\n);printf(析取:\n);printf(P∨Q=1\n);printf(蕴含:\n);printf(P-Q=1\n);printf(等价:\n);printf(P-Q=0\n);}if(a==1&&b==0){printf(合取:\n);printf(P∧Q=0\n);printf(析取:\n);printf(P∨Q=1\n);printf(蕴含:\n);printf(P-Q=0\n);printf(等价:\n);printf(P-Q=0\n);}if(a==1&&b==1){printf(合取:\n);printf(P∧Q=1\n);printf(析取:\n);printf(P∨Q=1\n);printf(蕴含:\n);printf(P-Q=1\n);printf(等价:\n);printf(P-Q=1\n);}printf(是否继续运算?(y/n)\n);scanf(%c,&c);if(c=='y')yunsuan();elsereturn;}六、总结用连词∧把几个公式连接起来而构成的公式叫做合取,而此合取式的每个组成部分叫做合取项。一些合适公式所构成的任一合取也是一个合取公式。形式为“p并且q”的复合命题,其中p和q都是命题并且叫做合取支。在命题演算中,合取式被符号化为“p•q”,“pΛq”或者“p&q”。若把它当做真值函项,“p并且q”为真当且仅当p和q中每一个都真;如果有一个合取支为假,或两个合取支都假,则该合取式为假。我们可以从前提p和前提q推出结论“p并且q”,这叫做“合取规则”或“合取引入”。我们也可以从前提“p并且q”推出结论p或者推出结论q,这叫做“合取消除”。合取式还可以把多于两个的陈述组合在一起,如果能够断定所有这些陈述的话。用连词∨把几个公式连接起来所构成的公式叫做析取,而此析取式的每一组成部分叫做析取项。由一些合适公式所构成的任一析取也是一个合适公式。在逻辑中,蕴涵(imply)是用在更弱的定义下。说复合命题A=B为真可简单地断言:若A为真,那么B也为真。换句话说,A=B只是说不会同时有A真与B假,而不是说在通常意义下的A“引起”B。特别的,若A为假,那么对任何B,A=B均为真。该命题容易使人误解,因为不存在任何途径使得命题A可能对命题B产生任何结果。对于两个命题A,B,如果A⇒B且B⇒A,则称命题A,B等价.记作A⇔B.若关系R在集合A中是自反、对称和传递的,则称R为A上的等价关系。所谓关系R就是笛卡尔积A×A中的一个子集。通过这次实验,我学到了很多知识,离散数学、数据结构等。经过一个学期的学习,我对离散数学这门课程有了很大的了解。这次的实验让我对自己的专业也有了更进一步的了解,也使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的。只有把所学的理论知识与实践相结合起来,从理论中得出结论,从实践中验证理论,从而提高自己的实际动手和独立思考的能力才是成功之道。指导教师评语:指导教师签名:年月日成绩评定项目权重成绩1、设计过程中出勤、学习态度等方面0.12、设计技术水平0.43、编程风格0.24、设计报告书写及图纸规范程度0.3总成绩

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功