范 紅 吳怡之
文章編號:1672-5913(2009)10-0058-02
摘要:為激發(fā)學(xué)生學(xué)習(xí)C語言程序設(shè)計課程的興趣,使學(xué)生在學(xué)習(xí)上有主動性,本文以講授循環(huán)控制這一章為例對趣味實例教學(xué)方法進(jìn)行了探討,給出幾個圍繞所學(xué)知識點設(shè)計的例子。
關(guān)鍵詞:C 語言;循環(huán)控制;趣味實例
中圖分類號:G642
文獻(xiàn)標(biāo)識碼:A
1引言
“C語言程序設(shè)計”作為一門實用的編程語言,功能強(qiáng)大,編程風(fēng)格自由靈活。在近幾年的教學(xué)中發(fā)現(xiàn),學(xué)生普遍認(rèn)為這門課難度大,不容易學(xué)。如何通過教學(xué)方法的改變,讓學(xué)生在學(xué)習(xí)上有主動性,激發(fā)學(xué)生學(xué)習(xí)該課程的興趣,是講授這門課程的教師應(yīng)該考慮的問題。從目前大多數(shù)高校的教學(xué)情況看,現(xiàn)在一般多已采用多媒體教學(xué)。這種教學(xué)方式比起以前在黑板上講授是有了一定的進(jìn)步,但在目前的課堂教學(xué)中,還是以教師講授為主,沒有充分發(fā)揮學(xué)生學(xué)習(xí)的主動性,啟發(fā)式教學(xué)沒有得到充分運用。
2采用趣味實例教學(xué)
在“C語言程序設(shè)計”課程講授過程中,要特別注意培養(yǎng)學(xué)生的學(xué)習(xí)興趣。初接觸計算機(jī)時,很多學(xué)生感到新奇、好玩,這不能說是興趣,只是一種好奇。隨著課程的不斷深入,大量的語法規(guī)則很容易使一部分甚至是大部分學(xué)生產(chǎn)生枯燥無味的感覺。為了把學(xué)生的好奇轉(zhuǎn)化為學(xué)習(xí)興趣,采用趣味程序的例子激發(fā)學(xué)生的積極性,從而在實例中掌握C語言的語法和程序設(shè)計方法。這種方法的優(yōu)點是可以根據(jù)教學(xué)內(nèi)容,選擇合適的例子,使學(xué)生掌握所學(xué)內(nèi)容,趣味程序例子的選擇至關(guān)重要。在每個實例的基礎(chǔ)上,對學(xué)生多提問,并進(jìn)行擴(kuò)展,以復(fù)習(xí)前面學(xué)過的知識,也可以鞏固當(dāng)前學(xué)習(xí)的內(nèi)容。通過啟發(fā)式教學(xué),讓學(xué)生做更多的練習(xí),加深對語法和程序設(shè)計方法的理解,掌握課程的精髓。為了實現(xiàn)課程的教學(xué)目標(biāo),培養(yǎng)學(xué)生的問題求解、編程和探索創(chuàng)新能力,在教學(xué)中必須強(qiáng)調(diào)實踐訓(xùn)練,使學(xué)生在大量的練習(xí)中掌握知識,培養(yǎng)能力。下面介紹在講授循環(huán)控制這一章中采用趣味實例教學(xué)的實踐。
3實例分析
在循環(huán)控制這章中主要介紹while語句、do-while語句和for語句這三種循環(huán)語句。
3.1while語句
在介紹用while語句實現(xiàn)循環(huán)的一般形式和執(zhí)行流程后,讓學(xué)生思考用while語句編寫程序?qū)崿F(xiàn)猜數(shù)字游戲。先給出程序的運行結(jié)果,如圖1所示。只要輸入的數(shù)字和給定的數(shù)字不相同,就再重新輸入,這種操作可通過while語句來實現(xiàn)。循環(huán)程序不停地讀、檢查和處理數(shù)據(jù),直到遇到事前指定的表示結(jié)束的值,循環(huán)才終止。在判斷不相等的同時,提示用戶輸入數(shù)字與給定值是偏大還是偏小,這個功能可運用條件運算符來實現(xiàn)。這樣也對C語言中唯一的一個三目運算符有更深的認(rèn)識。在此基礎(chǔ)上,可讓學(xué)生思考再增加程序的一些功能,如統(tǒng)計猜數(shù)字的次數(shù)、密碼驗證等,使程序更充實。具體程序如下:
void main()
{int a,k=9;
printf(" ------猜數(shù)字游戲------ ");
printf("請輸入0到10之間任意一個整數(shù): ");
scanf("%d",&a);
while(a!=k)
{(a>k)?printf("高了 "):printf("低了 ");
printf("再試一次! ");
scanf("%d",&a);
}
printf("恭喜你,猜對了! ");
}
3.2do-while語句
do-while語句的執(zhí)行流程是先執(zhí)行循環(huán)體語句一次,再判別表達(dá)式的值,若為真則繼續(xù)循環(huán),否則終止循環(huán)。do-while語句與while語句不同的地方在于do-while是先執(zhí)行循環(huán)體,后判斷表達(dá)式的“直到型”循環(huán),而while語句是先判斷表達(dá)式后執(zhí)行循環(huán)體的“當(dāng)型”循環(huán)。因此,do-while語句中的循環(huán)體至少被執(zhí)行一次,對于循環(huán)體內(nèi)容執(zhí)行的次數(shù)由用戶來決定時就可采用此循環(huán)語句。語句如下:
do
{ //其它循環(huán)語句
printf("繼續(xù)嗎(Y/N or y/n)?");
scanf(" %c", &reply);
}while (reply == 'Y' || reply == 'y');
例如設(shè)計一個簡易計算器,可以實現(xiàn)加減乘除運算,由用戶輸入表達(dá)式,程序給出正確結(jié)果。采用上面介紹的語句即可實現(xiàn)多次運算,運算的次數(shù)由用戶決定。采用多分支選擇語句(switch-case)實現(xiàn)選擇哪種運算。程序運行結(jié)果如圖2所示。
3.3for語句
for語句使用最為靈活,不僅可以用于循環(huán)次數(shù)已經(jīng)確定的情況,而且可以用于循環(huán)次數(shù)不確定而只給出循環(huán)結(jié)束條件的情況。for語句的循環(huán)應(yīng)用除了計數(shù)外,還可用空語句作為循環(huán)語句中的循環(huán)體,循環(huán)中不實現(xiàn)任何功能,只是使CPU等待一定的時間后再繼續(xù)執(zhí)行程序,即循環(huán)體作為延時循環(huán)。模擬延時一秒的函數(shù)如下:
void Delay(void) //函數(shù)功能:模擬延遲1秒的時間
{ long t;
for (t=0; t<280000000; t++)
{
//循環(huán)體為空語句的循環(huán),起延時作用
}
}
循環(huán)變量t的上限由CPU時鐘和需延時的時間共同決定。首先定義三個全局變量,分別表示小時、分鐘和秒,若秒值為60,表示已過一分鐘,則分值加1;若分值為60,表示已過一小時,則小時值加1;若小時值為24,則重新從0開始計時。秒值每次增1,調(diào)用一次延時函數(shù)。程序運行結(jié)果如圖3所示。對該程序進(jìn)一步擴(kuò)展,要求學(xué)生在上機(jī)實踐課中編寫模擬電子時鐘的程序。學(xué)生在上機(jī)編程中增加了輸入當(dāng)前時刻的部分,并能使程序正常運行,極大地激發(fā)了學(xué)生學(xué)習(xí)C語言的興趣。
3.4綜合實例
在介紹完循環(huán)控制章節(jié)的各種循環(huán)語句后,給學(xué)生布置一道設(shè)計自動柜員機(jī)的問題,在上機(jī)實踐中由學(xué)生分組設(shè)計完成。先給出程序的執(zhí)行界面,如圖4所示。要求學(xué)生利用循環(huán)嵌套和switch語句等對自動柜員機(jī)功能菜單的各種選擇進(jìn)行判斷和相應(yīng)處理。在主程序外加上各個子程序,成為一個完整的程序。
4結(jié)束語
“C語言程序設(shè)計”課程所進(jìn)行的趣味實例教學(xué)實踐有助于學(xué)生更好地掌握課程的核心內(nèi)容,激發(fā)了學(xué)生繼續(xù)探索和學(xué)習(xí)的興趣,培養(yǎng)了學(xué)生的創(chuàng)新能力,發(fā)掘了學(xué)生的創(chuàng)新潛能。教學(xué)必然是一個需要持續(xù)改進(jìn)和完善的過程,我們將不斷總結(jié)課程教學(xué)的經(jīng)驗,使C語言教學(xué)邁向新的臺階。
參考文獻(xiàn):
[1] 譚浩強(qiáng). C程序設(shè)計[M]. 北京:清華大學(xué)出版社,2007.
[2] 蘇小紅. C語言程序設(shè)計教程[M]. 北京:電子工業(yè)出版社,2002.
[3] 江靜嵐. C語言教學(xué)方法探析[J].計算機(jī)教育,2007(21).
Teaching Method of Applying Interesting Examples on C Language Programming
FAN Hong, WU Yi-zhi
(College of Information Science and Technology, Donghua University, Shanghai 201620,China )
Abstract: To help students change from passive learning to active learning, inspiring interest of studying C language, the teaching method of applying interesting examples is discussed and several interesting cases, taking chapter of loops control as an example, are designed in this paper.
Key words: C language; loops control; interesting cases