九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)矩陣的運(yùn)算.doc

上傳人:gfy****yf 文檔編號(hào):46377353 上傳時(shí)間:2021-12-13 格式:DOC 頁(yè)數(shù):16 大?。?38KB
收藏 版權(quán)申訴 舉報(bào) 下載
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)矩陣的運(yùn)算.doc_第1頁(yè)
第1頁(yè) / 共16頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)矩陣的運(yùn)算.doc_第2頁(yè)
第2頁(yè) / 共16頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)矩陣的運(yùn)算.doc_第3頁(yè)
第3頁(yè) / 共16頁(yè)

下載文檔到電腦,查找使用更方便

12 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)矩陣的運(yùn)算.doc》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)矩陣的運(yùn)算.doc(16頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、數(shù)據(jù)結(jié)構(gòu)禪設(shè)計(jì)報(bào)告題 目:專(zhuān) 業(yè):班 級(jí):學(xué) 號(hào):姓 名:指導(dǎo)老師: 時(shí) 間:_、課程設(shè)計(jì)題目及所涉及知識(shí)點(diǎn)設(shè)計(jì)題目是“矩陣的運(yùn)算”,所涉及的知識(shí)點(diǎn)主要是:1、數(shù)據(jù)結(jié)構(gòu)中的對(duì)于結(jié)構(gòu)體的定義, 用typedef struct來(lái)實(shí)現(xiàn),根據(jù)所設(shè)計(jì)的問(wèn)題 在結(jié)構(gòu)體里面定義數(shù)據(jù)類(lèi)型及其變量,用define定義數(shù)組的大小,然后利用 typedef來(lái)實(shí)現(xiàn)對(duì)于變童的未知類(lèi)型確定正確的類(lèi)型。2、利用數(shù)組的形式來(lái)儲(chǔ)存數(shù)據(jù),在實(shí)現(xiàn)不同操作過(guò)程中,有的用一維結(jié)構(gòu)體數(shù)組(三 元組順序表)來(lái)存儲(chǔ),有的用二維數(shù)組來(lái)儲(chǔ)存.3、轉(zhuǎn)迅的過(guò)程中利用的是快速轉(zhuǎn)置的方法,附設(shè)了 num和cpot兩個(gè)輔助變童.4、矩陣的加法、減法、乘法

2、、逆運(yùn)算的基本算法方式.5、通過(guò)調(diào)用每個(gè)函數(shù),來(lái)實(shí)現(xiàn)每個(gè)算法的功能.二課程設(shè)計(jì)思路及算法描述設(shè)計(jì)思路:1、首先是對(duì)于轉(zhuǎn)置的考慮,要運(yùn)用快速轉(zhuǎn)凰的方法實(shí)現(xiàn),必須用三元組順序表來(lái) 儲(chǔ)存數(shù)據(jù),所以在第一個(gè)結(jié)構(gòu)體中存在int類(lèi)型的行數(shù)(mu)列數(shù)(nu)以及 非家元素的個(gè)數(shù)(tu);然后第二個(gè)結(jié)構(gòu)體中分別有非零元素的行下標(biāo)(i )、列 下標(biāo)(j)和元素?cái)?shù)值(e),最后在第一個(gè)結(jié)構(gòu)體中實(shí)現(xiàn)對(duì)第二個(gè)結(jié)構(gòu)體成為數(shù) 組結(jié)構(gòu)體類(lèi)型。2、對(duì)于其余加法、減法、乘法和逆運(yùn)算則是運(yùn)用另一個(gè)結(jié)構(gòu)體來(lái)實(shí)現(xiàn),里面只有 矩陣的行數(shù)、列數(shù)和一個(gè)二維數(shù)紐(用門(mén)oat來(lái)定義類(lèi)型).3、在main函數(shù)里面,來(lái)實(shí)現(xiàn)對(duì)于數(shù)據(jù)的輸入操作,利

