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

    冒泡法在C和單片機(jī)編程中的教學(xué)方法分析

    2014-01-01 00:00:00田嵩

    摘 要:冒泡法是C語(yǔ)言中常用的分析方法,在C語(yǔ)言的教學(xué)中是掌握排序的重要方法,在匯編語(yǔ)言的排序中也常常使用,提出了在兩種語(yǔ)言設(shè)計(jì)中的教學(xué)不同點(diǎn),便于提高教學(xué)質(zhì)量,并且使學(xué)生更好的掌握程序設(shè)計(jì)的方法。

    關(guān)鍵詞:冒泡法;C語(yǔ)言;匯編;教學(xué)方法

    中圖分類號(hào):TP3.0

    冒泡法是排序的一種方法,冒泡法和冒泡排序?qū)嵤且粋€(gè)定義。之所以叫冒泡法,即是像在水中的氣泡一樣,在一輪兩數(shù)比較之后將最?。ɑ蜃畲蟮臄?shù)字)排在一列數(shù)的左邊(當(dāng)然右邊也行,總之是一邊)。然后排開這個(gè)數(shù),經(jīng)過N-2排開之后,整列數(shù)的大小就是按順序來的。排序是為了將一組雜亂的數(shù)據(jù)變成一組有序的數(shù)據(jù)。排序法的使用時(shí)非常頻繁的,在實(shí)踐中,人們?cè)O(shè)計(jì)出了許多好的算法,如交換排序、插入排序、以及選擇排序等等。各種算法有其自身的特點(diǎn)與適用范圍,其中冒泡法在很多語(yǔ)言程序設(shè)計(jì)中都使用的很廣泛,在這里主要分析冒泡法在匯編語(yǔ)言和C語(yǔ)言程序設(shè)計(jì)中的教學(xué)方法的不同,更好的啟發(fā)學(xué)生開拓思維,提高變成的動(dòng)手能力。

    1 C語(yǔ)言編程中冒泡法的教學(xué)分析

    1.1 C語(yǔ)言設(shè)計(jì)的特點(diǎn)

    (1)緊湊簡(jiǎn)潔、方便靈活。C語(yǔ)言總共有9種控制語(yǔ)句和32個(gè)關(guān)鍵字,,用大小寫字母就可以編寫,書寫靈活,語(yǔ)句簡(jiǎn)潔。C語(yǔ)言可以對(duì)字節(jié)、地址等進(jìn)行賦值和使用,使用靈活方便。(2)運(yùn)算符豐富,可以實(shí)現(xiàn)多種的復(fù)雜和簡(jiǎn)單的運(yùn)算,而且語(yǔ)句簡(jiǎn)單,使用方便。(3)數(shù)據(jù)結(jié)構(gòu)豐富C的數(shù)據(jù)類型有:整型、字符型、實(shí)型、數(shù)組類型、共用體類型、指針類型、結(jié)構(gòu)體類型等。能引入了指針概念用來實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)類型的運(yùn)算,使程序效率更高。另外C語(yǔ)言具有強(qiáng)大的圖形功能,支持多種顯示器和驅(qū)動(dòng)器。且邏輯判斷功能、計(jì)算功能強(qiáng)大。(4)C是結(jié)構(gòu)式語(yǔ)言。結(jié)構(gòu)式語(yǔ)言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分隔化,即程序的各個(gè)部分可以獨(dú)立的使用。這種結(jié)構(gòu)化方式可使程序便于使用、維護(hù)以及調(diào)試,層次清晰。C語(yǔ)言函數(shù)可方便的調(diào)用,并具有條件語(yǔ)句控制程序流向,多種循環(huán)、從而使程序完全結(jié)構(gòu)化。是以函數(shù)形式提供給用戶的。(5)C語(yǔ)法限制不太嚴(yán)格、程序設(shè)計(jì)自由度大。(6)C語(yǔ)言允許直接訪問物理地址,可以直接對(duì)硬件進(jìn)行操作 因此既具有低級(jí)語(yǔ)言的許多功能,高級(jí)語(yǔ)言的功能,又能夠像匯編語(yǔ)言一樣對(duì)字節(jié)、地址和位進(jìn)行操作,而這三者是計(jì)算機(jī)最基本的工作單元,可以用來寫系統(tǒng)軟件。(7)C語(yǔ)言程序生成代碼質(zhì)量高,程序執(zhí)行效率高,一般只比匯編程序生成的目標(biāo)代碼效率低10へ20%。(8)C語(yǔ)言適用范圍大,可移植性好。

    1.2 C語(yǔ)言設(shè)計(jì)中冒泡法的使用

    冒泡法是一種排序方法:

    冒泡法54321。比如上面這5個(gè)數(shù)字我們把它按照由小到大的順序排列,從前往后相臨兩位比較大小,如果前一位比后一位大就把它倆換位,5比4大就把5和4換位,得到45321。

    5又比3大 5和3換位得到43521依次類推最后得到43215這樣就把最大的一個(gè)數(shù)字移到最后面了,然后不看5,剩下4321再用上面的方法把4移動(dòng)到最后得到32145 在不看45 剩下321把3移動(dòng)到最后,依此類推,最終得到12345,所以形象的稱為冒泡法。

    這就是冒泡法,是計(jì)算機(jī)編程排序中最簡(jiǎn)單快捷的方法。除此意外我還能寫出許多排序方法,但是效率上都不如冒泡法。

    ————————————————————————————————

    以下是C語(yǔ)言中十個(gè)數(shù)的冒泡法排序的代碼

    #include

    #include

    int main(void)

    {

    long arrary[9],

    box=0L;

    int i1=0,

    i2=0;

    for(i1=0;i1<9;i1++)

    arrary[i1]=0;

    printf(\"輸入數(shù)組元素:\n\");

    for(i1=0;i1<=9;i1++)

    {

    printf(\"%3d>\",i1+1);

    scanf(\"%d\",arrary[i1]);

    }

    for(i1=0;i1<=9;i1++)

    for(i2=0;i2<=9-i1;i2++)

    {

    if(arrary[i2]

    {

    box=arrary[i2+1];

    arrary[i2+1]=arrary[i2];

    arrary[i2]=box;

    }

    }

    printf(\"\n排序后為:\n\");

    for(i1=0;i1<=9;i1++)

    printf(\"%3d>%d\n\",i1+1,arrary[i1]);

    getch();

    return 0;

    }

    2 單片機(jī)中匯編語(yǔ)言程序設(shè)計(jì)的冒泡法

    2.1 單片機(jī)語(yǔ)言中匯編語(yǔ)言的設(shè)計(jì)方法

    單片機(jī)基礎(chǔ)設(shè)計(jì)中常用的是匯編語(yǔ)言,匯編語(yǔ)言是面向底層的實(shí)際語(yǔ)言之一,常用的指令按照功能來劃分有數(shù)據(jù)傳送指令、算術(shù)運(yùn)算指令、邏輯運(yùn)算指令、位操作指令、控制轉(zhuǎn)移指令等,指令豐富,便于操作。

    2.2 匯編語(yǔ)言中冒泡法的教學(xué)方法舉例

    編寫并調(diào)試一個(gè)排序子程序,其功能為用冒泡法將內(nèi)存RAM中幾個(gè)單字節(jié)無符號(hào)的正整數(shù),按從小到大的次序重新排列。在這個(gè)設(shè)計(jì)中典型的冒泡法設(shè)計(jì)有匯編的特點(diǎn),流程圖如圖1所示:

    圖1 流程圖

    在匯編語(yǔ)言的程序設(shè)計(jì)中,設(shè)置了標(biāo)志位00H,當(dāng)在一次循環(huán)比較中,凡是有大小數(shù)字進(jìn)行交換的時(shí)候,就設(shè)置標(biāo)志位為1,這樣在從50H進(jìn)行再一次的循環(huán)交換直到數(shù)字由小到大排列為止,在KEIL的環(huán)境下可以運(yùn)行并顯示結(jié)果,如圖2所示:

    ?

    排序前的賦值情況:

    排序后的結(jié)果:

    3 結(jié)束語(yǔ)

    在C語(yǔ)言的程序設(shè)計(jì)中,需要用的語(yǔ)句簡(jiǎn)單,而且還可以設(shè)計(jì)循環(huán)函數(shù),實(shí)現(xiàn)自己的不斷比較進(jìn)行排序,而在匯編語(yǔ)言程序設(shè)計(jì)中,這種方法的使用不是很恰當(dāng),要設(shè)置標(biāo)志位和條件轉(zhuǎn)移指令進(jìn)行排序,要設(shè)置每次排序的指針,相對(duì)語(yǔ)言要更加緊湊,條理些,作為教師要善于發(fā)現(xiàn)每種教學(xué)方法的異同點(diǎn),更好的服務(wù)于教學(xué)中,提高教學(xué)質(zhì)量。

    參考文獻(xiàn):

    [1]譚浩強(qiáng).C語(yǔ)言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2010.

    [2]張婕等.最短路徑動(dòng)態(tài)規(guī)劃問題及C語(yǔ)言實(shí)現(xiàn)[J].內(nèi)蒙古農(nóng)業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2012(02).

    [3]武曉燕.C語(yǔ)言在單片機(jī)技術(shù)中的應(yīng)用[J].價(jià)值工程,2010(36).

    [4]曹莎莎.C語(yǔ)言教學(xué)研究與思考[J].價(jià)值工程,2012(01).

    [5]王窕珊.C語(yǔ)言編程教學(xué)方法探討[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2011(09).

    作者簡(jiǎn)介:田嵩(1981-),女,碩士,研究方向:計(jì)算機(jī)應(yīng)用技術(shù)。

    作者單位:湖北理工學(xué)院計(jì)算機(jī)學(xué)院,湖北黃石 435003

    基金項(xiàng)目:湖北理工學(xué)院青年項(xiàng)目(項(xiàng)目編號(hào):13xjz060);2012湖北理工學(xué)院校級(jí)教研項(xiàng)目(項(xiàng)目編號(hào):201229)。

    平谷区| 乡宁县| 来凤县| 珲春市| 池州市| 中卫市| 连平县| 阳山县| 中西区| 游戏| 壤塘县| 昌都县| 怀宁县| 徐州市| 临沧市| 晴隆县| 游戏| 连云港市| 大同县| 天津市| 通海县| 庆云县| 闵行区| 嘉黎县| 襄垣县| 山丹县| 太保市| 抚宁县| 和田市| 公主岭市| 阳春市| 夏津县| 瑞安市| 河津市| 定襄县| 区。| 永福县| 大新县| 探索| 武鸣县| 五原县|