Temp Conv cpp 13 Temp Conv cpp include

  • Slides: 46
Download presentation

範例程式 Temp. Conv. cpp 是一個使用自 定函數的簡單程式 (1/3) // Temp. Conv. cpp #include <math> #include

範例程式 Temp. Conv. cpp 是一個使用自 定函數的簡單程式 (1/3) // Temp. Conv. cpp #include <math> #include <iostream> using namespace std; // --- 函數C 2 F () 的宣告 ------------double C 2 F (double) ; 5

程式 Temp. Conv. cpp 操作結果 攝氏 華氏 ------10 50 20 68 30 86 40

程式 Temp. Conv. cpp 操作結果 攝氏 華氏 ------10 50 20 68 30 86 40 104 50 122 60 140 70 158 80 176 90 194 100 212 ------8

函數定義的語法 (2/2) double C 2 F(double C) // 函數的標頭列 { double F; F =

函數定義的語法 (2/2) double C 2 F(double C) // 函數的標頭列 { double F; F = C*9. 0/5. 0 + 32. 0; 函數的本體 return F; } 簡化的函數定義 double C 2 F(double C){ return C*9. 0/5. 0 + 32. 0; } 13

範例程式 Temp. Conv 2. cpp (不使用函數原型) (1/2) // Temp. Conv 2. cpp #include <iomanip>

範例程式 Temp. Conv 2. cpp (不使用函數原型) (1/2) // Temp. Conv 2. cpp #include <iomanip> #include <iostream> using namespace std; double C 2 F (double C) //函數C 2 F()的定義,兼具宣告的功能 { double F; F = C*9. 0/5. 0 + 32. 0; return F; } 17

範例程式 Temp. Conv 2. cpp (不使用函數原型) (2/2) //----- 以下為主程式 ---------int main () { double

範例程式 Temp. Conv 2. cpp (不使用函數原型) (2/2) //----- 以下為主程式 ---------int main () { double CTemp; cout << " 攝氏 華氏 " << endl ; cout << "---------" << endl ; for ( int i = 1 ; i <= 10 ; i++ ) { CTemp = 10. 0*i; cout << setw (5) << CTemp << " " << setw (5) << C 2 F (CTemp) << endl ; } cout << "---------" << endl ; return 0; } 18

範例程式 Seasons. Fnc. cpp: 函數內「return敘述」的功能 (1/2) // Seasons. Fnc. cpp #include <iostream> using namespace

範例程式 Seasons. Fnc. cpp: 函數內「return敘述」的功能 (1/2) // Seasons. Fnc. cpp #include <iostream> using namespace std; // 以下為函數Check. Season () 的宣告 void Check. Season (int) ; //------ 主程式 ----------------int main () { int M; cout << "n" << "請輸入一個月份 : " << endl; cin >> M; Check. Season (M) ; return 0; } 19

範例程式 Seasons. Fnc. cpp: 函數內「return敘述」的功能 (2/2) 20 // --- 以下為函數Check. Season () 的定義 ------void

範例程式 Seasons. Fnc. cpp: 函數內「return敘述」的功能 (2/2) 20 // --- 以下為函數Check. Season () 的定義 ------void Check. Season (int Month) { if (Month < 1 || Month >12) { cout << "您輸入的月份沒有意義!"; return; } cout << "n" << Month << "月是"; switch ( (Month%12) /3) { case 0: cout << "冬季" << endl; break; case 1: cout << "春季" << endl; break; case 2: cout << "夏季" << endl; break; case 3: cout << "秋季" << endl; break; default: cout << "程式有問題!" << endl; } return; }

範例程式 Temp. Conv 3. cpp : 以參照的方式呼叫(call by reference)(1/2) // Temp. Conv 3. cpp

範例程式 Temp. Conv 3. cpp : 以參照的方式呼叫(call by reference)(1/2) // Temp. Conv 3. cpp #include <iomanip> #include <iostream> using namespace std; void C 2 F (double, double&) ; // 函數C 2 F () 的原型 22

