利用真值表法求主析取范式及主合取范式的实现

上传人:lis****211 文档编号:136902193 上传时间:2022-08-17 格式:DOCX 页数:21 大小:55.79KB
收藏 版权申诉 举报 下载
利用真值表法求主析取范式及主合取范式的实现_第1页
第1页 / 共21页
利用真值表法求主析取范式及主合取范式的实现_第2页
第2页 / 共21页
利用真值表法求主析取范式及主合取范式的实现_第3页
第3页 / 共21页
资源描述:

《利用真值表法求主析取范式及主合取范式的实现》由会员分享,可在线阅读,更多相关《利用真值表法求主析取范式及主合取范式的实现(21页珍藏版)》请在装配图网上搜索。

1、席堂况遂实验报告(/学年第一学期)课程名称离散数学实验名称 利用真值表法求主析取范式及主合取范式的实现实验时间年 月 日指导单位指导教师学生姓名班级学号学院(系)专业实验报告实验名称利用真值表法求主析取范式及 主合取范式的实现指导教师实验类型上机实验学时4实验时间一、实验目的和要求能够列出合式公式的真值表并给出相应主析取范式和主合取范 式。二、实验环境(实验设备)硬件:PC机。软件:Code:Blocks (C+)三、实验原理及内容内容:编程实现用真值表法求任意含三个以内变量的合式公式的主析取范式和主合取范式 -原理:首先读入变元个数,然后读入合式公式,用堆栈的知识将中缀表达式转化为后缀表达式

2、,调用否定、析取、合取、条件、双条件的函数计算P、Q、R取不同真值时合式公式的真值,然后输出真值表,调用计算主析取范式和主合取范式的函数并输出。程序:#include#include#include#includeusing namespace std;string OriginalForm; /原式string业史_;/主合取范式string _Xiqu_;/主析取范式cWss_ SeqStak/建立一个堆,利用将中缀表达式转为后缀表达式public:SeqStack(int mSize);SeqStack();char Top();bool Push(char x);bool Pop();

3、private:char *st;int top;int maxtop;_;_SeqStack:SeqStack(int mSize)maxtop = mSize - 1;top = -1;:ststSeqStack:SeqStack()deletest;char SeqStack:Top()return sttop;bool SeqStack:Push(char x)if(top = maxtop)return false;st+top = x;return true;bool SgSPo)oo iqeqqtac iV: ropif(top = -1)return false;top;ret

4、urn true;int p, q, r, s, t, u;int a, b, result;int v =0;void Not()void Not()否定();result = a = 1 0 : 1;(result);void Or()析取result = a + b;result = result 1 1 : resultint number;/用number表示变元的个数 SeqStack stack(200);(result);void And() /合取 result = a * b; -L U/ kJ LX _L L/CXkJ ;(result);VOid - If()/条件,b

5、_-aresult = (b = 1 & a = 0) 0 : 1 (result);void Doubleif() /双条件result = (b = a) 1 : 0;bool CanIn(char out)/优先级的判断char in =();int i, o;switch(in)return true;elsereturn false;void InfixToPostfix()/中缀表达式转后缀表达式,string tmp = ;一一(#_)_;for(int i = 0; (unsigned)i (); i+)一Jif(OriginalFormi = P | OriginalForm

6、i = Q ?riginalForm顼二M_PriginalFormLi_=_S:LOriginalForm_Li =T | OriginalFormi = U)(tmp=tmp+OriginalFormi;continue;if(CanIn(OriginalFormi)(OriginalFormi);else if(OriginalFormi=)(while() !=()二二顼_(_;_:!elsedotmp = tmp + ();_(!; while(!CanIn(OriginalFormi);while() != #)二:1 ();();OriginalForm = tmp;void _

7、 Calculate()/计算主析取范式和主合取范式的函数if(number = 3)一Jfor(int i = 0; (unsigned)i :If(); break;case |:Or(); break;case &:And(); break;case !:Not(); break;_一if_(number 一二 2)一Jfor(int i = 0; (unsigned)i (); i+)(if(OriginalFormi = P | OriginalFormi = Q)(v = OriginalFormi = P p : q;_(v);continue;_if(OriginalFormi

8、 != !)a =();:二二二一b = _()_;_(!;case -:Doubleif(); break;case :If(); break;case |:Or(); break;case &:And(); break;cmeai ; iVCX.LX.;void Print()cout Pt Qt Rt Z = 0; p)(for(q = 1; q = 0; q)(for(r = 1; r = 0; r)_(Calculate();if(result = 1)Xiqu =Xiqu +( + (p = 1 P : !P)& +(q = 1 Q:!Q) + &+ (r = 1 R : !R)

9、+ ) + elseHequ = Hequ +( + (p = 0 P : !P+ + (q= 0 Q:!Q) + + (r = 0 R : !R) + ) + &cout p t q t r t result endl;一Jif(number = 2)cout Pt Qt Z endl;二 F)二二Calculate();if(result = 1)Xiqu _=Xiqu _ +_ ;_(+_ _(p _=_ 1 _ _ ?_:_ ;J_P)_ + _&+_ _(q _ = 1 _ Q _:_ _!_Q)_ + _)_+_elseHequ 二 jHequ_+_(+_(p 二=0 _ :P_:

10、_P2u:L+ (q = 0 Q :!Q)+ ) + & ;coutendl;_if(_= g)()二 2);_if(_= J0)()-2);cout 主析取范式:Xiqu endl endl;cout 主合取范式: Hequ endl endl;int main()int flag=1;while(flag=1)一JSetConsoleTextAttribute(GetStdHandle(STP_output_handle)2foreground_intensityFOREGROUND_GREEN|FOREGROUND_BLUE)_;_/设置绿色和蓝色相加,(即青色)systemCsls);

11、/清屏coutendl;cout 欢迎使用! endlendl;cout _ _ _ !表示否定_ _ endKlel;cout|表示析取endlendl;cout&表示合取endlendl;cout表示条件endlendl;cout -表示双条件 endl;coutendl;cout _endl number;cout _请输入合式公式:;switch(number)(case _2:cout_ endl _ 变元请用 M、Q 表示 endl _ endl; break;case 3:cout endl 变元请用 P、Q、R 表示 endl str;OriginalForm二str;Infi

12、xToPostfix();Print();coutendlflag;_return 0;开始流程图:Y是否继续使用(Y/N)输入变元个数输入合式公式输出真值表输出主析取范式 和主合取范式N计算主析取范式和 主合取范式退出程序举例使用:四、实验小结(包括问题和解决方法、心得体会、意见与建议等)刚开始思考如何写这个程序的时候1我不知道该如何处理输入进来的合 式公式2_在翻1数据结构书籍之后我才忽然反应过来A可以用堆栈的知识, 将输入进来的中缀表达式转化为后缀表达式1这样就方便计算合式公式的真 值了。这次离散数学实验中,我成功地将所学习得C+的编程知识和数据结构 里的堆栈的知识运用了起来1虽然中途遇到了一些困,难1但最终都很好地解 决了。这次实验让我学会了利用缠程语言来求主析取范式和圭合取范式,更 加深刻地理解了这两种范式1并且也让我对_C+等编程语言有_7更强的 运用边,让我明白了离散数学和编程知识是息息相关、一、密不可分的。以后 我将更加认真学习离散数学,并且更多地将编程的知识运用起来。五、指导教师评语批阅人日期成绩

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