从键盘输入两个命题变元P和Q的真值.docx
- 文档编号:26930510
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:10
- 大小:54.44KB
从键盘输入两个命题变元P和Q的真值.docx
《从键盘输入两个命题变元P和Q的真值.docx》由会员分享,可在线阅读,更多相关《从键盘输入两个命题变元P和Q的真值.docx(10页珍藏版)》请在冰豆网上搜索。
从键盘输入两个命题变元P和Q的真值
长治学院
《离散数学》实验报告
专
业:
计算机科学与技术
班
级:
计科1202班
学
号:
12407237
姓
名:
武文超
组
另1」:
1
指导老师:
李艳玲
2013.11.30~2013.12.21
一、实验目的3
二、算法思想3
三、流程图4
四、实验结果(截图)5
五、程序代码7
六、总结10
一、实验目的
本实验课程是信息专业学生的一门专业基础课程,通过实验,帮助学生更好地掌握计算机科学技术常用的离散数学中的概念、性质和运算;通过实验提高学生编写实验报告、总结实验结果的能力;使学生具备程序设计的思想,能够独立完成简单的算法设计和分析。
熟悉掌握合取、析取、蕴涵和等价,进一步能用它们来解决实际问题。
二、算法思想
1.从键盘输入两个命题变元P和Q的真值,求它们的合取、析取、蕴含和等价的真值。
(1)合取:
二元命题联结词。
将两个命题P、Q联结起来,构成一个新的命题PAQ,读作P、Q的合取,也可读作P与Q这个新命题的真值与构成它的命题P、Q的真值间的关系为只有当两个命题变项P=T,Q=T时方可PAQ=T,而P、Q只要有一为F则PAQ=F。
这样看来,PAQ可用来表示日常用语P与Q,或P并且Q。
(2)析取:
二元命题联结词。
将两个命题P、Q联结起来,构成一个新的命题PVQ,读作P、Q的析取,也可读作P或Q这个新命题的真值与构成它的命题P、Q的真值间的关系为只有当两个命题变项P=F,Q=F时方可PVQ=F,而P、Q只要有一为T则PVQ=T。
这样看来,PVQ可用来表示日常用语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
三、流程图:
求合取、析取、蕴含件和等价的真值流程图
四、实验结果(截图)
进入界面
正确运算结果
欢迎来到逻辑运負软井
pAq-o
析职
PVQ=1
P>Q-0
JiJk
割介匕
P<->Q=0
是否堆续运算
Pressan^rkey€ogoint-inuc
错误控制和输入正确后
退出
欢迎菜到逻辑运負软禅
pAq-o析职pyo=l
P>Q-0割加
P<->Q=0
區否维续运算
fP*ressankey€ocontinue
畑或亠以回丰结束:
丄個或m回*结東汨
五、程序代码
#include
inta,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("
PAQ=0\n");
printf("
析取:
\n");
printf("
PVQ=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
AQ=0\n");
printf("析取:
\n");
printf("P
VQ=1\n");
printf("蕴含:
\n");
printf("P->Q=1\n");
printf("等价:
\n");
printf("P<->Q=0\n");
}
if(a==1&&b==0)
{
printf("合取:
\n");
printf("PAQ=O\n");
printf("析取:
\n");
printf("PVQ=1\n");
printf("蕴含:
\n");
printf("P->Q=O\n");
printf("等价:
\n");
printf("P<->Q=O\n");
}
if(a==1&&b==1)
{
printf("
合取:
\n");
printf("
PAQ=1\n");
printf("
析取:
\n");
printf("
PVQ=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();
else
return;
}
六、总结
用连词人把几个公式连接起来而构成的公式叫做合取,而此合取式的每个组
成部分叫做合取项。
一些合适公式所构成的任一合取也是一个合取公式。
形式为“p并且q”的复合命题,其中p和q都是命题并且叫做合取支。
在命题演算中,合取式被符号化为“p?
q”,“pAq”或者“p&q”。
若把它当做真值函项,“p并且q”为真当且仅当p和q中每一个都真;如果有一个合取支为假,或两个合取支都假,则该合取式为假。
我们可以从前提p和前提q推出结论“p并且q”,这叫做“合取规则”或“合取引入”。
我们也可以从前提“p并且q”推出结论p或者推出结论q,这叫做“合取消除”。
合取式还可以把多于两个的陈述组合在一起,如果能够断定所有这些陈述的话。
用连词V把几个公式连接起来所构成的公式叫做析取,而此析取式的每一组
成部分叫做析取项。
由一些合适公式所构成的任一析取也是一个合适公式。
在逻辑中,蕴涵(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就是笛卡尔积AXA中的一个子集。
通过这次实验,我学到了很多知识,离散数学、数据结构等。
经过一个学期的学习,我对离散数学这门课程有了很大的了解。
这次的实验让我对自己的专业
也有了更进一步的了解,也使我懂得了理论与实际相结合的重要性,只有理论知
识是远远不够的。
只有把所学的理论知识与实践相结合起来,从理论中得出结论,从实践中验证理论,从而提高自己的实际动手和独立思考的能力才是成功之道。
指导教师评语:
指导教师签名:
年月日
成
绩评疋
项目
权重
成绩
1、设计过程中出勤、学习态度等方面
0.1
2、设计技术水平
0.4
3、编程风格
0.2
4、设计报告书写及图纸规范程度
0.3
总成绩
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 键盘输入 两个 命题 真值