版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、“離散數(shù)學(xué)”實(shí)驗(yàn)報(bào)告(求給定命題公式的真值表并根據(jù)真值表求公式的主范式)專業(yè)網(wǎng)絡(luò)工程班級(jí) 1202班學(xué)號(hào)姓名張敏慧2013.12.14目錄 TOC o 1-5 h z HYPERLINK l bookmark16 o Current Document 實(shí)驗(yàn)?zāi)康? HYPERLINK l bookmark20 o Current Document 實(shí)驗(yàn)內(nèi)容.3求任意一個(gè)命題公式的真值表3 HYPERLINK l bookmark28 o Current Document 實(shí)驗(yàn)環(huán)境3 HYPERLINK l bookmark32 o Current Document 實(shí)驗(yàn)原理和實(shí)現(xiàn)過程(算法描述)
2、3實(shí)驗(yàn)原理3實(shí)驗(yàn)流程圖5 HYPERLINK l bookmark36 o Current Document 實(shí)驗(yàn)代碼6 HYPERLINK l bookmark40 o Current Document 實(shí)驗(yàn)結(jié)果14 HYPERLINK l bookmark44 o Current Document 實(shí)驗(yàn)總結(jié)19實(shí)驗(yàn)?zāi)康谋緦?shí)驗(yàn)課程是網(wǎng)絡(luò)工程專業(yè)學(xué)生的一門專業(yè)基礎(chǔ)課程,通過實(shí)驗(yàn),幫助學(xué)生 更好地掌握計(jì)算機(jī)科學(xué)技術(shù)常用的離散數(shù)學(xué)中的概念、性質(zhì)和運(yùn)算;通過實(shí)驗(yàn)提 高學(xué)生編寫實(shí)驗(yàn)報(bào)告、總結(jié)實(shí)驗(yàn)結(jié)果的能力;使學(xué)生具備程序設(shè)計(jì)的思想,能夠 獨(dú)立完成簡(jiǎn)單的算法設(shè)計(jì)和分析。熟悉掌握命題邏輯中的真值表、主范式
3、等,進(jìn)一步能用它們來解決實(shí)際問題。實(shí)驗(yàn)內(nèi)容求任意一個(gè)命題公式的真值表,并根據(jù)真值表求主范式詳細(xì)說明:求任意一個(gè)命題公式的真值表本實(shí)驗(yàn)要求大家利用C/C+語言,實(shí)現(xiàn)任意輸入公式的真值表計(jì)算。一般 我們將公式中的命題變?cè)旁谡嬷当淼淖筮?,將公式的結(jié)果放在真值表的右邊。 命題變?cè)捎脭?shù)值變量表示,合適公式的表示及求真值表轉(zhuǎn)化為邏輯運(yùn)算結(jié)果; 可用一維數(shù)表示合式公式中所出現(xiàn)的n個(gè)命題變?cè)?,同時(shí)它也是一個(gè)二進(jìn)制加法 器的模擬器,每當(dāng)在這個(gè)模擬器中產(chǎn)生一個(gè)二進(jìn)制數(shù)時(shí),就相當(dāng)于給各個(gè)命題變 元產(chǎn)生了一組真值指派。算法邏輯如下:將二進(jìn)制加法模擬器賦初值0計(jì)算模擬器中所對(duì)應(yīng)的一組真值指派下合式公式的真值。輸出真
4、值表中對(duì)應(yīng)于模擬器所給出的一組真值指派及這組真值指派所對(duì)應(yīng) 的一行真值。產(chǎn)生下一個(gè)二進(jìn)制數(shù)值,若該數(shù)值等于2n-1,則結(jié)束,否則轉(zhuǎn)(2)。實(shí)驗(yàn)環(huán)境;使用visual C+6.0為編程軟件,采用C語言為編程語言實(shí)現(xiàn)。實(shí)驗(yàn)原理和實(shí)現(xiàn)過程(算法描述);1.實(shí)驗(yàn)原理(1)真值表:表征邏輯事件輸入和輸出之間全部可能狀態(tài)的表格。列出命題公 式真假值的表。通常以1表示真,0表示假。命題公式的取值由組成命題公式的 命題變?cè)娜≈岛兔}聯(lián)結(jié)詞決定,命題聯(lián)結(jié)詞的真值表給出了真假值的算法。 真值表是在邏輯中使用的一類數(shù)學(xué)表,用來確定一個(gè)表達(dá)式是否為真或有效。(2)主范式:主析取范式:在含有n個(gè)命題變?cè)暮?jiǎn)單合取式中
5、,若每個(gè)命題變?cè)c其否 定不同時(shí)存在,而兩者之一出現(xiàn)一次且僅出現(xiàn)一次,稱該簡(jiǎn)單合取式為小項(xiàng)。由若 干個(gè)不同的小項(xiàng)組成的析取式稱為主析取范式;與A等價(jià)的主析取范式稱為A的 主析取范式。任意含n個(gè)命題變?cè)姆怯兰倜}公式A都存在與其等價(jià)的主析取 范式,并且是惟一的。主合取范式:在含有n個(gè)命題變?cè)暮?jiǎn)單析取式中,若每個(gè)命題變?cè)c其否 定不同時(shí)存在,而兩者之一出現(xiàn)一次且僅出現(xiàn)一次,稱該簡(jiǎn)單析取式為大項(xiàng)。由若 干個(gè)不同的大項(xiàng)組成的合取式稱為主合取范式;與A等價(jià)的主合取范式稱為A的 主合取范式。任意含n個(gè)命題變?cè)姆怯勒婷}公式A都存在與其等價(jià)的主合取 范式,并且是惟一的。(2)首先是輸入一個(gè)合理的式子,
6、然后從式子中查找出變量的個(gè)數(shù),開辟一個(gè) 二進(jìn)制函數(shù),用來生成真值表,然后用函數(shù)運(yùn)算,輸出結(jié)果,并根據(jù)結(jié)果歸類給 范式,最后輸出范式。函數(shù)部分,主要是3個(gè)函數(shù),一個(gè)為真值表遞加函數(shù),通過二進(jìn)制的加法原 理遞進(jìn)產(chǎn)生,一個(gè)為分級(jí)運(yùn)算函數(shù),這個(gè)函數(shù)是通過判斷括號(hào),選出最內(nèi)級(jí)括號(hào) 的內(nèi)容執(zhí)行運(yùn)算函數(shù),這樣一級(jí)一級(jí)向外運(yùn)算,最后得出最終結(jié)果,剩下一個(gè)為 主運(yùn)算函數(shù),按照運(yùn)算符號(hào)的優(yōu)先級(jí)按順序進(jìn)行運(yùn)算,如先將所有非運(yùn)算運(yùn)算完, 再執(zhí)行與運(yùn)算。如此運(yùn)算。2.實(shí)驗(yàn)流程圖如下:主函數(shù)實(shí)驗(yàn)代碼#include stdio.h”#include stdlib.h”#include string.h”#include
7、conio.h#include math.h”#define N 50void panduan(int bN,int f);/賦值函數(shù)int tkh (char szN, char ccuN, int icuN, int h0);/分級(jí)運(yùn)算函數(shù)int fkh (char szN, char ccuN, int icuN, int h0);/主運(yùn)算函數(shù)main()(int i1,i2,d=1,icuN,kh=0,jg,j=0,h0;/icuN用于存放變量值,kh 括號(hào)計(jì) 數(shù),jg存放結(jié)果int bj=0,hqN,h=0,x=0,xqN;/hqN存放合取結(jié)果 xqN存放析取結(jié)果char szN,c
8、cuN,sz0N,s;/szN存放式子,ccuN存放變量,sz0N也 是用于存放式子hq0=-1;xq0=-1;printf(*n);/標(biāo)語printf(*n)printf(*歡迎進(jìn)入邏輯運(yùn)算軟件*n)printf(*printf(*(可運(yùn)算真值表,主范式,支持括號(hào))*n)*n)printf(*用!表示非*n)printf(*用&表示與*n)printf(*用|表示或*n)printf(*用”表示蘊(yùn)含*n)printf(*printf(*用表示等值*n)*n)printf(*nn);printf(請(qǐng)輸入一個(gè)合法的命題公式:n);/輸入式子gets(sz);/讀取式子strcpy(sz0,sz)
9、;/復(fù)制式子for(i1=0;i1=a & szi1=A & szi1=Z)(for(i2=0;i2j;i2+) 判斷并儲(chǔ)存變量。if(ccui2=szi1)/去除重復(fù)變量d=0;if(d=1)(ccuj=szi1;j+;d=1;printf(nd該式子中的變量個(gè)數(shù)為:dn,j);/輸出變量個(gè)數(shù) h0=j;printf(n輸出真值表如下:n n); /輸出真值表表頭for(i1=0;i1h0;i1+)printf( %c ,ccui1);printf();puts(sz);printf(n);for(i1=0;i1j;i1+) /先將所有的變量賦值為零。icui1=0;for(i2=0;i2j
10、;i2+)/輸出真值表前項(xiàng)printf( %d ,icui2);jg=tkh(sz,ccu,icu,h0); /用函數(shù)求結(jié)果if(jg=0)/結(jié)果為0,合取加1hqh+=bj;else /否則,析取加1xqx+=bj;printf(%dn”,jg);/輸出運(yùn)算結(jié)果strcpy(sz,sz0);for(i1=0;i1(int)pow(2,j)-1;i1+)(+bj;panduan(icu,j-1); /賦值變量jg=tkh(sz,ccu,icu,h0);if(jg=0)/結(jié)果為0,合取加1hqh+=bj;else /否則,析取加1xqx+=bj;strcpy(sz,sz0); /恢復(fù)被修改的數(shù)組
11、。for(i2=0;i2j;i2+)printf( %d ”,icui2);/輸出真值表前項(xiàng)printf(%dn”,jg);/輸出運(yùn)算結(jié)果if(hq0=-1)/不存在合取范式時(shí)printf(n該命題公式不存在主合取范式。n);else(printf(n該命題公式的主合取范式:nt);for(i1=0;i10)/判斷并添加符號(hào)printf(/);printf(M(%d)”,hqi1); 輸出主合取范式if(xq0=-1)/不存在析取范式時(shí)printf(n該命題公式不存在主析取范式。n);else(printf(nn該命題公式的主析取范式:nt);for(i1=0;i10)/判斷并添加符號(hào)prin
12、tf(/);printf(m(%d)”,xqi1);/輸出主析取范式printf(n);printf(n歡迎下次再次使用! n );/結(jié)束getch();void panduan(int bN,int f) / 二進(jìn)制賦值。(int i;i=f;if(bf=0)/加 1bf=1;else/進(jìn)位(bf=0;panduan(b, -i);int tkh (char szN,char ccuN,int icuN,int h0)/分級(jí)運(yùn)算函數(shù)(int i,j,h,s,kh=0,wzN,a;char xs1N,ckhN; /xs1用來保存括號(hào)內(nèi)的字符ckh用來保存括號(hào)。s=strlen(sz);for(
13、i=0;is;i+)if(szi=( | szi=)/判斷括號(hào)(wzkh=i;/存儲(chǔ)括號(hào)位置ckhkh=szi;/存儲(chǔ)括號(hào)類型kh+;if(kh=0)return fkh(sz,ccu,icu,h0);/如果無括號(hào),直接運(yùn)行else(for(i=0;ikh;i+)if(ckhi=)/找到第一個(gè))break;for(j=wzi-1+1,h=0;jwzi;j+,h+) /存儲(chǔ)最內(nèi)級(jí)括號(hào)中的內(nèi)容 xs1h=szj;xs1h=0;a=fkh(xs1,ccu,icu,h0);/運(yùn)行最內(nèi)級(jí)括號(hào)的式子,得到結(jié)果if(a=1)/判斷并存儲(chǔ)結(jié)果szwzi-1 = 1;elseszwzi-1=-2;for(j=w
14、zi-1+1;js+wzi-1-wzi;j+)/將括號(hào)后內(nèi)容前移 szj=szj+wzi-wzi-1;szj=0;return tkh(sz,ccu,icu,h0);/循環(huán)執(zhí)行int fkh(char szN,char ccuN,int icuN,int h0)/主運(yùn)算函數(shù)(int i,h=0,j=0,j1=0,j2=0,j3=0,j4=0,j5=0,i1,i2,p1=-1,p2=-1,s;char dtN;s=strlen(sz);if(s=1)if(sz0=-2)/判斷是否是最后一項(xiàng)return 0;elsereturn 1; /1 就是 sz0的值、else(for(i=0;is-j;i
15、+) /先處理非 if(szi=!)for(i1=0;i1h0;i1+)if(szi+1=ccui1)/將變量賦值并給 P1 p1=icui1;if(szi+1=-2)/如果是前運(yùn)算結(jié)果的0,則P1等于0 p1=0;if(p1=-1)/如果是數(shù)字,直接給P1 p1=szi+1;dtj+2 = !p1;/非運(yùn)算szi=j+2;j+;p1=0;for(i1=i+1;i1s-j;i1+)szi1=szi1+1;/將后續(xù)式子前移一項(xiàng)p1=-1;j1=j;for(i=0;is-j1-2*j2;i+) / 處理與if(szi=&)(for(i1=0;i1h0;i1+)(if(szi-1=ccui1)/將變
16、量賦值并給 P1p1=icui1;if(szi+1=ccui1)/將變量賦值并給 P2 p2=icui1;for(i2=2;i2j+2;i2+)(if(szi-1=i2) 如果為前計(jì)算結(jié)果,將結(jié)果賦值并給P1 p1=dti2;if(szi+1=i2) 如果為前計(jì)算結(jié)果,將結(jié)果賦值并給P2 p2=dti2;if(szi-1=-2)/如果是前運(yùn)算結(jié)果的0,則P1等于0 p1=0;if(szi+1=-2)/如果是前運(yùn)算結(jié)果的0,則P2等于0 p2=0;if(p1=-1) /如果是數(shù)字,直接給P1 p1=(int)(szi-1);if(p2=-1)/如果是數(shù)字,直接給P2p2=(int)(szi+1)
17、;dtj+2=p1 & p2;/與運(yùn)算szi-1=j+2;j+;j2+;p1=-1;p2=-1;for(i1=i;i1s-j1-2*j2;i1+)/將后續(xù)式子前移兩項(xiàng) szi1=szi1+2;i=i-1;for(i=0;is-j1-2*j2-2*j3;i+) / 處理或。if(szi=|)(for(i1=0;i1h0;i1+)(if(szi-1=ccui1)/將變量賦值并給 P1 p1=icui1;if(szi+1=ccui1)/將變量賦值并給 P2 p2=icui1;for(i2=2;i2j+2;i2+)(if(szi-1=i2) 如果為前計(jì)算結(jié)果,將結(jié)果賦值并給P1 p1=dti2;if(
18、szi+1=i2)/如果為前計(jì)算結(jié)果,將結(jié)果賦值并給P2 p2=dti2;if(szi-1=-2)/如果是前運(yùn)算結(jié)果的0,則P1等于0 p1=0;if(szi+1=-2)/如果是前運(yùn)算結(jié)果的0,則P2等于0 p2=0;if(p1=-1)/如果是數(shù)字,直接給P1p1=szi-1;if(p2=-1)/如果是數(shù)字,直接給P2p2=szi+1;dtj+2=p1 | p2;/或運(yùn)算szi-1=j+2;j+;j3+;p1=-1;p2=-1;for(i1=i;i1s-j1-2*j2-2*j3;i1+)/將后續(xù)式子前移兩項(xiàng) szi1=szi1+2;i-;for(i=0;is-j1-2*j2-2*j3-2*j4
19、;i+) / 處理蘊(yùn)含。if(szi=)(for(i1=0;i1h0;i1+)(if(szi-1=ccui1)/將變量賦值并給 P1 p1=icui1;if(szi+1=ccui1)/將變量賦值并給 P2 p2=icui1;for(i2=2;i2j+2;i2+)(if(szi-1=i2) 如果為前計(jì)算結(jié)果,將結(jié)果賦值并給P1 p1=dti2;if(szi+1=i2) 如果為前計(jì)算結(jié)果,將結(jié)果賦值并給P2 p2=dti2;if(szi-1=-2)/如果是前運(yùn)算結(jié)果的0,則P1等于0 p1=0;if(szi+1=-2)/如果是前運(yùn)算結(jié)果的0,則P2等于0 p2=0;if(p1=-1)/如果是數(shù)字,
20、直接給P1p1=szi-1;if(p2=-1)/如果是數(shù)字,直接給P2p2=szi+1;dtj+2 = !p1 | p2;/蘊(yùn)含運(yùn)算szi-1=j+2;j+;j4+;p1=-1;p2=-1;for(i1=i;i1s-j1-2*j2-2*j3-2*j4;i1+)/將后續(xù)式子前移兩項(xiàng) szi1=szi1+2;i-;for(i=0;is-j1-2*j2-2*j3-2*j4-2*j5;i+) / 處理等值。if(szi=)(for(i1=0;i1h0;i1+)(if(szi-1=ccui1)/將變量賦值并給 P1 p1=icui1;if(szi+1=ccui1)/將變量賦值并給 P2 p2=icui1
21、;for(i2=2;i2j+2;i2+)(if(szi-1=i2) 如果為前計(jì)算結(jié)果,將結(jié)果賦值并給P1 p1=dti2;if(szi+1=i2) 如果為前計(jì)算結(jié)果,將結(jié)果賦值并給P2 p2=dti2;if(szi-1=-2)/如果是前運(yùn)算結(jié)果的0,則P1等于0p1=0;if(szi+1=-2)/如果是前運(yùn)算結(jié)果的0,則P2等于0 p2=0;if(p1=-1)/如果是數(shù)字,直接給P1p1=szi-1;if(p2=-1)/如果是數(shù)字,直接給P2p2=szi+1;dtj+2 = (!p1 | p2)&(!p2 | p1);/等值運(yùn)算szi-1=j+2;j+;j5+;p1=-1;p2=-1;for(
22、i1=i;i1號(hào)命題公式的主析取范式:nC0如迎下次再次使用!非運(yùn)算P用心表示等值草輸入一個(gè)合法的命題公式=pg,該式子中的變量個(gè)數(shù)為:2M出真值表如下;ab a&b TOC o 1-5 h z 09001019Q111女命題公式的主合取范式:女命題公式的主析取范式:mC3?眼迎下次再次使用!與運(yùn)算情輸入一個(gè)合法的命題公式: 卜? h,該式子中的夜量個(gè)數(shù)為:2 危出真值表如下;ab a!b TOC o 1-5 h z 001010101110女命題公式的主合取范式:命題公式的主析取范式:mC0/SjiC2M迎下次再次使用I或運(yùn)算扁輸入一個(gè)合法的命題公式=h該式子中的變量個(gè)數(shù)為:2卜出真值表如下
23、:abab TOC o 1-5 h z 0&101110Q111食命題公式的主合單范式;nc2女命題公式的主析隼范式:皿。/5t:迎下次再次使用I蘊(yùn)含運(yùn)算g C:DOCU1ENIS ND SETTINGSADIIITISTEATOR、桌面新建文frXDebugXc 1. ese菖輸入一個(gè)合法的命題公式: 卜b,該式子中的歿量個(gè)數(shù)為2 危出真值表如下:ab af TOC o 1-5 h z Q91010ia0ii1應(yīng)命題公式的主合取范式: nci/ri3命題公式的主祈取范式:居仰下次再次停印|等值運(yùn)算tb&aAcF該式子中的變量個(gè)數(shù)為:3 k出真值表如下:abcaAbc!b&aAc00e&001101sQ01i110s1iQ1Q11se111i隅命題公式的主合取范式:榜命題公式的主析取范式,岫E-TXr雨 Xf偉 FR i綜合運(yùn)算* *C:XDOCU1ENTS AHD SETTINGSAJIIHISTR1TOR、桌面新建文件夫 Delm叭c 1.abGd0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)校課題活動(dòng)策劃方案(3篇)
- 2026烏魯木齊市第三十六中學(xué)誠(chéng)聘初高中教師(18人)參考考試題庫及答案解析
- 2026浙江臺(tái)州市緊急救援中心招聘編制外人員1人參考考試題庫及答案解析
- 2026年甘肅省慶陽市西峰環(huán)宇中學(xué)春季招聘教師備考考試題庫及答案解析
- 2026泰安岱岳區(qū)事業(yè)單位初級(jí)綜合類崗位招聘工作人員(99人)考試備考試題及答案解析
- 2026廣東中山市東鳳鎮(zhèn)佛奧幼兒園教職工招聘2人筆試模擬試題及答案解析
- 2026中鐵建昆侖高速公路運(yùn)營(yíng)管理有限公司德遂高速公路路巡隊(duì)員招聘1人(重慶)參考考試題庫及答案解析
- 2026上半年玉溪師范學(xué)院招聘6人參考考試題庫及答案解析
- 第四單元7靜夜思
- 三臺(tái)公安公開招聘60名警務(wù)輔助人員備考考試試題及答案解析
- 四川省南充市2024-2025學(xué)年高一上學(xué)期期末質(zhì)量檢測(cè)英語試題(含答案無聽力原文及音頻)
- 專題08解題技巧專題:圓中輔助線的作法壓軸題三種模型全攻略(原卷版+解析)
- 2024年全國(guó)職業(yè)院校技能大賽(節(jié)水系統(tǒng)安裝與維護(hù)賽項(xiàng))考試題庫(含答案)
- 24秋人教版英語七上單詞表(Vocabulary in Each Unit)總表
- ISO 15609-1 2019 金屬材料焊接工藝規(guī)程和評(píng)定-焊接工藝規(guī)程-電弧焊(中文版)
- 肥胖患者麻醉管理
- 小鯉魚跳龍門電子版
- 2019年急性腦梗死出血轉(zhuǎn)化專家共識(shí)解讀
- 《混凝土結(jié)構(gòu)工程施工規(guī)范》
- 土地證延期申請(qǐng)書
- 硫乙醇酸鹽流體培養(yǎng)基適用性檢查記錄
評(píng)論
0/150
提交評(píng)論