【摘要】本文以設(shè)計C語言中循環(huán)嵌套知識點的課堂教學為例展開,圍繞課堂教學中教學任務(wù)的組織展開講述,借助教學設(shè)計的漸進案例,引入外循環(huán)和內(nèi)循環(huán)概念,通過分解課堂教學任務(wù)來完成本次內(nèi)容的課堂教學,加深學生掌握循環(huán)嵌套,達到學生靈活清晰的設(shè)計程序,精準的分析程序結(jié)果、快速調(diào)試代碼中錯誤這種教學效果。
【關(guān)鍵詞】C語言 循環(huán)嵌套 課堂教學 案例
一、引言
循環(huán)嵌套是在一個完整的循環(huán)里面,又包含一個完整的循環(huán)結(jié)構(gòu),把外面的循環(huán)稱為外循環(huán),內(nèi)部的循環(huán)稱為內(nèi)循環(huán);循環(huán)的執(zhí)行過程是外循環(huán)變量每取一個值時,內(nèi)循環(huán)要把內(nèi)循環(huán)變量范圍里面的值全部執(zhí)行一遍,這時外循環(huán)變量才可以取下一個循環(huán)變量的值;以此類推,直到外循環(huán)變量所有的值全部執(zhí)行完畢,這時循環(huán)就結(jié)束了。我們把這樣的循環(huán)結(jié)構(gòu)稱為循環(huán)嵌套。
循環(huán)嵌套在C語言中占有很重要的地位,它是C語言程序設(shè)計的核心知識點和教學的一個難點,它在一維數(shù)組、二維數(shù)組和函數(shù)中循環(huán)嵌套尤其重要。教師在課堂教學中通過借助設(shè)計的例子,由淺人深展開講解;通過分析程序運行結(jié)果,不斷提出新的實現(xiàn)目標,完善修改程序,這樣課堂教學會加深學生理解,尤其是代碼書寫、程序調(diào)試技巧等尤其重要。
二、課堂教學組織
從課堂教學引例出發(fā),深入課堂教學內(nèi)容的設(shè)計,具體實現(xiàn)過程如下:
1、設(shè)計淺顯易懂、能激發(fā)學生興趣的案例出發(fā),讓學生接觸循環(huán)概念;
2、提出程序的結(jié)果要求,通過不斷完善修改之前的代碼,逐漸完善給定的初始圖形,從而修改算法,調(diào)整、完善程序,引出程序設(shè)計思路;
3、通過不斷修改程序,調(diào)整運行結(jié)果,完善代碼,實現(xiàn)最終的程序效果。
通過課堂案例的演示,程序代碼的書寫、代碼的修改,引出內(nèi)循環(huán)和外循環(huán)概念,分析程序執(zhí)行流程。通過引入新的要求,加大程序難度,不斷調(diào)整代碼,最終達到期待的結(jié)果。通過課堂完整代碼的實現(xiàn)分析過程,加深學生的理解、提高課堂的互動,達到好的教學效果。
三、問題的引入和解決過程
問題一:給出一個*圖形,編程輸出圖形*****,程序如何書寫?
停頓幾秒,讓學生思考后,打開VC環(huán)境編寫如下代碼:
for(i=1;i<=5;i++)
printf(“*”);
問題二:在實現(xiàn)問題一后,繼續(xù)提出新要求,如何由一個*編程輸出5行******圖形?
引出程序的分析過程:首先需要引入一個循環(huán)變量代表行標,取值是1到5;然后再引出另一個循環(huán)變量代表每行圖形的個數(shù),也就是列標。從而確定每一行圖形中列標的取值范圍,當每一行中所有列的圖形全部打印輸出之后,再換到下一行準備打印下一行圖形,這個過程需要重復(fù)執(zhí)行5次,才可以實現(xiàn)圖形的打印。分析完圖形打印的過程后,繼續(xù)在VC下編出代碼如下:
for(i=1;i<=5;i++)
for(j=1;j<=5;J++)
printf(“*”);
運行結(jié)果如下,輸出的圖形是*************************,不是預(yù)期的5行圖形;
問題三:圖形輸出結(jié)果不對,程序如何修改?
展開課堂探討,分析程序執(zhí)行的錯誤地方。學生很快會分析出出錯的原因是這樣的,在打印完每一行圖形后,必須給出換行操作的語句,程序才可以在單獨的一行輸出新的一行的圖形。找出程序中的問題后,修改程序如下:
for(i=1;i<=5;i++)
{for(j=1;j<=5;j++)
printf(“* ”);
printf(“\n”);
}
四、課堂小結(jié)
課堂教學的案例中需要引出循環(huán)嵌套的內(nèi)循環(huán)變量和外循環(huán)變量、內(nèi)外循環(huán)體的概念。總結(jié)分析得出以下幾點:
1、i是外循環(huán)變量,j是內(nèi)循環(huán)變量;
2、外循環(huán)變量是i,循環(huán)體語句是:
for(j=1;j<=5;j++)
printf(“*”);
printf(“\n”);
3、內(nèi)循環(huán)變量是j,循環(huán)體語句是:
for(j=1;j<=5;j++)
printf(“*”);
4、程序運行時,外循環(huán)變量i每次取1個值時,內(nèi)循環(huán)變量必須執(zhí)行5次。外循環(huán)執(zhí)行了5次,內(nèi)循環(huán)執(zhí)行了25次,這樣循環(huán)才結(jié)束。
5、鋸齒狀程序代碼的書寫,便于更好、更清晰地檢查程序錯誤,注意層次,也就是外循環(huán)和內(nèi)循環(huán)語句的區(qū)分,注意大括號的作用。
6、及時總結(jié)程序運行中的錯誤,進行修改、調(diào)試的地方;通過程序運行驗證,加深對案例調(diào)試分析的理解,再一次加深學生對循環(huán)嵌套的理解。
五、課后內(nèi)容的引深
學習了這講的C語言教學內(nèi)容之后,要求學生課后編程實現(xiàn)菱形圖形、直角三角形等圖形的打印,延伸課堂所學內(nèi)容,對出現(xiàn)的新的難點,如何應(yīng)對解決,實現(xiàn)這些內(nèi)容,那么這一講的課堂內(nèi)容將基本掌握了。教師分析圖形后,可給出提示:1、分析圖形的特點,圖形左右、上下對稱;2、每行圖形的個數(shù)和行標有什么關(guān)系;3,如何輸出每行的圖形;4、每行圖形打印前的空白位置如何輸出;5,調(diào)整圖形,直至輸出正確的圖形。同時給出獎勵措施,提高學生課后編程的興趣和積極性。
六、總結(jié)
通過課堂案例展開循環(huán)嵌套知識點的講解,加深學生對內(nèi)、外循環(huán)體的理解;通過調(diào)試、修改代碼,強調(diào)程序中語句組是用左右括號決定的,鋸齒狀程序書寫方式,便于程序的閱讀和修改,更好的區(qū)分層次和標識循環(huán)體語句,明確區(qū)分內(nèi)循環(huán)和外循環(huán)中的循環(huán)體語句,避免不必要的錯誤的出現(xiàn),從而養(yǎng)成良好的、正確的程序書寫習慣。
參考文獻:
[1]付云俠.C語言程序設(shè)計教學中開篇教學方法的研究[J].科教文匯,2015.
[2]任小燕,付云俠.基于CDIO的C語言程序設(shè)計教學模式研究[J].計算機教育,2012.
[3]李麗亞,劉海靜,《C語言程序設(shè)計》教學模式的研究與探索[J].電子制作,2015(04).