利用真值表法求主析取范式及主合取范式的實(shí)現(xiàn)_第1頁(yè)
利用真值表法求主析取范式及主合取范式的實(shí)現(xiàn)_第2頁(yè)
利用真值表法求主析取范式及主合取范式的實(shí)現(xiàn)_第3頁(yè)
利用真值表法求主析取范式及主合取范式的實(shí)現(xiàn)_第4頁(yè)
利用真值表法求主析取范式及主合取范式的實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、實(shí)驗(yàn)報(bào)告/學(xué)年第一學(xué)期課程名稱(chēng)離散數(shù)學(xué)實(shí)驗(yàn)名稱(chēng) 利用真值表法求主析取范式及主合取范式的實(shí)現(xiàn)實(shí)驗(yàn)時(shí)間年 月 日指導(dǎo)單位指導(dǎo)教師學(xué)生姓名班級(jí)學(xué)號(hào)學(xué)院系專(zhuān)業(yè)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱(chēng)利用真值表法求主析取范式及指導(dǎo)教師主合取范式的實(shí)現(xiàn)實(shí)驗(yàn)類(lèi)型 上機(jī)實(shí)驗(yàn)學(xué)時(shí)4實(shí)驗(yàn)時(shí)間一、實(shí)驗(yàn)?zāi)康暮鸵竽軌蛄谐龊鲜焦降恼嬷当碹徒o出相應(yīng)主析取范式和主合取范 式.、實(shí)驗(yàn)環(huán)境(實(shí)驗(yàn)設(shè)備)硬件:PC機(jī).軟件:Code:Blocks(C+ )三、實(shí)驗(yàn)原理及內(nèi)容內(nèi)容,編程實(shí)現(xiàn)用真值表法求任意含三個(gè)以?xún)?nèi)變量的合式公式的主板取 范式和主合取范式._遮理,首先讀入變?cè)跀?shù)" 教后讀入合式公或,一用堆棧的初識(shí)將由綴表_ _ 達(dá)式轉(zhuǎn)化為后綴

2、表達(dá)式,調(diào)用否認(rèn)、析取、合取、條件、雙條件的函數(shù)計(jì)算 R_ _ R取不同真值時(shí)合式公式的真值一然后輸出真值表.調(diào)用二比算主折取 范式和主合取范式的函數(shù)并輸出.程序:#include<iostream>#include<string>#include<>#include<>using namespace std;string OriginalForm; /原式string Hequ; 主合取范式string Xiqu; /主析取范式class _SeqStack/_建立二仝堆棧,利用接電綴表達(dá)式轉(zhuǎn)為后綴表達(dá)式public:SeqStack(int

3、mSize);-SeqStack();_char TopO;_bool Push(char x);bool Pop(),_private:一.char 為t;int top;int maxtop;);SeqSiack二SeqSiack(jnt mSjze)(maxtop = mSize - 1;top = -1;st = new charmSize;)SeqStack二SeqStack()(deletest;)char SeqStack:Top()(return sttop;)booL SeqStack:;Pus.h(char x).(_ _ _if(top. = maxtop)_return

4、 false;_ _ _st+top_=_ x;return true;)bool SeqStack:Pop()t ' T - TX if(top = -1)return false;top-;return true;)int p, q, r, s, t, u;int a, b, result;int v =0;int number;/ 用number表示變?cè)膫€(gè)數(shù)SeqStack stack(200);void Not./ 否認(rèn)(a =();_();_result = a = 1 0 : 1;(result)j)vojd_Qr()/航取.(result = a + b;_ _ _re

