45
3 3 數數數數 數數數數 3.1 3.1 鍵鍵鍵鍵 鍵鍵鍵鍵 3-2 3-2 3.1.1 3.1.1 鍵鍵鍵鍵 鍵鍵鍵鍵 cin cin 3-2 3-2 3.1.2 3.1.2 鍵鍵鍵鍵 鍵鍵鍵鍵 cin cin 3-2 3-2 3.2 3.2 鍵鍵鍵鍵鍵 鍵鍵鍵鍵鍵 3-3 3-3 3.2.1 3.2.1 鍵鍵鍵鍵鍵鍵 鍵鍵鍵鍵鍵鍵 setw 3-4 setw 3-4 3.2.2 3.2.2 鍵鍵鍵鍵鍵鍵 鍵鍵鍵鍵鍵鍵 setprecisi setprecisi on 3-6 on 3-6 3.2.3 3.2.3 鍵鍵鍵鍵鍵鍵 鍵鍵鍵鍵鍵鍵 setiosflag setiosflag s 3-7 s 3-7 3.2.4 3.2.4 cout cout 鍵鍵鍵鍵 鍵鍵鍵鍵 3-9 3-9 3.3 3.3 鍵鍵鍵鍵鍵 鍵鍵鍵鍵鍵 3-11 3-11 3.3.1 3.3.1 鍵鍵鍵鍵鍵鍵 鍵鍵鍵鍵鍵鍵 setw 3-11 setw 3-11 3.3.2 3.3.2 cin cin 鍵鍵鍵鍵 鍵鍵鍵鍵 3-12 3-12 3.4 3.4 鍵鍵鍵鍵 鍵鍵鍵鍵 3-16 3-16 3.4.1 3.4.1 鍵鍵鍵鍵鍵鍵 鍵鍵鍵鍵鍵鍵 3-17 3-17 3.4.2 3.4.2 鍵鍵鍵鍵鍵鍵鍵 鍵鍵鍵鍵鍵鍵鍵 3-19 3-19 3.4.3 3.4.3 鍵鍵鍵鍵鍵鍵 鍵鍵鍵鍵鍵鍵 3-20 3-20 3.5 3.5 鍵鍵鍵鍵 鍵鍵鍵鍵 3-24 3-24 3.5.1 3.5.1 鍵鍵 鍵鍵 3-24 3-24 3.5.2 3.5.2 鍵鍵鍵鍵 鍵鍵鍵鍵 3-25 3-25 3.5.3 3.5.3 鍵鍵鍵鍵 鍵鍵鍵鍵 3-25 3-25 3.6 3.6 鍵鍵鍵鍵 鍵鍵鍵鍵 3-27 3-27 3.6.1 3.6.1 鍵鍵鍵鍵 鍵鍵鍵鍵 3-27 3-27 3.6.2 3.6.2 鍵鍵鍵鍵 鍵鍵鍵鍵 3-32 3-32 3.6.3 3.6.3 鍵鍵鍵鍵鍵 鍵鍵鍵鍵鍵 3-34 3-34 3.6.4 3.6.4 鍵鍵鍵鍵鍵 鍵鍵鍵鍵鍵 3-35 3-35 3.6.5 3.6.5 鍵鍵鍵鍵鍵鍵鍵鍵鍵 鍵鍵鍵鍵鍵鍵鍵鍵鍵 3-36 3-36 3.6.6 3.6.6 鍵鍵鍵鍵 鍵鍵鍵鍵 3-37 3-37

3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

  • View
    246

  • Download
    5

Embed Size (px)

Citation preview

Page 1: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3 3 數學運算數學運算 3.13.1 鍵盤輸入鍵盤輸入 3-23-2 3.1.13.1.1 輸入函數輸入函數 cincin 3-23-2 3.1.23.1.2 多重輸入多重輸入 cincin 3-23-2 3.23.2 輸出格式化輸出格式化 3-33-3 3.2.13.2.1 設定輸出長度設定輸出長度 setw 3-4setw 3-4 3.2.23.2.2 設定有效數字設定有效數字 setprecissetprecis

