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