Presentation is loading. Please wait.

Presentation is loading. Please wait.

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.2 輸出格式化 3-3 3.2.1 設定輸出長度 setw.

Similar presentations


Presentation on theme: "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.2 輸出格式化 3-3 3.2.1 設定輸出長度 setw."— Presentation transcript:

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.2 輸出格式化 3-3 3.2.1 設定輸出長度 setw 3-4 3.2.1 設定輸出長度 setw 3-4 3.2.2 設定有效數字 setprecision 3-6 3.2.2 設定有效數字 setprecision 3-6 3.2.3 設定輸出旗號 setiosflags 3-7 3.2.3 設定輸出旗號 setiosflags 3-7 3.2.4cout 成員函數 3-9 3.2.4cout 成員函數 3-9 3.3 輸入格式化 3-11 3.3 輸入格式化 3-11 3.3.1 設定輸入長度 setw 3-11 3.3.1 設定輸入長度 setw 3-11 3.3.2cin 成員函數 3-12 3.3.2cin 成員函數 3-12 3.4 算術運算 3-16 3.4 算術運算 3-16 3.4.1 算術運算符號 3-17 3.4.1 算術運算符號 3-17 3.4.2 上限與下限溢位 3-19 3.4.3 轉換資料型態 3-20 3.5 指定運算 3-24 3.5.1 單一指定 3-24 3.5.2 多重指定 3-25 3.5.3 混合指定 3-25 3.6 數值函數 3-27 3.6.1 亂數函數 3-27 3.6.2 三角函數 3-32 3.6.3 指數與對數 3-34 3.6.4 冪次與開方 3-35 3.6.5 小數進位與切除小數 3-36 3.6.6 取絕對值 3-37

2 3.1 鍵盤輸入 標準輸入元件是鍵盤,所以本節將介紹如 何在 DOS 系統下,使用 cin 函數讀取鍵盤輸 入的字元與字串。 標準輸入元件是鍵盤,所以本節將介紹如 何在 DOS 系統下,使用 cin 函數讀取鍵盤輸 入的字元與字串。

3 3.1.1 輸入函數 cin #include #include cin >> 變數 ; cin >> 變數 ; 範例 範例 int length;// 宣告整數變數 length cin >> length;// 將輸入資料存入 length

4 3.1.2 多重輸入 cin #include #include cin >> 變數 1 >> 變數 2 >>... >> 變數 n; cin >> 變數 1 >> 變數 2 >>... >> 變數 n; 範例 範例 int width, height;// 宣告變數 width 與 height cin >> width >> height; // 分別存入 width 與 height

5 程式 3-01 : cin 練習 // 檔名: d:\C++03\C0301.cpp #include void main() { char key; cout << " 請按任意鍵: "; cin >> key; cout << " 輸入的鍵是: " << key << endl; }

6 執行結果

7 3.2 輸出格式化 3.2.1 設定輸出長度 setw 3.2.1 設定輸出長度 setw 3.2.2 設定有效數字 setprecision 3.2.2 設定有效數字 setprecision 3.2.3 設定輸出旗號 setiosflags 3.2.3 設定輸出旗號 setiosflags 3.2.4 cout 成員函數 3.2.4 cout 成員函數

8 程式 3-02 :定位輸出練習 // 檔名: d:\C++03\C0302.cpp #include 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; }

9 執行結果

10 期望的結果

11 3.2.1 設定輸出長度 setw #include #include setw( 指定長度 ) setw( 指定長度 ) 範例 範例 int number = 25; cout << '(' << number << ")\n";// 輸出 (25) cout << '(' << setw(3) << number << ")\n"; // 輸出 ( 25) cout << '(' << setw(5) << number << ")\n"; // 輸出 ( 25)

12 程式 3-03 : cout 與 setw 練習 // 檔名: d:\C++03\C0303.cpp #include 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; }

13 執行結果

14 3.2.2 設定有效數字 setprecision #include #include setprecision( 有效位數 ) setprecision( 有效位數 ) 範例 範例 const double PI = 3.141592653; cout << setprecision(10) << PI << endl; // 輸出 3.141592653 十位 cout << setprecision(8) << PI << endl; // 輸出 3.1415927 八位有效 cout << setprecision(6) << PI << endl; // 輸出 3.14159 六位有效

15 程式 3-04 :設定輸出精確度練習 // 檔名: d:\C++03\C0304.cpp #include 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; }

16 執行結果

17 3.3 輸入格式化 3.3.1 設定輸入長度 setw 3.3.1 設定輸入長度 setw

18 3.3.1 設定輸入長度 setw #include #include setw( 指定長度 ) setw( 指定長度 ) 範例 範例 char string[4];// 宣告字串變數 string cin >> setw(4) >> string; // 設定輸入字數並取得輸入

19 Exercise 04 寫一個 C++ 程式,請使用者輸入兩個整數之後, 會格式化輸出相加後的值。如下所示 寫一個 C++ 程式,請使用者輸入兩個整數之後, 會格式化輸出相加後的值。如下所示 專案及程式檔案名稱請使用「學號 _04 」,檔 案上載至 ftp://192.192.155.217 上的 Ex04 目錄 專案及程式檔案名稱請使用「學號 _04 」,檔 案上載至 ftp://192.192.155.217 上的 Ex04 目錄 ftp://192.192.155.217 上的 Ex04 ftp://192.192.155.217 上的 Ex04