3、用if語(yǔ)句進(jìn)行選擇來(lái)執(zhí)行 操作,利用dowhile語(yǔ)句來(lái)實(shí)現(xiàn)功能的循環(huán)操作。4、分五個(gè)函數(shù)調(diào)用分別來(lái)實(shí)現(xiàn)轉(zhuǎn)置、加法、乘法、粗逆運(yùn)算,每個(gè)里面都有最終 輸出結(jié)果的方式.算法1:矩陣的轉(zhuǎn)置輸入:mu中存放矩陣的行數(shù),tu存放矩陣的列數(shù),i接收行下標(biāo)的數(shù)值,j接收列 下標(biāo)的數(shù)值,e來(lái)存儲(chǔ)數(shù)據(jù).輸出:轉(zhuǎn)暹后的新矩陣.輸入兩行兩列數(shù)據(jù),在第二行第一列中有個(gè)數(shù)據(jù)為12,其余都為0,則輸出的結(jié)果 為第一行第二列數(shù)據(jù)為12,其余為0.算法2:矩陣的加法運(yùn)算輸入:i中存放矩陣的行數(shù),j中存放矩陣的列數(shù),二維數(shù)紐b中存放每個(gè)數(shù)據(jù). 輸出:矩陣加完后的另一個(gè)新矩陣.輸入兩個(gè)兩行三列的矩陣,在第一個(gè)矩陣?yán)锩娴谝恍械谝?/p>

4、列有個(gè)數(shù)據(jù)20,其余為0,在第二個(gè)矩陣?yán)锩娴谝恍械诙兄杏袀€(gè)數(shù)據(jù)30,其余為0,則輸出的結(jié)果為一 個(gè)兩行三列的矩陣,其中第一行第一列數(shù)提為20,第一行第二列數(shù)據(jù)為30,其余 為0.算法3:矩陣的減法運(yùn)算輸入:i中存放矩陣的行數(shù),j中存放矩陣的列數(shù),二維數(shù)組b中存放每個(gè)數(shù)據(jù). 輸出:矩陣相減后的另一個(gè)新矩陣.輸入兩個(gè)兩行三列的矩陣,在第一個(gè)矩陣?yán)锩娴谝恍械谝涣杏袀€(gè)數(shù)據(jù)20,其余為0,在第二個(gè)矩陣?yán)锩娴谝恍械谝涣兄杏袀€(gè)數(shù)據(jù)30,其余為0,則輸出的結(jié)果為一 個(gè)兩行三列的矩陣,其中第一行第一列數(shù)據(jù)為-10,其余為0.算法4:矩陣的乘法運(yùn)算輸入:i中存放矩陣的行數(shù),j中存放矩陣的列數(shù),二維數(shù)組b中存放每

5、個(gè)數(shù)據(jù). 輸出:矩陣加完后的另一個(gè)新矩陣.輸入兩行兩列的矩陣,第一個(gè)矩陣?yán)锩娴谝恍械谝涣杏袀€(gè)數(shù)據(jù)2第二列有個(gè)數(shù)據(jù)3,其余為0,在第二個(gè)矩陣?yán)锩娴谝恍械谝涣杏袀€(gè)數(shù)據(jù)2第二列中有個(gè)數(shù)據(jù)3,其 余為0,則輸出的結(jié)果為一個(gè)兩行兩列的矩陣,其中第一行第一列數(shù)據(jù)為4,第二 列為6,第一行第二列數(shù)據(jù)為30,其余為0.算法五:矩陣的逆運(yùn)算輸入:i中存放矩陣的行數(shù),j中存放矩陣的列數(shù),二維數(shù)組b中存放每個(gè)數(shù)據(jù).輸出:矩陣進(jìn)行逆運(yùn)算完后的另一個(gè)新矩陣.輸入三行三列的矩陣,第一個(gè)矩陣?yán)锩娴谝恍械谝涣杏袀€(gè)數(shù)據(jù)3個(gè)數(shù)據(jù)分別為1, 2, 3;第二行的數(shù)據(jù)分別為2, 2, 1;第三行的暑假分別為3, 4, 3;則輸出的 結(jié)

