第6章 運算式與運算子 [算術與多功能計算機]

Slides:



Advertisements
Similar presentations
第2章 Visual Basic 6.0编程基础 (第一部分)
Advertisements

糖尿病健康教育 广水市健康教育所 (2).
台塑石化 與 全國 之 財務分析 :企管二甲、乙 班級 指導 :楊雪蘭 老師 :第六組 組別 組員
健康一二一 宜兴市疾病预防控制中心 周 茜
課程名稱:程式設計 授課老師:________
                                         減肥.
大 綱 重大變革事項 甄選員額 甄選資格 甄選期程 軍官基礎教育與服役.
Visual Basic 2005學習範本 第5章 選擇結構.
第 10 章 更多的查詢技巧.
上課囉 職場甘苦談 小資男孩向錢衝 育碁數位科技 呂宗益/副理.
報告人:財團法人台灣癌症基金會執行長 賴基銘 醫師
五-4 台灣的生活禮俗 組員:603 15號 黃醴萬 6號 吳家熙 5號 楊証傑 11號 李偉新.
Chapter 4 流程控制.
100學年度高職校務評鑑簡報 報告人:校長 江銘鉦 日期:101年4月27日
健康減重飲食 高雄國軍總醫院 營養師余惠婷.
金門縣多年國小101學年度 推動健康促進學校成果簡報
第8章 字串與陣列 8-1 字串處理 8-2 一維陣列的處理 8-3 建立多維陣列 8-4 不規則陣列與參數傳遞 8-5 陣列排序與搜尋.
Operators and Expressions
Ch03 VB.NET語法建立ASP.NET 網頁程式設計.
C# 程式設計 第一部分 第1-4章 C# 程式設計 - 南華大學資管系.
BLANK overview.
程式語言Visual Basic 變數的可視範圍
課程名稱:程式設計 授課老師:________
Visual Basic 6.0 學習範本 第三章 基本資料型態.
第二章 Visual Basic语言基础.
第5章 数组 Visual Basic程序设计.
第3章 變數、資料型別與運算子.
程式語言 -Visual Basic 變數、常數與資料型態.
第14章 建立網路應用程式 14-1 瀏覽器的建立 14-2 檔案下載器 14-3 寄送電子郵件 14-4 檢查POP 3的電子郵件.
1 巨集 2 資料型態 3 物件、屬性、方法與事件 4 陳述式與副函式 5 其他注意事項 6 範例
第18章 B4J的跨平台應用程式開發 18-1 B4J的GUI設計工具與介面控制項 18-2 使用B4J的介面控制項
ASP动态网页设计实用教程 主讲教师: 开课单位:.
第12章 從C到C++語言 12-1 C++語言的基礎 12-2 C++語言的輸出與輸入 12-3 C++語言的動態記憶體配置
初识Visual Basic.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
C 語言簡介 - 2.
第4章 程序控制结构与算法基础.
計算機程式 廖文淵 Department of Computer Science and Engineering
程序的基本要素 2018/12/6.
Visual Basic 程序设计 教师:王 杨 电话:
第3章 Visual Basic语言基础 郭清溥.
Chapter 2 Basic Elements of Fortran
第3章 變數、資料型別與運算子 3-1 變數與資料型別的基礎 3-2 變數的命名與宣告 3-3 資料型別 3-4 運算式與運算子
變數命名 保留字(Reserved Word)
丙級電腦軟設-VB程式設計 資料來源:林文恭研究室 整理:張福生.
新觀念的 VB6 教本 第 6 章 資料型別.
Ch03 基本輸出入介面設計 視窗程式設計 授課教師:王大瑾.
Visual Basic程序设计.
Chapter 2 密碼基礎數學I:模數算數、同餘 與矩陣.
第4章 常量和变量 常量和变量都是程序中预留的用于保存数据的内存空间。常量的值在程序运行过程中始终不会发生变化。而变量的值在程序的运行过程中是可以变化的。在Fortran语言中,有五种基本的数据类型可供使用。他们分别是整型(INTEGER)、实型(REAL)、复型(COMPLEX)、字符型(CHARACTER)和逻辑型(LOGICAL)。按用途,又可以分数值型、字符型和逻辑型三种。相应的常量和变量也可以分为这三种。本章将按照用途介绍常量和变量的基本概念。
算法与程序设计 周少品.
暴力、草莽、土野、情色、權慾 —華西街的成人童話
第三章 VB语言基础 本章重点和难点 3.1 Visual Basic 程序代码的组织方式 3.2 代码行的书写规则
義守大學電機工程學系 陳慶瀚 第3章 VHDL Concurrent語法 義守大學電機工程學系 陳慶瀚
程序设计基础 第 2 章 学习程序设计的基本方法: 多练 模仿.
VB语言程序设计教程.
刑事訴訟法 不受理.
第2章 VB语言基础 本章要点: 数据类型 常量和变量 运算符表达式 函数.
Ch04 VB.NET的流程控制 網頁程式設計.
现代信息技术 微电子技术 计算机技术 传感技术 通信技术 处理、存储信息的技术 传感、采集技术 传递信息的技术
第二章、第三章错题分析.
全民参保软件培训 孙亚锋.
Java 程式設計 講師:FrankLin.
VB 2005資料型別與運算子.
计算机应用基础 潍坊学院 计算机工程学院 主讲人:丁素英.
Ch8 随机变量的数字特征.
程式設計 Visual Basic簡介 週次:4 建國技術學院 資管系 饒瑞佶 2003年11月1日.
軍校與民間大學之比較 軍校 民間大學 服裝食宿學雜費 由國家供給 除公費生外餘須自費 零用金 每月14,190元 父母供應或打工賺取 畢業
第6章 PHP基本語法介紹.
變數與資料型態  綠園.
Presentation transcript:

