[摘要]C語言是計(jì)算機(jī)專業(yè)學(xué)生的基礎(chǔ)課程,學(xué)習(xí)好C語言不僅能激發(fā)學(xué)生學(xué)習(xí)的興趣,而且對以后的課程學(xué)習(xí)也大有幫助,學(xué)好C語言的關(guān)鍵是掌握編程技巧,從多年的實(shí)踐教學(xué)經(jīng)驗(yàn)來看,編程技巧的主要應(yīng)從以下幾個(gè)方面入手。
[關(guān)鍵詞]C語言;訓(xùn)練:流程圖;優(yōu)化
一、深刻理解C語言的結(jié)構(gòu)和語法特點(diǎn)
和學(xué)習(xí)其他任何一種語言一樣,學(xué)習(xí)C語言也應(yīng)該對C語言的結(jié)構(gòu)和特點(diǎn)有完整的認(rèn)識和深刻的理解,這是提高學(xué)生編程能力的關(guān)鍵。在講授C語言的基本要領(lǐng)和程序結(jié)構(gòu)時(shí),不是簡單地羅列字符、常量、變量、函數(shù)、表達(dá)式等名詞概念,而是通過大量的練習(xí),使學(xué)生認(rèn)識它們在程序中的應(yīng)用和它們之間的相互關(guān)系。在講授每條語句時(shí),在講清語句的格式與功能后,通過分析程序使學(xué)生加深對語句概念的理解,并使學(xué)生了解該語句在程序中所起的作用。
二、加強(qiáng)讀程序的訓(xùn)練
讀程序與寫程序有著密切的聯(lián)系,要編寫C語言程序,不加強(qiáng)讀程序的訓(xùn)練,也就很難編好程序。通過讀程序,可以加深對C語言語句語法的理解,檢驗(yàn)對C語言語句語法的理解程度,通過讀程序還可以學(xué)習(xí)編寫程序的方法。在每講完一條語句后,都用一段時(shí)間來進(jìn)行讀程序的訓(xùn)練。這種訓(xùn)練分為兩個(gè)階段進(jìn)行,第一階段是讓學(xué)生模擬計(jì)算機(jī)來分析程序的運(yùn)行結(jié)果,它的作用是通過讀程序來加深對語句概念的理解和掌握用這些概念分析程序的方法,這有利于學(xué)生以后檢查自己編寫的程序是否正確和優(yōu)化。第二階段是通過讀程序,學(xué)習(xí)和掌握編寫程序的基本方法和基本技巧。
三、掌握常用的編程方法和典型程序
將一些常用的編程方法和典型程序進(jìn)行了歸納總結(jié),將它們分為計(jì)數(shù)、累加、求最大與最小數(shù)、統(tǒng)計(jì)選票、數(shù)列求和、數(shù)字處理、文本圖形顯示、求素?cái)?shù)、求最大公約數(shù)和最小公倍數(shù)、求面積、求根、精確計(jì)算、求極值、輔助教學(xué)、排序、檢票、文字處理、邏輯判斷等幾十類,并在教學(xué)的各個(gè)階段陸續(xù)將它們各自的編程思路、技巧、方法和典型程序教授給學(xué)生。要求學(xué)生記住典型程序、掌握編程技巧。這對學(xué)生編寫其它類型的程序和較復(fù)雜的程序是很有幫助的。
四、學(xué)會利用流程圖編寫程序
要做一項(xiàng)工作,如果將工作的步驟用流程圖表示出來,再按流程圖去做,會使工作有條理,不出錯誤。編寫的目的是讓計(jì)算機(jī)按人的要求去工作。要使程序有條理,少出錯誤,也應(yīng)該在編寫程序以前,先畫出程序的流程圖。在學(xué)生初學(xué)編寫程序時(shí),要教學(xué)生如何將工作的流程圖轉(zhuǎn)換為程序的細(xì)流程圖,以及如何利用細(xì)流程圖編寫程序,這里特別應(yīng)注意培養(yǎng)學(xué)生建立數(shù)學(xué)模型的能力。在學(xué)生掌握了一定的編程方法和典型程序后,應(yīng)要求學(xué)生養(yǎng)成利用粗流程圖編寫程序的習(xí)慣。在編寫較復(fù)雜的程序以后,應(yīng)先畫出粗流程圖,粗流程圖中每個(gè)方框可表示學(xué)生已掌握的一個(gè)典型程序所完成的功能。
五、掌握調(diào)試程序的方法和程序優(yōu)化的方法
在編寫程序的過程中,常常離不開調(diào)試程序,尤其是一些較復(fù)雜的程序更需要調(diào)試。因此,應(yīng)將調(diào)試程序的方法在適當(dāng)?shù)臅r(shí)候教給學(xué)生??偨Y(jié)了幾種調(diào)試程序的方法:一種是TRACE命令跟蹤程序;另一種是利用STOP語句加設(shè)暫停點(diǎn);再一種是利用PRINT語句進(jìn)行變量值監(jiān)視的方法。除了要求學(xué)生掌握這些調(diào)試方法外,還應(yīng)該使學(xué)生了解如何優(yōu)化程序,使程序占用的內(nèi)存盡量少,程序運(yùn)行的時(shí)間盡量少,以及使編寫的程序結(jié)構(gòu)性強(qiáng)和容易讀懂等。
六、培養(yǎng)學(xué)生的學(xué)習(xí)興趣,注意教學(xué)方法
興趣是學(xué)生學(xué)習(xí)的一個(gè)重要動力,在C語言教學(xué)中應(yīng)特別注意培養(yǎng)學(xué)生的學(xué)習(xí)興趣,使學(xué)生能在整個(gè)C語言學(xué)習(xí)過程中,始終保持旺盛的學(xué)習(xí)熱情和求知欲。為了達(dá)到這個(gè)目的,應(yīng)特別注意教學(xué)方法。在C語言教學(xué)中,采用的是理論教學(xué)與上機(jī)實(shí)驗(yàn)相結(jié)合的兩階段教學(xué)法。C語言和電子技術(shù)等專業(yè)課一樣,是實(shí)踐性很強(qiáng)的一門科學(xué),離開了上機(jī)實(shí)驗(yàn),單純地書本、黑板教學(xué)是絕對教不好的。上機(jī)實(shí)驗(yàn)也不是盲目的上機(jī)操作,不是單純地驗(yàn)證理論教學(xué),而是為了將理論教學(xué)與上機(jī)實(shí)驗(yàn)有機(jī)地結(jié)合在一起,使之相輔相承。所謂兩階段教學(xué),就是將C語言的詞法和每條語句的語法分為兩個(gè)階段傳授給學(xué)生。第一階段使學(xué)生對詞法和語法有一個(gè)粗淺的了解,知道它們的一般特點(diǎn)和一般用法,然后分析和編寫一些較簡單的程序,并上機(jī)操作;第二階段使學(xué)生對詞法和語法有完整的認(rèn)識,并用它們分析和編寫較難的程序,同時(shí)再上機(jī)操作。采用兩階段教學(xué),使學(xué)習(xí)由淺入深、循序漸進(jìn),把難點(diǎn)分散、重點(diǎn)突出。這樣,學(xué)生學(xué)習(xí)時(shí)就不會感到枯燥無味,從而增強(qiáng)學(xué)習(xí)興趣和堅(jiān)定學(xué)習(xí)的信心。
七、擴(kuò)大知識面,解決實(shí)際問題
為了提高學(xué)生編程能力,我常常鼓勵學(xué)生去發(fā)現(xiàn)問題,并運(yùn)用C語言解決這些總是例如啟發(fā)學(xué)生去編寫學(xué)生成績統(tǒng)計(jì)、管理程序、工資報(bào)表程序、輔助教學(xué)程序、繪圖程序和游戲程序等。學(xué)生在解決這些實(shí)際問題時(shí),表現(xiàn)出高度的學(xué)習(xí)熱情和學(xué)習(xí)的積極性,大多數(shù)同學(xué)能在很短的時(shí)間里將所學(xué)知識融會貫通,深入理解,編程能力也得到了較大提高。