孫偉平
摘 要:《C語言程序設(shè)計(jì)》中的圖形輸出問題在整冊書的基礎(chǔ)教學(xué)中占有重要的地位和作用,尤其楊輝三角的圖形輸出更是重中之重。掌握程序設(shè)計(jì)的方法、圖形特點(diǎn)、思路分析,目的是培養(yǎng)學(xué)生程序設(shè)計(jì)的理念,也為后續(xù)函數(shù)調(diào)用、指針、文件等章節(jié)的學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。
關(guān)鍵詞:C語言程序設(shè)計(jì) 二維數(shù)組 楊輝三角
1 引言
C語言程序設(shè)計(jì)作為一種高級的計(jì)算機(jī)語言,是所有編程語言的基礎(chǔ)教學(xué)。它的功能強(qiáng)大,可移植性好,使用靈活方便,也是廣泛使用的計(jì)算機(jī)語言,同時(shí)還具有高級編程語言的優(yōu)點(diǎn),適合于各種系統(tǒng)軟件的編寫和數(shù)值計(jì)算,學(xué)習(xí)它有助于和計(jì)算機(jī)之間的交流,同時(shí)也更深入的了解計(jì)算機(jī),所以說程序編輯的學(xué)習(xí)對我們尤為重要。
2 二維數(shù)組基礎(chǔ)知識的靈活性應(yīng)用
二維數(shù)組的學(xué)習(xí)是建立在一維數(shù)組的基礎(chǔ)知識之上,首先要明確什么是二維數(shù)組?二維數(shù)組用來存儲什么?如何進(jìn)行存儲?這在課堂教學(xué)中反應(yīng)出存在的問題,不能夠?qū)W以致用,所學(xué)習(xí)的內(nèi)容在應(yīng)用中缺少靈活性,所以教學(xué)過程中會(huì)讓我覺得“教與學(xué)”、“學(xué)與用”、“用與練”的重要性。課堂中應(yīng)多注意知識的運(yùn)用而不僅僅將知識浮于表面,而是要實(shí)實(shí)在在的運(yùn)用到實(shí)際。
3 分析楊輝三角的圖形特點(diǎn),找到與二維數(shù)組之間的聯(lián)系
先以直角的楊輝三角形為例,由于楊輝三角也是多行多列的存儲形式,與二維數(shù)組的存儲有了直接的聯(lián)系,師生共同分析圖形特點(diǎn),激發(fā)學(xué)生的參與性和主動(dòng)性,同時(shí)也培養(yǎng)學(xué)生學(xué)習(xí)的興趣,在討論的過程中領(lǐng)會(huì)到了楊輝三角淺在的規(guī)律。
各組同學(xué)通過認(rèn)真觀察都有了新的發(fā)現(xiàn),一組同學(xué)發(fā)現(xiàn)直角邊和斜邊上的數(shù)組元素值都為1;二組同學(xué)發(fā)現(xiàn)每行輸出的數(shù)字個(gè)數(shù)都不同,而且左右兩端的數(shù)字是對稱的。在圖形分析這一環(huán)節(jié)課堂氛圍特別的輕松,完全忘我的狀態(tài),各組同齊心協(xié)辦,加以補(bǔ)充。愉悅的課堂氛圍讓我也倍感欣慰。
4 結(jié)合特點(diǎn)進(jìn)行分析講解
首先分析三角形的斜邊和直角邊上的1都分別對應(yīng)著哪些數(shù)組元素?結(jié)合之前二維數(shù)組的基礎(chǔ)知識,由此可以發(fā)現(xiàn)斜邊上的元素是當(dāng)行下標(biāo)列下標(biāo)相等的情況下,對應(yīng)數(shù)組元素的值為1,直角邊上的元素是當(dāng)列下標(biāo)的值為0時(shí),則a[i][j]=1。其他數(shù)組元素的值則通過如下分析:a[3][1]=a[2][0]+a[2][1],a[4][2]=a[3][1]+a[3][2],得出除了元素值是1的情況a[i][j]=a[i-1][j-1]+a[i-1][j],綜合以上的條件得出如下結(jié)論:if(i==j||j==0)? a[i][j]=1;? else? a[i][j]=a[i-1][j-1]+a[i-1][j]。
其次,根據(jù)楊輝三角的每行輸出數(shù)字的個(gè)數(shù)不同,并結(jié)合之前星號圖形的輸出可以得出,內(nèi)層循環(huán)的執(zhí)行次數(shù)是由外層循環(huán)變量的值來控制的,所以循環(huán)的條件為:j<=i。最后結(jié)合圖形的觀察,每行輸出數(shù)據(jù)之后要進(jìn)行換行操作,其中printf(“\n”)作為外層循環(huán)的循環(huán)體部分,當(dāng)內(nèi)層循環(huán)執(zhí)行完才執(zhí)行換行語句。
本環(huán)節(jié)的教學(xué)過程,通過圖形特點(diǎn)的分析講解,引導(dǎo)學(xué)生應(yīng)用所學(xué)知識并結(jié)合本程序的新知識,設(shè)計(jì)算法進(jìn)行分析,并適當(dāng)?shù)赜谜Z言描述去解決程序的思路,培養(yǎng)學(xué)生邏輯思維方式,讓學(xué)生在不斷的探索中解決編程問題,從而全面且有效地掌握知識的運(yùn)用。
5 小組同學(xué)整理思路進(jìn)行程序編輯
1.整體思路共分為三部分:一是二維數(shù)組及變量的說明定義;二是給數(shù)組元素賦值;三是輸出數(shù)據(jù)。思路分析對于圖形輸出十分重要,只有明確思路才能將其轉(zhuǎn)換成符合C語言語法要求的語句。
2.程序編輯中出現(xiàn)的錯(cuò)誤(以輸出十行的楊輝三角為例)
錯(cuò)誤(1):部分同學(xué)將i<10寫成了i<=10,原因是下標(biāo)值取值范圍掌握的不夠準(zhǔn)確;
錯(cuò)誤(2):將j<=i寫成了j<10,原因是忘記圖形中每行上輸出數(shù)據(jù)個(gè)數(shù)的不同,主要是由外層循環(huán)變量i來控制的,在編程的整體思路上出現(xiàn)了偏差;
錯(cuò)誤(3):printf(“\n”);語句的位置不屬于內(nèi)層循環(huán),而是當(dāng)內(nèi)層循環(huán)執(zhí)行之后才執(zhí)行。以上幾處錯(cuò)誤之處是程序編輯過程中常常出現(xiàn)的問題,抽象的邏輯思維確實(shí)讓孩子們毫無思路,即使有了思路也會(huì)在編程中出現(xiàn)這樣或那樣的小錯(cuò)誤,但計(jì)算機(jī)的程序語言不允許我們有絲毫的差錯(cuò),要求其規(guī)范化及準(zhǔn)確性,當(dāng)然這也是在培養(yǎng)學(xué)生的細(xì)心、耐心的好習(xí)慣,這一習(xí)慣的養(yǎng)成會(huì)成為她們成長中的亮點(diǎn)。
在此環(huán)節(jié)的教學(xué)過程中,讓我領(lǐng)悟到了教學(xué)中的循序漸進(jìn)。小組的合作學(xué)習(xí)過程中不僅是一個(gè)幫扶的過程,更是一個(gè)協(xié)作的過程,大家齊心協(xié)力,目標(biāo)明確,培養(yǎng)了學(xué)生的創(chuàng)造力更體現(xiàn)了以學(xué)生為主體的教學(xué)原則,從而激發(fā)了他們的學(xué)習(xí)興趣。
6 理論教學(xué)與實(shí)踐相結(jié)合
在程序設(shè)計(jì)過程中,理論學(xué)習(xí)和上機(jī)實(shí)踐應(yīng)兩手抓,通過上機(jī)練習(xí)會(huì)提高學(xué)生的實(shí)踐能力,在輸入程序的過程中也是再次對程序語法的一次校對,針對運(yùn)行后的錯(cuò)誤代碼應(yīng)及時(shí)的進(jìn)行改正并總結(jié)。理論與實(shí)踐的結(jié)合是對所學(xué)知識的融會(huì)貫通,在上機(jī)練習(xí)中更是對程序熟練程度的一個(gè)考驗(yàn)。
C語言的程序設(shè)計(jì)教學(xué)講究的是方法,運(yùn)用合理的教學(xué)方法,不但可以讓學(xué)生領(lǐng)會(huì)到學(xué)習(xí)的樂趣,同時(shí)也提高了學(xué)習(xí)的積極性和獨(dú)立思考的能力。本節(jié)課的教學(xué)過程中,我采用的分組教學(xué)不但培養(yǎng)了學(xué)生分析問題和解決問題的能力,也培養(yǎng)了學(xué)生的團(tuán)隊(duì)意識。以上就是我在楊輝三角圖形輸出教學(xué)中的一些體會(huì),在今后的教學(xué)過程中,我會(huì)不斷的探索和創(chuàng)新,激發(fā)學(xué)生興趣的同時(shí),讓他們感知C語言程序設(shè)計(jì)的魅力所在。
參考文獻(xiàn):
[1] 王小榮,劉雙喜. C語言中二維數(shù)組的教學(xué)探究[J]. 電腦知識與技術(shù),2009,5(24):6700-6722.
[2] 汪紅兵,姚琳,武航星,張敏. C語言程序設(shè)計(jì)二維數(shù)組人教學(xué)探究[J]. 中國大學(xué)教學(xué),2014(09):50-55.
[3] 宋靈香. C語言中程序設(shè)計(jì)二維數(shù)組的教學(xué)探究[J]. 軟件導(dǎo)刊,2013,12(03):178-180.
[4] 原立濤,李鳳玲,邸抗.C語言中二維數(shù)組應(yīng)用分析[J].軟件工程師,2012(11):46-47.