第6章 運算式與運算子 [算術與多功能計算機] 第6章 運算式與運算子 [算術與多功能計算機]

Contents 6-1 運算式基礎 6-2 Visual Basic運算子 6-3 算術與連接運算子 6-4 比較與邏輯運算子 6-5 運算式的資料型態轉換 6-6 例外處理

6-1 運算式的基礎 6-1-1 運算式簡介 6-1-2 運算式的種類

6-1-1 運算式簡介-說明 「運算式」(Expressions)是由一序列的「運算子」(Operators)和「運算元」(Operands)組成,可以用來在程式中執行所需的運算任務。

6-1-1 運算式簡介-範例 一些Visual Basic語言運算式範例,如下所示: A B 15 -15 A + B * 1 A > B And A > 1 A = B + 1 運算式中變數A、B和字面值1、15和-15是運算元,「+」、「*」、「>=」、「>」、「And」和「=」為運算子,運算子是一個使用幾個字元組成的符號,運算元是字面值或變數,事實上,單獨運算元(不包含運算子)也是一種運算式。

6-1-1 運算式簡介-如何執行運算 當同一個運算式擁有超過一個運算子時,運算式的執行結果會因運算子的執行順序而不同。例如:一個數學運算式,如下所示: 10 * 2 + 5 上述運算式如果先執行加法,運算過程是2+5=7,然後7*10=70,結果為70。如果先執行乘法,過程是10*2=20,然後20+5=25,結果是25。 運算式如果擁有多個運算子時,運算子執行順序是由優先順序(Precedence)和結合(Associativity)來決定。

6-1-1 運算式簡介-優先順序(Precedence) 程式語言提供多種不同運算子,在同一個運算式如果使用多個運算子時,為了讓運算式能夠得到相同運算結果,運算式是以運算子預設的優先順序進行運算,也就是我們所熟知的「先乘除後加減」口訣,如下所示: A + B * 2 在上述運算式中,因為運算子優先順序*大於+,所以先計算B*2後才和A相加。

6-1-1 運算式簡介-結合(Associativity) 右左結合(Right-to-left Associativity):運算式是 從右到左執行運算子的運算,例如:運算式A-B-C 是先計算B-C的結果D,然後才是A-D。 左右結合(Left-to-right Associativity):運算式是 從左到右執行運算子的運算,例如:運算式A-B-C 是先計算A-B的結果D,然後才是D-C。

6-1-2 運算式的種類-1 單運算元運算式(Unary Expressions) 單運算元運算式只包含一個運算元和「單運算元運算子」(Unary Operator),例如:正負號是一種單運算元運算式,如下所示: -15 +10 在Visual Basic語言的-和+正負號是一種單運算元運算子。

6-1-2 運算式的種類-2 A + B * 1 D + C + E 二元運算式(Binary Expressions) 二元運算式包含兩個運算元,使用一個二元運算子來分隔,Visual Basic語言的運算式大都屬於二元運算式,如下所示: A + B * 1 D + C + E 第1個運算式是使用運算子優先順序來執行運算。第2個運算式的2個運算子因為擁有相同優先順序,所以程式語言是使用結合(Associativity)來執行運算式的計算。

6-2 Visual Basic的運算子 6-2-1 運算子種類 6-2-2 運算子優先順序 6-2-3 在運算式使用括號

