離散數學實驗報告-2011_第1頁
離散數學實驗報告-2011_第2頁
離散數學實驗報告-2011_第3頁
離散數學實驗報告-2011_第4頁
離散數學實驗報告-2011_第5頁
已閱讀5頁,還剩4頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、離散數學實驗報告學 院 科信軟件學院 專 業 計算機科學與技術 指導教師 鄒麗娜 學 號 10999181 姓 名 趙輝 提交日期 2011-12-23 推薦精選實驗一 連結詞邏輯運算一.實驗目的實現二元合取、析取、蘊涵和等價表達式的計算。熟悉連接詞邏輯運算規則,利用程序語言實現邏輯這幾種邏輯運算。二.實驗內容從鍵盤輸入兩個命題變元P和Q的真值,求它們的合取、析取、蘊涵和等價四種運算的的真值。要求對輸入內容進行分析,如果不符合0、1條件需要重新輸入,程序有良好的輸入輸出界面。三. 實驗過程1. 算法分析:編程語言為c語言合取/:p,q都為1的時候為1,其他為0析取/:p,q都為0的時候為0,其

2、他為1蘊含-:p為1,q為0時為0,其他為1等價:p,q同真同假2. 程序代碼:#includeint main()int p,q,i,t; printf(*n); printf(* *n);printf( 歡迎進入邏輯運算軟件n); printf(* *n);printf(*n);doprintf(請輸入p的值(0或1);scanf(%d,&p);if(p!=0&p!=1)printf(輸入有誤);while(p!=0&p!=1); doprintf(請輸入q的值(0或1);scanf(%d,&q); if(q!=0&q!=1)printf(輸入有誤);推薦精選while(q!=0&q!=1

3、); doprintf(請選擇要進行的操作n);printf(1:合取n2:析取n3:蘊含n4:等價n);scanf(%d,&i);switch(i)case 1:if(p&q) printf(合取運算:p/q=1n);else printf(合取運算:p/q=0n);break; case 2:if(p|q) printf(析取運算:p/q=1n);else printf(析取運算:p/q=0n);break; case 3:if(p&!q) printf(蘊含:p-q=0n);else printf(蘊含:p-q=1n); break;case 4:if(p&q)|(!p&!q) prin

4、tf(等價運算:pq=1n);else printf(等價運算:pq=0n); break; printf(是否繼續運算10n); scanf(%d,&t); while(t); return 0; 3.實驗數據及結果分析;初始界面輸入及選擇進行的操作推薦精選循環操作退出實驗二 關系的閉包運算一 、實驗目的熟悉關系的閉包運算,編程實現關系閉包運算算法。一 、實驗內容利用矩陣求解有限集上給定關系的自反、對稱和傳遞閉包。三. 實驗過程1. 算法分析:在三種閉包中自反和對稱閉包的求解很容易,對矩陣表示的關系,其自反閉包只要將矩陣的主對角線全部置為1就可;對稱閉包則加上關系的轉置矩陣(邏輯加法);傳遞

5、閉包則有兩種算法(二選一即可):推薦精選算法1:直接根據計算,過程略。算法2:Warshall算法(1962)設R的關系矩陣為M(1)令矩陣A=M(2)置i=1(3)對所有的j,若Aj,i=1,則對于 k=1,2,n,令Aj,k=Aj,k+Ai,k 注:此處為邏輯加,可以使用運算符|(4) i=i+l(5)若in,則轉到(3),否則結束 流程圖開始聲明各子函數輸入關系矩陣輸入z z=1;調用自反閉包函數z=2,調用對稱閉包函數z=3調用傳遞閉包函數結束推薦精選2. 程序代碼:(c+)#includeint m,n;void zifan(int a100100)int i,j;a00=a11=a

6、22=a33=1;for(i=0;im;i+)for(j=0;jn;j+) coutaij; cout ;coutendl;void duichen(int a100100) int i,j; int c100100; for(i=0;im;i+) for(j=0;jn;j+)cij=aij|aji;coutcij ; coutendl;void chuandi(int a100100) int i,j,k; int c100100; for(k=0;km;k+) for(i=0;in;i+) for(j=0;jn;j+) cij=aij|aik+1&ak+1j;for(i=0;im;i+)

7、for(j=0;jn;j+)推薦精選coutcij ; coutendl;int main() int i,j,z; int b100100; coutinput the matrixendl; cout請輸入矩陣的行數:; cinm; coutendl; cout請輸入矩陣的列數:; cinn; coutendl; for(i=0;im;i+) cout請輸入第i行元素:endl; for(j=0;jbij; int t; do cout請輸入要選擇的操作:endl; cout1自反閉包的關系矩陣為:endl; cout2對稱閉包的關系矩陣為:endl; cout3傳遞閉包的關系矩陣為:z; switch(z) case 1: zifan(b);break; case 2: duichen(b);break; case 3: chuandi

溫馨提示

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

最新文檔

評論

0/150

提交評論