ion 3-6ion 3-6 3.2.33.2.3 設定輸出旗號設定輸出旗號 setiosflasetiosfla

gs 3-7gs 3-7 3.2.43.2.4 coutcout 成員函數成員函數 3-93-9 3.33.3 輸入格式化輸入格式化 3-113-11 3.3.13.3.1 設定輸入長度設定輸入長度 setw 3-1setw 3-1

11 3.3.23.3.2 cincin 成員函數成員函數 3-123-12 3.43.4 算術運算算術運算 3-163-16 3.4.13.4.1 算術運算符號算術運算符號 3-173-17

3.4.23.4.2 上限與下限溢位上限與下限溢位 3-193-19 3.4.33.4.3 轉換資料型態轉換資料型態 3-203-20 3.53.5 指定運算指定運算 3-243-24 3.5.13.5.1 單一指定單一指定 3-243-24 3.5.23.5.2 多重指定多重指定 3-253-25 3.5.33.5.3 混合指定混合指定 3-253-25 3.63.6 數值函數數值函數 3-273-27 3.6.13.6.1 亂數函數亂數函數 3-273-27 3.6.23.6.2 三角函數三角函數 3-323-32 3.6.33.6.3 指數與對數指數與對數 3-343-34 3.6.43.6.4 冪次與開方冪次與開方 3-353-35 3.6.53.6.5 小數進位與切除小數 小數進位與切除小數

3-363-36 3.6.63.6.6 取絕對值取絕對值 3-373-37

Page 2: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3.1 3.1 鍵盤輸入鍵盤輸入 標準輸入元件是鍵盤,所以本節將介紹如標準輸入元件是鍵盤,所以本節將介紹如

何在何在 DOSDOS 系統下,使用系統下,使用 cincin 函數讀取鍵盤函數讀取鍵盤輸入的字元與字串。 輸入的字元與字串。

Page 3: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3.1.1 3.1.1 輸入函數輸入函數 cincin #include <iostream.h>#include <iostream.h> cin >> cin >> 變數變數 ;;

範例範例int length;int length; //// 宣告整數變數宣告整數變數 lengtlengthhcin >> length;cin >> length; //// 將輸入資料存入將輸入資料存入 lenlengthgth

Page 4: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3.1.2 3.1.2 多重輸入多重輸入 cincin #include <iostream.h>#include <iostream.h> cin >> cin >> 變數變數 1 >> 1 >> 變數變數 2 >> . . . >> 2 >> . . . >> 變數變數 n;n;

範例範例int width, height;int width, height; //// 宣告變數宣告變數 widthwidth 與與 heigheighthtcin >> width >> height;cin >> width >> height;

//// 分別存入分別存入 widthwidth 與與 heigheightht

Page 5: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

程式程式 3-013-01 :: cincin 練習練習// 檔名: d:\C++03\C0301.cpp

#include <iostream.h>

void main(){

char key;cout << " 請按任意鍵: ";cin >> key;cout << " 輸入的鍵是: " << key << endl;

}

Page 6: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

執行結果執行結果

Page 7: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3.2 3.2 輸出格式化輸出格式化 3.2.1 3.2.1 設定輸出長度設定輸出長度 setwsetw 3.2.2 3.2.2 設定有效數字設定有效數字 setprecisionsetprecision 3.2.3 3.2.3 設定輸出旗號設定輸出旗號 setiosflagssetiosflags 3.2.4 cout3.2.4 cout 成員函數成員函數

Page 8: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

程式程式 3-023-02 :定位輸出練習:定位輸出練習// 檔名: d:\C++03\C0302.cpp

#include <iostream.h>

