C_C++程序設(shè)計李云峰 第4章 利用函數(shù)編程

C_C++程序設(shè)計李云峰 第4章 利用函數(shù)編程

ID:40238390

大?。?.42 MB

頁數(shù):75頁

時間:2019-07-28

C_C++程序設(shè)計李云峰 第4章 利用函數(shù)編程_第1頁
C_C++程序設(shè)計李云峰 第4章 利用函數(shù)編程_第2頁
C_C++程序設(shè)計李云峰 第4章 利用函數(shù)編程_第3頁
C_C++程序設(shè)計李云峰 第4章 利用函數(shù)編程_第4頁
C_C++程序設(shè)計李云峰 第4章 利用函數(shù)編程_第5頁
資源描述:

《C_C++程序設(shè)計李云峰 第4章 利用函數(shù)編程》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、第4章利用函數(shù)編程問題原由在C/C++語言中,怎樣定義函數(shù)?怎樣調(diào)用函數(shù)?怎樣實現(xiàn)函數(shù)中參數(shù)的傳遞?怎樣實現(xiàn)各函數(shù)間的數(shù)據(jù)共享?這就是本章所要討論的問題。函數(shù)的基本概念、函數(shù)的調(diào)用方式、函數(shù)的參數(shù)傳遞、C語言對模塊化編程的支持。教學(xué)重點能力要求掌握:函數(shù)的定義調(diào)用方法。了解:函數(shù)參數(shù)的傳遞機制。熟悉:函數(shù)調(diào)用方式?!?.5案例程序設(shè)計§4.4函數(shù)的定義§4.3函數(shù)的嵌套與遞歸§4.2函數(shù)調(diào)用§4.1函數(shù)的定義本章介紹的知識內(nèi)容第4章利用函數(shù)編程4.1.1函數(shù)的引出【問題描述4-1】在這之前的程序設(shè)計中,我們

2、多次使用系統(tǒng)提供的函數(shù),如使用printf()實現(xiàn)數(shù)據(jù)的輸出,用sqrt()進行開方運算等。這些函數(shù)功能單一,使用方便,有效地減少了程序設(shè)計的工作量。但在程序設(shè)計中,經(jīng)常遇到多次運用同一算法的程序?qū)崿F(xiàn)問題,此時需要編寫實現(xiàn)該算法的自定義函數(shù),通過反復(fù)調(diào)用來實現(xiàn)最終目的,這不僅能避免程序重復(fù)編碼,而且使得程序結(jié)構(gòu)清晰,實現(xiàn)功能共享。現(xiàn)討論求以下組合數(shù)的編程問題。4.1.1函數(shù)的引出[問題分析]求該組合數(shù)實際上就是計算各個階乘,即把轉(zhuǎn)換為求3個階乘(n!、m!、(n-m)!)。計算階乘的公式為k!=1×2×3×

3、…×k,按照我們已掌握的方法,計算階乘可以用循環(huán)程序來實現(xiàn),因此,可編寫3個循環(huán)程序分別計算出n!、m!、(n-m)!,然后再按公式進行除法運算即可得到結(jié)果。算法描述如下:Stepl輸入m和n。Step2計算n!。Step3計算m!。Step4計算(n-m)!。Step5計算n!/(m!*(n—m)!)。Step6輸出計算結(jié)果。4.1.1函數(shù)的引出[問題點撥]上面的程序中,有三次計算階乘運算。事實上,除了階乘的次數(shù)不同外,代碼是一樣的。因此,我們可以設(shè)計一個求階乘的通用程序模塊(自定義函數(shù))。floatfa

4、ctorial(intx)//定義函數(shù),函數(shù)的功能是求x的階乘{inti;floatf=1;for(i=1;i<=x;i++)f=f*i;return(f);//返回計算結(jié)果}4.1.1函數(shù)的引出【實例4-1】利用函數(shù)調(diào)用求組合運算的程序代碼如下:#includefloatfactorial(intx)voidmain(){intm,n;floatc,c1,c2,c3;printf(“Pleaseinputm,n:”);scanf(“%d%d”,&m,&n);c1=factorial(n)

5、;c2=factorial(m);c3=factorial(n-m);c=cl/(c2*c3);printf(“c=n!/m!*(n-m)!)=%.2f”,c);}4.1.1函數(shù)的引出floatfactorial(intx)//函數(shù)定義說明,求x的階乘{inti;floatf=1;for(i=1;i<=x;i++)f=f*i;return(f);//返回計算結(jié)果}我們把這種程序設(shè)計稱為模塊化程序設(shè)計,也是結(jié)構(gòu)化程序設(shè)計的一條重要原則。由于C語言采用了函數(shù)模塊化的結(jié)構(gòu),因而易于實現(xiàn)結(jié)構(gòu)化程序設(shè)計,使得程序

6、層次結(jié)構(gòu)清晰,便于程序的編寫、閱讀、調(diào)試,這就是采用函數(shù)模塊化(自定義函數(shù))的目的意義。4.1.2函數(shù)的定義函數(shù)定義,就是指定函數(shù)的名字、函數(shù)實現(xiàn)的功能、函數(shù)參數(shù)的個數(shù)與類型、函數(shù)返回值類型等。在C語言中,根據(jù)函數(shù)中是否存在參數(shù),函數(shù)的定義形式分為三種。1.有參函數(shù)的定義格式有參函數(shù)的定義格式是ANSIC的標準格式,稱為現(xiàn)代格式。定義有參函數(shù)的語句格式一般為:[<類型標識符>]<函數(shù)名>([形參表]){函數(shù)體return();}4.1.2函數(shù)的定義【格式說明】<類型標識符>是函數(shù)返回類型,用來說明該函數(shù)的類

7、型,它可以是基本數(shù)據(jù)類型,也可以是數(shù)組、指針、結(jié)構(gòu)體、對象等類型。<函數(shù)名>是由程序員定義的標識,命名規(guī)則同變量名一樣,但不能與系統(tǒng)關(guān)鍵字同名?!昂瘮?shù)體”是用一對花括號{}括起來的語句,右括號后不帶分號。[形參表]中的參數(shù)稱為形式參數(shù),簡稱形參。4.1.2函數(shù)的定義2.無參函數(shù)的定義格式無參函數(shù)的定義格式是傳統(tǒng)格式。定義無參函數(shù)的語句格式有以下兩種形式:或[<類型標識符>]<函數(shù)名>(void){函數(shù)體return語句}[<類型標識符>]<函數(shù)名>(){函數(shù)體return語句}【格式說明】與有參函數(shù)的定義格

8、式相比,函數(shù)名后面的括號中沒有參數(shù),是空的,即函數(shù)名(void)與函數(shù)名()是一樣的涵義。4.1.2函數(shù)的定義【實例4-2】利用函數(shù)調(diào)用,輸出以下字符********************Howdoyoudo!********************程序代碼如下:#includeintmain(){voidprint_star();//聲明print_star函數(shù)voidprint_messa

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。