範例程式 Temp. Conv 3. cpp : 以參照的方式呼叫(call by reference)(2/2) 23 int main () {

範例程式 Temp. Conv 3. cpp : 以參照的方式呼叫(call by reference)(2/2) 23 int main () { double CTemp, FTemp; cout << " 攝氏 華氏 " << endl ; cout << "---------" << endl ; for ( int i = 1 ; i <= 10 ; i++ ) { CTemp = 10. 0*i; C 2 F (CTemp, FTemp) ; cout << setw (5) << CTemp << " " << setw (5) << FTemp << endl ; } cout << "---------" << endl ; return 0; } //---- 函數C 2 F () 的定義 ----------void C 2 F (double C, double& F) { F = C*9. 0/5. 0 + 32. 0; return; }

範例程式 Swap. cpp: 利用參照來交換兩個變數的值 (1/2) 24 // Swap. cpp #include <iostream> using namespace std;

範例程式 Swap. cpp: 利用參照來交換兩個變數的值 (1/2) 24 // Swap. cpp #include <iostream> using namespace std; void Swap (int&, int&) ; void SWAP 2 (int, int) ; int main () { int A = 5, B = 10; Swap (A, B) ; cout << "執行過 Swap () n"; cout << " A 的值是:" << A << "n B 的值是:" << B << endl; cout << endl; SWAP 2 (A, B) ; cout << "執行過 SWAP 2 () n"; cout << " A 的值是:" << A << "n B 的值是:" << B << endl; }

範例程式 Swap. cpp: 利用參照來交換兩個變數的值 (2/2) //--------------------void Swap (int& x, int& y) { int Temp;

範例程式 Swap. cpp: 利用參照來交換兩個變數的值 (2/2) //--------------------void Swap (int& x, int& y) { int Temp; Temp = x; x = y; y = Temp; } //--------------------void SWAP 2 (int x, int y) { int Temp; Temp = x; x = y; y = Temp; } 25

範例程式 Inline. cpp: 把函數C 2 F () 改寫成inline函數 (1/2) // Inline. cpp #include <iomanip>

範例程式 Inline. cpp: 把函數C 2 F () 改寫成inline函數 (1/2) // Inline. cpp #include <iomanip> #include <iostream> using namespace std; // ---inline 函數 C 2 F () 的定義 -----inline double C 2 F (double C) { return C*9. 0/5. 0 + 32. 0; } 29

範例程式 Inline. cpp: 把函數C 2 F () 改寫成inline函數 (2/2) //----- 主程式 ----------int main ()

範例程式 Inline. cpp: 把函數C 2 F () 改寫成inline函數 (2/2) //----- 主程式 ----------int main () { double CTemp; int i; cout << " 攝氏 華氏 " << endl ; cout << "---------" << endl ; for ( i = 1 ; i <= 10 ; i++ ) { CTemp = 10. 0*i; cout << setw (5) << CTemp << " " << setw (5) << C 2 F (CTemp) << endl ; } cout << "---------" << endl ; return 0; } 30

範例程式 Local. cpp: 使用 auto、static 和 register 三種局部變數 (1/2) 34 // Local. cpp #include

範例程式 Local. cpp: 使用 auto、static 和 register 三種局部變數 (1/2) 34 // Local. cpp #include <iostream> using namespace std; // ---函數 Test. Local () 的宣告 ---------void Test. Local () ; // ------ 主程式 ----------------int main () { for (int i=1; i<=3; i++) { cout << "第 (" << i << ") 次:" << endl; Test. Local () ; cout << endl; } return 0; }

範例程式 Local. cpp: 使用 auto、static 和 register 三種局部變數 (2/2) // --- 函數 Test. Local

範例程式 Local. cpp: 使用 auto、static 和 register 三種局部變數 (2/2) // --- 函數 Test. Local () 的定義 ---------void Test. Local () { int A = 1; static int S = 1; register int R = 1; cout << " A 的值是 " << A << endl; cout << " S 的值是 " << S << endl; cout << " R 的值是 " << R << endl; for (register int i=0; i<1000; i++) R += 2; cout << " 計算後 R 的值是 " << R << endl; A++; S++; R++; return; } 35

範例程式 Global. cpp 檢查全域變數的特性 (1/2) 38 // Global. cpp #include <iostream> using namespace std;

範例程式 Global. cpp 檢查全域變數的特性 (1/2) 38 // Global. cpp #include <iostream> using namespace std; int GLOBAL = 1, GLOBAL_2 = 7; //全域變數 // ----- 函數 Test. Fnc () 的宣告 -----void Test. Fnc () ; // ------ 主程式 ---------- int main () { int Local = 3; // 局部變數 GLOBAL = 9; cout << "GLOBAL 的值原來是:" << GLOBAL << endl; cout << "Local 的值原來是:" << Local << endl; cout << endl; Test. Fnc () ; cout << "呼叫 Test. Fnc () 之後. " << endl; cout << "GLOBAL 的值目前是:" << GLOBAL << endl; cout << "Local 的值目前是:" << Local << endl; return 0; }

範例程式 Extren. A. cpp : 探討各種全域變數儲存種類的特性 (1/3) // Extern. A. cpp #include <iostream> using

範例程式 Extren. A. cpp : 探討各種全域變數儲存種類的特性 (1/3) // Extern. A. cpp #include <iostream> using namespace std; int Am, An; // 全域變數 static int ASx, ASy; // static全域變數 // --- 函數的宣告 ------------void Func 1 () ; void Func 2 () ; void Func 3 () ; 42

範例程式 檔案 Extern. B. cpp // Extern. B. cpp int Bp; // 全域變數 extern int

範例程式 檔案 Extern. B. cpp // Extern. B. cpp int Bp; // 全域變數 extern int Am; // extern變數 // --- 函數 Fnc 1 () 的定義 ------void Func 1 () { Bp = 2; Am = 8; } // --- 函數 Fnc 2 () 的定義 ------void Func 2 () { extern int An; Am += 10; An = 27; } 45