中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      淺談C語(yǔ)言中循環(huán)結(jié)構(gòu)的教學(xué)方法

      • 相關(guān)推薦

      淺談C語(yǔ)言中循環(huán)結(jié)構(gòu)的教學(xué)方法

      摘  要  循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計(jì)中的三種基本結(jié)構(gòu)之一,也是程序設(shè)計(jì)的基礎(chǔ)。但是,對(duì)于初學(xué)者來(lái)說(shuō),循環(huán)結(jié)構(gòu)與人類日常的思維習(xí)慣不同,較難掌握。本文用幾個(gè)例子闡述了在《C語(yǔ)言程序設(shè)計(jì)》課程中循環(huán)結(jié)構(gòu)的教學(xué)方法,這些方法在日常授課中取得了較好的效果。     關(guān)鍵詞  C語(yǔ)言;結(jié)構(gòu)化程序設(shè)計(jì);循環(huán)結(jié)構(gòu);效率 
      1  引言     順序、分支、循環(huán)是結(jié)構(gòu)化程序設(shè)計(jì)的三種基本結(jié)構(gòu),所以在高級(jí)語(yǔ)言程序設(shè)計(jì)課程中,掌握這三種結(jié)構(gòu)是學(xué)好程序設(shè)計(jì)的基礎(chǔ)。而循環(huán)結(jié)構(gòu)是這三者中最復(fù)雜的一種結(jié)構(gòu),幾乎所有的程序都離不開(kāi)循環(huán)結(jié)構(gòu)。在C語(yǔ)言中,循環(huán)結(jié)構(gòu)主要是由for和while、do-while語(yǔ)句實(shí)現(xiàn)的,其中for語(yǔ)句的應(yīng)用更為普遍一些。for語(yǔ)句的用法對(duì)于有程序設(shè)計(jì)經(jīng)驗(yàn)的學(xué)生來(lái)說(shuō)輕而易舉,但是對(duì)于那些沒(méi)有經(jīng)驗(yàn)的初學(xué)者來(lái)說(shuō),難度卻不小。本文從初學(xué)者的角度,闡述了C語(yǔ)言中循環(huán)結(jié)構(gòu)幾種典型應(yīng)用的實(shí)現(xiàn)方法。2  用循環(huán)結(jié)構(gòu)輸出幾何圖形     輸出簡(jiǎn)單的幾何圖形(如圖1),是循環(huán)結(jié)構(gòu)的典型應(yīng)用之一。對(duì)于這一類型的題目,初學(xué)者往往直接采用一條或若干條輸出語(yǔ)句printf完成,這樣雖然可以完成題目要求,但是很顯然缺乏靈活性,不符合程序設(shè)計(jì)的思想。按照正常的程序設(shè)計(jì)思想,應(yīng)該先分析圖形的構(gòu)成,找出其中的規(guī)律:如圖1(a)中的實(shí)心三角形,每一行由若干個(gè)空格、星號(hào)和一個(gè)回車換行符構(gòu)成,將行號(hào)、空格數(shù)和星號(hào)數(shù)分別設(shè)為i、m和n,則可以形成下表:

       

      淺談C語(yǔ)言中循環(huán)結(jié)構(gòu)的教學(xué)方法

      表1  實(shí)心三角形的構(gòu)成表

      行號(hào)i 空格數(shù)m 星號(hào)數(shù)n 1 4 1 2 3 3 3 2 5 4 1 7 5 0 9      分析表1,可以得出行號(hào)i與空格數(shù)m、星號(hào)數(shù)n如下的數(shù)學(xué)關(guān)系:m=5-i,n=2×i-1     則實(shí)心三角形的構(gòu)成規(guī)律可以描述為:第i行由(5-i)個(gè)空格和(2×i-1)個(gè)星號(hào)和一個(gè)回車符構(gòu)成。把行號(hào)i作為for語(yǔ)句的循環(huán)變量,輸出圖形程序的主要部分見(jiàn)程序段1。采用上面的方法,可以使學(xué)生很容易編寫(xiě)出類似的程序,其中的關(guān)鍵在于讓學(xué)生找出圖形中行號(hào)與每一行的空格數(shù)以及星號(hào)數(shù)的關(guān)系(對(duì)于圖1(b)、(c)需要把圖形分成幾個(gè)部分,再分析其中的構(gòu)成規(guī)律),這需要學(xué)生數(shù)學(xué)方面的知識(shí),非編程本身的范疇了。

      for(i=1;i<=5;i++) { /*輸出(5-i)個(gè)空格;*/ for(m=1;m<=5-i;m++)    printf(“ ”);   /*輸出(2*i-1)個(gè)星號(hào);*/ for(n=1;n<=2*i-1;n++)    printf(“*”);   /*輸出回車符;*/ printf(“\n”); } 程序段1 實(shí)心三角形的主要程序

       3  數(shù)組中循環(huán)結(jié)構(gòu)的應(yīng)用

           在C語(yǔ)言中,for語(yǔ)句經(jīng)常與數(shù)組相結(jié)合,用于實(shí)現(xiàn)數(shù)組元素的賦值、輸入與輸出。對(duì)于初學(xué)者來(lái)說(shuō),更習(xí)慣于用順序結(jié)構(gòu)的語(yǔ)句來(lái)實(shí)現(xiàn)(如圖2左)。我們將圖2左的幾條語(yǔ)句作比較,可以看出在這5條語(yǔ)句中,不同的只有數(shù)組下標(biāo),那么就可以將這5條語(yǔ)句合并成一條for語(yǔ)句,將數(shù)組下標(biāo)換成for語(yǔ)句的循環(huán)變量i,而i的值從0增加到 4。按照f(shuō)or語(yǔ)句的基本語(yǔ)法規(guī)則可以很容易的寫(xiě)出圖2右的for語(yǔ)句。

      同樣,對(duì)于下面這個(gè)輸出二維數(shù)組元素的例子,也可以用上述辦法實(shí)現(xiàn),不過(guò)轉(zhuǎn)換過(guò)程比上例要復(fù)雜一些:經(jīng)過(guò)對(duì)比圖3左側(cè)方框中順序結(jié)構(gòu)的12條語(yǔ)句,可以發(fā)現(xiàn)也是只有數(shù)組下標(biāo)在變化,但是由于是二維數(shù)組,行下標(biāo)和列下標(biāo)同時(shí)都在變化,很顯然不能直接用一條簡(jiǎn)單的for語(yǔ)句來(lái)實(shí)現(xiàn)(不是絕對(duì)不可以實(shí)現(xiàn),后面將會(huì)看到)。但是我們可以把這12條語(yǔ)句細(xì)分一下,3條語(yǔ)句為一組,而在同一組中的語(yǔ)句只有列下標(biāo)在變化,這時(shí)可以采用上例中的方法,將列下標(biāo)都用循環(huán)變量j來(lái)代替,得到圖3右上的形式。再次對(duì)比圖3右上的4條for語(yǔ)句,不同的是行下標(biāo),同樣用新的循環(huán)變量i來(lái)代替,合并后得到圖3右下最終二重for循環(huán)的語(yǔ)句。

         

           在上例中,常規(guī)的思路都采用二重for循環(huán)與二維數(shù)組相結(jié)合來(lái)實(shí)現(xiàn)對(duì)數(shù)組元素的訪問(wèn),實(shí)際上也可以使用一重for循環(huán)來(lái)實(shí)現(xiàn):無(wú)論如何變化,我們可以先確定的是,輸出語(yǔ)句printf肯定要執(zhí)行12次,如果用一重for循環(huán),那么循環(huán)變量i的值就要從0遞增到11。再分析數(shù)組行下標(biāo)m和列下標(biāo)n與循環(huán)變量i之間的關(guān)系,很顯然:i=m*3+n,按照整數(shù)除法的思想,行下標(biāo)m恰好是循環(huán)變量i整除3后的商,而列下標(biāo)n恰好是循環(huán)變量i整除3后的余數(shù),即:

      m=i/3,n=i%3從而可以寫(xiě)出下面的for語(yǔ)句:for(i=0;i<12;i++)printf(“%d”,a[i/3][i%3]);4  循環(huán)結(jié)構(gòu)中的效率問(wèn)題     對(duì)于程序設(shè)計(jì)的初學(xué)者來(lái)說(shuō),往往以完成題目要求的功能為目的,程序的執(zhí)行效率是最容易忽略的一個(gè)問(wèn)題。在循環(huán)結(jié)構(gòu)中,具體表現(xiàn)為循環(huán)體的執(zhí)行次數(shù)。例如,一個(gè)經(jīng)典的素?cái)?shù)判定問(wèn)題。在數(shù)學(xué)中素?cái)?shù)如下定義:素?cái)?shù)即指那些大于1,且除了1和它本身外,不能被其它任何數(shù)整除的數(shù)。根據(jù)這一定義,初學(xué)者很容易編寫(xiě)出如下程序段2的程序:

      int isprime(int n) { int i; for(i=2;i<n;i++)     if(n%i==0) return 0; return 1; } 程序段2 判斷素?cái)?shù)的程序段       上面的程序,完全可以實(shí)現(xiàn)題目要求的功能,初學(xué)者往往滿足于此。但是當(dāng)對(duì)for循環(huán)的執(zhí)行次數(shù)進(jìn)行分析時(shí),我們發(fā)現(xiàn):當(dāng)n不是素?cái)?shù)時(shí),沒(méi)有任何問(wèn)題;而當(dāng) n是素?cái)?shù)時(shí),循環(huán)體就要執(zhí)行(n-2)次,而實(shí)際上是不需要這么多次的。根據(jù)數(shù)學(xué)的知識(shí),可以將次數(shù)降為n/2或n的算術(shù)平方根,這樣可以大大減少循環(huán)體的執(zhí)行次數(shù),提高程序的效率。

      程序的執(zhí)行效率是編程中時(shí)刻需要考慮的問(wèn)題,也是程序設(shè)計(jì)中的基本要求。這需要許多算法方面的知識(shí),對(duì)于初學(xué)者來(lái)說(shuō),要求可能過(guò)高,但是我們?cè)谥v授過(guò)程中要注意向?qū)W生灌輸這種思想,從學(xué)習(xí)之初就要打下良好的基礎(chǔ),尤其是類似上面例子中這樣顯而易見(jiàn)的情況,可以提醒學(xué)生在編制完一道程序以后,檢驗(yàn)一下,是否還有可優(yōu)化的地方,這對(duì)以后進(jìn)一步高級(jí)編程的學(xué)習(xí)都是必要的。5  結(jié)束語(yǔ)     以上這些,都是本人在授課過(guò)程中的一些體會(huì),可能比較膚淺,但是從初學(xué)者的角度來(lái)看,卻是必要的。如何讓一名初學(xué)者盡快擺脫日常的思維定式,更加透徹地理解和掌握程序設(shè)計(jì)中的基本思想,領(lǐng)會(huì)程序設(shè)計(jì)的精髓,是高級(jí)語(yǔ)言程序設(shè)計(jì)這門(mén)課程在講授過(guò)程中,應(yīng)該時(shí)刻注意的問(wèn)題。希望本文能在這方面起到一點(diǎn)作用,同時(shí)望廣大同仁多多指教。參考文獻(xiàn)[1] 譚浩強(qiáng). C 語(yǔ)言程序設(shè)計(jì)(第二版)[M]. 北京:清華大學(xué)出版社,1999[2] 蘇運(yùn)霖譯. 計(jì)算機(jī)程序設(shè)計(jì)藝術(shù)第1 卷 基本算法[M]. 北京:國(guó)防工業(yè)出版社,2002

      【淺談C語(yǔ)言中循環(huán)結(jié)構(gòu)的教學(xué)方法】相關(guān)文章:

      淺談結(jié)構(gòu)素描教學(xué)11-29

      循環(huán)結(jié)構(gòu)的程序設(shè)計(jì)方法(一)03-07

      淺談?dòng)h句子結(jié)構(gòu)差異03-11

      淺談混凝土結(jié)構(gòu)的耐久性03-16

      淺談結(jié)構(gòu)轉(zhuǎn)換層的應(yīng)用及施工03-06

      淺談藥學(xué)論文的結(jié)構(gòu)及存在的問(wèn)題03-18

      淺談生態(tài)價(jià)值論視野下的循環(huán)經(jīng)濟(jì)03-19

      淺談跨國(guó)公司組織結(jié)構(gòu)06-07

      淺談材料的結(jié)構(gòu)和邏輯聯(lián)系12-10

      主站蜘蛛池模板: 亚洲成Av人片不卡无码观看| 91久久综合精品国产丝袜长腿| 米奇亚洲国产精品思久久 | 久久夜色精品国产噜噜噜亚洲av | 日韩人妻精品一区二区在线推荐| 乳山市| 日韩精品中文字幕综合| 日本国产在线一区二区| 亚洲乱精品中文字字幕| 插进去内射视频免费观看| 雅江县| 中文字幕日本女优在线观看| 区一区一日本高清视频在线观看| 久久久老熟女一区二区三区| 婷婷精品国产亚洲av| 亚洲大片中文字幕久久| 欧美日一本| 文登市| 少妇bbwbbw高潮| 虎林市| av免费一区二区三区不卡| 阳高县| 国产品精品久久久久中文| 竹山县| 二手房| 彩票| 嘉祥县| 西林县| 东源县| 家居| 国产一区二区三区最新视频| 国产美女高潮流白浆免费观看| 亚洲无码中文字幕日韩无码| 99久久综合国产精品免费| 国产精品亚洲A∨无码遮挡| 亚洲五月婷婷久久综合| 农安县| 平定县| 久久精品国产72国产精福利| 超清无码AV丝袜片在线观看| 特级毛片a级毛片在线播放www|