付愛輝
平度市電子職業(yè)中等專業(yè)學(xué)校 山東平度 266715
C語言是一門高級程序設(shè)計語言,是目前被中等職業(yè)學(xué)校和高等院校廣泛使用的教學(xué)語言。它以功能豐富、表達能力強、使用靈活、應(yīng)用面廣、目標(biāo)程序高、可移植性好、能對硬件直接操作等優(yōu)點愈來愈受到程序設(shè)計者的青睞。它既適合編寫應(yīng)用程序,又適合編寫系統(tǒng)程序,實用性很強,因此學(xué)習(xí)好C語言程序設(shè)計具有很重要的意義。然而在C語言的教學(xué)過程中,學(xué)生常常反映比較難學(xué),在實際應(yīng)用中常常出錯而不知所以然。
任何學(xué)科的學(xué)習(xí),離不開知識的積累。善于積累資料對提高學(xué)習(xí)效率是非常必要的。著名數(shù)學(xué)家華羅庚在給青年學(xué)生談如何讀書學(xué)習(xí)的講話中,生動地說道:讀書要有一個由“薄”到“厚”,再由“厚”到“薄”的過程。做到由“厚”變“薄”的關(guān)鍵是能否將所學(xué)的知識進行歸納整理。C語言的概念復(fù)雜,規(guī)則繁多,使用靈活,學(xué)生解題時很容易出錯。因此在教學(xué)的過程中,要引導(dǎo)學(xué)生把相互關(guān)聯(lián)的知識加以分類歸納,幫助學(xué)生系統(tǒng)地掌握知識。
C語言的概念和規(guī)則從知識體系可分為以下幾類進行記憶。
1)數(shù)據(jù)類。數(shù)據(jù)規(guī)則包括:①變量的命名規(guī)則;②系統(tǒng)的關(guān)鍵字;③不同類型常量的表示方法、范圍和存儲規(guī)則。
2)運算符類。這類規(guī)則主要有:①運算符的優(yōu)先級,包括同類和不同類運算符的優(yōu)先級;②運算符對數(shù)據(jù)的要求;③表達式中數(shù)據(jù)類型的轉(zhuǎn)換。
3)函數(shù)類。C語言是一種函數(shù)式語言,函數(shù)是C語言程序的基本組成部分。在C語言中系統(tǒng)提供了大量的函數(shù)供用戶調(diào)用,為用戶編程提供了極大的方便。記憶函數(shù)類知識時,要從函數(shù)名、函數(shù)的格式、函數(shù)的作用和函數(shù)值四方面來掌握。
4)語句類。這類規(guī)則主要指語句的書寫規(guī)則、語句的作用和語句的執(zhí)行過程。
5)算法。學(xué)習(xí)C語言的最終目的是為了能夠編程來解決實際問題,因此掌握一些典型的算法是學(xué)生能夠編程的基礎(chǔ)。
數(shù)據(jù)、運算符、函數(shù)和語句是C語言的基本組成單位,是學(xué)習(xí)C語句的基礎(chǔ)。分類歸納記憶的好處是:1)再學(xué)習(xí)的優(yōu)勢,把已學(xué)過的知識概括歸納,在大腦中已存儲了相關(guān)的信息,這樣再學(xué)習(xí)時,學(xué)生會很快把新的知識納入到已有的知識體系中;2)保證審題的正確和全面,做題時能夠快速從題目聯(lián)系到所學(xué)的知識,做好題目和知識之間的銜接,避免了審題時盲目猜測和遺漏條件。
閱讀程序和編寫程序是學(xué)生學(xué)習(xí)C語言必須掌握的兩種能力,也是學(xué)習(xí)的難點。然而C語言是計算機使用的程序設(shè)計語言,語句的作用和程序的運行比較抽象。所以在上機實習(xí)中,教會學(xué)生使用軟件中提供的功能,提高觀察分析能力,讓學(xué)生有真切而豐富的直觀感受,可以突破學(xué)習(xí)的難點,糾正原來理解上的偏差,加深對C語言的理解,提高閱讀分析程序和編寫程序的能力。
許多偉大的科學(xué)家、作家都是以具備高度觀察能力著稱的。達爾文曾經(jīng)對自己作了這樣的一個評價:“我既沒有突出的理解能力,也沒有過人的機智;只是在覺察那些稍縱即逝的事物并對其進行精細觀察的能力,我可能是眾人之上。”觀察不僅是增長知識的重要途徑,也是智力發(fā)展的重要基礎(chǔ)。具有敏銳、深刻觀察能力的人,對事物看得全面,能迅速抓住事物的重要特征和本質(zhì)。
在C語言上機過程中,應(yīng)培養(yǎng)學(xué)生做到:1)有目的觀察,每次上機實習(xí)時,做好實習(xí)計劃,確定實習(xí)內(nèi)容,切忌觀察目的盲目隨意;2)抓住重點觀察,切忌“眉毛胡子一把抓”,不分主次,如觀察循環(huán)結(jié)構(gòu)的程序,循環(huán)結(jié)構(gòu)的執(zhí)行過程和循環(huán)體語句就是觀察的重點;3)耐心觀察,在觀察過程中,要邊觀察、邊思考,不放過每一個細小的變化,只有處處留心,善于觀察思考,才能做出合理的判斷,正確理解課本知識。
1)Watch窗口的使用。它可要將觀察的變量、表達式等加到Watch窗口中,在程序運行的過程中動態(tài)地顯示出變量或表達式的值,對于分析程序的執(zhí)行過程和程序結(jié)果都非常有用。
2)斷點管理。在程序中設(shè)置斷點是調(diào)試程序的很好手段,在懷疑有問題的地方設(shè)置斷點,可使程序一運行到斷點處就停下來,再用其他調(diào)試手段觀察變量、內(nèi)存等的變化,可以做到快速錯誤定位。
3)單步執(zhí)行功能。學(xué)生在學(xué)習(xí)C語言的過程中,往往不能正確判斷程序的執(zhí)行過程,尤其是對多分枝程序和循環(huán)程序的執(zhí)行過程非常模糊,這一功能將程序的執(zhí)行過程直觀地顯示出來,讓學(xué)生一目了然地觀察其執(zhí)行順序,對學(xué)生理清思路非常有用。
C語言之所以難學(xué),在于它的學(xué)科綜合性強。在教學(xué)過程中,應(yīng)該積極去引導(dǎo)學(xué)生將所學(xué)到的經(jīng)驗遷移,做到觸類旁通,實現(xiàn)遷移式學(xué)習(xí)。
C語言作為一門結(jié)構(gòu)化程序設(shè)計語言,與其他高級語言比較在數(shù)據(jù)類型的定義、程序流程控制、函數(shù)、(過程)定義等方面有許多相似的地方。在C語言學(xué)習(xí)中,可以借鑒其他程序設(shè)計語言的知識來理解,便于學(xué)生掌握C語言要點。
1)結(jié)構(gòu)化程序設(shè)計。C語言充分體現(xiàn)了結(jié)構(gòu)化程序設(shè)計的特點,在程序流程語句(順序、循環(huán)、分支)的功能方面與其他語言是一致的。
2)數(shù)據(jù)類型的定義與應(yīng)用。C語言中數(shù)據(jù)類型(如整形、實型、字符、數(shù)組、指針、文件等)及其相應(yīng)的標(biāo)準(zhǔn)函數(shù),與其他高級語言比較,在一定程度上是類似的。C語言中提供的結(jié)構(gòu)體數(shù)據(jù)類型,與數(shù)據(jù)庫中的記錄具有類似的特點。
3)函數(shù)。在函數(shù)的定義與調(diào)用、參數(shù)的傳遞,變量的作用域等方面,有許多相似之處。
數(shù)學(xué)對學(xué)習(xí)C語言的幫助體現(xiàn)在數(shù)據(jù)的運用和程序設(shè)計上。
1)語言的相似性,如運算符都具有優(yōu)先性,表達式求值規(guī)則,函數(shù)的作用,解決問題時都需要數(shù)據(jù)和運算等方面,有很多相似之處。
2)思維的相似性。學(xué)生現(xiàn)在接觸的程序設(shè)計體,多數(shù)是解決數(shù)學(xué)問題,對很多問題而言,只要找出數(shù)學(xué)上的解決思路,把它用C語言中的語句表示出來,再加上程序流程控制,就可以正確地編寫程序。
英語對學(xué)習(xí)C語言的幫助則體現(xiàn)在語言的學(xué)習(xí)和程序的調(diào)試上。
1)有助于記憶。如C語言中的關(guān)鍵字、函數(shù)名等都是由相應(yīng)的英文單詞表示,英語知識扎實的學(xué)生學(xué)得快,記得快,編程時語法錯誤少,閱讀程序能力高。
2)有助于編寫具有良好風(fēng)格的程序。如程序中變量的定義要盡量做到見名知義,如成績可定義為score,價格可定義為price……這樣編寫的好處是閱讀程序時很容易理解變量的作用,對提高程序的可讀性非常重要。
3)有助于提高實習(xí)效率。編譯、調(diào)試程序時,系統(tǒng)得出錯信息,幫助信息大都以英文形式顯示,英語好的學(xué)生能較好地分析并應(yīng)用這些信息,準(zhǔn)確而快速地完成程序的調(diào)試。
各學(xué)科知識融會貫通的遷移應(yīng)用,能使學(xué)生較快地理解C語言的各個知識點,應(yīng)用時更加得心應(yīng)手。
最后還有一點要提醒大家,就是培養(yǎng)良好的編程格式的習(xí)慣,如縮進格式、命名原則、大括號的位置及注釋等,這也是學(xué)好C語言的基本因素??勺x性在C語言編程中也占有很重要的地位,好的編程風(fēng)格可以讓人一目了然,在短的時間內(nèi)看清程序的結(jié)構(gòu)和設(shè)計的思路。這樣可以大提高代碼的可讀性、程序的可移植性和可維護性。
總之,在C語言的教學(xué)過程中,要重視對學(xué)生進行學(xué)習(xí)方法的指導(dǎo),既要發(fā)揮教師的主導(dǎo)作用,又要全面提高學(xué)生的積極性和學(xué)習(xí)興趣,最終提高學(xué)生的編程能力及創(chuàng)新能力。