void main(){

int n11 = 14, n12 = 21474836, n13 = 44;int n21 = -889162, n22 = 9, n23 = 524;cout << n11 << '\t' << n12 << '\t' << n13 << endl;cout << n21 << '\t' << n22 << '\t' << n23 << endl;

}

Page 9: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

執行結果執行結果

Page 10: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

期望的結果期望的結果

Page 11: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3.2.1 3.2.1 設定輸出長度設定輸出長度 setwsetw #include <iomanip.h>#include <iomanip.h> setw(setw( 指定長度指定長度 ))

範例範例int number = 25;int number = 25;cout << '(' << number << ")\n";cout << '(' << number << ")\n"; //// 輸出輸出 (25)(25)cout << '(' << setw(3) << number << ")\n";cout << '(' << setw(3) << number << ")\n";

//// 輸出輸出 ( 25)( 25)cout << '(' << setw(5) << number << ")\n";cout << '(' << setw(5) << number << ")\n";

//// 輸出輸出 ( 25)( 25)

Page 12: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

程式程式 3-033-03 :: coutcout 與與 setwsetw 練習練習// 檔名: d:\C++03\C0303.cpp

#include <iostream.h>#include <iomanip.h>

void main(){

int n11 = 14, n12 = 21474836, n13 = 44;int n21 = -889162, n22 = 9, n23 = 524;cout << setw(12) << n11 << setw(12) << n12 << setw(12) << n13 << endl;cout << setw(12) << n21 << setw(12) << n22 << setw(12) << n23 << endl;

}

Page 13: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

執行結果執行結果

Page 14: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3.2.2 3.2.2 設定有效數字設定有效數字 setprecisisetprecisionon

#include <iomanip.h>#include <iomanip.h> setprecision(setprecision( 有效位數有效位數 ))

範例範例const double PI = 3.141592653;const double PI = 3.141592653;cout << setprecision(10) << PI << endl; cout << setprecision(10) << PI << endl;

//// 輸出輸出 3.1415926533.141592653 十位十位cout << setprecision(8) << PI << endl; cout << setprecision(8) << PI << endl;

//// 輸出輸出 3.14159273.1415927 八位有八位有效效cout << setprecision(6) << PI << endl; cout << setprecision(6) << PI << endl;

//// 輸出輸出 3.141593.14159 六位有效六位有效

Page 15: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

程式程式 3-043-04 :設定輸出精確度練:設定輸出精確度練習習

// 檔名: d:\C++03\C0304.cpp

#include <iostream.h>#include <iomanip.h>

void main(){

const double PI = 3.141592653;cout << PI << endl;cout << setprecision(10) << PI << endl;cout << setprecision(8) << PI << endl;cout << setprecision(6) << PI << endl;cout << setprecision(3) << PI << endl;cout << setprecision(1) << PI << endl;

}

Page 16: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

執行結果執行結果

Page 17: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3.3 3.3 輸入格式化輸入格式化 3.3.1 3.3.1 設定輸入長度設定輸入長度 setwsetw

Page 18: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3.3.1 3.3.1 設定輸入長度設定輸入長度 setwsetw #include <iomanip.h>#include <iomanip.h> setw(setw( 指定長度指定長度 ))

範例範例char string[4];char string[4]; //// 宣告字串變數宣告字串變數 strinstringgcin >> setw(4) >> string;cin >> setw(4) >> string;

//// 設定輸入字數並取得輸入設定輸入字數並取得輸入

Page 19: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

Exercise 04Exercise 04

寫一個寫一個 C++C++ 程式,請使用者輸入兩個整數之後,程式,請使用者輸入兩個整數之後,會格式化輸出相加後的值。如下所示會格式化輸出相加後的值。如下所示

專案及程式檔案名稱請使用「學號專案及程式檔案名稱請使用「學號 _04_04 」,檔」,檔案上載至案上載至 ftp://192.192.155.217ftp://192.192.155.217上的上的Ex04Ex04目錄目錄

