【摘 要】《C語(yǔ)言》是對(duì)口單招計(jì)算機(jī)專業(yè)考試中的一門重要學(xué)科,在專業(yè)綜合理論考試中占有很重要的分值,是考試中的重點(diǎn)和難點(diǎn)。對(duì)C語(yǔ)言學(xué)習(xí)和掌握的數(shù)據(jù)結(jié)構(gòu)、算法、編程技巧將會(huì)轉(zhuǎn)移到其他程序設(shè)計(jì)語(yǔ)言的學(xué)習(xí)之中。本文總結(jié)了一套立足于學(xué)生的程序設(shè)計(jì)課程的優(yōu)化教學(xué)思路和具體可行的教學(xué)方法。
【關(guān)鍵詞】中職計(jì)算機(jī);對(duì)口單招;C語(yǔ)言;教學(xué)方法
一、形象比喻法
在C語(yǔ)言的教學(xué)過(guò)程中,隨著課程的深入,難度也逐步加大,很多問(wèn)題按照課本上的講解很難理解,對(duì)于這些難理解的問(wèn)題我通常舉些形象生動(dòng)的例子加以講解。例如:函數(shù)調(diào)用中的值傳遞和地址傳遞,前者為單向傳遞后者為雙向傳遞,我在講解時(shí)打了一個(gè)比喻,所謂值傳遞就是值的復(fù)制,就像把我房間里的東西復(fù)制到你的房間,你在自己的房間里處理這些東西以后,我房間里的東西并沒(méi)有變化,所以稱之為單向傳遞,僅是我傳給你數(shù)值,而你沒(méi)有把處理數(shù)值后的結(jié)果傳給我。所謂地址傳遞就是地址的復(fù)制,就像把我房間里的門牌號(hào)碼和鑰匙復(fù)制給你,你拿著鑰匙到我房間里來(lái)處理東西,我房間里的東西當(dāng)然會(huì)發(fā)生變化,所以稱之為雙向傳遞。類似的比喻還有很多,例如用“往返跑”解釋循環(huán),用一瓶牛奶和一瓶果汁解釋兩個(gè)數(shù)的交換。通過(guò)這些形象生動(dòng)的例子講解使學(xué)生對(duì)酶澀難懂的概念加深了理解,培養(yǎng)了學(xué)生的學(xué)習(xí)興趣。
二、比較異同法
例如在介紹C語(yǔ)言自加自減功能時(shí),假設(shè)有程序:
Main( )
{Int i=5,j=5,P,Q;
P=(i++)+(i++)+(i++);
Q=(++j)+(++j)+(++j);
Printf(“P=%d,Q=%d,i=%d,j=%d”,P,Q,i,j);}
程序結(jié)果卻是P=15,Q=24,i=8,j=8。為什么是這個(gè)結(jié)果呢?這對(duì)于初學(xué)者來(lái)說(shuō)很難理解。因?yàn)檫@里產(chǎn)生了有關(guān)自加自減運(yùn)算副作用功能。對(duì)P=(i++)+(i++)+(i++)而言,應(yīng)理解為三個(gè)i相加,故P=15。然后i的值自加1三次,故i=8;對(duì)于Q則不然,Q=(++j)+(++j)+(++j)應(yīng)理解為j先自加1三次后值為8,三個(gè)8相加后值為24,j的最后值為8。
從以上程序段中可以看到它們的區(qū)別,i++(在使用i之后,使i的值加1),++i(在使用i之前,先使i的值加1),這樣一比較,同學(xué)們比較容易理解。
三、圖表分析法
循環(huán)次數(shù)的求解,特別是雙重循環(huán)和三重循環(huán)的求解,既是循環(huán)結(jié)構(gòu)設(shè)計(jì)的重點(diǎn),也是難點(diǎn)。以往多采用“手算”模擬計(jì)算機(jī)的計(jì)算過(guò)程來(lái)講解,學(xué)生接受起來(lái)很困難,浪費(fèi)了時(shí)間還容易出錯(cuò)。一遇到此類題干脆放棄。經(jīng)過(guò)分析、探討,我采用了一種圖示分析的教法。此法畫起來(lái)簡(jiǎn)單,不容易出錯(cuò)。
典型例題:寫出運(yùn)行結(jié)果:
Main
{Int p=1;
For (i=1;i<=5;i++)
{ p=p+1;
For (j=1;j<=i; j++)
{ p=p+2;
FOR(x=1;x<=j;x++)
{p=p+j;
}}}
Printf(“%d\n”,p);}
分析:若循環(huán)次數(shù)固定,則直接采用各層循環(huán)次數(shù)相乘,但本例題中各循環(huán)次數(shù)不固定,則需要各層加以計(jì)算。二重循環(huán)變量j終值取決于i的值;三重循環(huán)變量x終值則要取決于j的值。
各層各層循環(huán)各變量取值情況表
畫出如上表格:
第一層:5次;第二層:15次;第三層:35次。
從圖表中得知:各層循環(huán)次數(shù)為各層循環(huán)變量取值變化的次數(shù):
在i層的取值:=i層循環(huán)次數(shù)*1=5*1=5;在j層的取值:=j層循環(huán)次數(shù)*2=15*2=30;在x層的取值:因?yàn)榭偸羌拥诙幼兞緽的值,所以其計(jì)算公式為:p=1+1+2*2+1+2*2+3*3+1+2*2+3*3+4*4+1+2*2+3*3+4*4+5*5=105;p的最后取值為初值+各層取值等于1+5+30+105=141。
運(yùn)用了表格,只要理順各層關(guān)系,算起來(lái)得心應(yīng)手,再變形再?gòu)?fù)雜的題也難不倒了,而且能夠提高解題效率。
四、上機(jī)輔助法
第一,根據(jù)教學(xué)內(nèi)容,合理進(jìn)行實(shí)踐課程設(shè)計(jì)。C語(yǔ)言程序設(shè)計(jì)課程的實(shí)踐性很強(qiáng),學(xué)生只聽(tīng)不練根本達(dá)不到學(xué)習(xí)該課程的目的。
第二,上機(jī)實(shí)踐,加強(qiáng)容易被忽略細(xì)節(jié)的教學(xué)。C語(yǔ)言雖然說(shuō)與自然語(yǔ)言和教學(xué)語(yǔ)言十分接近,但在實(shí)際中卻存在著許多“細(xì)小”的卻又十分嚴(yán)格的差異。由于它的細(xì)小,常常不能引起注意而被忽略。通過(guò)上機(jī)操作,學(xué)生可以加強(qiáng)理解形成較強(qiáng)印象。
程序設(shè)計(jì)教學(xué)的目的,不僅要使學(xué)生掌握語(yǔ)言的根本規(guī)則,更要切實(shí)提高其編程解決實(shí)際問(wèn)題的能力和實(shí)現(xiàn)算法的能力。作為教師,我們只有精心設(shè)計(jì)教學(xué)和實(shí)驗(yàn)環(huán)節(jié),才能引領(lǐng)越來(lái)越多的初學(xué)者走進(jìn)程序設(shè)計(jì)的殿堂。學(xué)生熟練掌握好C語(yǔ)言可為今后學(xué)習(xí)其它語(yǔ)言課程打下良好的基礎(chǔ)。
【參考文獻(xiàn)】
[1]譚浩強(qiáng).C程序設(shè)計(jì)(第三版)北京:清華大學(xué)出版社,2009
[2]蘆艷芳,趙愛(ài)玲.C語(yǔ)言程序設(shè)計(jì).北京:電子科科大學(xué)出版社,2005
[3]張海玉.C語(yǔ)言程序設(shè)計(jì)教學(xué)方法探析.太原:財(cái)政稅務(wù)??茖W(xué)校,2006