6、果為三行三列矩陣,其中第一行的數(shù)據(jù)為1, 3, -2;第二行的數(shù)據(jù)分別為- 1.5, -3, 2.5;第三行的數(shù)據(jù)分別為1, 1, -1.三、課程設(shè)計(jì)中遇到的難點(diǎn)及解決辦法1、在轉(zhuǎn)理的過(guò)程中,要求把轉(zhuǎn)置后的矩陣輸出出來(lái),因?yàn)橛玫氖侨M順序表的存儲(chǔ) 形式,所以不知道怎么去實(shí)現(xiàn),然后通過(guò)進(jìn)一步思考,運(yùn)用先把一個(gè)矩陣存入家元素,然后 2在對(duì)其進(jìn)行更改,最后完成了此項(xiàng)的工作.2、就是對(duì)于矩陣的乘法運(yùn)算和逆運(yùn)算,掌握的不夠熟練,先是通過(guò)書(shū)籍對(duì)于矩陣的乘 法和逆運(yùn)算得到更深的了解,然后通過(guò)一步步寫(xiě)程序最后實(shí)現(xiàn)了矩陣的乘法運(yùn)算和逆運(yùn)算.四、總結(jié)通過(guò)此次課程設(shè)計(jì),讓我對(duì)于編程有了更深的認(rèn)識(shí),老師的精心指導(dǎo)讓

7、我學(xué)會(huì)到了很 多,不僅僅是代碼,最主要的讓我的思維開(kāi)闔了很多,在這個(gè)過(guò)程中,通過(guò)不斷的嘗試,不 斷的修改,最終克服了困難,完成了自己的任務(wù),心里有種無(wú)比的喜悅,但同時(shí)又感覺(jué)到了 自己的知識(shí)面的狹隘,還有好多知識(shí)的海洋還沒(méi)有暢游,等待自己將是一回更大的考臉.對(duì)于現(xiàn)在的自己,對(duì)學(xué)習(xí)程序還是有很大的興趣,它讓我體驗(yàn)到了很多的快樂(lè),我要 進(jìn)步跟進(jìn)現(xiàn)在的課程,努力去發(fā)展自己,按照老師說(shuō)的最主要的是具有了編程的思想,則具 有了編程的能力,我想我可以成功完成自己的目標(biāo)。五、附錄一主要源程序代碼及運(yùn)行結(jié)果1、主要源程序代碼:# include # define max 100# define maxsize

8、100typedef float elemtype;typedef struct float bmax max;int i;矩陣的行數(shù)int j;/矩陣的列數(shù) tsmatrix;typedef struct int i, j;/該非家元的行下標(biāo)和列下標(biāo)elemtype e;triple;typedef struct triple data maxsize+1; /非零元三元組,data 0未用int mu, nu, tu; /矩陣的行數(shù)、列數(shù)和非零元個(gè)數(shù)sqlist ;void zhuanzhi (sql ist si, tsmatrix 412) /矩陣的轉(zhuǎn)置 sql ist s2; int

9、 col, t9, p, q, al, bl; int num100, copt 100;s2. mu=sl mu; s2 nu=sl nu; s2 tu=sl tu;if(s2. tu0) for (col=l; col=sl nu;+col) num col =0;for (t9=l; t9=sl. tu; +t9)+numsl. data t9. j; /求si中每一列含非零元個(gè)數(shù)copt 1=1; /求第col列中第一個(gè)非零元在s2. data中序號(hào)for (col=2; col=sl nu; +col) copt col=coptcol-l+numcol-l;for (p=l; pn

10、n);for (al=l; al=sl. nu; al+) for (b 1=1; bl=sl. mu; bl+)printf C%10. 3f 12.bal bl);printf (tR);printf (Rn);)printf(Rprintf (n);void jiafa (tsmatrix 14, tsmatrix 15) /矩陣的加法(tsmatrix 16;for (int t=0; t14. i; t+) for (int 11=0; tl14. j; tl+)16.bt tl=14.bt tl+15.bt tl;printf (矩陣加完后的結(jié)果:nw);printf(*拿拿拿拿拿

11、拿拿拿拿拿拿*n);for (int t2=0; t214. i; t2+) for (int t3=0; t314. j; t3+)printf (%10. 3f16.bt2 t3);printf(tR);)printf (n);printf ,void jianfa (tsmatrix 14, tsmatrix 15) /矩陣的減法tsmatrix 16;for (int t=0; t14i;t+) for (int tl=0; tl14. j; tl+)16.bt tl=14.bt tl-15.bt tl; printf C矩陣相減后的結(jié)果:nH);printffor (int t2=0

12、; t214. i; t2+) for (int t3=0; t314. j; t3+)printf (n%10. 3f 16.bt2 t3);printf(t);printf (nR);printf(Rnn); ,void chengfa (tsmatrix 14, tsmatrix 15) /矩陣的乘法 tsmatrix 16;for (int t=0; t14. i; t+)4for (int 11=0; tl15. j; 11+) 16. bt tl=0;for (int k=0; k14. j; k+)16. bt tl+=14. bt k*15. bk tl; printf (*矩

13、陣乘完后的結(jié)果:nn);pr intffor (int t2=0; t214. i; t2+) for (int t3=0; t315. j; t3+) printf C%10. 3f16.bt2 t3);printf (RtR);)printf (n);printf , void niyunsuan( tsmatrix s)矩陣的逆運(yùn)算 tsmatrix si;float t, x; int k, i, j;for (i=0; is. i; i+)for(j=0; j(2*s. i); j+) if (js. i) si. bi j=s. bi j; else if (j=s. i+i) s