Page 20: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3.4 3.4 算術運算算術運算 C++ C++ 的數學運算式(的數學運算式( mathematical expmathematical exp

ressionsressions ))與一般數學運算式相容,它代與一般數學運算式相容,它代表一個數值的敘述 。表一個數值的敘述 。

範例範例int a = 5, b = 3, c = 6;int a = 5, b = 3, c = 6;int x = 3 * a + 2 * b + c;int x = 3 * a + 2 * b + c;

Page 21: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3.4.1 3.4.1 算術運算符號算術運算符號符號符號 功能功能 C++ C++ 運算式運算式 數學運算式數學運算式-x -x 負號負號 a = -x a = -x a = -5 a = -5

+x +x 正號正號 a = +x a = +x a = +5 a = +5

** 乘號乘號 a = x * y a = x * y a = 5 a = 5 3 3

// 除號除號 a = x / y a = x / y a = 5 / 3 a = 5 / 3

%% 餘數餘數 a = x % y a = x % y a = 5 / 3 a = 5 / 3 的餘數 的餘數 ++ 加號加號 a = x + y a = x + y a = 5 + 3 a = 5 + 3

-- 減號減號 a = x - ya = x - y a = 5 - 3 a = 5 - 3

Page 22: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

程式程式 3-133-13 :算術運算符號練習:算術運算符號練習// 檔名: d:\C++03\C0313.cpp

#include <iostream.h>

void main(){

int a = 1, b = 3, c = 4;int x = b * b - 4 * a * c;cout << "a=" << a << endl

<< "b=" << b << endl << "c=" << c << endl << "b*b-4*a*c=" << x << endl;

}

Page 23: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

執行結果執行結果

Page 24: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3.4.2 3.4.2 上限與下限溢位上限與下限溢位 上限溢位(上限溢位( overflowsoverflows ))就是指定一個較大就是指定一個較大

型態的資料給一個較小型態的變數。型態的資料給一個較小型態的變數。

範例範例short n1 = 32767;short n1 = 32767; //n1=0x7fff//n1=0x7fffn1 = n1 + 1;n1 = n1 + 1; //n1=0x8000=-32768//n1=0x8000=-32768 溢位溢位unsigned short n2 = 65535;unsigned short n2 = 65535; //n2=0xffff//n2=0xffffn2 = n2 + 1;n2 = n2 + 1; //n2=0x0000=0//n2=0x0000=0 上限溢位上限溢位

Page 25: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3.4.2 3.4.2 上限與下限溢位 上限與下限溢位 (( 續續 )) 下限溢位(下限溢位( underflowsunderflows ))也是指定一個較也是指定一個較

大型態的資料給一個較小型態的變數。大型態的資料給一個較小型態的變數。

範例範例short n3 = -32768;short n3 = -32768; //n3=0x8000//n3=0x8000n3 = n3 - 1;n3 = n3 - 1; //n3=0x7fff=32767//n3=0x7fff=32767 溢溢位位unsigned short n4 = 0;unsigned short n4 = 0; //n4=0x0000//n4=0x0000n4 = n4 - 1;n4 = n4 - 1; //n4=0xffff=65535//n4=0xffff=65535 溢位溢位

Page 26: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3.4.3 3.4.3 轉換資料型態轉換資料型態 指定型態指定型態 (( 資料資料 || 變數變數 ))

由小轉大由小轉大 範例一範例一

int n;int n;short n1 = 32767;short n1 = 32767; //n1=32767//n1=32767n = int(n1 + 1);n = int(n1 + 1); //n=32767+1=32768//n=32767+1=32768

範例二範例二int n;int n;unsigned short n2 = 65535;unsigned short n2 = 65535; //n2=65535//n2=65535n = int(n2 + 1);n = int(n2 + 1); //n=65535+1=65536//n=65535+1=65536

Page 27: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3.4.3 3.4.3 轉換資料型態 轉換資料型態 (( 續續 )) 範例三範例三

