Instructor:Po-Yu Kuo 教師:郭柏佑 EL 1009 計算機概論 (電子一A) Introduction to Computer Science Ch. 4 運算元 Instructor:Po-Yu Kuo 教師:郭柏佑
本章簡介 以電腦語言寫成的運算式子我們稱之為算式。 本章節我們將討論如何將一般的數學算式, 改寫成程式語言中的算式。 以及算式的組成 - 運算元與算符, 都會作一詳細的討論。
算術算符
4-1 算術算符 C 語言程式是由敘述構成, 而敘述則是由算式 (expression) 組合而成。算式是由至少一個 『運算元』(operand) 配合『算符』(operator)所組成
4-1 算術算符 算式的結構如下: 運算元可以為數值或者變數, 甚至可以是其他的算式。 算符可以分成以下3種: 4-1 算術算符 算式的結構如下: 運算元可以為數值或者變數, 甚至可以是其他的算式。 算符可以分成以下3種: 算數算符:為數學的基本運算, 如加、減、乘、除等。
4-1 算術算符 邏輯算符:將兩個數值以邏輯關係結合, 如AND 、OR。 關係算符:描述兩個數值的關係, 如大於、小於、等於。
4-1 算術算符 由運算元加上算符才能算是一個完整的算式, 以一個簡單的數學式子 a+b 為例:
4-1-1 加減乘除的混合運算
4-1-1 加減乘除的混合運算
4-1-1 加減乘除的混合運算
4-1-2 除法算符與餘數算符 %
4-1-2 除法算符與餘數算符 %
4-1-2 除法算符與餘數算符 % 範例 : 假設今天有 100 顆球, 我們每次拿掉 7 個, 拿到最後不足 7 之數剩幾個。 100顆球 每次拿走7顆球
4-1-2 除法算符與餘數算符 % 程式碼 : totalball = 100; /* 總共100顆球 */ left = totalball % ball; ------------------------------------- 結果 left = 2 得到兩數相除的餘數
4-1-3 利用括號改變運算順序 擁有最高的優先權, 可以利用括號算符來改變算式的順序
關係算符
關係算符 關係算符是用來比較每個數值的大小關係, 共有 6 個如下:
關係算符 關係算符的結果只有兩種 真, True, 或 1。 假, False, 或 0。 運算結果會以整數表示 真 (1)。 假 (0)。
關係算符 例如: 父親的年齡 fatherage 一定比小孩年齡 childage 大, 因此其關係為:
判斷敘述是否正確
練習換行的控制
邏輯算符
邏輯算符 在邏輯算符中, 把所有的運算元都歸類成兩種: 如果運算元的值為非 0 值, 則為真。 如果運算元的值為 0 , 則為假。 C 語言所使用的邏輯算符如下:
4-3-1 邏輯算符的意義與推演 邏輯算符是取運算元的真假值來參與運算, 運算結果也只有兩種:真與假 4-3-1 邏輯算符的意義與推演 邏輯算符是取運算元的真假值來參與運算, 運算結果也只有兩種:真與假 ◎ 邏輯運算又稱為布林代數 (Boolean algebra)
4-3-1 邏輯算符的意義與推演
4-3-2 邏輯算符與其他算符的混合運用
4-3-2 邏輯算符與其他算符的混合運用
指定算符與其他算符
4-4-1 指定 (=) 算符 4-4-2 累加 ++ 與累減 -- 算符
4-4-1 指定 (=) 算符 指定數值 C 語言中的等號與關係算符中的等於不太一樣, 關係算符的 == 是『判斷是否相等』, 而單一個 = 等號是『將等號右邊的數值指定給等號左邊的變數』
4-4-1 指定 (=) 算符 指定數值
4-4-1 指定 (=) 算符 等號與其它算符合併
4-4-1 指定 (=) 算符 等號與其它算符合併
4-4-1 指定 (=) 算符 等號與其它算符合併
4-4-2 累加 ++ 與累減 -- 算符 ++ 與 -- 算符可以放在變數前面或者後面, 若與其它算符一同出現在算式中, 則放在變數『前面』、『後面』對算式會有不同影響
算式結構與算符的優先權
算式結構與算符的優先權
算式結構與算符的優先權 優先權高者, 先處理:數字越小表示優先權越高, 優先權高者先處理。 優先權高者, 先處理:數字越小表示優先權越高, 優先權高者先處理。 優先權同者, 由左至右處理:在算式中, 相同優先權者會從最左邊開始, 逐次將每個算符作處理。 括號算符 () 擁有最高優先權:當括號算符出現時, 左右括號括住的算式會擁有最高的優先權 指定算符 = 優先權最低:指定算符的出現都是代表著一個算式的結束
綜合演練
判斷為大寫或小寫字母
判斷為大寫或小寫字母 第10行中, ch>64 && ch<91, 意思就是判斷輸入的字元, 是否在ASCII碼數字 65 ~ 90之間(大寫字母)。 第11行中, ch>96 && ch<123, 意思就是判斷輸入的字元, 是否在ASCII碼數字 97 ~ 122之間(小寫字母)。
判斷英文字母並做大小寫轉換 試寫一程式, 讓使用者從鍵盤輸入字元, 當輸入不是英文字母, 螢幕印出訊息”The character is not English Letter!!” 。當輸入是英文字母時, 在螢幕上印出字母, 並做大小寫的轉換。 說明: 執行結果 Please input a character: h The character you typed: h The uppercase letter: H Please input a character: H The character you typed: H The uppercase letter: h OR 小寫轉大寫 大寫轉小寫
Homework#4 1. 學習評量 Ch3. (7), (9)。 Ch4. (3), (9) 。 提示: 程式練習(5) 輸出的結果要印出小數點。 3. 試寫一程式, 從鍵盤輸入4位數字, 當使用者輸入1個數字時, 螢幕輸出 ’*’ 。當輸入完成後, 螢幕立即輸出4位數字 。 (提示: 使用 # include <conio.h>含括檔) 說明: 執行結果 Please input 4 digit number: **** The number you typed is 1234. 使用者輸入時, 數字會被隱藏起來並印出’*’的符號。當輸入完成後, 再印出4位數字。
Homework#4 4. 試寫一程式, 讓使用者從鍵盤輸入字元, 當輸入不是英文字母, 螢幕印出訊息”The character is not English Letter!!” 。當輸入是英文字母時, 在螢幕上印出字母, 並做大小寫的轉換。 5. 試寫一程式, 讓使用者從鍵盤輸入2個整數, 然後將兩個整數作交換, 並在螢幕上印出, 記住不可使用任何暫存變數。 繳交期限: 2016/12/8 。