摘要:C語言是由若干個函數(shù)組成的,函數(shù)也是C語言程序設計的重點和難點。本文從教學實踐出發(fā),采用實例引導和類比相結(jié)合的方法,從數(shù)學角度入手設計了一種C語言函數(shù)教學模式。實踐證明,這一模式在教學中取得了較好的效果。
關鍵詞:函數(shù);C語言;教學方法
1、引言
C語言是一門面向過程的編程語言,在實際操作中,函數(shù)在C語言程序中占據(jù)非常重要的地位[1]。在C語言的教學中發(fā)現(xiàn),學生在學習函數(shù)部分知識時非常吃力,很多學生掌握不好,不能靈活的運用函數(shù)進行程序設計,沒有建立“模塊化”編程思想。然而C語言的這種模塊化思想可以將復雜的大任務分解為若干個相對獨立的子任務,這些子任務稱為“模塊化”函數(shù),通過函數(shù)之間的調(diào)用解決實際中的復雜問題[2]。因此,學生只有靈活掌握函數(shù)的運用,才能為以后課程的學習鑒定堅實的基礎。
2、函數(shù)思想的引入
數(shù)學中有很多的公式,我們在解決問題的時候根據(jù)需要直接套用相應的公式就可以很簡單的解決問題。我們以求長方形面積為例,長方形的面積公式為長乘以寬,所以我們只需要知道長方形的長和寬的值是多少就可以非常簡單的計算面積,這個公式與C語言中函數(shù)的概念非常相似,通過數(shù)學公式來理解C語言函數(shù)的概念就比較容易。有了函數(shù)就可以多次使用它,就如同有了長方形面積公式,就可以計算任意邊長的長方形的面積一樣。C語言中的函數(shù)就是功能獨立的一段代碼,能夠避免代碼重復,提高程序的可讀性。
有了前面的講解,再通過編程舉例讓學生更好的理解和認識函數(shù)。例如,我們從數(shù)學庫函數(shù)入手,讓學生編寫程序完成從鍵盤輸入一個正整數(shù),計算這個整形數(shù)的平方根,并進行輸出。計算平方根需要用到數(shù)學庫函數(shù)sqrt(),通過數(shù)學庫函數(shù),總結(jié)函數(shù)基本特點,讓學生初步認識函數(shù)。在學生初步認識函數(shù)后,讓學生知道光依靠系統(tǒng)提供的函數(shù)來解決問題是遠遠不夠的,這就需要我們根據(jù)自己的需要來編寫函數(shù)-用戶自定義函數(shù)。
在編寫函數(shù)時,哪些定義成函數(shù)的參數(shù),哪些定義成函數(shù)的返回值以及如何定義函數(shù)的返回值類型,對于初學者這些部分比較難理解和掌握,我們可以通過學生已經(jīng)掌握的數(shù)學知識,直接從題目上獲得相關信息。
3、函數(shù)的定義和調(diào)用
3.1函數(shù)的定義
C語言函數(shù)設計主要包括返回值類型、函數(shù)名、函數(shù)形式參數(shù)、函數(shù)返回值等要素。
函數(shù)定義的一般格式為:
返回值類型 函數(shù)名(形參列表)
{
變量聲明部分;
語句序列部分;
return(返回值);
}
想要設計一個自定義函數(shù),必須按照函數(shù)定義的格式來定義,還要解決好函數(shù)定義中涉及的四個要素。解決這些問題實際上可以從題目上得到相應的信息:題目中要求解的結(jié)果可以看作函數(shù)的返回值,題目中的已知條件可以作為函數(shù)的參數(shù),函數(shù)名是函數(shù)的唯一標識,需要滿足標識符的命名規(guī)則。
以求長方形的面積(假定長方形的邊長為整形)為例,通過舉例說明如何定義函數(shù)。(1)函數(shù)名。函數(shù)的功能是求面積,為了能見名知義,我們給函數(shù)起一個名字。(2)函數(shù)參數(shù)。我們要實現(xiàn)求長方形的面積,需要知道幾個數(shù)據(jù)才能求出和?知道一個整數(shù)能求面積嗎?所以需要知道這兩個數(shù)據(jù)才能求。這兩個數(shù)據(jù)是什么類型?在題目中已經(jīng)明確說明是整形,因此參數(shù)部分就可以確定了。(3)返回值。函數(shù)中求出的面積就是返回值。(4)返回值類型。根據(jù)返回結(jié)果也就是面積的類型來確定。
通過上述引導,學生在回答完以上問題之后,基本上能編寫出這個函數(shù),最后帶領學生共編寫參考答案,讓學生思考自己編寫的函數(shù)和參考答案有什么不同之處,哪種寫法更好。
函數(shù)定義:
int area(int a, int b)
{ int s;
s=a*b;
return s;
}
3.2 函數(shù)的調(diào)用
如果說函數(shù)的定義如同定義公式,那么函數(shù)的調(diào)用就使用公式。我們知道數(shù)學公式有很多,我們在使用時需要根據(jù)功能去選擇公式,如果用錯了公式,最終的結(jié)果肯定也是錯誤的,因此第一步要選對公式。例如我們要求長方形的面積,那就要用長方形的面積公式----長乘以寬,如果用了別的公式,結(jié)果肯定不對。我們寫程序時可以定義很多個自定義函數(shù),在使用函數(shù)時根據(jù)功能需要通過函數(shù)名字來選擇具體要用的函數(shù)。
在函數(shù)的調(diào)用過程中,還需要重點講解實參和形參的區(qū)別,以及參數(shù)傳遞的過程。在定義函數(shù)時括號中的參數(shù)是形參,在使用函數(shù)時括號中的參數(shù)是實參,實參必須要有具體的值。我們以計算長方形面積為例,函數(shù)調(diào)用:
main()
{
int x=5,y=10,mj;
mj=area(x,y);
printf(“%d\n”,mj);
}
實參是x和y,形參為a和b,在函數(shù)調(diào)用的過程中x的值傳遞給a,實參y的值傳遞給b,這樣形參a和b就有確定值5和10,根據(jù)長方形面積函數(shù)計算出s的值為50,并且把50帶回主調(diào)函數(shù)并賦值給變量mj。
結(jié)束語
C語言教學最終是函數(shù)教學,函數(shù)的編寫和設計在C語言程序設計中具有非常重要的地位。在教學過程中,采用實例引導的教學方法進行教學,重點是通過學生已經(jīng)掌握的數(shù)學公式去類比分析函數(shù)部分的知識,使學生能夠通過老師的引導和啟發(fā)去發(fā)現(xiàn)問題、分析問題和解決問題,從而從本質(zhì)上去理解函數(shù)思想,運用C語言函數(shù)知識去解決實際問題。
參考文獻:
[1]Copper James M, Coldman Susan. Classmoom Teaching Skills [M]. Boston: Houghton Mifflin Company,2002:196
-212.
[2]Papaspyrou Nikolaos S, Stathis Zachos, Teaching Programming through Problem Solving: The Role of the Programming Language[C]//Proceedings of the 2013 Federated Conference on Computer Science and Information Systems,2013:1533-1536.
[3]譚浩強.C程序設計(第四版)[M].北京:清華大學出版社,2010.
[4]李祥林,賈桂霞等.C語言程序設計課程改革與實踐探討[J].甘肅聯(lián)合大學學報(自然科學版),2012(04).
作者簡介:任石、1980、女、講師/碩士研究生、主要研究方向計算機軟件技術,計算機圖形學。