孫華 于炯 田生偉 錢育蓉
新疆大學(xué)軟件學(xué)院 830008
《C語言程序設(shè)計》中循環(huán)結(jié)構(gòu)的教學(xué)方法探討
孫華 于炯 田生偉 錢育蓉
新疆大學(xué)軟件學(xué)院 830008
本文主要介紹了《C語言程序設(shè)計》中的循環(huán)結(jié)構(gòu)的學(xué)習(xí)過程。通過采用循序漸進的方法,讓學(xué)生掌握循環(huán)結(jié)構(gòu)的特點以及程序執(zhí)行的過程。該方法從設(shè)計最簡單的程序輸出入手,通過逐步深入,最終可以利用循環(huán)結(jié)構(gòu)編寫比較復(fù)雜的程序。這種教學(xué)方法,不僅讓學(xué)生比較容易理解循環(huán)結(jié)構(gòu),而且對學(xué)生建立學(xué)習(xí)程序設(shè)計語言的自信心也很有幫助。
C語言程序設(shè)計;循環(huán)結(jié)構(gòu);教學(xué)方法
《C語言程序設(shè)計》是軟件工程專業(yè)和計算機專業(yè)學(xué)生的一門必修課,也是一門專業(yè)基礎(chǔ)課。因為軟件工程專業(yè)學(xué)生的培養(yǎng)目標(biāo)是專業(yè)的軟件工程師,因此,本專業(yè)學(xué)生除了要掌握《C語言程序設(shè)計》課程外,還需要學(xué)習(xí)和了解其它的程序設(shè)計語言,如VB,C++,Java和.net等一系列的編程語言?!禖語言程序設(shè)計》作為第一門學(xué)習(xí)的程序設(shè)計語言課程,對于后序課程的學(xué)習(xí)和掌握起到至關(guān)重要的作用。而且,該課程的學(xué)習(xí)對于學(xué)生的學(xué)習(xí)自信心影響比較大。因此有必要采用合適的教學(xué)方法,提高學(xué)生編程語言的興趣以及自信心。
按照教學(xué)大綱的要求,學(xué)生在剛開始學(xué)習(xí)的時候,教學(xué)內(nèi)容比較簡單,按照正常的邏輯思維路線就可以設(shè)計出簡單的程序。但是隨著教學(xué)內(nèi)容的深入,尤其是學(xué)習(xí)循環(huán)結(jié)構(gòu)是,同學(xué)們對于循環(huán)的執(zhí)行過程和最終運行結(jié)果的分析,都會產(chǎn)生比較難、不知程序如何執(zhí)行以及執(zhí)行結(jié)果是什么的想法。針對這種情況,根據(jù)教學(xué)內(nèi)容的要求,教學(xué)大綱的安排,我在教學(xué)過程中,采用循序漸進的方法,逐步啟發(fā)學(xué)生,幫助他們了解程序執(zhí)行的過程以及在每一過程中所產(chǎn)生的運行結(jié)果,最終使他們不僅對循環(huán)結(jié)構(gòu)有了比較清晰的認識,而且對程序設(shè)計產(chǎn)生一定的興趣,打消程序設(shè)計比較難,不好掌握的思想。下面,我對教學(xué)過程所采取的方法做一個簡單的介紹。
1.1 最簡單的程序:輸出一排星號(也可以是其他的符號)
一般地,大部分程序設(shè)計課程的第一個程序,都是在屏幕上輸出一行信息。例如,,在屏幕上顯示一句話“hello world”。在C語言程序設(shè)計中只需要一條語句就可以實現(xiàn):printf(“hello world”); 這個程序也是學(xué)生理解計算機交互能力的第一個程序。
根據(jù)要求,輸出的內(nèi)容不同,只需要對雙引號中的內(nèi)容進行替換就可以實現(xiàn)。例如輸出內(nèi)容為:十個星號,可以將輸出語句改寫為:printf(“**********”);
1.2 將最簡單的程序用循環(huán)實現(xiàn)
如果將以上的程序改為用循環(huán)結(jié)構(gòu)實現(xiàn),運行結(jié)果相同,也是在屏幕上顯示十個星號,那么可以將程序改寫為:
這是最簡單的循環(huán)結(jié)構(gòu),其中循環(huán)語句只包括一個輸出語句,執(zhí)行的結(jié)果是輸出一個星號。因為該語句被執(zhí)行了十次,所以總共輸出十個星號。為了讓學(xué)生理解循環(huán)結(jié)構(gòu)的特點以及執(zhí)行結(jié)構(gòu),特別強調(diào){}的作用。并要求學(xué)生養(yǎng)成添加{}的習(xí)慣,為今后復(fù)雜程序的編寫打牢基礎(chǔ)。
通過此例,可以讓學(xué)生感性地認識循環(huán)結(jié)構(gòu)中的幾個關(guān)鍵點:循環(huán)變量的初值、終值、變化規(guī)律以及整個程序的循環(huán)次數(shù)。為了讓學(xué)生了解程序執(zhí)行的效果,還可以將循環(huán)語句改寫為:printf(“* ”); 此時,程序的結(jié)果將是輸出一列星號。通過一個非常小的改變,讓同學(xué)們明白循環(huán)語句的作用和執(zhí)行效果,同時也可以增加學(xué)生的興趣。
1.3 用循環(huán)實現(xiàn)矩形圖形的輸出
如果需要輸出多排星號,只需要將程序再改寫為:
通過這個程序,可以進一步讓學(xué)生理解循環(huán)變量的改變以及循環(huán)語句的變化對整個程序的影響。同時,可以改變循環(huán)變量的終值6為其他的數(shù)字,讓學(xué)生發(fā)生圖形的變化。還可以改變程序,分別將兩個程序中的最后的換行符” ”刪除,再觀察程序執(zhí)行的結(jié)果。通過這兩個改變,讓學(xué)生再次感性地認識程序執(zhí)行的奧秒。
通過對簡單循環(huán)程序的理解,可以將簡單的循環(huán)結(jié)構(gòu)進行嵌套,實現(xiàn)復(fù)雜圖形的輸出。按照循序漸進的原則,學(xué)生已經(jīng)理解了簡單的循環(huán)結(jié)構(gòu)的特點以及編程效果,接著就可以深入學(xué)習(xí)嵌套的循環(huán)結(jié)構(gòu)了。將上述程序作為一個嵌套循環(huán)結(jié)構(gòu)中的內(nèi)層循環(huán)結(jié)構(gòu),再對程序作以下改寫:
可以對程序作以下分析:首先,根據(jù)對簡單循環(huán)結(jié)構(gòu)的理解,外層循環(huán)的循環(huán)變量從1變化到6,每次變化的增值為1,因此,一共執(zhí)行了6次。每次循環(huán)執(zhí)行的內(nèi)容都是前面已經(jīng)分析過的簡單循環(huán)結(jié)構(gòu)的程序,執(zhí)行結(jié)果是輸出一排星號。因此,可以得出本程序的執(zhí)行結(jié)果:輸出一個矩形星號??梢酝ㄟ^改變循環(huán)變量的初值、終值以及每一次的增值,讓學(xué)生感性地看到圖形的變化,深入了解循環(huán)結(jié)構(gòu)。針對本程序,還可以將最后的換行語句刪除,再查看程序運行的結(jié)果,讓學(xué)生進一步了解循環(huán)語句的作用。
再將程序復(fù)雜化。在上述程序中,由外層循環(huán)的循環(huán)變量決定內(nèi)層循環(huán)中循環(huán)體的執(zhí)行次數(shù),即,更循環(huán)變量i與循環(huán)變量j滿足一定的代換關(guān)系。如,將程序作以下改寫:
再讓學(xué)生觀察程序的運行結(jié)果,同學(xué)們會發(fā)現(xiàn),產(chǎn)生了很大的變化,輸出圖形變成了三角形。
將上述程序再做進一步的改寫:
這一次的改寫,是增加了一個內(nèi)層循環(huán),使得內(nèi)層有兩個順序執(zhí)行的循環(huán)結(jié)構(gòu)。輸出的三角形再次發(fā)生變化。通過前面的學(xué)習(xí),同學(xué)們很快就可以發(fā)現(xiàn),每一個內(nèi)層循環(huán)的作用。
通過對上面幾個程序的學(xué)習(xí),同學(xué)們已經(jīng)深刻掌握了循環(huán)結(jié)構(gòu)的特點,理解了循環(huán)程序中,循環(huán)變量的初值、終值以及變化情況對循環(huán)結(jié)構(gòu)所起的作用。理解了循環(huán)語句的作用以及執(zhí)行過程。這對于他們再次去編寫更加復(fù)雜的圖形或者利用循環(huán)結(jié)構(gòu)去編寫程序,起到重要的幫助作用。
通過對循環(huán)結(jié)構(gòu)的學(xué)習(xí),讓學(xué)生理解程序的執(zhí)行過程以及執(zhí)行效果,這與順序結(jié)構(gòu)有著顯著的差別。同時,利用圖形,讓同學(xué)們從感性的角度,對循環(huán)結(jié)構(gòu)中的各個關(guān)鍵點有了比較深刻的認識。這對于后期數(shù)組的學(xué)習(xí)有著極大的幫助。同時,為今后的編程語言學(xué)習(xí),不僅打下牢固的基礎(chǔ),而且讓學(xué)生建立編程的自信心,為今后的程序設(shè)計課程的學(xué)習(xí)起到鋪墊作用。
[1] 譚浩強.C 程序設(shè)計[M] .北京:清華大學(xué)出版社,2002.
[2] 雷學(xué)生,胡多.C 語言程序設(shè)計教學(xué)方法探討[J].計算機教育,2006(6).
[3] 劉天時,李皎,陳明晰.游戲算法分析在C 語言教學(xué)中的應(yīng)用[J] .中國科技信息,2010(7).
[4] 劉漢英.《C語言程序設(shè)計》課程教學(xué)方法探討[J].高等教育與學(xué)術(shù)研究,2008(7).
10.3969/j.issn.1001-8972.2012.08.166
新疆大學(xué)博士啟動基金項目(編號:BS100128)
孫華:(1977-),女,講師,新疆大學(xué)軟件學(xué)院老師,博士,研究方向為網(wǎng)絡(luò)與信息安全。