6-2-1 運算子的種類 算術運算子(Arithmetic Operators):執行常見數學運算的加、減、乘和除法等數值運算。 比較運算子(Comparison Operators):執行兩個運算元的大於、等於、小於、大於等於和小於等於的運算,可以傳回布林值True或False。 字串連接運算子(Concatenation Operators):可以連接多個字串成為一個字串,每一個字串是連接在前一個字串的最後。 邏輯運算子(Logical Operators):可以連接比較運算式來建立更複雜的條件運算式。

6-2-2 運算子的優先順序-規則 運算式預設依其出現順序,由左到右依序執行運算,其優先順序規則,如下所示: “( )”括號內比括號外先執行,括號的目的是為了推翻現有優先順序,在括號內依照正常優先順序。 當運算式擁有多種運算子時,算術運算子最先,接著是比較運算子,最後才是邏輯運算子,如下所示: 算術運算子 > 比較運算子 > 邏輯運算子 比較運算子擁有相同的優先順序。 算術運算子的加和減法優先順序相同,乘和除法擁有相同的優先順序,不過乘除高於加減,如下所示: ^指數 > (-)負號 > */乘除 > \整數除法 > Mod餘數 > +-加減 > & 邏輯運算子的優先順序,如下所示: Not > And, AndAlso > Or, OrElse > Xor

6-2-2 運算子的優先順序-優先順序 Visual Basic語言運算子的預設優先順序,愈前面的列,其優先順序愈高,如下表所示:

6-2-2 運算子的優先順序-結合規則 當運算式的運算子擁有相同優先順序時,Visual Basic語言是使用左右結合(Left-to-right Associativity)來執行D + C + E的運算,先計算D + C等於R後,計算R+E的值。

6-2-3 在運算式使用括號-括號運算式(Parenthetical Expressions) 在運算式中擁有超過2個運算子時,才可能使用括號來改變運算順序,例如:一個擁有乘法和加法運算子的算術運算式,如下所示: A = B * C + 10 上述運算式的運算順序是先計算B * C後,再加上字面值10,因為乘法優先順序大於加法。如果需要先計算C + 10,可以使用括號來改變優先順序,如下所示: A = B * (C + 10)

6-2-3 在運算式使用括號-巢狀括號運算式(Nested Parenthetical Expressions) 在運算式的括號中可以擁有其他括號,稱為巢狀括號,此時在最內層括號擁有最高優先順序,然後是其上一層,直到得到最後的運算結果,如下所示: A = (B * 2) ^ (C * (D + 10)) 上述運算式的運算順序是先計算最內層的D + 10,然後是上一層的(B * 2)和(C * (D + 10)),最後才計算指數運算結果。

6-3 算術與字串連接運算子 6-3-1 算術運算子 6-3-2 使用數學公式建立運算式 6-3-3 字串連接運算子 6-3-4 再談指定敘述

6-3-1 算術運算子-種類 Visual Basic語言提供多種算術運算子來執行數學運算,其說明與範例如下表所示:

6-3-1 算術運算子-取得TextBox控制項輸入的數值 在Windows應用程式通常是使用TextBox控制項來取得使用者輸入的變數值,因為預設資料型態是字串,所以需要使用資料型態轉換函數來轉換成數值,如下所示: Dim opd1, opd2 As Integer opd1 = CInt(txtOpd1.Text) opd2 = CInt(txtOpd2.Text)

6-3-1 算術運算子-Visual Basic專案 Visual Basic專案:Ch6-3-1\算術計算機 在Windows應用程式使用2個TextBox控制項輸入運算元的值後,使用算術運算子在Label標籤控制項顯示計算結果。其執行結果如下圖所示:

6-3-2 使用數學公式建立運算式-說明 數學公式可以轉換成算術運算式,建立Visual Basic應用程式來解決數學問題。 例如:華氏(Fahrenheit)和攝氏(Celsius)溫度的轉換公式。首先是攝氏轉華氏的公式,如下所示: F = (9.0 * C) / 5.0 + 32.0 華氏轉攝氏的公式,如下所示: C = (5.0 / 9.0) * (F – 32.0) 體脂肪BMI值的計算公式,如下所示: R = Weight / Height ^ 2

6-3-2 使用數學公式建立運算式-Visual Basic專案 Visual Basic專案:Ch6-3-2\多功能計算機 在Windows應用程式使用數學公式來建立算術運算式,可以計算BMI值,和轉換攝氏或華氏溫度。其執行結果如下圖所示:

6-3-3 字串連接運算子-說明 如果運算元是String字串資料型態,在Visual Basic語言提供運算子可以連接字串內容,其說明和範例如下所示:

