• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2016-07-12 09:17:44宋建萍
      科技視界 2016年6期
      關(guān)鍵詞:計(jì)算思維案例

      宋建萍

      【摘 要】C語(yǔ)言語(yǔ)法豐富、結(jié)構(gòu)靈活、功能強(qiáng)大,應(yīng)用領(lǐng)域較為廣泛。但也因?yàn)檩^為抽象,對(duì)初學(xué)者來(lái)說(shuō),難以透徹理解和掌握,導(dǎo)致不能達(dá)到學(xué)以致用的目的。本文以“循環(huán)結(jié)構(gòu)程序設(shè)計(jì)”教學(xué)內(nèi)容為例,選用適合的教學(xué)方法,對(duì)較為抽象的知識(shí)點(diǎn),采用趣味形象的案例進(jìn)行導(dǎo)入,易于被學(xué)生理解和接受,也調(diào)動(dòng)了學(xué)生的學(xué)習(xí)興趣;由淺入深,循序漸進(jìn),啟發(fā)和培養(yǎng)學(xué)生的計(jì)算思維,幫助學(xué)生理清編程思路,快速入門和提高,從而有效地提高C語(yǔ)言課堂的教學(xué)效率。

      【關(guān)鍵詞】C語(yǔ)言;循環(huán)結(jié)構(gòu)程序設(shè)計(jì);案例;計(jì)算思維

      0 引言

      C語(yǔ)言作為一門計(jì)算機(jī)編程語(yǔ)言,自1978年面世至今,仍非常流行,這源于它“語(yǔ)法簡(jiǎn)潔、數(shù)據(jù)類型及運(yùn)算符豐富、結(jié)構(gòu)表現(xiàn)力好、能面向底層系統(tǒng)開(kāi)發(fā)和上層應(yīng)用”等諸多優(yōu)點(diǎn)。因此,不同高校的許多非計(jì)算機(jī)專業(yè),特別是理工類專業(yè),都把C語(yǔ)言作為一門必修的計(jì)算機(jī)公共基礎(chǔ)課程來(lái)開(kāi)設(shè);在全國(guó)計(jì)算機(jī)等級(jí)考試的二級(jí)科目中,“C語(yǔ)言程序設(shè)計(jì)”也是報(bào)考人數(shù)較多的考試項(xiàng)目。

      C語(yǔ)言如此熱門,但對(duì)于對(duì)非計(jì)算機(jī)專業(yè)的學(xué)生而言,想學(xué)好這門編程語(yǔ)言,也非易事。究其原因,主要源于以下方面:

      (1)課程學(xué)時(shí)壓縮,教師的課堂授課容量有限,而課程內(nèi)容多、難點(diǎn)多,學(xué)生僅靠有限學(xué)時(shí),難以達(dá)到系統(tǒng)學(xué)習(xí)的目的。

      (2)課程中許多內(nèi)容較為抽象,理解起來(lái)有一定難度,教師授課中能否做到形象生動(dòng)、深入淺出,也會(huì)影響學(xué)生的學(xué)習(xí)興趣和吸收效率。

      (3)對(duì)語(yǔ)句及程序結(jié)構(gòu)、執(zhí)行流程缺乏細(xì)致理解,對(duì)問(wèn)題的抽象計(jì)算思維能力難以形成,從而導(dǎo)致編程解題困難,導(dǎo)致對(duì)該門語(yǔ)言的學(xué)習(xí)流于“皮毛”而無(wú)法學(xué)以致用。

      以上種種原因,都影響著C語(yǔ)言課程的教學(xué)效果。在教學(xué)中常常出現(xiàn)的現(xiàn)象是:多數(shù)學(xué)生剛開(kāi)始學(xué)習(xí)的時(shí)候熱情挺高,當(dāng)遇上“循環(huán)”、“數(shù)組”、“指針”等一些較為抽象的難點(diǎn),就像遇到了難以跨越的高門檻,逐漸產(chǎn)生的畏難情緒導(dǎo)致中途放棄,能夠以較大的學(xué)習(xí)熱情堅(jiān)持到課程結(jié)束、且掌握及運(yùn)用情況較好的學(xué)生比例并不多。因此,在教師的教學(xué)中,將課程的學(xué)習(xí)特點(diǎn)與學(xué)生的認(rèn)知規(guī)律有效結(jié)合,調(diào)動(dòng)學(xué)生的學(xué)習(xí)積極性,針對(duì)教學(xué)中學(xué)生普遍認(rèn)為的難點(diǎn)內(nèi)容,靈活運(yùn)用多種教學(xué)方法,啟發(fā)學(xué)生的思維,讓學(xué)生在C語(yǔ)言的學(xué)習(xí)過(guò)程中體會(huì)到學(xué)習(xí)的目標(biāo)性、求解問(wèn)題的興趣感和能解決問(wèn)題帶來(lái)的成就感,保持學(xué)習(xí)的動(dòng)力和熱情,避免“教”與“學(xué)”脫節(jié)變成兩張皮,才能有效地保障C語(yǔ)言課程的教學(xué)效果。

      1 C語(yǔ)言難點(diǎn)及教法分析,以循環(huán)為例

      C語(yǔ)言學(xué)習(xí)過(guò)程中,學(xué)生的疑難知識(shí)點(diǎn)較多,在結(jié)構(gòu)化程序設(shè)計(jì)部分,“循環(huán)結(jié)構(gòu)”相較“順序結(jié)構(gòu)”和“分支結(jié)構(gòu)”而言,較為抽象,雖然語(yǔ)句簡(jiǎn)潔,但運(yùn)用靈活,需要加強(qiáng)理解并進(jìn)行問(wèn)題抽象和算法設(shè)計(jì)思維訓(xùn)練。學(xué)生學(xué)習(xí)的過(guò)程中,容易在這一關(guān)上卡住。因此,循環(huán)結(jié)構(gòu)也被視為學(xué)習(xí)C語(yǔ)言的第一道門檻。那么,教師作為學(xué)生學(xué)習(xí)的引導(dǎo)者,如何進(jìn)行知識(shí)的導(dǎo)入,才能讓“循環(huán)”從抽象變?yōu)樾蜗?,從而更容易被學(xué)生理解和接收呢?

      (1)欲用循環(huán)進(jìn)行編程,概念理解應(yīng)先行。

      “循環(huán)結(jié)構(gòu)”學(xué)習(xí)之初,“循環(huán)”的概念需要溫習(xí)。生活中常見(jiàn)的循環(huán)的例子有很多,比如,每年春夏秋冬四季的輪回、每天的日出日落、大自然中水的循環(huán)、早晨我們圍著操場(chǎng)轉(zhuǎn)圈跑步,等等。教師著重通過(guò)這些例子,引導(dǎo)學(xué)生認(rèn)識(shí)到循環(huán)的本質(zhì),即:循環(huán)表達(dá)的是一組重復(fù)進(jìn)行的過(guò)程;這組過(guò)程的重復(fù),往往是有條件、可終止的。用C語(yǔ)言編程來(lái)表達(dá)一組重復(fù)過(guò)程的進(jìn)行,有專門的循環(huán)語(yǔ)句,也是針對(duì)有條件、能夠終止的循環(huán)。

      (2)語(yǔ)句的理解是運(yùn)用之本,注重其結(jié)構(gòu)與流程。

      循環(huán)語(yǔ)句的學(xué)習(xí),以“while語(yǔ)句、do-while語(yǔ)句、for語(yǔ)句”這三種基本語(yǔ)句為主。其中,while語(yǔ)句稱為“當(dāng)型”循環(huán),最符合學(xué)生的認(rèn)知規(guī)律;do-while語(yǔ)句同while語(yǔ)句相近,但執(zhí)行流程略有不同;for語(yǔ)句最為靈活而學(xué)生應(yīng)用最易出錯(cuò)。因此在循環(huán)語(yǔ)句的教學(xué)上,若從while語(yǔ)句的學(xué)習(xí)和運(yùn)用開(kāi)始,引入一些趣味性的編程示例,能夠幫助學(xué)生快速理解和領(lǐng)會(huì)循環(huán)語(yǔ)句的基本用法。

      例如,經(jīng)過(guò)前面課程內(nèi)容的學(xué)習(xí),學(xué)生對(duì)輸出“Hello,world!”的程序已經(jīng)非常熟悉,換一種情境,假如一個(gè)男孩要向心愛(ài)的女孩表白,羞于開(kāi)口,借程序表達(dá)。則對(duì)程序語(yǔ)句稍作變換,輸出“I love you, girl!”?;A(chǔ)程序如程序1所示。

      程序1:

      #include

      void main()

      {

      printf(“I love you, girl?。躰”);

      }

      學(xué)生已非常清楚程序的輸出是“I love you, girl!”。一句表白不足以表達(dá)愛(ài)慕的心意,因此男孩又對(duì)程序1作了修改,如程序2所示。

      程序2:

      #include

      void main()

      {

      while( 1 )

      {

      printf(“I love you, girl! \n”);

      }

      }

      僅僅加了while(1)這個(gè)部分,程序的輸出結(jié)果令學(xué)生大感意外和驚嘆,學(xué)生通過(guò)此例,感受到了循環(huán)語(yǔ)句的強(qiáng)大表現(xiàn)力。由此引出while語(yǔ)句的語(yǔ)法結(jié)構(gòu),介紹“當(dāng)型”循環(huán)的特點(diǎn),指出“循環(huán)條件”和“循環(huán)體”這兩個(gè)關(guān)鍵組成部分,及語(yǔ)句的執(zhí)行流程。程序2的輸出是無(wú)限次的,若要限制輸出的次數(shù),則可引入一個(gè)控制次數(shù)的變量,因此再次修改程序,引入一個(gè)能夠控制循環(huán)次數(shù)的變量,變化如程序3所示。

      程序3:

      #include

      void main()

      { int i = 1;

      while( i <= 10 )

      {

      printf(“I love you, girl! \n”);

      i = i + 1;

      }

      }

      則程序3的輸出得到了有限次的控制。在這個(gè)程序中,注意引導(dǎo)學(xué)生分析變量i的相關(guān)部分:i的起始值設(shè)置、i值滿足的條件以及i的值是如何變化。i的取值決定著循環(huán)能否執(zhí)行下去,因此它可視為循環(huán)的控制變量。

      (3)循環(huán)過(guò)程需抽象,計(jì)算思維應(yīng)強(qiáng)化。

      前面例舉的編程問(wèn)題,因?yàn)橹貜?fù)執(zhí)行的過(guò)程簡(jiǎn)單直接,較易被學(xué)生認(rèn)識(shí)和接受。但在實(shí)際編程問(wèn)題中,其求解過(guò)程能否用循環(huán)語(yǔ)句來(lái)表達(dá),需要結(jié)合問(wèn)題中數(shù)據(jù)的處理要求,仔細(xì)分析求解過(guò)程是否具備可重復(fù)計(jì)算處理的規(guī)律,若有,則可進(jìn)一步提煉出重復(fù)的過(guò)程有哪些操作、重復(fù)的條件是什么,找出這兩個(gè)關(guān)鍵的要素,再使用循環(huán)語(yǔ)句表達(dá),并結(jié)合重復(fù)過(guò)程前的數(shù)據(jù)狀態(tài)給出循環(huán)前的初始狀態(tài)表示。這個(gè)問(wèn)題分析和數(shù)據(jù)處理的計(jì)算過(guò)程的抽象,就是對(duì)學(xué)生的計(jì)算思維進(jìn)行訓(xùn)練和強(qiáng)化運(yùn)用的過(guò)程。

      以計(jì)算1+2+3+…+100為例,這個(gè)問(wèn)題如何抽象成一組可重復(fù)進(jìn)行的計(jì)算過(guò)程?若結(jié)合學(xué)生日常生活中存錢的例子,則抽象過(guò)程會(huì)變得比較生動(dòng)有趣、易于理解。假設(shè)某學(xué)生要攢錢買電腦,制定了一個(gè)100天攢錢行動(dòng)的計(jì)劃并堅(jiān)持實(shí)施,分析其實(shí)施過(guò)程:

      儲(chǔ)錢罐s,初始為空,即s=0;

      第1天,往儲(chǔ)錢罐中投1元錢,則s中的變化為:0+1=1,即s=s+1;

      第2天,往儲(chǔ)錢罐中投2元錢,則s中的變化為:1+2=3,即s=s+2;

      第3天,往儲(chǔ)錢罐中投3元錢,則s中的變化為:3+3=6,即s=s+3;

      ……

      第i天,往儲(chǔ)錢罐中投i元錢,則s中的變化為:s=s+i;

      ……

      第100天,往儲(chǔ)錢罐中投100元錢,則s中的變化為s=s+100;

      第101天,計(jì)劃完成,收手。砸破儲(chǔ)錢罐數(shù)錢,則s里的總錢數(shù)就是1+2+3+…+100的和,已能買到一部性價(jià)比不錯(cuò)的電腦。

      分析此實(shí)施過(guò)程,就是在重復(fù)地往儲(chǔ)錢罐投錢。試著讓學(xué)生提煉重復(fù)的操作,很顯然有:s=s+i;,而i也在變化,是怎么變化的?經(jīng)過(guò)觀察,每一天里,i的值都是在前一天i值的基礎(chǔ)上增加1,則可表示為:i=i+1;。每一天的過(guò)程里,都是這兩條:s=s+i; i=i+1;,從而形成重復(fù)的過(guò)程。重復(fù)的條件是什么?根據(jù)計(jì)劃制定和實(shí)施的天數(shù)是100天,超出100天則停止。因此可根據(jù)i的取值來(lái)定重復(fù)的條件i<=100。則用循環(huán)語(yǔ)句可表示為:

      while( i <= 100 )

      { s = s + i ; i = i + 1; }

      分析s和i的初始狀態(tài),可在while循環(huán)之前加上:s=0; i=1;。則完整的程序表達(dá),即為程序4。

      程序4:

      #include

      void main()

      { int s = 0, i = 1;

      while( i <= 100 )

      {

      s = s + i; i = i+1;

      }

      }

      1+2+3+…+100的計(jì)算過(guò)程抽象,是一個(gè)頗具代表性的例子。以這類問(wèn)題的抽象過(guò)程為基礎(chǔ),另有如:1~100的偶數(shù)和、1+1/2+1/3+…+1/100計(jì)算、以及格里高利公式求解圓周率等類似的一些迭加計(jì)算的問(wèn)題,可在此基礎(chǔ)上加強(qiáng)分析過(guò)程的訓(xùn)練,促使學(xué)生建立起數(shù)據(jù)分析和抽象、及抽象求解過(guò)程的計(jì)算思維能力,形成對(duì)一類問(wèn)題求解方法的認(rèn)知,并強(qiáng)化編程表達(dá);然后逐步擴(kuò)展、加入其他抽象類問(wèn)題,再進(jìn)行抽象分析的思維訓(xùn)練并強(qiáng)化編程。抽象思維分析訓(xùn)練和編程強(qiáng)化語(yǔ)言運(yùn)用雙重過(guò)程相結(jié)合,反復(fù)進(jìn)行,從而加強(qiáng)學(xué)生運(yùn)用循環(huán)結(jié)構(gòu)進(jìn)行程序設(shè)計(jì)的能力訓(xùn)練。此外,教師結(jié)合課堂內(nèi)容,設(shè)計(jì)適量的課下編程練習(xí)并及時(shí)監(jiān)督和檢驗(yàn)學(xué)生的學(xué)習(xí)效果,加強(qiáng)學(xué)習(xí)方法溝通和交流,也是十分必要的。

      (4)循環(huán)有終止和中止,需要分清楚。

      循環(huán)的終止和循環(huán)條件相關(guān),若循環(huán)條件不成立,則循環(huán)終止。而循環(huán)的中止,是指循環(huán)的循環(huán)體正在執(zhí)行過(guò)程中,因其他條件不成立而中途停止。中止分兩種情況:一種是停止后不再回來(lái)執(zhí)行循環(huán),用break;,一種是停止當(dāng)前一次循環(huán)后再進(jìn)行下一次循環(huán),用coninue;。具體運(yùn)用,也可結(jié)合日常生活中的例子進(jìn)行舉例。

      例如:班上某同學(xué)某學(xué)期上課,正常情況下,從1周上到19周,但第8周時(shí)因生病請(qǐng)假,第9周繼續(xù)回來(lái)上課,此時(shí)就可表達(dá)為:

      i = 1;

      while( i <= 19 )

      {

      printf( “第%d周,正常上課”, i );

      if( i == 8 ) { printf(“第%d周,病假”, i); continue; }

      i++;

      }

      若該同學(xué)的病需要長(zhǎng)期住院,導(dǎo)致從第8周開(kāi)始的課全部請(qǐng)假,則需用break;,語(yǔ)句表達(dá)為:

      i = 1;

      while( i <= 19 )

      {

      printf( “第%d周,正常上課”, i );

      if( i >= 8 ) { printf(“第%d周后,長(zhǎng)期病假”, i); break; }

      i++;

      }

      簡(jiǎn)單的示例有助于幫助學(xué)生快速理解相關(guān)語(yǔ)句的用法,加深對(duì)語(yǔ)句功能印象,再結(jié)合其他編程實(shí)例進(jìn)一步加強(qiáng)對(duì)這些語(yǔ)句的運(yùn)用,起到融會(huì)貫通的效果。

      另外,嵌套循環(huán)的流程理解對(duì)學(xué)生來(lái)說(shuō),也是一個(gè)難點(diǎn)。在充分理解了單層循環(huán)并能熟練運(yùn)用的基礎(chǔ)上,也可引入貼近生活實(shí)際的形象例子,將雙重嵌套的循環(huán)運(yùn)用起來(lái),結(jié)合實(shí)際過(guò)程,理解嵌套循環(huán)的流程,結(jié)合典型的編程問(wèn)題,將嵌套循環(huán)運(yùn)用于求解過(guò)程表達(dá),加強(qiáng)編程應(yīng)用。

      2 小結(jié)

      在教學(xué)過(guò)程中,學(xué)生的“學(xué)”是過(guò)程,“學(xué)好”是結(jié)果,“學(xué)好”的標(biāo)準(zhǔn)是什么?對(duì)于一門編程語(yǔ)言來(lái)講,則是能理解和掌握語(yǔ)言本身的表達(dá)方式和方法,進(jìn)而能靈活自如地運(yùn)用這個(gè)語(yǔ)言工具來(lái)“表情達(dá)意”——即求解實(shí)際問(wèn)題,能夠表達(dá)該問(wèn)題的具體求解過(guò)程。在具體問(wèn)題的編程上,僅掌握語(yǔ)法的表達(dá)是不夠的,許多較為抽象的問(wèn)題,還需運(yùn)用抽象思維分析和設(shè)計(jì)問(wèn)題的求解過(guò)程。因此,在教的過(guò)程中,針對(duì)不同的學(xué)習(xí)內(nèi)容,選擇適合的教學(xué)法,幫助學(xué)生化解疑難點(diǎn),注重從計(jì)算思維上對(duì)學(xué)生進(jìn)行啟發(fā)訓(xùn)練,發(fā)現(xiàn)和總結(jié)問(wèn)題求解的規(guī)律,設(shè)計(jì)正確有效的求解算法,加強(qiáng)編程實(shí)踐,才能促使教學(xué)相長(zhǎng),讓學(xué)生真正掌握和運(yùn)用好這門編程語(yǔ)言。

      【參考文獻(xiàn)】

      [1]譚浩強(qiáng).C程序設(shè)計(jì)(第4版)[M].清華大學(xué)出版社,2010,6.

      [2]劉永春.C語(yǔ)言教學(xué)中的難點(diǎn)分析與多種教學(xué)方法的應(yīng)用[J].教育教學(xué)論壇, 2012,10.

      [3]孫麗君,楊志強(qiáng),高枚.圍繞計(jì)算思維培養(yǎng)的程序設(shè)計(jì)課程改革[J].計(jì)算機(jī)教育,2013,5.

      [4]黎昂,曾力軍,李澤軍.高校非計(jì)算機(jī)專業(yè)C語(yǔ)言程序設(shè)計(jì)教學(xué)方法探索[J]. 課程教學(xué)研究,2012,7.

      [責(zé)任編輯:楊玉潔]

      猜你喜歡
      計(jì)算思維案例
      案例4 奔跑吧,少年!
      隨機(jī)變量分布及統(tǒng)計(jì)案例拔高卷
      發(fā)生在你我身邊的那些治超案例
      基于計(jì)算思維的軟件類研究生高級(jí)算法課程教學(xué)研究
      基于計(jì)算思維程序設(shè)計(jì)的軍事案例研究
      程序設(shè)計(jì)課程中計(jì)算思維和應(yīng)用能力培養(yǎng)問(wèn)題研究
      民族高校C語(yǔ)言程序設(shè)計(jì)課程教學(xué)改革的研究
      軟件工程(2016年8期)2016-10-25 16:03:32
      算法的案例教學(xué)探析
      淺談藝術(shù)專業(yè)學(xué)生計(jì)算思維能力的培養(yǎng)
      隨機(jī)變量分布及統(tǒng)計(jì)案例拔高卷
      四川省| 衡阳县| 大丰市| 望奎县| 通榆县| 青河县| 淄博市| 古蔺县| 宁乡县| 阿瓦提县| 孝义市| 衡水市| 大荔县| 山阴县| 九江县| 唐海县| 册亨县| 镇坪县| 宁南县| 梓潼县| 讷河市| 日照市| 封开县| 诸城市| 宁波市| 桓仁| 长寿区| 罗平县| 南部县| 界首市| 凤台县| 芦溪县| 息烽县| 西乡县| 凉城县| 小金县| 泸溪县| 靖西县| 玉林市| 洛川县| 沙洋县|