20 3.4 算術運算 C++ 的數學運算式( mathematical expressions )與一般數學運算式相容,它代 表一個數值的敘述 。 C++ 的數學運算式( mathematical expressions )與一般數學運算式相容,它代 表一個數值的敘述 。 範例 範例 int a = 5, b = 3, c = 6; int x = 3 * a + 2 * b + c;

21 3.4.1 算術運算符號 符號功能 C++ 運算式 數學運算式 -x負號 a = -x a = -5 +x正號 a = +x a = +5 *乘號 a = x * y a = 5  3 /除號 a = x / y a = 5 / 3 %餘數 a = x % y a = 5 / 3 的餘數 +加號 a = x + y a = 5 + 3 -減號 a = x - y a = 5 - 3

22 程式 3-13 :算術運算符號練習 // 檔名: d:\C++03\C0313.cpp #include 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; }

23 執行結果

24 3.4.2 上限與下限溢位 上限溢位( overflows )就是指定一個較大 型態的資料給一個較小型態的變數。 上限溢位( overflows )就是指定一個較大 型態的資料給一個較小型態的變數。 範例 範例 short n1 = 32767;//n1=0x7fff n1 = n1 + 1;//n1=0x8000=-32768 溢位 unsigned short n2 = 65535;//n2=0xffff n2 = n2 + 1;//n2=0x0000=0 上限溢位

25 3.4.2 上限與下限溢位 ( 續 ) 下限溢位( underflows )也是指定一個較大 型態的資料給一個較小型態的變數。 下限溢位( underflows )也是指定一個較大 型態的資料給一個較小型態的變數。 範例 範例 short n3 = -32768;//n3=0x8000 n3 = n3 - 1;//n3=0x7fff=32767 溢位 unsigned short n4 = 0;//n4=0x0000 n4 = n4 - 1;//n4=0xffff=65535 溢位

26 3.4.3 轉換資料型態 指定型態 ( 資料 | 變數 ) 指定型態 ( 資料 | 變數 ) 由小轉大 由小轉大 範例一 範例一 int n; short n1 = 32767;//n1=32767 n = int(n1 + 1);//n=32767+1=32768 範例二 範例二 int n; unsigned short n2 = 65535;//n2=65535 n = int(n2 + 1);//n=65535+1=65536

27 3.4.3 轉換資料型態 ( 續 ) 範例三 範例三 int n; short n3 = -32768;//n3=-32768 n = int(n3 - 1);//n=-32768-1=-32769 範例四 範例四 int n; unsigned short n4 = 0;//n4=0 n = int(n4 - 1);//n=0-1=-1 範例五 範例五 int a=5; int b=3; float c = (float(a) / float(b));

28 3.4.3 轉換資料型態 ( 續 ) 由大轉小 由大轉小 範例一 範例一 int intVar = 65500;//intVar=65500 signed short shortVar = short(intVar);//shortVar=-36 範例二 範例二 short shortLet = 65;//shortLet=65 char charLet = char(shortLet);//charLet='A' 範例三 範例三 float floatNum = 70000.0f; //floatNum=70000.0 int intNum = int(floatNum);//intNum=70000 short shortNum = short(floatNum);//shortNum=4464

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

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

31 3.5.1 單一指定 資料型態變數名稱 1, 變數名稱 2, … 資料型態變數名稱 1, 變數名稱 2, … 變數名稱 1 = 初值, 變數名稱 2 = 初值, … 變數名稱 1 = 初值, 變數名稱 2 = 初值, … short shortVar;// 宣告短整數變數 shortVar shortVar = 5;//shortVar 的初值等於 5. shortVar = 10;// 改變 shortVar 的值為 10 資料型態變數名稱 1 = 初值, 變數名稱 2 = 初值, … 資料型態變數名稱 1 = 初值, 變數名稱 2 = 初值, … short shortVar = 5;//shortVar 的初值等於 5

32 3.5.2 多重指定 變數名稱 1 = 變數名稱 2 … = 初值 ; 變數名稱 1 = 變數名稱 2 … = 初值 ; 範例一 範例一 int a, b, c, d; // 宣告整數變數 a, b, c, d a = b = c = d = 10;// 令 a=b=c=d=10 範例二 範例二 const int VALUE = 100;// 宣告常數符號 int var1, var2, var3;// 宣告變數 var1 = var2 = var3 = VALUE; // 令多個變數 =100

33 3.5.3 混合指定 變數名稱 op= 資料 ; 變數名稱 op= 資料 ; 範例 範例 a = a + 10;//a+10 存回 a a += 10;//a+10 存回 a