5、suli_= .result _> _1 _ 1二 result;(result);)void And() / 合取(result = a * b;(result);)void If() / 條件,b->a(result = (b = 1 && a = 0) 0 : 1;(result);)Void_Doub!eifO_ _/雙條件result = (b = a) 1 : 0;(result)j)booL CanLn(char .out)/級(jí)的光順 _(char in =();int i, o;_ _ _switch(in)case '#':i =

6、0; break;case '(':i = 1; break;case '-':i = 3; break;case '>':i = 5; break;case '|':i = 7; break;case '&':i = 9; break;case '!':i = 11; break;case ')':i = 12; break;switch(out)case '#':o = 0; break;case :Cg = 12l break;case '

7、-':o = 2; break;case :>9 三 4; break;case '|':o = 6; break;case :&:o = 8; .break;case '!':o = 10; break;case '),:o = 1; break;_ _if(i < o_ return true;elsereturn false;)void InfixToPostfix()/中綴表達(dá)式轉(zhuǎn)后綴表達(dá)式(string tmp =""('#'); IM MM for(int i = 0; (uns

8、igned)i <(); i+)if(OriginalFormi= 'P'| OriginalFormi = 'Q|OriginalFormi = 'R' | OriginalFormi = 'S' | OriginalFormi ='T' | OriginalFormi = 'U')_tmp=tmp+OriginalFormi;continue;if(CanLn(Origin.alEormiJ)(OriginalFormi);else if(OriginalFormi=')')whi

9、leQ一旦1Q(tmp = tmp + ();();)();)else(dotmp = tmp _+_();_(); while(!CanIn(OriginalFormi);(OrigjnalFormi) - while() != '#')_tmp = tmp + ();();();OriginalForm = tmp;)void Calculate()/計(jì)算主析取范式和主合取范式的函數(shù)(if(number = 3)(for(int i = 0; (unsigned)i <(); i+)(if(OriginalFormi= 'P'| OriginalFor

10、mi'Q'| OriginalFormi = 'R')v= OriginalFormi ='P' pOriginalFormi= 'Q' q : r;3continue;lif(OriginalFormi != !')£a =(); WK* Bl();b =();(); )switch(OriginalFormi)(case '-':Doubleif(); break;case '>':If(); break;case '|':Or(); break;case

11、 '&':And(); break;case '!':Not(); break; )if(number = 2)=.'Q')for(int i 三 0.;_(.unsigned)j w(X j+) - jf(Origina.iFormij=_'P' _ U _ QdginalFormLilv _=_Origin.alFormIi_= E'_p _:_q;(v);continue;jf(OrigjnaJFDrmi _!=,Qa =();();b =();();)switch(OriginalFormi)case &#

12、39;-':Doubleif(); break;case '>':If(); break;case '|':Or(); break;case '&':And(); break;case '!':Not(); break;)vojd_PrLnt()(if(number = 3)coUL<< "PAt"_ <<"Qt:'_<< "Rt" << :Z:'_<< endl4 for(p = 1

13、; p >= 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") + ")" + " |

14、" elseHequ = Hequ +"(" + (p = 0 "P" : "!P")+ |" + (q= 0 "Q" : "!Q") + "|"+ (r = 0 "R" : "!R") + ")" + " & "cout<<_p_ <<"t" _<< q _<<_"t" _<

15、<_ r _«"、t"_ _ << result << endl;)_ _ _if(number 三=_2)(cout << "Pt" <<"Qt" << "Z" << endl;for(p = 1; p >= 0; p-)(for(q = 1; q >= 0; q-)(Calculate.;if(result = 1)Xiqu =Xiqu + "("+ (p = 1 "P"

16、: "!P") + "&"+ (q = 1 "Q" : "!Q") + ")" + " | "elseHequ= Hequ + "(" + (p =0 "P" : "!P") + "|"+ (q = 0 "Q" :"!Q") + ")" + " & "cout<< p <<&qu

17、ot;t" << q << "t" << result << endl;_ c.Qut<<endl;_if() != 0)()-2);if() != 0)_ Q-2Zcout << "主析取范式:"<<Xiqu << endl << endl;cout << "主合取范式:"<< Hequ << endl << endl;)int main()(int flag=1;wh

18、ile(flag=1)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUNDJNTENSITYFOREGROUND GREEN|FOREGROUND BLUE);_設(shè)置綠色和藍(lán)色相加.(一即青魚(yú))system(".clsl');/S 屏一cout<<""<<endl;cout_<<'_熬迎使用-L'wendEwendK.cout_<<_ " J_表示杳定"_<<_ endl<&l

19、t;.endlL_coul_<<_'llzt 析取",<<_ endl<<.endlL_coul_<<_ " &一表示合取"_<<_ endl<<endlcout_<<_ " >_表示條件"_<<_ endl<<endl;_cout_<<_ "二_表示雙住 _"_<< endl;_cout<<""<<endl;cout <<endl<< "輸入你的變?cè)獢?shù)目:"cin >> number;cout<<"請(qǐng)輸入合式公式:"switch(number)(case2:cout << endl <<"變?cè)?qǐng)用 P、Q表示"<< endl <<endl; break;case3:cout << endl &l

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論