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