资源描述:
《赵洪銮《离散数学》实验一》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验一1•逻辑联接词的运算从键盘输入两个命题变元P和Q的真值,输出它们的合収、析収、条件、双条件和P的否定的真值。#ineludemain()inta[3];inti=-l,j=-l;chars;欢迎进入逻辑运算软件ttvprintf(H***************************************‘‘)•/吾printf("****");printf("**欢迎进入逻辑运算软件**H);printf("****");printf(n***********
2、****************************n)•mm:printf("请输入P的值(0或1),以回车结束:”);scanfC'%d“,&i);〃读取P的值if(i==0
3、
4、j==l);//校验输入的P值是否在允许范围内,出错则重新输入elseprintf(uP的值输入有误,请重新输入”);gotomm;}nn:printf(n请输入Q的值(0或2),以回车结束:“);scanf(”%d”,&j);〃读取Q的值if(j==O
5、
6、j==l);//校验输入的Q值是否在允许范围内
7、,出错则重新输入elseprintfC、nq的值输入有误,请重新输入“);gotonn;a[0冃&&j;〃与运算a[l]=i
8、
9、j;//或运算a[2]=(!i)
10、
11、j;〃蕴含运算,将其转化为与或非形式a[4]=!i;//否定运算printf("合取:printf(h析取:printf(u条件:printf(H双条件:a[3]=((!i)
12、
13、j)&&((!j)IH);//等值运算,将其转化为与或非形式PAQ=%d,,,a[0]);//输出结果PVQ=%d,,,a[l]);
14、P->Q=%d,,/a[2]);P<->Q=%dH,a⑶);printfC否定:!P=%d,,/a[4]);bb:printf「是否继续运算?(y/n)“);//询问是否继续操作scanf("%s”,&s);讦(s=='y,
15、
16、s==,n')if(s==V){//system(,,clsn);//清屏gotott;〃返回顶层}elsepnntf(H欢迎下次再次使用!”);//退出}else{printf("输入错误,请重新输入”);〃错误校验gotobb;}}〃运算结果:请输入P的
17、值(0或1),以冋车结束:1请输入Q的值(0或1),以回车结束:0合取:叭Q=0析取:PVQ=1条件:P->Q=0双条件:P<->Q=0否定:!P=0是否继续运算?(y/n)2、任意一个命题公式的真值表#include#include#include#ineludevconio.h>#inelude#defineN50voidpanduan(intb[N]Jntf);〃赋值函数inttkh(charsz[N],charccu[N],
18、inticu[N],inth0);//分级运算函数intfkh(charsz[N],charccu[N],inticu[N],inth0);//主运算函数main()intil/i2/d=lJcu[N]/kh=0Jgj=0,h0;//icu[N]用于存放变量值,kh括号计数,jg存放结果intbj=O,hq[N],h=O,x=O,xq[N];//hq[N]存放合取结果xq[N]存放析取结果charsz[N],ccu[N],szO[N],s;//sz[N]#放式子,ccu[N]存放变量,szO[N]也是用于
19、存放式子hq[O]=-l;xq[O]=-l;prin廿(“***************************************、n")•〃标语printfC1**printfC'**欢迎进入逻辑运算软件printf(H**(可运算真值表,主范式,支持括号)printf("**printf("**用!表示非printf(H**用&表示与printfC1**用
20、表示或printf(H**用八表示蕴含printfC1**用~表示等值printfC1**prin^f(n*****************
21、**********************11)•printf("请输入一个合法的命题公式:”);〃输入式子gets(sz);//读取式子strcpy(szO,sz);〃复制式子for(il=0;il='a,&&sz[il]<='z,11sz[il]>='A'&&sz[il]<='