离散数学课程设计报告(4)

来源:网络收集 时间:2025-09-17 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xuecool-com或QQ:370150219 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

printf(\ 用^表示蕴含 **\\n\ printf(\ 用~表示等值 **\\n\ printf(\ **\\n\ printf(\ printf(\请输入一个合法的命题公式:\\n\输入式子 gets(sz);//读取式子

strcpy(sz0,sz);//复制式子 for(i1=0;i1

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

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

for(i2=0;i2

ccu[j]=sz[i1]; j++; } d=1; } }

printf(\该式子中的变量个数为:%d\\n\输出变量个数 h0=j;

printf(\输出真值表如下:\\n \\n\输出真值表表头 for(i1=0;i1

for(i1=0;i1

for(i2=0;i2

jg=tkh(sz,ccu,icu,h0); //用函数求结果 if(jg==0)//结果为0,合取加1 hq[h++]=bj;

else //否则,析取加1 xq[x++]=bj;

printf(\ %d\\n\输出运算结果 strcpy(sz,sz0);

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

- 14 -

{

++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

printf(\输出真值表前项 printf(\ %d\\n\输出运算结果 }

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

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

printf(\该命题公式的主合取范式:\\n\\t\ for(i1=0;i10)//判断并添加符号 printf(\

printf(\输出主合取范式 } }

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

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

printf(\该命题公式的主析取范式:\\n\\t\ for(i1=0;i10)//判断并添加符号 printf(\

printf(\输出主析取范式 } }

printf(\

printf(\欢迎下次再次使用!\\n \结束 getch(); }

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

- 15 -

int i; i=f;

if(b[f]==0)//加1 b[f]=1; else//进位 {

b[f]=0;

panduan(b,--i); } }

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

int i,j,h,s,kh=0,wz[N],a;

char xs1[N],ckh[N]; //xs1用来保存括号内的字符 ckh用来保存括号。 s=strlen(sz); for(i=0;i

if(sz[i]=='(' || sz[i]==')')//判断括号 {

wz[kh]=i;//存储括号位置 ckh[kh]=sz[i];//存储括号类型 kh++; }

if(kh==0)

return fkh(sz,ccu,icu,h0);//如果无括号,直接运行 else {

for(i=0;i

if(ckh[i]==')')//找到第一个) break;

for(j=wz[i-1]+1,h=0;j

a=fkh(xs1,ccu,icu,h0);//运行最内级括号的式子,得到结果 if(a==1)//判断并存储结果 sz[wz[i-1]]=1; else

sz[wz[i-1]]=-2;

for(j=wz[i-1]+1;j

return tkh(sz,ccu,icu,h0);//循环执行 } }

- 16 -

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

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 p1=sz[i+1];

dt[j+2]=!p1;//非运算 sz[i]=j+2; j++; p1=0;

for(i1=i+1;i1

sz[i1]=sz[i1+1];//将后续式子前移一项 }

p1=-1; j1=j;

for(i=0;i

for(i1=0;i1

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

if(sz[i+1]==ccu[i1])//将变量赋值并给P2 p2=icu[i1]; }

for(i2=2;i2

- 17 -

if(sz[i-1]==i2) //如果为前计算结果,将结果赋值并给P1 p1=dt[i2];

if(sz[i+1]==i2) //如果为前计算结果,将结果赋值并给P2 p2=dt[i2]; }

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

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

if(p1==-1) //如果是数字,直接给P1 p1=(int)(sz[i-1]);

if(p2==-1)//如果是数字,直接给P2 p2=(int)(sz[i+1]);

dt[j+2]=p1 && p2;//与运算 sz[i-1]=j+2; j++; j2++; p1=-1; p2=-1;

for(i1=i;i1

for(i=0;i

for(i1=0;i1

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

if(sz[i+1]==ccu[i1])//将变量赋值并给P2 p2=icu[i1]; }

for(i2=2;i2

if(sz[i-1]==i2) //如果为前计算结果,将结果赋值并给P1 p1=dt[i2];

if(sz[i+1]==i2)//如果为前计算结果,将结果赋值并给P2 p2=dt[i2]; }

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

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

- 18 -

百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典教育范文离散数学课程设计报告(4)在线全文阅读。

离散数学课程设计报告(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.70edu.com/fanwen/1047314.html(转载请注明文章来源)

相关推荐:

Copyright © 2020-2025 70教育网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:370150219 邮箱:370150219@qq.com
苏ICP备16052595号-17
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:7 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219