int n;int n;short n3 = -32768;short n3 = -32768; //n3=-32768//n3=-32768n = int(n3 - 1);n = int(n3 - 1); //n=-32768-1=-32769//n=-32768-1=-32769

範例四範例四int n;int n;unsigned short n4 = 0;unsigned short n4 = 0; //n4=0//n4=0n = int(n4 - 1);n = int(n4 - 1); //n=0-1=-1//n=0-1=-1

範例五範例五int a=5;int a=5;int b=3;int b=3;float c = (float(a) / float(b));float c = (float(a) / float(b));

Page 28: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3.4.3 3.4.3 轉換資料型態 轉換資料型態 (( 續續 )) 由大轉小由大轉小 範例一範例一

int intVar = 65500;int intVar = 65500; //intVar=65500//intVar=65500signed short shortVar = short(intVar);signed short shortVar = short(intVar); //shortVar=-3//shortVar=-366

範例二範例二short shortLet = 65;short shortLet = 65; //shortLet=65//shortLet=65char charLet = char(shortLet);char charLet = char(shortLet); //charLet='A'//charLet='A'

範例三範例三float floatNum = 70000.0f;float floatNum = 70000.0f; //floatNum=70 //floatNum=70000.0000.0int intNum = int(floatNum);int intNum = int(floatNum); //intNum=70000//intNum=70000short shortNum = short(floatNum);short shortNum = short(floatNum); //shortNum=4464//shortNum=4464

Page 29: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

ExerciseExercise

Write a C++ program to practice Write a C++ program to practice overflow, underflow, and casting.overflow, underflow, and casting.For example, define A and B are For example, define A and B are both short integer, and then let A both short integer, and then let A and B equal to 32767 and -32768, and B equal to 32767 and -32768, respectively. Show the results of respectively. Show the results of A+1 and B-1 to screen. If cast them A+1 and B-1 to screen. If cast them to integer, what are the results.to integer, what are the results.

Page 30: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3.5 3.5 指定運算指定運算 指定運算符號(指定運算符號( assignment operatorassignment operator

ss ))包括包括 單一指定運算符號(單一指定運算符號( == )) 多重指定運算符號多重指定運算符號 混合運算符號(混合運算符號( +=+= 、、 -=-= 、、 *=*= 、、 /=/= 、、 %=%= ) )

Page 31: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3.5.1 3.5.1 單一指定 單一指定 資料型態資料型態 變數名稱變數名稱 1, 1, 變數名稱變數名稱 2, …2, … 變數名稱變數名稱 1 = 1 = 初值初值 , , 變數名稱變數名稱 2 = 2 = 初值初值 , …, …

short shortVar;short shortVar; //// 宣告短整數變數宣告短整數變數 shortVarshortVarshortVar = 5;shortVar = 5; //shortVar//shortVar 的初值等於的初值等於 55..shortVar = 10;shortVar = 10; //// 改變改變 shortVarshortVar 的值為的值為 1010

資料型態資料型態 變數名稱變數名稱 1 = 1 = 初值初值 , , 變數名稱變數名稱 2 = 2 = 初值初值 ,, … …short shortVar = 5;short shortVar = 5; //shortVar//shortVar 的初值等於的初值等於 55

Page 32: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3.5.2 3.5.2 多重指定 多重指定 變數名稱變數名稱 1 = 1 = 變數名稱變數名稱 2 … = 2 … = 初值初值 ;; 範例一範例一

int a, b, c, d;int a, b, c, d; // // 宣告整數變數宣告整數變數 a, b, c, da, b, c, da = b = c = d = 10;a = b = c = d = 10; //// 令令 a=b=c=d=10a=b=c=d=10

範例二範例二const int VALUE = 100;const int VALUE = 100; //// 宣告常數符號宣告常數符號int var1, var2, var3;int var1, var2, var3; //// 宣告變數宣告變數var1 = var2 = var3 = VALUE; //var1 = var2 = var3 = VALUE; // 令多個變數令多個變數 =100=100

