离散数学数理逻辑C++或C语言实验报告 下载本文

离散数学实验报告

专业班级:12级计算机本部一班 姓名:鲍佳珍 学号: 201212201401016 实验成绩: 1.【实验题目】

命题逻辑实验一

2.【实验目的】

熟悉掌握命题逻辑中的联接词,实现二元合取、析取、蕴涵和等价表达式的计算。熟悉连接词逻辑运算规则,利用程序语言实现逻辑这几种逻辑运算。

3.【实验内容】

从键盘输入两个命题变元P和Q的真值,求它们的合取、析取、条件和双条件的真值。(A)

4、【实验要求】

C或C++语言编程实现

5. 【算法描述】

1.实验原理

(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。

2.实验过程

(1)A题部分,首先是对各个输入量的处理,要确定输入的为0或1,否则则为出错,接下来就是运算处理,在C语言中本身支持的有与或非这三种,可以用!,&&,||来表示,而在这个实验中,不是与或非的可以通过转化而变为与或非的形式,具体流程图如下:

开始 输入P值 N P为1或0 Y 输入Q值 N P为1或0 Y 运算 输出结果 Y 是否继续 N 结束 求合取、析取、条件和双条件的真值流程图

6. 【源程序(带注释)】 #include void xiqu(int m,int n); void hequ(int m,int n); void yunhan(int m,int n);

void shuang(int m,int n); // 声明四个自定义函数 int main()

{

int p,q,a;

printf(\欢迎使用数理逻辑软件\\n\printf(\请输入 P: \scanf(\while(p!=0&&p!=1){

printf(\输入错误,请再次输入 P: \为满足P,Q不是

1,0的情况

printf(\输入错误,请再次输入 Q: \为满足P,Q不是 }

printf(\请输入 Q: \scanf(\while(q!=0&&q!=1){ scanf(\

1,0的情况

scanf(\

}

printf(\析取 2.合取 3.蕴含 4.双条件 0.退出 5.再次输入\\n\主界面

printf(\请输入选项:\scanf(\