构造任意合式公式的真值表

上传人:小*** 文档编号:108395875 上传时间:2022-06-15 格式:DOC 页数:12 大小:48KB
收藏 版权申诉 举报 下载
构造任意合式公式的真值表_第1页
第1页 / 共12页
构造任意合式公式的真值表_第2页
第2页 / 共12页
构造任意合式公式的真值表_第3页
第3页 / 共12页
资源描述:

《构造任意合式公式的真值表》由会员分享,可在线阅读,更多相关《构造任意合式公式的真值表(12页珍藏版)》请在装配图网上搜索。

1、构造任意合式公式的真值表#include stdio.h#includethesis.hint main()Thesis a30;char x=1;int i=0,N;cout请输入命题变元(不超过30个)(输入0结束输入):x; if(i19)coutError:变元个数太多!endl;break;if(x!=0)ai.inname(x);i+;N=i;int M;M=N;string A;cout请输入命题公式( 否定:!,合取:&,析取:| )A;coutA的真值表为:endl;for(int j=0;jM;j+)coutchar(aj.getvalue() ;cout真值endl;as

2、signment(A,N,M,&a0);system(pause);return 0;#includethesis.h#ifndef THESIS_H#define THESIS_H#include#include#includeusing namespace std;class Thesis /命题类 int value;char name; /value:命题的真值(0/1) name:命题名public:Thesis()value=2;name=A;friend Thesis operator !(Thesis &q) q.invalue(1-q.getvalue(); return q

3、; /重载逻辑运算符 friend Thesis operator &(Thesis &p,Thesis &q)p.invalue(p.getvalue()+q.getvalue()/2); return p;friend Thesis operator |(Thesis &p,Thesis &q) if(p.getvalue()+q.getvalue()0) p.invalue(1); else p.invalue(0); return p;friend Thesis operator (Thesis &p,Thesis &q)if(p.getvalue()=1&q.getvalue()=0

4、) p.invalue(0); else p.invalue(1); return p;friend Thesis operator (Thesis &p,Thesis &q) if(p.getvalue()=q.getvalue() p.invalue(1); else p.invalue(0); return p;void invalue(int x)value=x; /输入valuevoid inname(char x)name=x; /输入nameint getvalue()return value; /获取真值int getname()return name; /获取命题名;void

5、 assignment(string A,int N,int M,Thesis a); /声明函数 int bds(string A,int N,Thesis a);int run(string A,int &i,int L,int N,Thesis a);void assignment(string A,int N,int M,Thesis a)/命题赋值并计算真值for(int j=0;j1)assignment(A,N-1,M,&a0);elsefor(int i=0;iM;i+)coutai.getvalue() ;coutbds(A,M,&a0),; /定义运算符号集合 int L;

6、int i=0;L=strlen(&A0); /表达式长度while(iL)if(Ai=() int k=1;for(int j=i+2;jL;j+)if(k!=0)if(Aj=()k+;if(Aj=)k-;if(k=0)int l=j-i-1;char *p=new charl+1;string B;for(int m=0;ml;m+)pm=Ai+1+m;pl=0;B=p;delete p;Temp.invalue(bds(B,N,&a0);if(i=0)answer.invalue(Temp.getvalue();i=j+1;break;elseif(Ai=!) /否定的计算Temp.in

7、value(run(A,i,L,N,&a0);answer=!Temp;i+;continue;else if(Ai=|)Temp.invalue(run(A,i,L,N,&a0);answer=answer|Temp;i+;continue;else if(Ai=&)Temp.invalue(run(A,i,L,N,&a0);answer=answer&Temp;i+;continue;else if(Ai=)Temp.invalue(run(A,i,L,N,&a0);answer=answer)Temp.invalue(run(A,i,L,N,&a0);answer=answerTemp;

8、i+;continue;elsefor(int j=0;jN;j+)if(Ai=char(aj.getname()Temp.invalue(aj.getvalue();if(i=0)answer.invalue(Temp.getvalue();i+;break;return answer.getvalue();int run(string A,int &i,int L,int N,Thesis a)Thesis Temp;if(Ai+1=()int k=1;for(int j=i+2;jL;j+)if(k!=0)if(Aj=()k+;if(Aj=)k-;if(k=0)int l=j-i-1;char *p=new charl+1;string B;for(int m=0;ml-1;m+)pm=Ai+2+m;pl-1=0;B=p;delete p;Temp.invalue(bds(B,N,&a0);i=i+j;break;elseint j=0;while(jL)if(Ai+1=char(aj.getname()i+;Temp=aj;break;j+;return Temp.getvalue();#endif

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!