14、i. bi j=L 0; else si. bi j=0. 0;for (i=0; is. i; i+) for (k=0; ks. i; k+)if (k! = i) t=sl. bk i/sl. b(i i; for(j=0; j(2*s. i); j+) x=sl. b訂jt;si. bk j=sl. bk (j-x;)for (i=0; is. i; i+) t=sl. bi訂;for (j=0; j(2*s. i); j+)si. bi j=sl. bi (j/t;float y=l 0;for (i=0; is. i; i+) y=y*sl. b訂訂; if (y=0 0)prin

15、tf(對(duì)不起,您榆入的矩陣沒(méi)有逆矩陣”); else for (i=0; is. i; i+) for(j=0; js. i; j+)s. bi j=sl. bi j+s. i;printf C矩陣逆運(yùn)算后的結(jié)果:nM);for (i=0; is. 1; i+) for (j=0; j#nw);printf(R矩陣轉(zhuǎn)置運(yùn)算請(qǐng)按ln矩陣的加法運(yùn)算詔按2n矩陣的乘法運(yùn)算請(qǐng)按3n 矩陣的減法運(yùn)算請(qǐng)按4n矩陣的逆運(yùn)算請(qǐng)按5n結(jié)束請(qǐng)按0: nn);printf (R*nn);scanf (n%dH, &ml);if (ml=l)printf 0您選擇進(jìn)行的操作是矩陣的轉(zhuǎn)置運(yùn)算nnn);printf(請(qǐng)輸

16、入你要轉(zhuǎn)置矩陣的行數(shù)、列數(shù)和非家元的個(gè)數(shù)nn);scanf C%d-,&tl);scanf (%d&t2);scanf C%d&t3);s. mu=tl; s. nu=t2; s. tu=t3;printf C請(qǐng)輸入你要轉(zhuǎn)置矩陣非零元的行下標(biāo)、列下標(biāo)(從【1【1開(kāi)始由左至右由上 到下)及其數(shù)據(jù)(按行逐個(gè)輸入)十);for (t4=l; t4=s. tu; t4+)scanf (w%d&t5);scanf (%dn,&t6);s. data t4 i=t5; s. data t4 j=t6;scanf&s.datat4.e);for (t7-l; t7=s. nu; t7+) for (t8=l

17、; t8=s. mu; t8+)ll.bt7 t8=0. 0;zhuanzhi (s, 11);if (ml =2)Iprintf (*您選擇進(jìn)行的操作是矩陣的加法運(yùn)算nnn);printf (*請(qǐng)輸入矩陣的行數(shù)和列數(shù):nn);scanf&n);scanf (%dn, &m);1. i=n;1.13. i=n;13.仙;printfprintf (n請(qǐng)輸入第一個(gè)%d#%d列的矩陣n 1. i, 1. j); for (t=0; tl. i; t+)for (nl=0; nll. j; nl+)scanf &1. bt nl);)printf(*拿拿拿拿拿拿拿拿拿拿拿拿拿拿拿拿拿*n);pr i

18、ntf(hnn);printf (請(qǐng)輸入第二個(gè)%d #%d 列的矩陣n13. i, 13. j);for (n4=0; n4l 3. i;n4+) for (n5=0; n513. j; n5+)scanfbn4 n5);printf(Rnn);jiafa (1, 13);if (ml=3)Iprintf (R您選擇進(jìn)行的操作是矩陣的乘法運(yùn)算n (只有當(dāng)?shù)谝粋€(gè)矩陣的列數(shù)等于第二個(gè) 矩陣的行數(shù)方可進(jìn)行計(jì)算)nnM);printf C請(qǐng)輸入第一個(gè)矩陣的行數(shù)和列數(shù):nn);scanf &n);scanf (n%d &m);I. i=n;1 j=m;printf(*拿拿拿拿拿拿*n);printf (

19、-請(qǐng)輸入第一個(gè)%d行%d列的矩陣nw, 1. i, 1. j); for (t=0; tl. i; t+)for (nl=0; nll. j; nl+)scanf (%f,&L bt nl);)printf(用拿拿拿拿拿拿拿拿*n);printfnn);printf (請(qǐng)輸入第二個(gè)矩陣的行數(shù)和列數(shù):n);scanf (%d, &nl);scanf (%(!, &ml);13. i=nl;13. j=ml;printf(用拿拿*n);printf (請(qǐng)輸入第二個(gè)%d行%宀列的矩陣n 13. i,13. j);for (n4=0; n413. i; n4+) for (n5=0; n513. j;

20、 n5+) scanf (r%f, &13. bn4 n5);printfnw);chengfa (I, 13);if (ml=4)printf J您選擇進(jìn)行的操作是矩陣的減法運(yùn)算nnw);printf (冃請(qǐng)輸入矩陣的行數(shù)和列數(shù):nn);scanf C%cT, &n);scanf (R%dn,&m);1. i=n;1. j=m;13. i=n;13. j=m;pr intf(用拿拿拿拿拿拿拿拿拿拿拿拿拿拿拿*n); printfC請(qǐng)輸入第一個(gè)%d行%d列的矩陣十,1. i, 1. j); for (t=0; tl. i; t+)for (nl=0; nlI. j; nl+)scanf (n%

21、f&L bt nl);pr intf(Rnn);pr intf(RnM)Jprintf (請(qǐng)輸入第二個(gè)%d行%(1列的矩陣n13. i,13. j);for (n4=0; n413. i;n4+) for(1)5=0; n513. j; n5+)scanf &13. bn4 n5);)pr intf(nnn); jianfa (1, 13);if (ml=5)printf C您選擇進(jìn)行的操作是矩陣的逆運(yùn)算nnn); printf 0請(qǐng)輸入矩陣的維數(shù)(即行和列相等的矩陣):nn); scanf (%d, &n);1. i=n;1. j=n;printfnn)j printf (n請(qǐng)輸入%d e%

22、d列的矩陣岸,1. i, L j); for (t=0; tI. i; t+)for (nl=0; nl T 4XJ行進(jìn)I篦運(yùn)運(yùn)賈 要“運(yùn)法法法運(yùn)0: 你“1加乘減逆按 入3轉(zhuǎn)的的的的請(qǐng) 覚束餐選擇進(jìn)行的操作是矩陣的加法運(yùn)算 請(qǐng)輸入矩陣的行數(shù)和列數(shù):2 2請(qǐng)輸入第一個(gè)2行2列的矩陣-憐禱*青輸入第二個(gè)2行2列的矩陣矩陣加完后的結(jié)果:(4) .矩陣的減法運(yùn)算:0 G:JtiMicrosoft Visual StudioCommonMSDev98BinDebugsfd.exefl 2 3 4He 1H5 卄 的*按請(qǐng)請(qǐng)請(qǐng)按卄 行卄請(qǐng)宴B詈卄 進(jìn)卄尊運(yùn)運(yùn)運(yùn)算卄 要卄運(yùn)法法法運(yùn)0:卄 你卄W紮減專(zhuān)卄 A卄轉(zhuǎn)的的的的請(qǐng)卄 G:J?S?8?3Microsoft Visual StudioComfnonMSDev98BinDebugsfd.exe*請(qǐng)輸入你要進(jìn)行的握作:2 3 4 115 按請(qǐng)請(qǐng)請(qǐng)按 B運(yùn)運(yùn)運(yùn)誦和 運(yùn)法法法運(yùn)0:KK InM-K- 番的的的請(qǐng)“束-M-M -n 二n = n = n = n-bFTM-f 8 2 3 4 操 3 lts5 的*安請(qǐng)請(qǐng) 行咲適11S.掛 進(jìn)MM昇運(yùn)運(yùn)運(yùn)茸 要“運(yùn)法法法運(yùn)0: 你I直加乘按 入W轉(zhuǎn)的的的的譴 輸“&束六、指導(dǎo)老師評(píng)語(yǔ)及成績(jī)

展開(kāi)閱讀全文
溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話(huà):18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!