已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
/ / 選題二矩陣操作/ 一、矩陣翻轉(zhuǎn)/ 沿某中心軸翻轉(zhuǎn),或垂直,或水平翻轉(zhuǎn)。翻轉(zhuǎn)的實(shí)質(zhì)是,矩陣的每行(或每列)元素進(jìn)行倒序排放。/ / 二、矩陣卷動/ 可以左右、上下卷動。如下圖:/ / 矩陣卷動涉及二個(gè)問題:/ (1)卷動方向,或左右卷動,或上下卷動。/ (2)卷動幅度T,如上下卷動行數(shù),左右卷動列數(shù)。/ 卷動的實(shí)質(zhì)是將某行或某列元素循環(huán)移位。上下卷動時(shí),是將每列元素循環(huán)移位,左右卷動時(shí)是將每行元素循環(huán)移位,卷動方向決定是左移還是右移。/ 一維數(shù)組的循環(huán)移位問題:/ 如,已知int temp10,將其循環(huán)右移一位。/ 顯然, 移位后,/ temp8 temp0 / 依次存入/ temp9 temp1 / 而原來的temp9 則返回?cái)?shù)組起始部位,存入temp0 。 / 那么,循環(huán)右移W位呢?循環(huán)左移W位呢?/ 了解了一維數(shù)組循環(huán)移位問題后,顯然,矩陣卷動無非是多個(gè)一維數(shù)組循環(huán)移位,只要在外層加個(gè)大循環(huán)就解決了。/ 三、矩陣旋轉(zhuǎn)/ 矩陣旋轉(zhuǎn)(繞中心點(diǎn))涉及二個(gè)方面:/ (1)旋轉(zhuǎn)方向,順時(shí)針還是逆時(shí)針。/ (2)旋轉(zhuǎn)角度,如90o、180o、270o、360o等。/ 分析:/ (1)考慮旋轉(zhuǎn)方向、角度/ (2)此處僅考慮方陣情況,即矩陣行、列數(shù)相同。/ (3)考慮是奇次方陣還是偶次方陣。/ (4)旋轉(zhuǎn)時(shí),實(shí)質(zhì)是數(shù)組元素的重新組合,對應(yīng)交換元素值。/ (5)設(shè)方陣有K圈,每圈操作過程相似。/ 因此,問題的關(guān)鍵是某圈元素的旋轉(zhuǎn)、交換。/ 如下圖。/ / / 考慮幾種特殊情況,如90,180 ,270 ,360 等。/ (1)其它角度都是90的整數(shù)倍。因此,設(shè)計(jì)時(shí)僅需要考慮90情況,其它情況只需重復(fù)操作若干次即可。以順時(shí)針旋轉(zhuǎn)為例,如需旋轉(zhuǎn)180 ,只需將旋轉(zhuǎn)90 操作連續(xù)執(zhí)行兩次即能實(shí)現(xiàn)。/ (2)逆時(shí)針旋轉(zhuǎn)可以看作為過度旋轉(zhuǎn),如逆時(shí)針90,可認(rèn)為是順時(shí)針旋轉(zhuǎn)270 。/ 當(dāng)然,也可設(shè)計(jì)新的交換規(guī)則。/ 四、設(shè)計(jì)要求/ 編寫代碼,實(shí)現(xiàn)矩陣的翻轉(zhuǎn)、卷動和旋轉(zhuǎn)。運(yùn)行程序后,隨機(jī)生成一個(gè)元素為三位正整數(shù)的55矩陣,并顯現(xiàn)下面的參考界面:/ 矩陣操作/ =/ 1矩陣翻轉(zhuǎn)/ 2矩陣卷動/ 3矩陣旋轉(zhuǎn)/ 請選擇(1、2或3,0:退出):/ 選擇一個(gè)菜單后,要求輸入操作的方向、行數(shù)或列數(shù)或角度,輸入后,顯示操作結(jié)果。#include / 輸入輸出頭文件 #include /接收字符函數(shù)的頭文件 #include/setw()函數(shù)頭文件void print(int s55) /定義函數(shù) for(int i=0;i5;i+)for(int j=0;j5;j+)cout sij; /輸出數(shù)組coutendl;void turn(int s55) /翻轉(zhuǎn)函數(shù)int t,y; /定義變量cout請選擇一種翻轉(zhuǎn)方式(1:水平翻轉(zhuǎn),2:垂直翻轉(zhuǎn)):y;cout操作后的數(shù)組為:endl;if(y=1) /水平翻轉(zhuǎn)for(int i=0;i5;i+) for(int j=0;j2;j+)t=sij;sij=si4-j;si4-j=t;print(s);coutendl;if(y=2) /垂直翻轉(zhuǎn)for(int j=0;j5;j+)for(int i=0;i2;i+)t=sij;sij=s4-ij;s4-ij=t;print(s);coutendl;void roll(int s55) /卷動函數(shù)int t,m,n;cout請輸入卷動方向(1:向左卷動,2:向右卷動,3:向上卷動,4:向下卷動):m;cout請輸入卷動的幅度:n;cout操作后的數(shù)組為:endl;for(int k=0;kn;k+)if(m=1) /向左卷動for(int i=0;i5;i+)t=si0;for(int j=0;j4;j+)sij=sij+1;si4=t;if(m=2) /向右卷動for(int i=0;i0;j-)sij=sij-1;si0=t;if(m=3) /向上卷動for(int j=0;j5;j+)t=s0j;for(int i=0;i4;i+)sij=si+1j;s4j=t;if(m=4) /向下卷動for(int j=0;j0;i-)sij=si-1j;s0j=t;print(s);coutendl;void pc(int s55) /順時(shí)針90旋轉(zhuǎn)int b55;for(int i=0;i5;i+)for(int k=0;k5;k+)bik=sik;for(i=0;i5;i+)for(int k=0;k5;k+)sik=bk4-i;void eddy(int s55) /旋轉(zhuǎn)函數(shù)int m,n,r;cout請輸入旋轉(zhuǎn)方向(1:順時(shí)針旋轉(zhuǎn),2:逆時(shí)針旋轉(zhuǎn)):r; cout請輸入要旋轉(zhuǎn)的角度(90,180,270,360):m;cout操作后的數(shù)組為:endl;if(r=1) /順時(shí)針旋轉(zhuǎn)m=360-m; /如逆時(shí)針旋轉(zhuǎn)90,可以認(rèn)為是順時(shí)針旋轉(zhuǎn)270if(r=2) /逆時(shí)針旋轉(zhuǎn)m=m;if(m%90=0)n=m/90; /求出nfor(int w=0;wn;w+) /根據(jù)n來確定調(diào)用函數(shù)的次數(shù)pc(s); print(s);coutendl; void main()int n,x,a55;/定義5*5的二維數(shù)組char p;loop: coutsetw(29) *矩陣操作* endl;/輸出選擇界面 coutsetw(29) = endl; coutsetw(29) 1.矩陣翻轉(zhuǎn) endl; coutsetw(29) 2.矩陣卷動 endl; coutsetw(29) 3.矩陣旋轉(zhuǎn) endl; coutsetw(29) 4.退出 endl; coutsetw(29) 請選擇(1、2,3, 4):x;/輸入選擇變化方式 if(x=1)/矩陣翻轉(zhuǎn)for(int i=0;i5;i+)for(int k=0;k5;k+)aik=(int) (rand()%(999-100)+100;/產(chǎn)生隨機(jī)數(shù)cout原數(shù)組為:endl;print(a);/調(diào)用輸出函數(shù)turn(a);/調(diào)用翻轉(zhuǎn)函數(shù)goto loop;if(x=2)/矩陣卷動for(int i=0;i5;i+)for(int k=0;k5;k+)aik=(rand()%(999-100)+100; /產(chǎn)生隨機(jī)數(shù)cout原數(shù)組為:endl;print(a); /調(diào)用輸出函數(shù)roll(a);/調(diào)用矩陣卷動函數(shù)goto loop;if(x=3)/矩陣旋轉(zhuǎn)for(int i=0;i5;i+)for(int k=0;k5;k+)aik= (rand()%(999-100)+100; /產(chǎn)生隨機(jī)數(shù)cout原數(shù)組為:endl;print(a);/調(diào)用輸出函數(shù)eddy(a);/調(diào)用旋轉(zhuǎn)函數(shù)goto l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025會計(jì)基礎(chǔ)知識重點(diǎn):融資租賃合同
- 2025池塘清淤工程的施工合同
- 9 知法守法 依法維權(quán) 依法維權(quán)有途徑(說課稿)-部編版道德與法治六年級上冊
- 21 淡水資源 說課稿-2024-2025學(xué)年科學(xué)三年級上冊青島版
- 2025法律法規(guī)工傷員工續(xù)簽合同問題 管理資料
- 6將相和(第一課時(shí))說課稿-2024-2025學(xué)年五年級上冊語文統(tǒng)編版
- 農(nóng)村荒山承包合同范本
- 硬件維護(hù)投標(biāo)方案
- 2023二年級數(shù)學(xué)下冊 四 認(rèn)識萬以內(nèi)的數(shù)第8課時(shí) 近似數(shù)說課稿 蘇教版001
- Unit 1 Making friends PartA Let's talk(說課稿)-2024-2025學(xué)年人教PEP版(2024)英語三年級上冊
- 閩教版(2020)小學(xué)信息技術(shù)三年級上冊第2課《人工智能在身邊》說課稿及反思
- 語文-百師聯(lián)盟2025屆高三一輪復(fù)習(xí)聯(lián)考(五)試題和答案
- 地理-山東省濰坊市、臨沂市2024-2025學(xué)年度2025屆高三上學(xué)期期末質(zhì)量檢測試題和答案
- 正面上手發(fā)球技術(shù) 說課稿-2023-2024學(xué)年高一上學(xué)期體育與健康人教版必修第一冊
- 佛山市普通高中2025屆高三下學(xué)期一??荚嚁?shù)學(xué)試題含解析
- 事故隱患排查治理情況月統(tǒng)計(jì)分析表
- 永磁直流(汽車)電機(jī)計(jì)算程序
- 國家電網(wǎng)招聘2025-企業(yè)文化復(fù)習(xí)試題含答案
- 頸部瘢痕攣縮畸形治療
- 貴州省貴陽市2023-2024學(xué)年五年級上學(xué)期語文期末試卷(含答案)
- 醫(yī)院物業(yè)服務(wù)組織機(jī)構(gòu)及人員的配備、培訓(xùn)管理方案
評論
0/150
提交評論