已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
构造任意合式公式的真值表#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;assignment(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; /重载逻辑运算符 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) 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 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;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.invalue(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;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;Tem
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国内外大型企业集团化管控模式研究
- 理论研究在毕业论文中的重要性与意义探究
- 财务管理论文范文三
- 儿童血管迷走性晕厥治疗要点2026
- 毕业设计论文规范化要求
- 历史论文主题初中怎么写
- 氨氮超标常见原因分析及控制对策
- 浅谈走道自然排烟系统
- 适合数学专业论文题目
- 浅谈八大藏戏的特点
- 商务英语邮件写作
- YY 0119-2002骨接合植入物 金属矫形用钉
- GB/T 18487.2-2001电动车辆传导充电系统电动车辆与交流/直流电源的连接要求
- GB 11032-2000交流无间隙金属氧化物避雷器
- 第1章-平面机构的结构分析和运动分析课件
- 个体户无偿使用证明范本
- 幼儿园突发事件应急处置流程图
- 婴幼儿配方乳粉生产企业体系检查及日常监督检查要点解析课件
- 水泵设备单机试运转记录
- 钢结构隐蔽工程验收记录表(一系列表格全面)
- 公路工程竣工验收办法实施细则
评论
0/150
提交评论