34 3.6 數值函數 C++ 語言提供一些常用的數學函數 ( mathematical functions ),如三角函數、 指數與對數函數、冪次與開方函數、取整 數函數、取絕對值函數、還有產生亂數函 數等等。 C++ 語言提供一些常用的數學函數 ( mathematical functions ),如三角函數、 指數與對數函數、冪次與開方函數、取整 數函數、取絕對值函數、還有產生亂數函 數等等。 這些數學函數包含於 math.h 標題檔中,亂數 函數則包含於 stdlib.h 標題檔中,所以使用這 些函數之前必須先插入包含該函數的標題 檔到使用者程式的前置處理區。 這些數學函數包含於 math.h 標題檔中,亂數 函數則包含於 stdlib.h 標題檔中,所以使用這 些函數之前必須先插入包含該函數的標題 檔到使用者程式的前置處理區。

35 3.6.1 亂數函數 產生固定亂數 產生固定亂數 #include #include rand( ) rand( ) 範例 範例 cout << rand() << endl;// 輸出亂數

36 3.6.1 亂數函數 ( 續 ) 產生種子亂數 產生種子亂數 #include #include srand ( 正整數 ) srand ( 正整數 ) 範例 範例 unsigned seed; cin >> seed;// 輸入種子數 srand(seed);// 設定亂數種子數 cout << rand() << endl;// 輸出亂數

37 3.6.1 亂數函數 ( 續 ) 產生隨機亂數 產生隨機亂數 #include #include time(* 指標 ) time(* 指標 ) 範例 範例 srand (time(NULL)); cout << rand() << endl;// 輸出亂數

38 3.6.1 亂數函數 ( 續 ) 調整亂數範圍 調整亂數範圍 下限 + rand( ) % ( 上限 – 下限 + 1) 下限 + rand( ) % ( 上限 – 下限 + 1) 範例 範例 int x, y; x = 10 + rand( ) % (20 - 10 + 1); //10~20 的整數亂數 y = rand( ) % (99 + 1); //0~99 的整數亂數

39 3.6.2 三角函數 #include #include 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  double a = sin(x); //a = sin(30  ) double b = cos(x); //b = cos(30  ) double c = tan(x); //c = tan(30  )

40 3.6.3 指數與對數 #include #include double exp( 數值 ) double exp( 數值 ) double log( 數值 ) double log( 數值 ) double log10( 數值 ) double log10( 數值 ) 範例 範例 double a = log(2);//a = ln(2) double b = log10(2);//b = log 10 (2) double c = exp(2); //c = e 2

41 3.6.4 冪次與開方 #include #include double pow( 底數, 冪次 ) double pow( 底數, 冪次 ) double sqrt( 數值 ) double sqrt( 數值 ) 範例 範例 double a = pow(2, 3);//a=2 3 double b = sqrt(3); //b=√3

42 3.6.5 小數進位與切除小數 #include #include double ceil( 數值 ) double ceil( 數值 ) double floor( 數值 ) double floor( 數值 ) 範例 範例 int m1 = ceil(3.33)//m1 = 4 int n1 = floor(3.33); //n1 = 3 int m2 = ceil(-3.33)//m2 = -3 int n2 = floor(-3.33); //n2 = -4

43 3.6.6 取絕對值 #include #include double fabs ( 數值 ) double fabs ( 數值 ) 範例 範例 int a = fabs(5.25);//a = 5.25 int b = fabs(-3.75);//b = 3.75

44 Ex 05 寫一個加法練習程式,程式產生兩個 100 到 500 的 亂數,並輸出畫面如下 352 + 179 ---------- 等待使用者輸入答案,並顯示正確答案。 寫一個加法練習程式,程式產生兩個 100 到 500 的 亂數,並輸出畫面如下 352 + 179 ---------- 等待使用者輸入答案,並顯示正確答案。 專案及程式檔案名稱請使用「學號 _05 」,檔案上 載至 ftp://192.192.155.217 上的 Ex05 目錄 專案及程式檔案名稱請使用「學號 _05 」,檔案上 載至 ftp://192.192.155.217 上的 Ex05 目錄 ftp://192.192.155.217 上的 Ex05 ftp://192.192.155.217 上的 Ex05

45 Homework 2 設計一個程式,可由使用者輸入學生姓名,國文成績,數學成績,英 文成績。然後計算總分和平均,再輸出使用者輸入的資料、總分及成 績。程式執行結果如下: 請輸入姓名: 曾聰明 請輸入國文成績: 97 請輸入數學成績: 92 請輸入英文成績: 77 統計中 ……………………… 曾聰明的成績如下: ================ 國文: 97 數學: 92 英文: 77 ---------------------------------- 總分: 266 平均: 88.67 設計一個程式,可由使用者輸入學生姓名,國文成績,數學成績,英 文成績。然後計算總分和平均,再輸出使用者輸入的資料、總分及成 績。程式執行結果如下: 請輸入姓名: 曾聰明 請輸入國文成績: 97 請輸入數學成績: 92 請輸入英文成績: 77 統計中 ……………………… 曾聰明的成績如下: ================ 國文: 97 數學: 92 英文: 77 ---------------------------------- 總分: 266 平均: 88.67


Download ppt "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.2 輸出格式化 3-3 3.2.1 設定輸出長度 setw."

Similar presentations


Ads by Google