離散數(shù)學上機實驗報告_第1頁
離散數(shù)學上機實驗報告_第2頁
離散數(shù)學上機實驗報告_第3頁
離散數(shù)學上機實驗報告_第4頁
離散數(shù)學上機實驗報告_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、離散數(shù)學實驗報告姓名:學號:專業(yè):      實驗一、真值運算一、實驗內(nèi)容從鍵盤輸入兩個命題P和Q的真值,求它們的合取、析取、條件和雙條件的真值,并輸出。二、實驗步驟編寫程序,將P,Q以不同真值帶入,觀察程序運行結果,調(diào)式程序。三、實驗代碼#include<stdio.h>int main()int p,q;char t;while(t)printf("是否運算程序(y/n):n");scanf("%c",&t);if('y'=t)printf("輸

2、入p,q的真值(0或1):");scanf("%d%d",&p,&q);if(p!=1)&&(p!=0)printf("請重新輸入p值");scanf("%d",&q);if(q!=1)&&(q!=0)printf("請重新輸入q值");scanf("%d",&q);if(q=0&&p=0)printf("p=1n");printf("q=1n");printf(&q

3、uot;pq=0n");printf("pq=0n");printf("pq=1n");printf("p<->q=1n");else if(p=0&&q=1)printf("p=1n");printf("q=0n");printf("pq=0n");printf("pq=1n");printf("pq=1n");printf("p<->q=0n");else if(

4、p=1&&q=0)printf("p=0n");printf("q=1n");printf("pq=0n");printf("pq=1n");printf("pq=0n");printf("p<->q=0n");else if(p=1&&q=1)printf("p=0n");printf("q=0n");printf("pq=1n");printf("pq=1n&

5、quot;);printf("pq=1n");printf("p<->q=1n");continue;if('n'=t)break;return 0;四、實驗體會求真值運算中,應注意各種連接詞的試用方法,以及其在不同情況下的真值。實驗二、關系的復合一、實驗內(nèi)容從鍵盤輸入兩個關系,求它們的復合關系,并輸出。二、實驗步驟編寫程序,從鍵盤輸入幾種不同的二元關系,如果是關系矩陣,則關系矩陣應能夠相乘,然后觀察它們的復合結果,調(diào)試程序。三、實驗代碼#include<stdio.h>int main()int k,m,n,i,

6、j,sum=0,a1010,b1010,c1010;printf("輸入X集合中元素個數(shù):");scanf("%d",&k);printf("輸入X中二元關系R的關系矩陣:n");for(i=0;i<k;i+)for(j=0;j<k;j+)scanf("%d",&aij);printf("輸入X中二元關系S的關系矩陣:n");for(m=0;m<k;m+)for(n=0;n<k;n+)scanf("%d",&bmn); prin

7、tf("輸出X中二元關系R的關系矩陣:n");for(i=0;i<k;i+)for(j=0;j<k;j+)printf("%d ",aij);if(j=k-1) printf("n");printf("輸出X中二元關系S的關系矩陣:n");for(m=0;m<k;m+)for(n=0;n<k;n+)printf("%d ",bmn);if(n=k-1) printf("n");for(i=0;i<k;i+)for(n=0;n<k;n+)fo

8、r(j=0,m=0;j<k,m<k;j+,m+)sum+=aij*bmn;if(sum>1)sum=1;cin=sum;sum=0;printf("輸出RS的關系矩陣:n");for(i=0;i<k;i+)for(j=0;j<k;j+)printf("%d ",cij);if(j=k-1) printf("n");四、實驗體會在求關系的復合中,先求出其關系矩陣,關系矩陣的運算和普通矩陣的運算一樣,但是值得注意的是,關系矩陣中只有0和1,所以當大于1時,應該返回1,其余不變。實驗三、用沃爾算法求傳遞閉包一、

9、實驗內(nèi)容從鍵盤輸入二元關系用沃爾算法求出它的傳遞閉包,并輸出。二、實驗步驟熟悉沃爾算法,然后將其用程序編寫出來,任意輸入二元關系,觀察程序運行結果,用另一種算法算出結果,與其比較,調(diào)試程序。三、實驗代碼#include<stdio.h>int main()int n,i,j,k,a1010;printf("輸入一個X集合中的元素:");scanf("%d",&n);printf("輸入一個關系矩陣:n");for(i=0;i<n;i+)for(j=0;j<n;j+)scanf("%d"

