- C語(yǔ)言中遞歸函數(shù)的教學(xué)方法 推薦度:
- 相關(guān)推薦
C語(yǔ)言函數(shù)教學(xué)方法
導(dǎo)語(yǔ):針對(duì)C語(yǔ)言中函數(shù)的重要性及我校學(xué)生在學(xué)習(xí)過(guò)程中對(duì)函數(shù)的掌握情況,總結(jié)出一套實(shí)用的c語(yǔ)言函數(shù)教學(xué)方法。下面就由小編為大家介紹一下C語(yǔ)言函數(shù)教學(xué)方法,歡迎大家閱讀!
1序言
《C程序設(shè)計(jì)基礎(chǔ)》是我校工科非計(jì)算機(jī)專(zhuān)業(yè)的一門(mén)必修課程,目的是使學(xué)生掌握程序設(shè)計(jì)的基本方法,并形成正確的程序設(shè)計(jì)思想,培養(yǎng)學(xué)生用計(jì)算機(jī)解決本專(zhuān)業(yè)問(wèn)題的能力,為后續(xù)課程的學(xué)習(xí)打下良好的基礎(chǔ)。
但在教學(xué)過(guò)程中發(fā)現(xiàn),學(xué)生在學(xué)習(xí)函數(shù)這部分的知識(shí)時(shí)非常吃力,很多學(xué)生對(duì)此掌握的并不好,不能靈活的運(yùn)用函數(shù)進(jìn)行程序設(shè)計(jì),主要的原因是所用教學(xué)方法效果較差。針對(duì)此問(wèn)題,筆者在深入研究C語(yǔ)言函數(shù)教學(xué)方法的基礎(chǔ)上,通過(guò)詳細(xì)分析教學(xué)過(guò)程中學(xué)生的表現(xiàn),并積極與學(xué)生溝通,總結(jié)出適合我校學(xué)生的函數(shù)教學(xué)方法,首先通過(guò)生活中常見(jiàn)的例子介紹函數(shù)的概念,并精心設(shè)計(jì)函數(shù)的引入問(wèn)題,以此來(lái)闡述函數(shù)編程思想,然后重點(diǎn)講解函數(shù)的定義和調(diào)用方法,并通過(guò)實(shí)例強(qiáng)化學(xué)生函數(shù)設(shè)計(jì)的方法,最后對(duì)函數(shù)的設(shè)計(jì)方法進(jìn)行總結(jié)。
2函數(shù)思想的引入
數(shù)學(xué)中的函數(shù)與C語(yǔ)言中的函數(shù)有什么區(qū)別?數(shù)學(xué)中的函數(shù)側(cè)重于自變量和因變量之間的映射關(guān)系,而C語(yǔ)言中的函數(shù)主要側(cè)重于功能的實(shí)現(xiàn)。
以計(jì)算13!為例,通常的計(jì)算方法是13×12×……×4×3×2×1=6227020800,但也會(huì)發(fā)現(xiàn)計(jì)算量非常大。熟悉計(jì)算器的學(xué)生也知道,計(jì)算器上有一個(gè)“n!”按鈕,我們只需按“13”,再按“n!”,就可以得到結(jié)果6227020800。兩種計(jì)算方法中筆者更喜歡后者,因?yàn)橛?jì)算器中“n!”按鈕可以協(xié)助完成階乘計(jì)算,換言之,“n!”按鈕可以完成計(jì)算階乘的功能,與c語(yǔ)言中函數(shù)的概念非常接近,因此“n!”按鈕就是將求階乘的函數(shù)封裝起來(lái)了,我們甚至可以說(shuō)計(jì)算器就是將若干個(gè)函數(shù)封裝起來(lái)的一個(gè)設(shè)備。所以通過(guò)計(jì)算器來(lái)理解C語(yǔ)言中函數(shù)的概念就比較容易了。有了函數(shù),就可以多次使用它,就如同有了“n!”,不僅可以計(jì)算13!,也可以15!,17!等等。C語(yǔ)言中的函數(shù)就是功能獨(dú)立的一段代碼,能夠避免重復(fù)代碼,降低出錯(cuò)率,提高程序的可讀性。函數(shù)機(jī)制的出現(xiàn),也使多人共同開(kāi)發(fā)大規(guī)模的程序成為可能。
進(jìn)而引導(dǎo)學(xué)生回顧教學(xué)中以前學(xué)過(guò)的主函數(shù)和C語(yǔ)言中的一些常見(jiàn)的庫(kù)函數(shù)(如sqrt()),總結(jié)這些函數(shù)的共同點(diǎn),標(biāo)識(shí)符后面都有一個(gè)括號(hào),并以一到兩個(gè)子函數(shù)為例,講解、編譯、運(yùn)行,幫助學(xué)生更好地認(rèn)識(shí)函數(shù)。
在學(xué)生對(duì)函數(shù)有了基本的認(rèn)識(shí)之后,給學(xué)生說(shuō)明并非所有的函數(shù)都是現(xiàn)成的,有很多是需要用戶(hù)自定義編寫(xiě)的――用戶(hù)自定義函數(shù)。在教學(xué)中,筆者認(rèn)為函數(shù)的分類(lèi)最重要的標(biāo)準(zhǔn)就是函數(shù)的使用方式,根據(jù)函數(shù)的使用方式可以將函數(shù)分為數(shù)值計(jì)算函數(shù)(有返回值,類(lèi)型不是void)和任務(wù)執(zhí)行函數(shù)(無(wú)返回值,類(lèi)型為void),數(shù)值計(jì)算函數(shù)因?yàn)橛薪Y(jié)果,使用時(shí)一般當(dāng)做表達(dá)式的一部分或者函數(shù)參數(shù),任務(wù)執(zhí)行函數(shù)由于沒(méi)有結(jié)果,使用時(shí)一般獨(dú)立成一條語(yǔ)句。
3函數(shù)的定義和調(diào)用
3.1采用要素提取法完成函數(shù)定義
C語(yǔ)言函數(shù)設(shè)計(jì)主要圍繞函數(shù)類(lèi)型,函數(shù)名,函數(shù)形式參數(shù),函數(shù)返回值四個(gè)要素展開(kāi)。
對(duì)于函數(shù)要素的教學(xué)部分,重點(diǎn)講解函數(shù)的定義與調(diào)用。函數(shù)定義的一般形式為:
類(lèi)型說(shuō)明符函數(shù)名(形式參數(shù)表)
{聲明部分;
語(yǔ)句部分;
return(返回值);}
對(duì)函數(shù)定義部分還需要掌握的是:(1)類(lèi)型標(biāo)識(shí)符:函數(shù)返回值類(lèi)型,即結(jié)果類(lèi)型。(2)函數(shù)名:合法標(biāo)識(shí)符是函數(shù)的唯一標(biāo)識(shí)。(3)形式參數(shù)表:由類(lèi)型和變量名組成。(4)return(返回值):返回結(jié)果。
函數(shù)定義中的四個(gè)要素的提取方法可以參照用計(jì)算器求13!來(lái)說(shuō)明,(1)類(lèi)型說(shuō)明符。13!的結(jié)果是6227020800,類(lèi)型說(shuō)明符就是根據(jù)結(jié)果的類(lèi)型來(lái)確定,為int。(2)函數(shù)名。函數(shù)名是函數(shù)的唯一標(biāo)識(shí),在用計(jì)算器求13!的過(guò)程中,函數(shù)名就相當(dāng)于“n!”按鈕,這里用factorial來(lái)表示。(3)形式參數(shù)表。當(dāng)計(jì)算13!時(shí),形式參數(shù)表就是用來(lái)接收13的,假如求17!,那形式參數(shù)表就用來(lái)接收17,這里可以得出參數(shù)數(shù)量為一個(gè),類(lèi)型為int,因此用int x來(lái)定義形式參數(shù)。(4)返回值。13!的結(jié)果是6227020800,返回值就是6227020800。
以求階乘為例,定義函數(shù):
intfactorial(int x)
{int s=1,i;
for(i=1;i<=x;i++)
{s=s*i;}
return s;}
3.2函數(shù)調(diào)用及虛實(shí)結(jié)合的過(guò)程
由上述函數(shù)定義可以看出,函數(shù)定義并沒(méi)有具體的結(jié)果,原因在于x的值未定,就如同在計(jì)算器上只按下“n!”沒(méi)有任何意義一樣。因此,函數(shù)的定義只是實(shí)現(xiàn)了函數(shù)的功能,而最終的目的在于使用函數(shù),即函數(shù)的調(diào)用。
在函數(shù)的調(diào)用過(guò)程中,還需要重點(diǎn)講解實(shí)際參數(shù)和形式參數(shù)的區(qū)別,以及整個(gè)虛實(shí)結(jié)合的過(guò)程。在使用函數(shù)時(shí)后面括號(hào)中是具體的值,即實(shí)際參數(shù)。函數(shù)定義中括號(hào)中的參數(shù)是形式參數(shù),沒(méi)有具體的值。在發(fā)生函數(shù)調(diào)用的時(shí)候,形式參數(shù)用來(lái)接收實(shí)際參數(shù)的值。如:
voidmain()
{int a=13,c;
c=factorial(a);
printf(“%d的階乘為:%d/n”,a,c);}
實(shí)際參數(shù)是a,有確定的值為13,形式參數(shù)為x,用來(lái)接收a的值。參數(shù)傳遞過(guò)程如圖2所示:
在函數(shù)定義和調(diào)用中需要重點(diǎn)強(qiáng)調(diào)的地方:
1)函數(shù)名是函數(shù)的唯一標(biāo)識(shí)。2)函數(shù)必須先定義后使用。3)如果函數(shù)為非void類(lèi)型,函數(shù)中必須有return語(yǔ)句。4)普通變量傳遞時(shí)為單向傳遞,即由實(shí)際參數(shù)傳向形式參數(shù)。
【C語(yǔ)言函數(shù)教學(xué)方法】相關(guān)文章:
C語(yǔ)言中遞歸函數(shù)的教學(xué)方法05-31
淺談C語(yǔ)言函數(shù)03-28
C語(yǔ)言函數(shù)的含義06-15
什么是C語(yǔ)言函數(shù)01-22
C語(yǔ)言函數(shù)的定義07-13
C語(yǔ)言函數(shù)的聲明以及函數(shù)原型04-20
C語(yǔ)言的指針型函數(shù)02-20