6-3-3 字串連接運算子-Visual Basic專案 Visual Basic專案:Ch6-3-3\多功能計算機 這個Windows應用程式和上一節的專案相同,只是在計算BMI值時,除了輸出計算結果外,還加上說明字串。其執行結果如下圖所示:

6-3-4 再談指定敘述 在Visual Basic語言除了使用「=」等號建立指定敘述外,還可以配合其他運算子來簡化運算式撰寫,建立更簡潔算術運算式,如下表所示:

6-4 比較與邏輯運算子 6-4-1 比較運算子 6-4-2 邏輯運算子

6-4-1 比較運算子 比較運算子沒有優先順序分別,通常使用在迴圈和條件敘述作為判斷條件,運算結果是布林值True或False,其說明和範例如下表所示:

6-4-2 邏輯運算子-種類 如果迴圈和條件敘述的判斷條件不只一個,需要使用邏輯運算子來連接多個比較運算式,其說明如下表所示:

6-4-2 邏輯運算子-範例 對於複雜比較運算式可使用邏輯運算子連接,一些 實際的運算式範例,如下表所示:

6-5 運算式的資料型態轉換 6-5-1 隱含型態轉換 6-5-2 明顯型態轉換

6-5 運算式的資料型態轉換 「資料型態轉換」(Type Conversions)是因同一個運算式可能有多個不同資料型態的變數或字面值。例如:在運算式擁有整數和浮點數的變數或字面值時,就需要執行型態轉換。 資料型態轉換是指轉換變數儲存資料,而不是變數本身的資料型態,因不同型態佔用的位元組數不同,所以在進行資料型態轉換時。例如:Double轉換成Single,變數資料有可能損失資料或精確度。

6-5-1 隱含型態轉換-說明 隱含型態轉換(Implicit Conversions)並不需特別語法,在運算式或指定敘述兩端,如果有不同型態變數,就會將儲存資料自動轉換成相同資料型態。 在指定敘述右邊運算式結果會自動轉換成與左邊變數相同資料型態。一些運算式範例和說明,如下表所示:

6-5-1 隱含型態轉換-Visual Basic專案 Visual Basic專案:Ch6-5-1\我的主控台程式 這個Windows應用程式直接使用第5-4-1節的【我的主控台程式】,可以建立運算式來測試隱含型態轉換。其執行結果如下圖所示:

6-5-2 明顯型態轉換-說明 隱含型態轉換對於程式設計者來說,並不需任何 額外處理。不過因為是自動轉換,有時可能造成 未知型態轉換錯誤。例如:上一節範例程式,如 果準備將字串轉換成整數後再相加,運算式 num=str1+str2結果的值應該是375,而不是250125。 「明顯型態轉換」(Explicit Conversions)是在進 行運算前,自行使用資料型態轉換函數來轉換成 相同資料型態。

6-5-2 明顯型態轉換-資料型態轉換函數

6-5-2 明顯型態轉換-明顯型態轉換 當運算式或指定敘述兩端資料型態不相同時,就可使用上表函數自行轉換成相同資料型態,如下所示: intValue = CInt(longValue) num = CInt(str1) + num1 str = CStr(CInt(str1) + num1)

6-5-2 明顯型態轉換-Visual Basic專案 Visual Basic專案:Ch6-5-2\我的主控台程式 這個Windows應用程式是直接使用第6-5-1節的【我的主控台程式】,可以建立運算式來測試明顯型態轉換,對於不同型態變數,需要自行使用型態轉換函數來轉換型態。其執行結果如下圖所示:

6-6 例外處理-說明 例外處理是指在程式執行時,如果發生不正常執 行狀態時,可以在程式碼處理這些錯誤。 例外處理是指在程式執行時,如果發生不正常執 行狀態時,可以在程式碼處理這些錯誤。 例外處理的目的是為了讓程式能夠更「穩健」 (Robust)。當程式遇到不尋常情況,也不會造成 程式「崩潰」(Crashing),進而導致整個系統當 機情況。

6-6 例外處理-語法 Visual Basic語言提供結構化的例外處理程式敘述,即Try/End Try,其語法如下所示: Try ' 測試錯誤的程式碼 程式區塊 Catch ex As Exception ' 例外處理的程式碼 Finally End Try

6-6 例外處理-語法說明 例外處理敘述可以分為三個部分,其說明如下表所示:

6-6 例外處理-Visual Basic專案 Visual Basic專案:Ch6-6\算術計算機 這個Windows應用程式是修改第6-3-1節的【算術計算機】,在除法運算建立Try/End Try例外處理敘述,可以處理除以0導致溢位的運算錯誤。其執行結果如下圖所示: