1 / 35

| 07  函數

| 07  函數. 7.1 關於函數. | main(). int main(void) { // 程式內容 }. |  .  標準函數 >>. 7.1 關於函數. | 標準函數. #include <stdio.h> #include <stdlib.h>. << main().  函數使用步驟 >>. 7.2 使用函數. | 函數使用步驟. 7.2.1 宣告定義與呼叫. 原型宣告: 如同變數宣告,在定義函數之前,必須預先宣告函數的原型,所謂的原型,是函數的名稱、引數以及回傳值的型態等相關特性,它的目的是告知編譯器檔案中存在此函數。

jaxon
Download Presentation

| 07  函數

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. |07 函數

  2. 7.1 關於函數 |main() int main(void) { //程式內容 } |    標準函數 >>

  3. 7.1 關於函數 |標準函數 #include <stdio.h> #include <stdlib.h> << main()  函數使用步驟 >>

  4. 7.2 使用函數 |函數使用步驟 7.2.1 宣告定義與呼叫 • 原型宣告:如同變數宣告,在定義函數之前,必須預先宣告函數的原型,所謂的原型,是函數的名稱、引數以及回傳值的型態等相關特性,它的目的是告知編譯器檔案中存在此函數。 • 2. 內容定義:根據原型,定義函數的內容程式碼,建構所需的功能。 • 3. 呼叫:需要執行函數功能時,直接透過名稱的引用,對其進行呼叫。 << 標準函數    函數原型宣告 >>

  5. 7.2 使用函數 |函數原型宣告 7.2.1 宣告定義與呼叫 void dosome(void); • dosome 是函式的名稱,根據所要實作的功能為其命名,方便理解函數的功能以及往後程式的呼叫。 • void 是一個關鍵字,第一個 void 表示這個函數執行完畢將不回傳任何值。若是想要回傳整數,就必須以 int 取代 void ,其它型態的回傳值類推。 • 小括弧是必要的,用來承接特定型態的引數, void表示沒有傳入任何引數。 • 「;」 表示結束宣告。 4 3 2 1 << 函數使用步驟    函數定義與呼叫 >>

  6. 7.2 使用函數 |函數定義與呼叫 7.2.1 宣告定義與呼叫 void dosome(void) { … /*函數功能程式碼*/ } • 函數的程式區塊範圍,其中包含定義函數功能所需的程式敘述。 dosome();  dosome() 是函式的名稱,名稱後方必須加上一個小括弧,然後補上一個 「;」 構成完整的程式敘述。完成函數呼叫 2 1 << 函數原型宣告    範例:簡單函數示範 >>

  7. 7.2 使用函數 |範例:簡單函數示範 7.2.1 宣告定義與呼叫 3 Hello,歡迎學習 C 語言 2 1 << 函數定義與呼叫    範例:簡單函數示範 >>

  8. 7.2 使用函數 |範例:簡單函數示範 7.2.1 宣告定義與呼叫 << 範例:簡單函數示範    範例:簡單函數示範 >>

  9. 7.2 使用函數 |範例:簡單函數示範 7.2.1 宣告定義與呼叫 6 5 4 Hello,歡迎學習 C 語言 Hello,歡迎學習 C 語言 3 2 1 << 範例:簡單函數示範    函數參數 >>

  10. 7.2 使用函數 |函數參數 7.2.2 函數的參數 void dosome(type1,type2,…) ; • 小括弧定義承接外部傳入參數的引數型態名稱。 void dosome(type1 arg1,type2 arg2, …){ 函式 dosome 區塊程式碼 } • 定義函數必須指定每一個引數的變數名稱。 • 呼叫此種函數的程式碼,須根據定義傳入對應型態的參數,在函數中直接透過引數名稱便能將其取出。 2 1 << 範例:簡單函數示範    函數的參數語法格式 >>

  11. 7.2 使用函數 |函數的參數語法格式 7.2.2 函數的參數 << 函數參數    範例:函數的引數傳遞示範 >>

  12. 7.2 使用函數 |範例:函數的引數傳遞示範 7.2.2 函數的參數 輸入小時數: 6 小時等於 360 分鐘 6 6 6 5 4 3 2 1 << 函數的參數語法格式    範例:函數的引數傳遞示範 >>

  13. 7.2 使用函數 |範例:函數的引數傳遞示範 7.2.2 函數的參數 << 範例:函數的引數傳遞示範    範例:多引數函數示範 >>

  14. 7.2 使用函數 |範例:多引數函數示範 7.2.2 函數的參數 12 請輸入長與寬 6 15 11 10 9 8 6 15 7 6 5 4 3 長 6 cm,寬 15 cm 的矩形面積等於 90 平方公分 2 1 << 範例:函數的引數傳遞示範    函數回傳值語法定義 >>

  15. 7.2 使用函數 |函數回傳值語法定義 7.2.3 函數回傳值 int dosome(type1,type2,…) ; int dosome(type1 arg1,type2 arg2, …){ … return value ; //回傳 value } x= dosome(arg , …) ; value 2 1 << 範例:多引數函數示範    範例:函數回傳值示範 >>

  16. 7.2 使用函數 |範例:函數回傳值示範 7.2.3 函數回傳值 請輸入長與寬 6 15 8 6 15 7 6 6 15 5 90 4 3 2 長 6 cm,寬 15 cm 的矩形面積等於 90 平方公分 1 << 函數回傳值語法定義    範例:函數回傳值示範 >>

  17. 7.2 使用函數 |範例:函數回傳值示範 7.2.3 函數回傳值 << 範例:函數回傳值示範    函數區塊的有效區域 >>

  18. 7.3 函數與有效區域 |函數區塊的有效區域 7.3.1 變數與宣告範圍 << 範例:函數回傳值示範    範例:函數範圍 >>

  19. 7.3 函數與有效區域 |範例:函數範圍 7.3.1 變數與宣告範圍 100 100 3 2 1 << 函數區塊的有效區域    範例:函數範圍 >>

  20. 7.3 函數與有效區域 |範例:函數範圍 7.3.1 變數與宣告範圍 << 範例:函數範圍    變數範圍錯誤 >>

  21. 7.3 函數與有效區域 |變數範圍錯誤 7.3.1 變數與宣告範圍 << 範例:函數範圍    範例:函數引數範圍 >>

  22. 7.3 函數與有效區域 |範例:函數引數範圍 7.3.1 變數與宣告範圍 3 2 1 << 變數範圍錯誤    範例:全域變數 >>

  23. 7.3 函數與有效區域 |範例:全域變數 7.3.2 全域變數 a+b=300 a-b=100 10 9 8 7 6 200+100 5 300 4 3 200-100 2 300 1 << 範例:函數引數範圍    範例:全域變數與區域變數 >>

  24. 7.3 函數與有效區域 |範例:全域變數與區域變數 7.3.2 全域變數 6000 8000 123 6000 8000 123 3 2 1 << 範例:全域變數    範例:靜態變數 >>

  25. 7.3 函數與有效區域 |範例:靜態變數 7.3.3 靜態變數 100 100+100 => 200 100 100+100 => 200 dox(): a=100 , doy(): a=100 5 4 3 2 1 << 範例:全域變數與區域變數    範例:靜態變數 >>

  26. 7.3 函數與有效區域 |範例:靜態變數 7.3.3 靜態變數 200 200+100 => 300 100 100+100 => 200 dox(): a=100 , dox(): a=200 , doy(): a=100 doy(): a=100 5 4 3 2 1 << 範例:靜態變數    範例:靜態變數 >>

  27. 7.3 函數與有效區域 |範例:靜態變數 7.3.3 靜態變數 300 300+100 => 400 100 100+100 => 200 dox(): a=100 , dox(): a=200 , dox(): a=300 , doy(): a=100 doy(): a=100 doy(): a=100 5 4 3 2 1 << 範例:靜態變數    範例:傳值引數 >>

  28. 7.4 函數的參數傳遞方式 |範例:傳值引數 100 100 6 傳入 doadd() 之前:100 doadd() 的運算結果:101 傳入 doadd() 之後:100 5 100+1 => 101 4 3 2 1 << 範例:靜態變數    範例:傳值引數 >>

  29. 7.4 函數的參數傳遞方式 |範例:傳值引數 << 範例:傳值引數    範例:簡單的遞迴運算 >>

  30. 7.5 遞迴 |範例:簡單的遞迴運算 recursion(1) ... recursion(2) ... recursion(3) ... recursion(4) ... recursion(5) ... recursion(6) ... recursion(7) ... recursion(8) ... recursion(9) ... recursion(10) ... << 範例:傳值引數    範例:簡單的遞迴運算 >>

  31. 7.5 遞迴 |範例:簡單的遞迴運算 << 範例:簡單的遞迴運算    範例:簡單的遞迴運算 >>

  32. 7.5 遞迴 |範例:簡單的遞迴運算 recursion(1) ... ... recursion(10) ... 完成第 10 次的函數執行 完成第 9 次的函數執行 完成第 8 次的函數執行 完成第 7 次的函數執行 完成第 6 次的函數執行 完成第 5 次的函數執行 完成第 4 次的函數執行 完成第 3 次的函數執行 完成第 2 次的函數執行 完成第 1 次的函數執行 << 範例:簡單的遞迴運算    範例:簡單的遞迴運算 >>

  33. 7.5 遞迴 |範例:簡單的遞迴運算 << 範例:簡單的遞迴運算    範例:階層運算 >>

  34. 7.5 遞迴 |範例:階層運算 請輸入大於 3 的整數:8 1x2x3x...8 = 40320 << 範例:簡單的遞迴運算    範例:階層運算 >>

  35. 7.5 遞迴 |範例:階層運算 << 範例:階層運算    |

More Related