离散数学实验报告课案

萌到你眼炸
727次浏览
2021年01月30日 01:25
最佳经验
本文由作者推荐

year函数-灰心丧气的意思

2021年1月30日发(作者:美人鱼下载)














2015

/ 2016
学年





学期)




课程名称

实验名称

离散数学

利用真值表法求取主析取范式

以及主合取范式的实现

实验时间

指导单位

指导教师

2016


9



20



计算机科学与技术系

刘茜萍


学生姓名

学院
(

)
吉峰

班级学号

B14041515

软件工程

计算机学院、








件学院











实验名称

利用真值表法求取主析取范式

指导教师

以及主合取范式的实现

实验类型

验证

实验学时

4
实验时间

2016

9

20


刘茜萍

一、

实验目的和要求

实验目的:通过编程实现主析取范式以及主 合取范式的真值表求
法以巩固相关理论的掌握。

实验要求:

从屏 幕输入含三个以内变量的合式公式(其中联结词按照从高到
底的顺序出现)


规范列出所输合式公式的真值表。

给出相应主析取和主合取范式。


二、
实验环境
(
实验设备
)
Windows+VC
三、实验原理及内容







实验原理:开始时在屏幕提示上提示非、合取、析取、条件、双条件在计算机上的字符表示,因为有些数学符号在计算机上不能表示出来。
然后在屏幕中输入含三个以 内变量的合式公式,其中联结词按照从高到底
的顺序出现。把输入的合式公式,分别存放在相应的数组中 ,设计一个真
值判断表达式,并使其赋值计算。依次从左向右计算对应的一组真值指派
下合式公 式的真值。多重循环计算,并将最终的结果存入相应的数组里,
而后输出真值表。最后根据真值表求主析 取范式和主合取范式的方法输出
所求的相应的主析取范式和主合取范式。






































实验内容:


























































#include
#include
#include
#include
#include
#define N 50

void panduan(int b[N],int f);//
赋值函数

int tkh (char sz[N], char ccu[N], int icu[N], int h0);//
分级运算函数

int fkh (char sz[N], char ccu[N], int icu[N], int h0);//
主运算函数


main()
{
2


int i1,i2,d=1,icu[N],jg,j=0,h0 ;//icu[N]
用于存放变量值
,jg
存放结果



int bj=0,hq[N],h=0,x=0,xq[N];//hq[N]
存放合取结果
xq[N]
存放析取结果



char
sz[ N],ccu[N],sz0[N],s;//sz[N]
存放式子
,ccu[N]
存 放变量
,sz0[N]
也是用
于存放式子



hq[0]=-1;


xq[0]=-1;


printf(



******************** *******************n
标语



printf(







































n


printf(















欢迎进入菜单









n

printf(




printf(
















!
表示非















n


printf(
















&
表示合取















n


printf(
















|
表示析取















n


printf(
















^
表示条件













n


printf(
















~
表示双条件













n


printf(







































n


printf(


***************************************nn


printf(
请输入一个合法的命题公式
:n
输入式子



gets(sz);//
读取式子



strcpy(sz0,sz);//
复制式子



for(i1=0;i1

{
3




if(sz[i1]==')' || sz[i1]=='(')//
存储括号数量







kh++;




if(sz[i1]>='a' && sz[i1]<='z' || sz[i1]>='A' && sz[i1]<='Z')


{






for(i2=0;i2判断并储存变量。







if(ccu[i2]==sz[i1])//
去除重复变量









d=0;






if(d==1)



{








ccu[j]=sz[i1];








j++;



}






d=1;


}


}


printf(
该式子中的变量个数为:
%dn
输出变量个数



h0=j;



printf(
输出真值表如下:
n n
输出真值表表头



for(i1=0;i1



printf(



printf(


puts(sz);
4


printf(



for(i1=0;i1先将所有的变量赋值为零。





icu[i1]=0;


for(i2=0;i2输出真值表前项





printf(


jg=tkh(sz,ccu,icu,h0); //
用函数求结果



if(jg==0)//
结果为
0
,合取加
1




hq[h++]=bj;


else //
否则,析取加
1




xq[x++]=bj;



printf(



%dn
输出运算结果



strcpy(sz,sz0);



for(i1=0;i1<(int)pow(2,j)-1;i1++)


{




++bj;




panduan(icu,j-1); //
赋值变量





jg=tkh(sz,ccu,icu,h0);





if(jg==0)//
结果为
0
,合取加
1






hq[h++]=bj;




else //
否则,析取加
1






xq[x++]=bj;





strcpy(sz,sz0); //
恢复被修改的数组。

5




for(i2=0;i2





printf(
输出真值表前项





printf(



%dn
输出运算结果



}



if(hq[0]==-1)//
不存在合取范式时





printf(
该命题公式不存在主合取范式。
n


else


{





printf(
该命题公式的主合取范式:
nt




for(i1=0;i1

{


if (i1>0)//
判断并添加符号









printf(






printf(
输出主合取范式


}


}


if(xq[0]==-1)//
不存在析取范式时





printf(
该命题公式不存在主析取范式。
n


else


{




printf(
该命题公式的主析取范式:
nt




for(i1=0;i16


{


if (i1>0)//
判断并添加符号









printf(






printf(
输出主析取范式


}


}


printf(



printf(
欢迎下次再次使用!
n
结束



getch();
}

void panduan(int b[N],int f) //
二进制赋值。


{


int i;


i=f;


if(b[f]==0)//

1




b[f]=1;


else//
进位



{




b[f]=0;




panduan(b,--i);


}

7
}
int fkh(char sz[N],char ccu[N],int icu[N],int h0)//
主运算函数

{


int i,h=0,j=0,j1=0,j2=0,j3=0,j4=0,j5 =0,i1,i2,p1=-1,p2=-1,s;


char dt[N];


s=strlen(sz);


if(s==1)


if(sz[0]==-2)//
判断是否是最后一项





return 0;


else




return 1; //1
就是
sz[0]
的值、



else


{





for(i=0;i先处理非





if(sz[i]=='!')

{







for(i1=0;i1





if(sz[i+1]==ccu[i1])//
将变量赋值并给
P1








p1=icu[i1];






if(sz[i+1]==-2)/ /
如果是前运算结果的
0
,则
P1
等于
0








p1=0;







if(p1==-1)//
如果是数字,直接给
P1
8

year函数-灰心丧气的意思


year函数-灰心丧气的意思


year函数-灰心丧气的意思


year函数-灰心丧气的意思


year函数-灰心丧气的意思


year函数-灰心丧气的意思


year函数-灰心丧气的意思


year函数-灰心丧气的意思