《离散数学》
实验报告
学院科信软件学院
专业计算机科学与技术
指导教师邹丽娜
学号 10999181
姓名赵辉
提交日期 2011-12-23
实验一连结词逻辑运算
实现二元合取、析取、蕴涵和等价表达式的计算。熟悉连接词逻辑运算规则,利用程序语言实现逻辑这几种逻辑运算。
从键盘输入两个命题变元P和Q的真值,求它们的合取、析取、蕴涵和等价四种运算的的真值。要求对输入内容进行分析,如果不符合0、1条件需要重新输入,程序有良好的输入输出界面。
三. 实验过程
1. 算法分析:
编程语言为c语言
合取/\:p,q都为1的时候为1,其他为0
析取\/:p,q都为0的时候为0,其他为1
蕴含->:p为1,q为0时为0,其他为1
等价<->:p,q同真同假
2. 程序代码:
#include<>
int main()
{
int p,q,i,t;
printf("************************************************\n");
printf("*** ***\n");
printf(" 欢迎进入逻辑运算软件\n");
printf("*** ***\n");
printf("************************************************\n");
do{
printf("请输入p的值(0或1)");
scanf("%d",&p);
if(p!=0&&p!=1)
printf("输入有误");
}while(p!=0&&p!=1);
do{
printf("请输入q的值(0或1)");
scanf("%d",&q);
if(q!=0&&q!=1)
printf("输入有误");
}while(q!=0&&q!=1);
do{
printf("请选择要进行的操作\n");
printf("1:合取\n2:析取\n3:蕴含\n4:等价\n");
scanf("%d",&i);
switch(i){
case 1:{
if(p&&q) printf("合取运算:p/\\q=1\n");
else printf("合取运算:p/\\q=0\n");
break;
}
case 2:{
if(p||q) printf("析取运算:p\\/q=1\n");
else printf("析取运算:p\\/q=0\n");
break;
}
case 3:{
if(p&&!q) printf("蕴含:p->q=0\n");
else printf("蕴含:p->q=1\n");
break;}
case 4:{
if((p&&q)||(!p&&!q)) printf("等价运算:p<->q=1\n");
else printf("等价运算:p<->q=0\n");
break; }
}printf("是否继续运算1\\0\n");
scanf("%d",&t);
}while(t);
return 0;
}
离散数学实验报告 2011 来自淘豆网m.daumloan.com转载请标明出处.