孫華 于炯 田生偉 錢育蓉
新疆大學軟件學院 830008
《C語言程序設計》中循環結構的教學方法探討
孫華 于炯 田生偉 錢育蓉
新疆大學軟件學院 830008
本文主要介紹了《C語言程序設計》中的循環結構的學習過程。通過采用循序漸進的方法,讓學生掌握循環結構的特點以及程序執行的過程。該方法從設計最簡單的程序輸出入手,通過逐步深入,最終可以利用循環結構編寫比較復雜的程序。這種教學方法,不僅讓學生比較容易理解循環結構,而且對學生建立學習程序設計語言的自信心也很有幫助。
C語言程序設計;循環結構;教學方法
《C語言程序設計》是軟件工程專業和計算機專業學生的一門必修課,也是一門專業基礎課。因為軟件工程專業學生的培養目標是專業的軟件工程師,因此,本專業學生除了要掌握《C語言程序設計》課程外,還需要學習和了解其它的程序設計語言,如VB,C++,Java和.net等一系列的編程語言。《C語言程序設計》作為第一門學習的程序設計語言課程,對于后序課程的學習和掌握起到至關重要的作用。而且,該課程的學習對于學生的學習自信心影響比較大。因此有必要采用合適的教學方法,提高學生編程語言的興趣以及自信心。
按照教學大綱的要求,學生在剛開始學習的時候,教學內容比較簡單,按照正常的邏輯思維路線就可以設計出簡單的程序。但是隨著教學內容的深入,尤其是學習循環結構是,同學們對于循環的執行過程和最終運行結果的分析,都會產生比較難、不知程序如何執行以及執行結果是什么的想法。針對這種情況,根據教學內容的要求,教學大綱的安排,我在教學過程中,采用循序漸進的方法,逐步啟發學生,幫助他們了解程序執行的過程以及在每一過程中所產生的運行結果,最終使他們不僅對循環結構有了比較清晰的認識,而且對程序設計產生一定的興趣,打消程序設計比較難,不好掌握的思想。下面,我對教學過程所采取的方法做一個簡單的介紹。
1.1 最簡單的程序:輸出一排星號(也可以是其他的符號)
一般地,大部分程序設計課程的第一個程序,都是在屏幕上輸出一行信息。例如,,在屏幕上顯示一句話“hello world”。在C語言程序設計中只需要一條語句就可以實現:printf(“hello world”); 這個程序也是學生理解計算機交互能力的第一個程序。
根據要求,輸出的內容不同,只需要對雙引號中的內容進行替換就可以實現。例如輸出內容為:十個星號,可以將輸出語句改寫為:printf(“**********”);
1.2 將最簡單的程序用循環實現
如果將以上的程序改為用循環結構實現,運行結果相同,也是在屏幕上顯示十個星號,那么可以將程序改寫為:


這是最簡單的循環結構,其中循環語句只包括一個輸出語句,執行的結果是輸出一個星號。因為該語句被執行了十次,所以總共輸出十個星號。為了讓學生理解循環結構的特點以及執行結構,特別強調{}的作用。并要求學生養成添加{}的習慣,為今后復雜程序的編寫打牢基礎。
通過此例,可以讓學生感性地認識循環結構中的幾個關鍵點:循環變量的初值、終值、變化規律以及整個程序的循環次數。為了讓學生了解程序執行的效果,還可以將循環語句改寫為:printf(“* ”); 此時,程序的結果將是輸出一列星號。通過一個非常小的改變,讓同學們明白循環語句的作用和執行效果,同時也可以增加學生的興趣。
1.3 用循環實現矩形圖形的輸出
如果需要輸出多排星號,只需要將程序再改寫為:

通過這個程序,可以進一步讓學生理解循環變量的改變以及循環語句的變化對整個程序的影響。同時,可以改變循環變量的終值6為其他的數字,讓學生發生圖形的變化。還可以改變程序,分別將兩個程序中的最后的換行符” ”刪除,再觀察程序執行的結果。通過這兩個改變,讓學生再次感性地認識程序執行的奧秒。
通過對簡單循環程序的理解,可以將簡單的循環結構進行嵌套,實現復雜圖形的輸出。按照循序漸進的原則,學生已經理解了簡單的循環結構的特點以及編程效果,接著就可以深入學習嵌套的循環結構了。將上述程序作為一個嵌套循環結構中的內層循環結構,再對程序作以下改寫:

可以對程序作以下分析:首先,根據對簡單循環結構的理解,外層循環的循環變量從1變化到6,每次變化的增值為1,因此,一共執行了6次。每次循環執行的內容都是前面已經分析過的簡單循環結構的程序,執行結果是輸出一排星號。因此,可以得出本程序的執行結果:輸出一個矩形星號。可以通過改變循環變量的初值、終值以及每一次的增值,讓學生感性地看到圖形的變化,深入了解循環結構。針對本程序,還可以將最后的換行語句刪除,再查看程序運行的結果,讓學生進一步了解循環語句的作用。
再將程序復雜化。在上述程序中,由外層循環的循環變量決定內層循環中循環體的執行次數,即,更循環變量i與循環變量j滿足一定的代換關系。如,將程序作以下改寫:

再讓學生觀察程序的運行結果,同學們會發現,產生了很大的變化,輸出圖形變成了三角形。
將上述程序再做進一步的改寫:

這一次的改寫,是增加了一個內層循環,使得內層有兩個順序執行的循環結構。輸出的三角形再次發生變化。通過前面的學習,同學們很快就可以發現,每一個內層循環的作用。
通過對上面幾個程序的學習,同學們已經深刻掌握了循環結構的特點,理解了循環程序中,循環變量的初值、終值以及變化情況對循環結構所起的作用。理解了循環語句的作用以及執行過程。這對于他們再次去編寫更加復雜的圖形或者利用循環結構去編寫程序,起到重要的幫助作用。
通過對循環結構的學習,讓學生理解程序的執行過程以及執行效果,這與順序結構有著顯著的差別。同時,利用圖形,讓同學們從感性的角度,對循環結構中的各個關鍵點有了比較深刻的認識。這對于后期數組的學習有著極大的幫助。同時,為今后的編程語言學習,不僅打下牢固的基礎,而且讓學生建立編程的自信心,為今后的程序設計課程的學習起到鋪墊作用。
[1] 譚浩強.C 程序設計[M] .北京:清華大學出版社,2002.
[2] 雷學生,胡多.C 語言程序設計教學方法探討[J].計算機教育,2006(6).
[3] 劉天時,李皎,陳明晰.游戲算法分析在C 語言教學中的應用[J] .中國科技信息,2010(7).
[4] 劉漢英.《C語言程序設計》課程教學方法探討[J].高等教育與學術研究,2008(7).
10.3969/j.issn.1001-8972.2012.08.166
新疆大學博士啟動基金項目(編號:BS100128)
孫華:(1977-),女,講師,新疆大學軟件學院老師,博士,研究方向為網絡與信息安全。