资源描述:
《函式精品课件本章提要》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章函式1本章提要6-1認識函式6-2傳遞參數6-3函式傳回值6-4行內函式6-5巨集6-6C++標準函式庫6-7函式多載(Overloading)6-8綜合演練26-1認識函式隨著程式越寫越大,main()函式的內容也越來越複雜,當我們在寫較長的程式時,可能會發現程式中有許多段功能相同的敘述會重複出現,而且由於程式的需求,這些程式碼無法被省略,只好重複一寫再寫。本章所要介紹的函式,讓我們能以更簡便的方式,取代會重複用到的一段程式碼,提昇寫作程式的效率,也讓程式的功能模組化。3使用函式的好處所謂函式(function)就是一組敘述的集合,並且以一個函式名稱來
2、代表此敘述集合。如果這一組敘述代表一項經常用到的功能,我們每次要用到這組敘述時,只要寫下函式的名稱,就是告訴編譯器我們要執行這項功能。舉例來說,如果程式前前後後要計算階乘多次,且不是連續計算,因此不適合用迴圈,這時就變成要讓計算階乘的敘述在main()函式中出現多次:4使用函式的好處5使用函式的好處但如果我們將計算階乘的敘述獨立出來寫成一個函式,以後程式中計算階乘時,只要呼叫這個函式來進行計算即可,不必每次都要重寫計算階乘的一整段迴圈敘述:(如下頁)如此一來,計算階乘的動作在main()函式中只需以一行簡單的敘述代替即可,大幅省下撰寫重複程式的時間。如果函式的
3、內容愈複雜,也代表節省下來的時間更多。6使用函式的好處7使用函式的好處簡單的說,使用函式的好處包括:將具有特定功能的敘述獨立成函式,可提高程式的可讀性。將程式模組化,讓程式碼可重複使用,提升寫程式的效率。將程式分解成函式,發生錯誤時,可以很容易找出問題在哪一個函式,提高除錯的效率。8函式的定義函式和變數一樣,在使用前必須先定義。定義函式就是定義函式的資料型別、呼叫(call)函式(程式中使用函式的動作就稱為呼叫函式)時所需的參數、以及函式所要執行的動作(敘述):9函式的定義型別:函式和變數一樣都有型別,不過函式的型別並不是函式儲存的資料類型,而是函式傳回值的資
4、料類型。函式處理完工作後,可以將處理的結果以傳回值的方式傳回給呼叫它的敘述,讓程式可據以做進一步的處理。要將資料傳回,需使用return敘述,例如“return0;”表示傳回0,若在return敘述後放變數或運算式,就表示傳回變數值或運算式的結果。函式也可以沒有傳回值,此時需將函式的型別宣告為void。函式名稱:函式的命名規則和變數相同,且不可與變數名稱重複。10函式的定義參數:參數就像數學公式中的變數一樣,同一個公式以不同變數值代入計算,即可得到不同的結果。參數就是函式的變數,每次以不同的參數值呼叫函式,即可得到不同的結果。當然我們也可設計沒有參數的函式。此
5、處所列的參數名稱,是在函式中用來代表參數的變數名稱,呼叫函式時,可使用變數、運算式、常數來呼叫。函式本體:大括號的部份就稱為函式本體(functionbody),在大括號中可放入任何要執行的敘述。11函式本體在函式本體中我們可放入希望該函式執行的任何動作,在此先舉個簡單的例子:若程式每處理一段事情,就要用嗶聲提醒使用者,我們可將發出嗶聲的動作獨立成一個函式:12函式本體1.這個函式只是單純發出嗶聲,所以不需有傳回值,因此函式的型別為void。2.函式沒有任何參數,在函式名稱後的括號保持空白。3.函式本體只有一行敘述,就是由cout輸出工作完成的訊息,並以字元'
6、a'使電腦發出嗶聲。將這個函式加到程式中,我們就可在main()函式中每處理某件工作告一段落時,呼叫beep()函式使電腦發出嗶聲,呼叫的方式就是函式名稱();,請見以下的範例。13函式本體14函式本體15函式本體1.第4~7行就是先定義自訂函式的內容,以免稍後在main()函式中呼叫函式的敘述,會讓編譯器發出找不到識別字的錯誤訊息。2.第13、17行的for迴圈都緊跟著一個沒有任何運算式的空敘述(也就是只有一個分號的敘述),但for迴圈本身的條件運算式及控制運算式仍要執行,所以這兩個迴圈等於讓電腦做了數千萬次的加法運算(i++)及比較運算(i<...),我
7、們用此方式來模擬程式正在執行某項工作。16函式本體3.第15、19行的敘述就是呼叫beep()函式。此時執行流程會先跳進beep()函式中,待beep()函式的工作執行完畢,才返回main()函式中的下一行敘述繼續執行。17函式本體18函式本體程式每次執行完指定的工作後,就會呼叫beep()函式,所以我們會在螢幕上看到工作完成的訊息,同時也會聽到電腦發出的嗶聲。透過函式呼叫的方式,我們可用較簡單的"beep()"取代一串"cout<<..."敘述,而且main()函式的內容也更簡捷,閱讀起來更容易瞭解其意思。19函式的宣告如果不想將函式的定義寫在main()函
8、式之前,或是函式是定義在其它的程式檔等