离散数学连结词逻辑运算
学 院 软件学院 专 业 软件工程 指导教师 邹丽娜 学 号 姓 名 提交日期 2011-12-25
实验一 连结词逻辑运算
一. 实验目的
实现二元合取、析取、蕴涵和等价表达式的计算。熟悉连接词逻辑运算规则,利用程序语言实现逻辑这几种逻辑运算。 二. 实验内容
从键盘输入两个命题变元P 和Q 的真值,求它们的合取、析取、蕴涵和等价四种运算的的真值。要求对输入内容进行分析,如果不符合0、1条件需要重新输入,程序有良好的输入输出界面。 三. 实验过程 1. 算法分析:
说明编程语言、与四种连结词对应的运算符,或其它实现方法 2. 程序代码:
#include int a,b;char c; void menu(); void shuru(); void yunsuan(); int main() { menu(); yunsuan(); return 0; }
void shuru() { printf("请输入P 的值(0或1), 以回车结束:"); scanf("%d",&a); printf("请输入Q 的值(0或1), 以回车结束:"); scanf("%d",&b); }
void menu() { printf("****************************************************\n"); printf("** **\n"); printf("** 欢迎来到逻辑运算软件 **\n"); printf("** **\n");
printf("****************************************************\n"); printf("\n"); printf("\n"); }
void yunsuan() {
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(" PQ=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(" PQ=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(" PQ=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(" PQ=1\n"); } printf("是否继续运算?(y/n)\n"); scanf("%c",&c); if(c=='y') yunsuan(); else return; }
3. 实验数据及结果分析;