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