Page 33: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3.5.3 3.5.3 混合指定混合指定 變數名稱 變數名稱 op= op= 資料資料 ;;

範例範例a = a + 10;a = a + 10; //a+10//a+10 存回存回 aaa += 10;a += 10; //a+10//a+10 存回存回 aa

Page 34: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3.6 3.6 數值函數數值函數 C++ C++ 語言提供一些常用的數學函數(語言提供一些常用的數學函數( matmat

hematical functionshematical functions ),如三角函數、指),如三角函數、指數與對數函數、冪次與開方函數、取整數數與對數函數、冪次與開方函數、取整數函數、取絕對值函數、還有產生亂數函數函數、取絕對值函數、還有產生亂數函數等等。等等。

這些數學函數包含於這些數學函數包含於 math.hmath.h 標題檔中,標題檔中,亂數函數則包含於亂數函數則包含於 stdlib.hstdlib.h 標題檔中,所標題檔中,所以使用這些函數之前必須先插入包含該函以使用這些函數之前必須先插入包含該函數的標題檔到使用者程式的前置處理區。 數的標題檔到使用者程式的前置處理區。

Page 35: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3.6.1 3.6.1 亂數函數亂數函數 產生固定亂數產生固定亂數 #include <stdlib.h>#include <stdlib.h> rand( )rand( )

範例範例cout << rand() << endl;cout << rand() << endl; //// 輸出亂數輸出亂數cout << rand() << endl;cout << rand() << endl; //// 輸出亂數輸出亂數cout << rand() << endl;cout << rand() << endl; //// 輸出亂數輸出亂數

Page 36: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3.6.1 3.6.1 亂數函數 亂數函數 (( 續續 )) 產生種子亂數產生種子亂數 #include <stdlib.h>#include <stdlib.h> srand (srand ( 正整數正整數 )) 範例範例

unsigned seed;unsigned seed;cin >> seed;cin >> seed; //// 輸入種子數輸入種子數srand(seed);srand(seed); //// 設定亂數種子數設定亂數種子數cout << rand() << endl;cout << rand() << endl; //// 輸出亂數輸出亂數cout << rand() << endl;cout << rand() << endl; //// 輸出亂數輸出亂數cout << rand() << endl;cout << rand() << endl; //// 輸出亂數輸出亂數

Page 37: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3.6.1 3.6.1 亂數函數 亂數函數 (( 續續 )) 產生隨機亂數產生隨機亂數 #include <time.h>#include <time.h> time(*time(* 指標指標 ))

範例範例srand (time(NULL));srand (time(NULL));cout << rand() << endl;cout << rand() << endl; //// 輸出亂數輸出亂數cout << rand() << endl;cout << rand() << endl; //// 輸出亂數輸出亂數cout << rand() << endl;cout << rand() << endl; //// 輸出亂數輸出亂數

Page 38: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3.6.1 3.6.1 亂數函數 亂數函數 (( 續續 )) 調整亂數範圍調整亂數範圍 下限 下限 + rand( ) % (+ rand( ) % ( 上限 – 下限 上限 – 下限 + 1)+ 1)

範例範例int x, y;int x, y;x = 10 + rand( ) % (20 - 10 + 1); //10~20x = 10 + rand( ) % (20 - 10 + 1); //10~20 的整數的整數亂數亂數y = rand( ) % (99 + 1);y = rand( ) % (99 + 1); //0~99 //0~99 的整數亂數的整數亂數

Page 39: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3.6.2 3.6.2 三角函數三角函數 #include <math.h>#include <math.h> double sin(double double sin(double 徑度徑度 )) double cos(double double cos(double 徑度徑度 )) double tan(double double tan(double 徑度徑度 ))