10、;,&aij);for(j=0;j<n;j+)for(i=0;i<n;i+)if(aij=1)for(k=0;k<n;k+)aik=ajk+aik;if(aik>1)aik=1;printf("輸出傳遞閉包:n");for(i=0;i<n;i+)for(j=0;j<n;j+) printf("%d ",aij); if(j=n-1) printf("n");return 0;四、實驗體會熟悉并使用沃爾算法,關系矩陣中只有0和1,所以用沃爾算法求得的數(shù)若大于1,應該返回1,其余不變。實驗四、三

11、種閉包運算一、實驗內(nèi)容從鍵盤輸入一個二元關系,求它的自反閉包,對稱閉包,傳遞閉包,并輸出。二、實驗步驟編寫程序,從鍵盤輸入一個二元關系,當求傳遞閉包時,試與沃爾算法的傳遞閉包做比較,觀察程序運行結果,調(diào)試程序。三、實驗代碼#include<stdio.h> void output(int s100); void zifan(int s2100); void duichen(int s2100); void chuandi1(int s2100); void aa(); int s100100,z; int d,n ,i,j; int main()char ch;aa();print

12、f("是否開始新的運算?(Y/N)n"); do ch=getchar();while(ch!='N'&&ch!='Y');if(ch='Y') aa(); return 0; void aa() char c;printf("請輸入矩陣的行數(shù)(必須小于10)n "); scanf("%d",&n); printf("請輸入矩陣的列數(shù)(必須小于10)n "); scanf("%d",&d); printf("

13、;請輸入關系矩陣n"); for(i=0;i<n;i+) printf("n"); printf("請輸入矩陣的第%d行元素",i+1); for(j=0;j<d;j+) scanf("%d",&sij); doprintf("輸入對應序號選擇算法n1:自反閉包n2:傳遞閉包n3:對稱閉包n"); scanf("%d",&z); switch(z) case 1:zifan(s); break; case 2:chuandi1(s);break; case

14、3:duichen(s); break; printf("您選擇繼續(xù)嗎(Y/N)?n"); do c=getchar();while(c!='N'&&c!='Y'); while(c='Y'); void output(int s100) printf("所求關系矩陣為:n"); for(i=0;i<n;i+) for(j=0;j<d;j+) printf("%3d",sij); printf("n"); void zifan(int s2

15、100) for(i=0;i<n;i+) s2ii=1; output(s2); void duichen(int s2100) int s1100100; for(i=0;i<n;i+) for(j=0;j<d;j+) s1ji=s2ij; for(i=0;i<n;i+) for(j=0;j<d;j+) s2ij=s2ij+s1ij; if(s2ij>1) s2ij=1; output(s2); void chuandi1(int s2100) int m100100,a100100,k,h; int t100100; for(i=0;i<n;i+)

16、 for(j=0;j<d;j+) aij=0; tij=s2ij; mij=s2ij; for(h=0;h<n;h+) for(i=0;i<n;i+) for(j=0;j<d;j+) if(mij=1) for(k=0;k<n;k+) if(s2jk=1) aik=1; for(i=0;i<n;i+) for(j=0;j<d;j+) mij=aij; tij+=aij; aij=0; if(tij>1) tij=1; output(t); 四、實驗體會此程序要求的算法較多,所以應該用函數(shù)調(diào)用來實現(xiàn)每一個算法的功能,這樣易于管理,自反閉包和傳遞閉包

17、相對簡單一些,在編寫對稱閉包時,并不運用沃爾算法,應注意返回的只有0和1。實驗五、鄰接矩陣判斷可達矩陣一、實驗內(nèi)容從鍵盤輸入一個鄰接矩陣,用其判斷出它的可達矩陣,并輸出。二、實驗步驟編寫程序,從鍵盤輸入一個鄰接矩陣,求出它的可達矩陣,并輸出,觀察程序運行結果,調(diào)試程序。三、實驗代碼#include<stdio.h>void main()int a100100,b100100,c100100,d100100,i,j,k,t,p,q,n;printf("請輸入鄰接矩陣的階數(shù)n");scanf("%d",&n);printf("請輸入此鄰接矩陣n");for(i=0;i<n;i+)for(j=0;j<n;j+)scanf("%d",&aij);cij=aij;dij=aij;bij=0;for(t=0;t<n;t+)for(i=0;i<n;i+)for(j=0;j<n;j+)for(k=0;k<n;k+)bij+=c

溫馨提示

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

最新文檔

評論

0/150

提交評論