离散数学,逻辑学,命题公式求真值表
离散数学,逻辑学,命题公式求真值表
离散数学,逻辑学,命题公式求真值表
离散逻辑学实验
班级:10电信实验班 学号:Q10600132 姓名:王彬彬
一、实验目的
熟悉掌握命题逻辑中的联接词=-1;
xq[0]=-1;
printf("***************************************\n");//标语
printf("** **\n");
printf("** 欢迎进入逻辑运算软件 **\n");
printf("** (可运算真值表,主范式,支持括号) **\n");
printf("** **\n");
printf("** 用!表示非 **\n");
printf("** 用&表示与 **\n");
printf("** 用|表示或 **\n");
printf("** 用^表示蕴含 **\n");
printf("** 用~表示等值 **\n");
printf("** **\n");
printf("***************************************\n\n");
printf("请输入一个合法的命题公式:\n");//输入式子
gets(sz);//读取式子
strcpy(sz0,sz);//复制式子
for(i1=0;i1<strlen(sz);i1++)
{
if(sz[i1]==')' || sz[i1]=='(')//存储括号数量
kh++;
if(sz[i1]>='a' && sz[i1]<='z' || sz[i1]>='A' && sz[i1]<='Z')
{
for(i2=0;i2<j;i2++) //判断并储存变量。
if(ccu[i2]==sz[i1])//去除重复变量
d=0;
if(d==1)
{
ccu[j]=sz[i1];
j++;
}
d=1;
}
}
printf("\nd该式子中的变量个数为:%d\n",j);//输出变量个数
h0=j;
printf("\n输出真值表如下:\n \n"); //输出真值表表头
for(i1=0;i1<h0;i1++)
printf(" %c ",ccu[i1]);
printf(" ");
puts(sz);
printf("\n");
for(i1=0;i1<j;i1++) ///////先将所有的变量赋值为零。
离散数学,逻辑学,命题公式求真值表
离散数学,逻辑学,命题公式求真值表
离散数学,逻辑学,命题公式求真值表
icu[i1]=0;
for(i2=0;i2<j;i2++)//输出真值表前项
printf(" %d ",icu[i2]);
jg=tkh(sz,ccu,icu,h0); //用函数求结果
if(jg==0)//结果为0,合取加1
hq[h++]=bj;
else //否则,析取加1
xq[x++]=bj;
printf(" %d\n",jg);//输出运算结果
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); //恢复被修改的数组。
for(i2=0;i2<j;i2++)
printf(" %d
离散数学,逻辑学,命题公式求真值表 来自淘豆网m.daumloan.com转载请标明出处.