亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        宋建萍

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

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

        0 引言

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

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

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

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

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

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

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

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

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

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

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

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

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

        程序1:

        #include

        void main()

        {

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

        }

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

        程序2:

        #include

        void main()

        {

        while( 1 )

        {

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

        }

        }

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

        程序3:

        #include

        void main()

        { int i = 1;

        while( i <= 10 )

        {

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

        i = i + 1;

        }

        }

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

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

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

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

        儲錢罐s,初始為空,即s=0;

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

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

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

        ……

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

        ……

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

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

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

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

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

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

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

        i = 1;

        while( i <= 19 )

        {

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

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

        i++;

        }

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

        i = 1;

        while( i <= 19 )

        {

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

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

        i++;

        }

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

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

        2 小結(jié)

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

        【參考文獻(xiàn)】

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

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

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

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

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

        猜你喜歡
        計算思維案例
        案例4 奔跑吧,少年!
        少先隊活動(2021年2期)2021-03-29 05:40:48
        隨機變量分布及統(tǒng)計案例拔高卷
        發(fā)生在你我身邊的那些治超案例
        中國公路(2017年7期)2017-07-24 13:56:38
        基于計算思維的軟件類研究生高級算法課程教學(xué)研究
        計算機教育(2016年7期)2016-11-10 08:40:00
        基于計算思維程序設(shè)計的軍事案例研究
        計算機教育(2016年7期)2016-11-10 08:36:56
        程序設(shè)計課程中計算思維和應(yīng)用能力培養(yǎng)問題研究
        計算機教育(2016年7期)2016-11-10 08:16:19
        民族高校C語言程序設(shè)計課程教學(xué)改革的研究
        軟件工程(2016年8期)2016-10-25 16:03:32
        算法的案例教學(xué)探析
        淺談藝術(shù)專業(yè)學(xué)生計算思維能力的培養(yǎng)
        隨機變量分布及統(tǒng)計案例拔高卷
        丝袜美腿爆炒国产在线观看| 中文字幕亚洲精品在线免费| 日本加勒比精品一区二区视频| 久久综合另类激情人妖| 五月综合激情婷婷六月| 亚洲av无码久久精品狠狠爱浪潮| 久久综合久久鬼色| 91视频爱爱| 男的和女的打扑克的视频| 91久久国产香蕉熟女线看| 免费无码一区二区三区a片百度| 国产人在线成免费视频| 四虎永久免费影院在线| 蜜桃av观看亚洲一区二区| 一区二区三区免费观看日本| 国产精品a免费一区久久电影| 亚洲成在人线av| 蜜桃视频中文在线观看| 亚洲精品偷拍自综合网| 成 人片 黄 色 大 片| 久久国产精品久久久久久| 欧美日韩性视频| 国产午夜亚洲精品不卡免下载| 人妻中文字幕一区二区三区| 成人影片麻豆国产影片免费观看| 久久久久亚洲精品无码网址色欲 | 国产亚洲精品综合一区| 偷拍偷窥在线精品视频| 国产毛片黄片一区二区三区| 国产精品久久久久久婷婷| 精品午夜福利1000在线观看| 不卡无毒免费毛片视频观看| 高清国产国产精品三级国产av| 久久不见久久见www日本网| 粗大猛烈进出高潮视频| 欧美一级视频精品观看| 日本在线一区二区在线| 亚洲成a人v欧美综合天堂| 亚洲黄色电影| 国产大片中文字幕| 日本熟妇中出高潮视频|