• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    中職C語言中矩陣操作編程方法探索

    2017-01-10 01:42:29屠新兵
    山西農(nóng)經(jīng) 2016年14期
    關(guān)鍵詞:邗江逆序程序段

    □屠新兵

    (揚(yáng)州市邗江中等專業(yè)學(xué)校江蘇揚(yáng)州225009)

    中職C語言中矩陣操作編程方法探索

    □屠新兵

    (揚(yáng)州市邗江中等專業(yè)學(xué)校江蘇揚(yáng)州225009)

    矩陣操作是中職C語言中的一個重點(diǎn)內(nèi)容,包括矩陣的運(yùn)算、矩陣旋轉(zhuǎn)、變化等,需要學(xué)生理解矩陣中元素位置與二維數(shù)組中行列下標(biāo)之間對應(yīng)關(guān)系,本文主要以C語言編程為例,對常見矩陣操作編程方法進(jìn)行探索,使編程愛好者對于不同的矩陣操作有進(jìn)一步的了解。

    C語言;矩陣操作

    矩陣操作是中職C語言中的一個重點(diǎn)內(nèi)容,包括:(1)矩陣運(yùn)算,如:矩陣相加、矩陣相減、矩陣相乘等;(2)矩陣旋轉(zhuǎn),如:轉(zhuǎn)置、順時針旋轉(zhuǎn)90度、旋轉(zhuǎn)180度、逆時針旋轉(zhuǎn)90度等;(3)矩陣變化,如:每行或每列中的元素逆序、每行元素前移若干個、后移若干個、排序、將每行最小元素移至最前等等。需要學(xué)生理解矩陣中元素位置與二維數(shù)組中行列下標(biāo)之對應(yīng)關(guān)系,本文主要以C語言編程為例,對常見矩陣操作編程方法進(jìn)行探索,使編程愛好者對于不同的矩陣操作有進(jìn)一步的了解。

    1 矩陣運(yùn)算

    例1:已知兩個矩陣a[2][3],b[3][4],求a、b的乘積并將結(jié)果存入矩陣c。

    分析:從線性代數(shù)知識可知,只有當(dāng)前一矩陣的列數(shù)與后一矩陣的行數(shù)相等時,才能相乘,現(xiàn)已知,前一矩陣a有3列,后一矩陣b有3行,這兩個矩陣可以求乘積,運(yùn)算結(jié)果的行數(shù)與前一矩陣的行數(shù)(2)一致,運(yùn)算結(jié)果的列數(shù)與后一矩陣的列數(shù)(4)一致,因此,矩陣c應(yīng)為2行4列,即c[2][4]。運(yùn)算方法:矩陣a的第0行的三個元素與矩陣b的第0列的三個元素對應(yīng)相乘累加,放入c[0][0],矩陣a的第0行的三個元素與矩陣b的第1列的三個元素對應(yīng)相乘累加,放入c[0][1],矩陣a的第0行的三個元素與矩陣b的第2列的三個元素對應(yīng)相乘累加,放入c[0][2],……依次類推,可以得到c[2] [4]。程序段如下:

    拓展:矩陣運(yùn)算主要包括矩陣相加減、相乘,其中矩陣相加(相減)比較簡單,其實(shí)質(zhì)是兩個矩陣對應(yīng)元素相加(相減),即c[i][j]=a[i][j]+b[i][j],這里就不再寫程序段了,矩陣相乘相對比較復(fù)雜,原本僅打印矩陣c需要用到雙重循環(huán),對于矩陣c的每一個元素,需要矩陣a相應(yīng)行與矩陣b相應(yīng)列的對應(yīng)三個元素相乘累加,需要循環(huán)三次,這樣程序就變成三重循環(huán),對于學(xué)生來講理解起來就要復(fù)雜許多。

    2 矩陣旋轉(zhuǎn)

    例2:將矩陣a[M][N]順時針旋轉(zhuǎn)90度,放入矩陣b。

    分析:由旋轉(zhuǎn)前后的矩陣可以看出,矩陣b的第0列,來自于矩陣a的第2行,矩陣b的第1列,來自于矩陣a的第1行,矩陣b的第2列,來自于矩陣a的第0行,由此可以推出:矩陣b的第j列,來自于矩陣a的倒數(shù)第j行(M-1-j行);矩陣b的第0行,來自于矩陣a的第0列,矩陣b的第1行,來自于矩陣a的第1列,矩陣b的第2行,來自于矩陣a的第2列,由此可以推出:矩陣b的第i行,來自于矩陣a的倒數(shù)第i列。因此:b矩陣與a矩陣的位置關(guān)系是:b[i][j]=a[M-1-j][i]。程序段如下:拓展:常見的矩陣旋轉(zhuǎn)問題多,如果是轉(zhuǎn)置,也就是行列互換,即b[i][j]=a[j][i];如果旋轉(zhuǎn)180度,無論順時針還是逆時針,效果一樣,行列數(shù)不變,只不過是行和列的次序都倒過來了,即b[i][j]=a[M-1-i] [N-1-j];如果是逆時針旋轉(zhuǎn)90度,矩陣b的第i行,來自于矩陣a的倒數(shù)第i列,矩陣b的第j列,來自于矩陣a的第j行,即b[i][j]=a[j][N-1-i]。順時針旋轉(zhuǎn)270度與逆時旋轉(zhuǎn)90效果一樣。矩陣旋轉(zhuǎn)部分的內(nèi)容相對較難,需要我們掌握其規(guī)律,弄清旋轉(zhuǎn)前后元素的位置關(guān)系。

    3 矩陣變化

    例3:將矩陣a[M][N]每行元素逆序放入矩陣b中。

    分析:由題意可知,矩陣變化前后,矩陣a、b的行列數(shù)相等,只是每行的次序顛倒過來了,也就是行不變,矩陣b的第j列,來自于矩陣a的倒數(shù)第j列,位置關(guān)系是:b[i][j]=a[i][M-1-j]。程序段如下:

    拓展:題目如果改成將矩陣a每列元素逆序放入矩陣b,也就是列不變,行逆序,那么對應(yīng)關(guān)系就改成b[i][j]=a[M-1-i][j]。矩陣變化牽涉的內(nèi)容比較多,如:每行的元素前移若干個、后移若干個、排序、將最小值移至最前等等,需要我們掌握其中算法,靈活運(yùn)用。

    從以上題目可以看出,矩陣的操作要求不一樣,編程方法就不一樣,需要我們找到其中的規(guī)律,當(dāng)然,因題而異,方法不唯一,廣大編程愛好者要多總結(jié),從而對循環(huán)語句及二維數(shù)組的使用能有進(jìn)一步的了解。

    [1]盧宇清.C語言程序設(shè)計(jì)教程[M].清華大學(xué)出版社, 2009.

    [2]石遠(yuǎn)東.計(jì)算機(jī)專業(yè)綜合理論復(fù)習(xí)用書(上冊)第二版[M].原子能出版社,2007.

    1004-7026(2016)14-0118-02

    TP312.1

    A

    10.16675/j.cnki.cn14-1065/f.2016.14.090

    屠新兵(1975.2-),男,江蘇邗江,揚(yáng)州市邗江中等專業(yè)學(xué)校綜合高中部主任,一級教師,研究方向:計(jì)算機(jī)教學(xué)。

    猜你喜歡
    邗江逆序程序段
    揚(yáng)州邗江楊廟鎮(zhèn):念好“聯(lián)”字訣,建好“同心圓”
    華人時刊(2022年5期)2022-10-21 00:05:20
    基于WinCC的物料小車控制系統(tǒng)設(shè)計(jì)與仿真
    電動工具(2022年2期)2022-05-18 08:40:38
    邗江黃金社區(qū):社區(qū)為僑服務(wù)好 僑為社區(qū)貢獻(xiàn)多
    華人時刊(2020年21期)2021-01-14 01:33:38
    有界線性算子的Drazin逆的逆序律
    數(shù)控系統(tǒng)手輪回退功能的研究與實(shí)現(xiàn)*
    關(guān)于矩陣廣義BottDuffin逆的逆序律
    樹 葉
    新中國70年漢語逆序詞研究(1949—2019)
    基于NC程序段的提高數(shù)控加工監(jiān)控閾值與信號同步的方法*
    對外漢語教學(xué)中AB-BA式逆序詞教學(xué)分析
    井陉县| 金阳县| 鄯善县| 玉龙| 泸西县| 英山县| 武冈市| 汉沽区| 尚志市| 三门峡市| 建湖县| 栾川县| 曲麻莱县| 台江县| 武清区| 静安区| 武汉市| 塔河县| 桂阳县| 黎平县| 应城市| 莱州市| 龙海市| 金门县| 山丹县| 宁国市| 尼玛县| 福建省| 墨竹工卡县| 哈尔滨市| 宣恩县| 东安县| 太仆寺旗| 于田县| 福建省| 红桥区| 八宿县| 荥阳市| 寿阳县| 中卫市| 秦皇岛市|