离散数学实验报告(一).doc

上传人:飞****2 文档编号:78737227 上传时间:2023-03-19 格式:DOC 页数:12 大小:83KB
返回 下载 相关 举报
离散数学实验报告(一).doc_第1页
第1页 / 共12页
离散数学实验报告(一).doc_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《离散数学实验报告(一).doc》由会员分享,可在线阅读,更多相关《离散数学实验报告(一).doc(12页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、一、实验内容:构造任意合式公式的真值表二、实验源码:#include #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真值

2、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()

3、; 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.ge

4、tvalue()=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; /

5、获取命题名;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),; /定义运算符

6、号集合 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=!) /否定

7、的计算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=a

8、nswerTemp;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三、运行结果

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com