Upload
jaxon
View
30
Download
0
Embed Size (px)
DESCRIPTION
| 07 函數. 7.1 關於函數. | main(). int main(void) { // 程式內容 }. | . 標準函數 >>. 7.1 關於函數. | 標準函數. #include #include . >. 7.2 使用函數. | 函數使用步驟. 7.2.1 宣告定義與呼叫. 原型宣告: 如同變數宣告,在定義函數之前,必須預先宣告函數的原型,所謂的原型,是函數的名稱、引數以及回傳值的型態等相關特性,它的目的是告知編譯器檔案中存在此函數。 - PowerPoint PPT Presentation
Citation preview
C 語言入門經典
| 07 函數
C 語言入門經典 標準函數 >> |
| main()7.1 關於函數
int main(void){
// 程式內容}
C 語言入門經典 函數使用步驟 >> << main()
|標準函數
#include <stdio.h>#include <stdlib.h>
7.1 關於函數
C 語言入門經典 函數原型宣告 >> << 標準函數
|函數使用步驟7.2 使用函數
7.2.1 宣告定義與呼叫
1.原型宣告:如同變數宣告,在定義函數之前,必須預先宣告函數的原型,所謂的原型,是函數的名稱、引數以及回傳值的型態等相關特性,它的目的是告知編譯器檔案中存在此函數。
2. 內容定義:根據原型,定義函數的內容程式碼,建構所需的功能。
3. 呼叫:需要執行函數功能時,直接透過名稱的引用,對其進行呼叫。
C 語言入門經典 函數定義與呼叫 >> << 函數使用步驟
|函數原型宣告
void dosome ( void );
• dosome 是函式的名稱,根據所要實作的功能為其命名,方便理解函數的功能以及往後程式的呼叫。
• void 是一個關鍵字,第一個 void 表示這個函數執行完畢將不回傳任何值。若是想要回傳整數,就必須以 int 取代 void ,其它型態的回傳值類推。
• 小括弧是必要的,用來承接特定型態的引數, void 表示沒有傳入任何引數。
• 「 ; 」 表示結束宣告。4
3
2
1
7.2.1 宣告定義與呼叫
7.2 使用函數
C 語言入門經典
2
1
範例:簡單函數示範 >> << 函數原型宣告
|函數定義與呼叫
void dosome ( void ){
… /* 函數功能程式碼 */}函數的程式區塊範圍,其中包含定義函數功能所需的程式敘述。
dosome() ; dosome() 是函式的名稱,名稱後方必須加上一個小括弧,然後補上一個 「 ; 」 構成完整的程式敘述。完成函數呼叫
7.2.1 宣告定義與呼叫
7.2 使用函數
C 語言入門經典
3
2
1
範例 : 簡單函數示範 >> << 函數定義與呼叫
|範例:簡單函數示範7.2.1 宣告定義與呼叫
7.2 使用函數
Hello, 歡迎學習 C 語言
C 語言入門經典 範例:簡單函數示範 >> << 範例:簡單函數示範
|範例:簡單函數示範7.2.1 宣告定義與呼叫
7.2 使用函數
C 語言入門經典
5
4
3
2
1
函數參數 >> << 範例:簡單函數示範
6
Hello, 歡迎學習 C 語言Hello, 歡迎學習 C 語言
7.2.1 宣告定義與呼叫
7.2 使用函數
|範例:簡單函數示範
C 語言入門經典
2
1
函數的參數語法格式 >> << 範例:簡單函數示範
|函數參數7.2.2 函數的參數
7.2 使用函數
void dosome ( type1,type2,… ) ;
void dosome ( type1 arg1,type2 arg2, … ){
函式 dosome 區塊程式碼}
• 小括弧定義承接外部傳入參數的引數型態名稱。
• 定義函數必須指定每一個引數的變數名稱。• 呼叫此種函數的程式碼,須根據定義傳入對應型態的
參數,在函數中直接透過引數名稱便能將其取出。
C 語言入門經典 範例:函數的引數傳遞示範 >> << 函數參數
|函數的參數語法格式7.2.2 函數的參數
7.2 使用函數
C 語言入門經典
5
4
3
2
1
範例:函數的引數傳遞示範 >> << 函數的參數語法格式
6
|範例:函數的引數傳遞示範
輸入小時數:
6 小時等於 360 分鐘
6
6
7.2.2 函數的參數
7.2 使用函數
C 語言入門經典 範例:多引數函數示範 >> << 範例:函數的引數傳遞示範
|範例:函數的引數傳遞示範7.2.2 函數的參數
7.2 使用函數
C 語言入門經典
5
4
3
2
1
函數回傳值語法定義 >> << 範例:函數的引數傳遞示範
6
7
8
9
10
11
12
|範例 : 多引數函數示範
請輸入長與寬615
長 6 cm, 寬 15 cm 的矩形面積等於 90 平方公分
6 15
7.2.2 函數的參數
7.2 使用函數
C 語言入門經典
2
1
範例:函數回傳值示範 >> << 範例:多引數函數示範
|函數回傳值語法定義7.2.3 函數回傳值
7.2 使用函數
int dosome ( type1,type2,… ) ;
int dosome ( type1 arg1,type2 arg2, … ) {…return value ; // 回傳 value
}
x= dosome(arg , …) ;
value
C 語言入門經典
5
4
3
2
1
範例:函數回傳值示範 >> << 函數回傳值語法定義
6
|範例:函數回傳值示範7.2.3 函數回傳值
7.2 使用函數
請輸入長與寬615
長 6 cm, 寬 15 cm 的矩形面積等於 90 平方公分
6 15
90
6 15 7
8
C 語言入門經典 函數區塊的有效區域 >> << 範例:函數回傳值示範
|範例:函數回傳值示範7.2.3 函數回傳值
7.2 使用函數
C 語言入門經典 範例:函數範圍 >> << 範例:函數回傳值示範
|函數區塊的有效區域7.3 函數與有效區域
7.3.1 變數與宣告範圍
C 語言入門經典
3
2
1
範例:函數範圍 >> << 函數區塊的有效區域
|範例:函數範圍
100
100
7.3 函數與有效區域
7.3.1 變數與宣告範圍
C 語言入門經典 變數範圍錯誤 >> << 範例:函數範圍
|範例:函數範圍7.3 函數與有效區域
7.3.1 變數與宣告範圍
C 語言入門經典 範例:函數引數範圍 >> << 範例:函數範圍
|變數範圍錯誤7.3 函數與有效區域
7.3.1 變數與宣告範圍
C 語言入門經典
3
2
1
範例:全域變數 >> << 變數範圍錯誤
|範例:函數引數範圍7.3 函數與有效區域
7.3.1 變數與宣告範圍
C 語言入門經典 範例:全域變數與區域變數 >> << 範例:函數引數範圍
|範例:全域變數7.3 函數與有效區域
7.3.2 全域變數
200+100
300
a+b=300
a-b=100
200-100
300
5
4
3
2
1
6
7
8
9
10
C 語言入門經典
3
2
1
範例:靜態變數 >> << 範例:全域變數
|範例:全域變數與區域變數
6000
60008000123
8000123
7.3 函數與有效區域
7.3.2 全域變數
C 語言入門經典 範例:靜態變數 >> << 範例:全域變數與區域變數
|範例:靜態變數7.3.3 靜態變數
7.3 函數與有效區域
dox(): a=100 ,
100
doy(): a=100
100+100 => 200
100
100+100 => 200
5
4
3
2
1
C 語言入門經典 範例:靜態變數 >> << 範例:靜態變數
|範例:靜態變數7.3.3 靜態變數
7.3 函數與有效區域
dox(): a=100 , dox(): a=200 ,
200
doy(): a=100doy(): a=100
200+100 => 300
100
100+100 => 200
5
4
3
2
1
C 語言入門經典 範例:傳值引數 >> << 範例:靜態變數
|範例:靜態變數7.3.3 靜態變數
7.3 函數與有效區域
dox(): a=100 , dox(): a=200 , dox(): a=300 ,
300
doy(): a=100doy(): a=100doy(): a=100
300+100 => 400
100
100+100 => 200
5
4
3
2
1
C 語言入門經典
5
4
3
2
1
範例:傳值引數 >> << 範例:靜態變數
6
|範例:傳值引數7.4 函數的參數傳遞方式
傳入 doadd() 之前: 100doadd() 的運算結果: 101傳入 doadd() 之後: 100
100100
100+1 => 101
C 語言入門經典 範例:簡單的遞迴運算 >> << 範例:傳值引數
|範例:傳值引數7.4 函數的參數傳遞方式
C 語言入門經典 範例:簡單的遞迴運算 >> << 範例:傳值引數
|範例:簡單的遞迴運算7.5 遞迴
recursion(1) ...recursion(2) ...recursion(3) ...recursion(4) ...recursion(5) ...recursion(6) ...recursion(7) ...recursion(8) ...recursion(9) ...recursion(10) ...
C 語言入門經典 範例:簡單的遞迴運算 >> << 範例:簡單的遞迴運算
|範例:簡單的遞迴運算7.5 遞迴
C 語言入門經典
recursion(1) ......recursion(10) ...完成第 10 次的函數執行完成第 9 次的函數執行完成第 8 次的函數執行完成第 7 次的函數執行完成第 6 次的函數執行完成第 5 次的函數執行完成第 4 次的函數執行完成第 3 次的函數執行完成第 2 次的函數執行完成第 1 次的函數執行
7.5 遞迴
|範例:簡單的遞迴運算
<< 範例:簡單的遞迴運算 範例:簡單的遞迴運算 >>
C 語言入門經典 範例:階層運算 >>
7.5 遞迴
|範例:簡單的遞迴運算
<< 範例:簡單的遞迴運算
C 語言入門經典
|範例:階層運算
請輸入大於 3 的整數:81x2x3x...8 = 40320
7.5 遞迴
<< 範例:簡單的遞迴運算 範例:階層運算 >>
C 語言入門經典 | << 範例:階層運算
7.5 遞迴
|範例:階層運算