範例範例x = 30 * (3.14159 / 180);x = 30 * (3.14159 / 180); //x = 30//x = 30double a = sin(x); double a = sin(x); //a = sin(30//a = sin(30))double b = cos(x); double b = cos(x); //b = cos(30//b = cos(30))double c = tan(x); double c = tan(x); //c = tan(30//c = tan(30))

Page 40: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3.6.3 3.6.3 指數與對數指數與對數 #include <math.h>#include <math.h> double exp(double exp( 數值數值 )) double log(double log( 數值數值 )) double log10(double log10( 數值數值 ))

範例範例double a = log(2);double a = log(2); //a = ln(2)//a = ln(2)double b = log10(2);double b = log10(2); //b = log//b = log1010(2)(2)double c = exp(2); double c = exp(2); //c = e//c = e22

Page 41: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3.6.4 3.6.4 冪次與開方冪次與開方 #include <math.h>#include <math.h> double pow(double pow( 底數底數 , , 冪次冪次 )) double sqrt(double sqrt( 數值數值 ))

範例範例double a = pow(2, 3);double a = pow(2, 3); //a=2//a=233

double b = sqrt(3); double b = sqrt(3); //b=√//b=√33

Page 42: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3.6.5 3.6.5 小數進位與切除小數小數進位與切除小數 #include <math.h>#include <math.h> double ceil(double ceil( 數值數值 )) double floor(double floor( 數值數值 ))

範例範例int m1 = ceil(3.33)int m1 = ceil(3.33) //m1 = 4//m1 = 4int n1 = floor(3.33); int n1 = floor(3.33); //n1 = 3//n1 = 3int m2 = ceil(-3.33)int m2 = ceil(-3.33) //m2 = -3//m2 = -3int n2 = floor(-3.33); int n2 = floor(-3.33); //n2 = -4//n2 = -4

Page 43: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

3.6.6 3.6.6 取絕對值取絕對值 #include <math.h>#include <math.h> double fabs (double fabs ( 數值數值 ))

範例範例int a = fabs(5.25);int a = fabs(5.25); //a = 5.25//a = 5.25int b = fabs(-3.75);int b = fabs(-3.75); //b = 3.75//b = 3.75

Page 44: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

Ex 05Ex 05

寫一個加法練習程式,程式產生兩個寫一個加法練習程式,程式產生兩個 100100 到到 500500的亂數,並輸出畫面如下的亂數,並輸出畫面如下 352352 + 179 + 179--------------------等待使用者輸入答案,並顯示正確答案。等待使用者輸入答案,並顯示正確答案。

專案及程式檔案名稱請使用「學號專案及程式檔案名稱請使用「學號 _05_05 」,檔案」,檔案上載至上載至 ftp://192.192.155.217ftp://192.192.155.217上的上的Ex05Ex05目錄目錄

Page 45: 3 數學運算 3.1 鍵盤輸入 3-2 3.1 鍵盤輸入 3-2 3.1.1 輸入函數 cin3-2 3.1.1 輸入函數 cin3-2 3.1.2 多重輸入 cin3-2 3.1.2 多重輸入 cin3-2 3.2 輸出格式化

Homework 2Homework 2 設計一個程式,可由使用者輸入學生姓名,國文成績,數學成績,英設計一個程式,可由使用者輸入學生姓名,國文成績,數學成績,英

文成績。然後計算總分和平均,再輸出使用者輸入的資料、總分及成文成績。然後計算總分和平均,再輸出使用者輸入的資料、總分及成績。程式執行結果如下:績。程式執行結果如下:

請輸入姓名: 請輸入姓名: 曾聰明曾聰明請輸入國文成績:請輸入國文成績: 9797請輸入數學成績:請輸入數學成績: 9292請輸入英文成績:請輸入英文成績: 7777統計中………………………統計中………………………曾聰明的成績如下:曾聰明的成績如下:================================

國文:國文: 9797數學:數學: 9292英文:英文: 7777

--------------------------------------------------------------------總分:總分: 266266平均:平均: 88.6788.67