ch04_p3.pdf - 程式設計(Programming 真理大學 資訊工程� 吳汶涓老� CH04 C程式控� 本章綱要 4-1 簡介 4-2 重複的基本概念

ch04_p3.pdf - 程式設計(Programming 真理大學...

This preview shows page 1 out of 21 pages.

Unformatted text preview: 程式設計 (Programming) 真理大學 資訊工程系 吳汶涓老師 CH04 C程式控制 本章綱要 4-1 簡介 4-2 重複的基本概念 4-3 計數器控制的重複 4-4 for for重複敘述式 4-5 for敘述式:注意事項 4-6 使用for敘述式例子 真理大學 資訊工程系 4-7 switch多重選擇敘述式 4-8 do…while重複敘述式 4-9 break和continue 4-10 邏輯運算子 4-11 相等(==)和指定(=) 4-12 結構化程設總整理 程式設計 Programming ( 吳汶涓 ) 2 4.10 邏輯運算子  && (邏輯 AND)   | | (邏輯OR)   在兩個條件都為真時,則傳回真 真 當兩個條件中有一個(或全部)為真時,則傳回真 真 ! (邏輯NOT, ( NOT, 否定))   反轉條件式的真偽值 為一元運算子,只有一個運算元 真理大學 資訊工程系 程式設計 Programming ( 吳汶涓 ) 3 真理大學 資訊工程系 程式設計 Programming ( 吳汶涓 ) 4 範例: 範例: if(gender if(gender == 1 && age >= 65) 65) ++seniorFemales; if(semesterAverage if(semesterAverage >= 90 || finalExam >= 90) 90) printf("Student printf("Student grade is A\ A\n”); n”); if(!(grade if(!(grade == sentinelValue)) printf("The printf("The next grade is %f\ %f\n", n", grade); 可寫成if(grade if(grade != sentinelValue) 真理大學 資訊工程系 程式設計 Programming ( 吳汶涓 ) 5 練習  撰寫一個程式,判斷使用者輸入的年份是否為閏 年。  所謂閏年,就是西元年被4整除且不被100整除,或是被400整除者 真理大學 資訊工程系 程式設計 Programming ( 吳汶涓 ) 6 4.11 相等(==)和指定(=)  危險的錯誤:混用==和=     通常不會造成語法錯誤、編譯錯誤 可以產生值的任何運算式(=),都可使用在任何控制敘述式中 如果值是零,則當做偽。如果值不是零,則當做真 混用的範例: if(payCode if(payCode == 4) printf("You printf("You get a bonus!”); bonus!”); 但會因執行時 if(payCode if(payCode = 4) printf("You printf("You get a bonus!”); bonus!”); 的邏輯錯誤而 不管值多少, 不管值多少,都拿得到獎金 真理大學 資訊工程系 有不正確結果 程式設計 Programming ( 吳汶涓 ) 7  lvalues   出現在等號左邊 等號左邊的運算式 等號左邊 其值可能會改變,例如變數名稱   就像 x = 4; rvalues   只出現在等號右邊 等號右邊的運算式 等號右邊 常數,例如數字    不可以寫 4 = x; 應該寫成 x = 4; lvalues可以用來當作rvalues,反之則不可以  就像 y = x; 真理大學 資訊工程系 程式設計 Programming ( 吳汶涓 ) 8 if(1 == x) 真理大學 資訊工程系 程式設計 Programming ( 吳汶涓 ) 9 4.12 結構化程設總整理  結構化程式設計:   比非結構化程式更容易測試、偵錯及修改 程式由該結構之後的第一個敘述式繼續執行 (堆疊規則 堆疊規則) 堆疊規則 (巢狀規則 巢狀規則) 巢狀規則 真理大學 資訊工程系 程式設計 Programming ( 吳汶涓 ) 10 真理大學 資訊工程系 程式設計 Programming ( 吳汶涓 ) 11  所有的程式都可以分解成三種控制結構       循序 選擇:if, if…else, switch 重複:while, do…while, for 所有選擇敘述式都可以用 if 敘述式來改寫 所有重複敘述式都可以用while敘述式來改寫 這些控制敘述式只能以兩種方式組合   堆疊 (規則2) 巢狀 (規則3) 真理大學 資訊工程系 程式設計 Programming ( 吳汶涓 ) 12 (堆疊規則 堆疊規則) 堆疊規則 真理大學 資訊工程系 程式設計 Programming ( 吳汶涓 ) 13 (巢狀規則 巢狀規則) 巢狀規則 真理大學 資訊工程系 程式設計 Programming ( 吳汶涓 ) 14 真理大學 資訊工程系 程式設計 Programming ( 吳汶涓 ) 15 真理大學 資訊工程系 程式設計 Programming ( 吳汶涓 ) 16 練習 (敘述式會印出 敘述式會印出 ?, pp. 4-46) i = 1、 、j = 2、 、k = 3、 、m = 2           printf(“%d” printf(“%d”, “%d”, printf("%d" printf("%d", "%d", printf(“%d” printf(“%d”, “%d”, printf(“%d” printf(“%d”, “%d”, printf("%d" printf("%d", "%d", printf(“%d” printf(“%d”, “%d”, printf("%d" printf("%d", "%d", printf(“%d” printf(“%d”, “%d”, printf(“%d” printf(“%d”, “%d”, printf(“%d” printf(“%d”, “%d”, 真理大學 資訊工程系 i == 1); Ans: 1 j == 3); Ans: 0 i >= 1 && j < 4); Ans: 1 m <= 99 && k < m); j >= i || k == m); k + m < j || 3 – j >= k); !m); !(j - m)); !(k > m)); !(j > k)); 程式設計 Programming ( 吳汶涓 ) 17 練習   撰寫一個程式將一連串整數進行加總。 第一個scanf 讀取的整數用來指定接下來輸入的數值個數, 如底下範例: input: 5 100 200 300 400 500 sum: 1500 撰寫一個程式將一連串整數進行平均值。 其中以9999當成警示值,如底下範例: input: 10 8 1 7 9 9999 Average: 7.0 真理大學 資訊工程系 程式設計 Programming ( 吳汶涓 ) 18 練習  請撰寫一個程式,找出數個整數中的最小者。 第一個scanf 讀取的整數用來指定接下來輸入的數值個數, 如底下範例: input: 5 11 21 4 15 7 min: 4 真理大學 資訊工程系 程式設計 Programming ( 吳汶涓 ) 19 練習   撰寫一個程式將輸入的十進位轉成二進位。如底下範例: input: 14 Binary: 1110 撰寫一個程式將輸入的二進位轉成十進位。如底下範例: input: 1110 Decimal: 14 真理大學 資訊工程系 程式設計 Programming ( 吳汶涓 ) 20 練習 (難 難)  撰寫一個程式輸入1994到1999中的某一年某一月,並用 for迴圈印出該年的日曆。請小心閏年。 真理大學 資訊工程系 程式設計 Programming ( 吳汶涓 ) 21 ...
View Full Document

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture