課程名稱:程式設計 授課老師:________

Slides:



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

計算機程式及實習 期末報告 題目:商店結帳系統
ooxx這個遊戲程式,非常的簡單只要你小時候會玩井字遊戲即可把電腦打敗,可以說是一種考智力取勝的遊戲。
課程名稱:程式設計 授課老師:________
第四章 控制结构.
赋值语句与输入、输出语句.
程式語言(I)- Visual Basic 6.0 第 9 章 結構化程式設計
高中信息技术新课程探讨 算法与程序设计教学实践与探讨 江苏省新海高级中学  张丽.
課程名稱:程式設計 授課老師:________
算法和程序设计 第4课 分支结构的算法设计 •.
第 二 课 程序组成、基本数据类型、表达式 我们以上一章练习题为例说明Pascal程序的结构形式:
四 VBScript编程基础.
題目:台灣客運 南臺科技大學 機械工程系 班級:奈米一乙 學號:4A 姓名:蔡政堯 授課教師:謝慶存
ASP VBScript 基础知识.
BLANK overview.
程式語言Visual Basic 變數的可視範圍
CH11.
Visual Basic 2010 程式設計16堂特訓 第七堂 VB的迴圈流程控制.
Visual Basic 6.0 學習範本 第三章 基本資料型態.
第二章 Visual Basic语言基础.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
第10章VBA会计应用与实践 第11章会计凭证管理模块设计与实现
第5章 数组 Visual Basic程序设计.
第3章 變數、資料型別與運算子.
程式語言 -Visual Basic 變數、常數與資料型態.
遠東科技大學資訊工程系 王善揚 可嵌入物件題庫系統 設計與開發 遠東科技大學資訊工程系 王善揚
1 巨集 2 資料型態 3 物件、屬性、方法與事件 4 陳述式與副函式 5 其他注意事項 6 範例
ASP动态网页设计实用教程 主讲教师: 开课单位:.
第12章 VBA编程 虽然Access的交互操作功能非常强大且易于掌握,但是在实际的数据库应用系统中,用户还是希望尽量通过自动操作达到数据库管理的目的。应用程序设计语言在开发中的应用,可以加强对数据管理应用功能的扩展。Office中包含Visual Basic for Application(VBA),VBA具有与Visual.
初识Visual Basic.
算法与程序设计.
第4章 程序控制结构与算法基础.
計算機程式 廖文淵 Department of Computer Science and Engineering
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述.
第4章 基本的控制结构 4.1 顺序结构 4.2 选择结构程序设计 4.3 循环结构 4.4 综合实例 退出.
流程控制、陣列 台南市聖功女子高級中學 毛全良.
程序的基本要素 2018/12/6.
Visual Basic 程序设计 教师:王 杨 电话:
第3章 Visual Basic语言基础 郭清溥.
第3章 變數、資料型別與運算子 3-1 變數與資料型別的基礎 3-2 變數的命名與宣告 3-3 資料型別 3-4 運算式與運算子
第12章 VBA模块设计.
變數命名 保留字(Reserved Word)
新觀念的 VB6 教本 第 6 章 資料型別.
Ch03 基本輸出入介面設計 視窗程式設計 授課教師:王大瑾.
广州市教育局教学研究室编写的 初中《信息技术》第二册第二章 《程序设计初步》
算法与程序设计 周少品.
VB程序设计语言 主讲教师:王 杨.
第三章 VB语言基础 本章重点和难点 3.1 Visual Basic 程序代码的组织方式 3.2 代码行的书写规则
程式設計 Visual Basic簡介 週次:2 建國技術學院 資管系 饒瑞佶 2003年9月17日.
程序设计基础 第 2 章 学习程序设计的基本方法: 多练 模仿.
程式語言(I)- Visual Basic 6.0 第 8 章 模組化程式設計I-副程式與自定函數.
For x = 0 To 9 For y = 0 To 9 z = *x + 10*y …… Next y
江西财经大学信息管理学院 《数据库应用》课程组2007
第3章 Java語法的JSP程式 3-1 Java語言的基礎 3-2 JSP程式的基本架構 3-3 Java的變數與資料型態
第2章 VB语言基础 本章要点: 数据类型 常量和变量 运算符表达式 函数.
小结 郭清溥.
现代信息技术 微电子技术 计算机技术 传感技术 通信技术 处理、存储信息的技术 传感、采集技术 传递信息的技术
程序基础 2019/4/25.
第二章、第三章错题分析.
計算機程式及實習 Computer Program Design and Experiment) 期末報告ppt製作
第6章 運算式與運算子 [算術與多功能計算機]
VB 2005資料型別與運算子.
本节内容 Lua基本语法.
問題解決與流程圖 高慧君 台北市立南港高中 2006年12月22日.
程式設計 Visual Basic簡介 週次:4 建國技術學院 資管系 饒瑞佶 2003年10月18日.
第5章 数组 5.1 数组概述 5.2 静态数组和动态数组 5.3 数组的基本操作 5.4 控件数组 5.5 数组在自定义数据类型中的应用.
變數、資料型態、運算子.
算法与Visual Basic程序基础(二)
VB语言基础 一、 常量 1 定义:在程序运行过程中不能发生改变的量 2 分类 整型常量: 整数 不带小数点的数 数值常量
程序调试与错误处理.
Presentation transcript:

課程名稱:程式設計 授課老師:________ 第 二 章 資料型態與變數宣告及運算 課程名稱:程式設計 授課老師:________ 2018/11/14

本章學習目標 1.讓讀者瞭解資料型態、變數及記憶體之間的關係。 2.讓讀者瞭解變數與常數之間的差異。 3.讓讀者瞭解數學上的運算式及程式語言上的運算式之差異及轉換方式。 4.讓讀者瞭解變數在程式中的生命週期。 2018/11/14

本章內容 2-1 資料型態 2-2 變數與常數 2-3 VB註解的使用 2-4 資料的運算 2-5 變數的生命週期 2-6 習題 2018/11/14

2-1資料型態 2018/11/14

2-1.1 數字類資料型態 資料型態 所佔用 記憶體空間 資料表示的範圍 Short(短整數) 2Byte -32,768至32,767 Integer(整數) 4Byte -2,147,483,648至2,147,483,647 Long(長整數) 8Byte -9,223,372,036,854,775,808 至9,223,372,036,854,775,807 Single(單精準度) 負數:-1.401298E-45至-3.402823E38 正數:1.401298E-45至3.402823E38 Double(雙精準度) 負數:-4.94065645841247E-324至 -1.79769313486232E308 正數: 4.94065645841247E-324至     1.79769313486232E308 Currency(貨幣) -922,337,203,685,477.5808 (小數部位最多四位數字) 一般我們在撰寫程式時,往往以為只要是數值資料都一定是「整數」型態,但是「整數」可分為三種型態:短整數、整數及長整數。 2018/11/14

2-1.2 文字類資料型態 當我們在撰寫程式時,要弄清楚那些變數是用來存放整數或字串資料,例如:每一位學生的學號、姓名…等都是字串資料,其變數一定要宣告為String(字串型態),如果宣告為Integer必然會產生錯誤。其詳細內容如下表所示。 資料型態 所佔用記憶體空間 資料表示的範圍 Char(字元) 2Bytes 0到65535 String(字串) 視User設定的字串長度而定 1到231個字元 2018/11/14

Eng_Score=Val (TextBox3) [實例]計算學生的學業成績。 以上三個輸入框都是文字型態,但是如果我們要計算該學生的平均成績時,則必須要將國文及英文的文字內容轉換成數字型態(Val函數)才可以計算。 Stu_Name=TextBox1 Chi_Score=Val (TextBox2) Eng_Score=Val (TextBox3) 2018/11/14

其程式的撰寫如下所示: 題目:計算平均成績 程式檔案名稱 ch2-1.2.sln 01 02 03 04 05 06 07 08 09 10 11 12 13 Private Sub Button1_Click(……) Handles Button1.Click '宣告 Dim Stu_Name As String Dim Chi_Score, Eng_Score, Average As Single '輸入 Stu_Name = TextBox1.Text Chi_Score = Val(TextBox2.Text) Eng_Score = Val(TextBox3.Text) '處理 Average = (Chi_Score + Eng_Score) / 2 '輸出 MsgBox(Stu_Name & " 同學的平均成績:" & Average) End Sub 2018/11/14

2-1.3 其他類資料型態 除了數字類與文字類資料型態之外,常見的資料型態還有四種:分別為布林資料、日期時間資料、自由變數資料及物件資料。其詳細內容如下表所示。 其中,布林資料(Boolean)通常是用來表示「條件式」的真假,當條件式成立時布林資料就會變成True(真),不成立時布林資料就會變成False(假)。 資料型態 所佔用記憶體空間 資料表示的範圍 布林資料(Boolean) 2Byte True(-1) 或 False(0) 日期時間(Date) 8Byte 西元至12/31/9999 物件(Object) 4Byte 可儲存任何資料型態 執行結果 2018/11/14

2-2 變數與常數 程式語言在資料處理時,通常把資料分成兩類:變數 (Variable) 和常數 (Constant)。變數是指程式在執行的過程中,可以改變其值。而常數則一直保持不變。例如A=B+1中1即是常數,而A、B則是變數,也就是記憶體儲存1的位址,其內容固定無法改變,而儲存A和B的位址其內容是可以改變的。 2018/11/14

2-2.1 何謂變數(Variable)  「變數」是指資料儲存在主記憶體位址的名稱,其內容會隨著程式的執行而改變。您可以將變數想像成一個容器,它是專門用來儲放資料的地方。而容器的大小是由宣告時的資料型態來決定。 2018/11/14

‘代表告訴電腦要從主記憶中,配置三個位置分別為A,B,C, 並且這三個位置只能存放整數型態的資料。如下圖所示: 【實例1】宣告三個變數 Dim A,B,C As Integer ‘代表告訴電腦要從主記憶中,配置三個位置分別為A,B,C, 並且這三個位置只能存放整數型態的資料。如下圖所示: 宣告自動產生三個記憶體空間 2018/11/14

注意:在VB2010程式語言中,「=」的真正意義是〞指定運算子〞, 並非數學中的「等於」。 【實例2】指定運算子的使用 注意:在VB2010程式語言中,「=」的真正意義是〞指定運算子〞, 並非數學中的「等於」。 2018/11/14

2-2.2 宣告變數的方法 Dim 是Dimension的縮寫,它可用來宣告變數的名稱與資料型態,系統會自動配置適當的記憶體空間,來存放該型態的資料。在VB2010中每一個變數在使用之前一定要加以宣告,否則會產生「編譯錯誤」。如下圖所示: 2018/11/14

【說明】1.一次可宣告一個或多個變數,但是宣告多個變數時,變數 與變數之間要用「逗點」隔開。 【語法】Dim 變數名稱 AS 資料型態 【說明】1.一次可宣告一個或多個變數,但是宣告多個變數時,變數 與變數之間要用「逗點」隔開。 2.如果省略「As 資料型態」時,則VB會自動設定該變數為 Variant(自由型態) 【舉例】 Dim R As Interger '宣告R變數為整數型態 Dim A As Single '宣告A變數為小數型態 Dim A,B,C As Integer '宣告A,B,C三個變數為整數型態 2018/11/14

【實例】撰寫一個1+2+…+10的程式 【說明】 以上的程式如果在VB6.0上執行,不會產生錯誤訊息,但是執行結果會令人意外,得到的結果是1,因為Sum = Sun + 1這一行應該是Sum = Sum + i才對,也就是打錯變數名稱了。 題目: 使用未宣告的變數 程式檔案名稱 ch2-2.2.sln 01 02 03 04 05 0607 Private Sub Button1_Click(……) Handles Button1.Click Dim i, Sum As Integer For i = 1 To 10 Sum = Sun + i Next i MsgBox( "總數是:" & Sum) End Sub 2018/11/14

如果在VB2010中,若程式使用未宣告的變數時,會產生編譯階段的錯誤。如下圖所示:就會顯示Sun變數未定義的錯誤訊息來提供設計者。 為了防止變數打錯所造成的邏輯上的錯誤,所使用的變數都必需做宣告。 2018/11/14

2-2.3 初值設定 是指在宣告變數的同時,指定資料給變數,此功能是VB2010與VB6.0不同之處,因為在VB6.0中沒有設定初值的功能。 2-2.3 初值設定 是指在宣告變數的同時,指定資料給變數,此功能是VB2010與VB6.0不同之處,因為在VB6.0中沒有設定初值的功能。 以下是VB6.0與VB2010的比較: 一、VB 6.0的初值設定方法 二、VB 2010的初值設定方法 01 02 03 04 Dim R As Integer '將變數R宣告為整數型態 Dim A As Single '將變數A宣告為小數型態 R=5 ' 指定5給R A=6.28 ' 指定6.28給A 01 02 Dim R As Integer=5 '將變數R宣告為整數型態,並指定5給R Dim A As Single=6.28 '將變數A宣告為小數型態,並指定6.28給A 2018/11/14

2-2.4 敘述 是指運用Visual Basic的字元集與保留字,就可以組合成一行行指令,以命令電腦做事情,這一行行的指令稱為「敘述」(Statement),例如:Msgbox(1+2)。這就是一個Visual Basic 2010的敘述。而我們在撰寫程式敘述時,時常會用到兩個特殊的字元,其說明如下: 一、冒號 (:) 分開字元 二、繼續字元 (_) 2018/11/14

一、冒號 (:) 分開   基本上,我們習慣一個敘述寫一列,如果遇到比較短的程式時,我們也可以將多個敘述寫在一列,但必須要使用冒號 (:) 分開。 2018/11/14

二、繼續字元 (_) 在我們撰寫某些敘述可能太長而無法容納在一列內,或是為閱讀方便,可以利用繼續字元 (_) 將敘述分成許多列。繼續字元是由一個「空白格」加上一個「底線(Underline)符號」組成。 2018/11/14

2-2.5 變數的命名規則 Visual Basic變數的命名規則,在編寫程式時必須遵守,其規則如下: 1.變數名稱的長度必需在255個字元以內。 2.變數名稱不可以與VB2010的保留字相同。註1* 3.變數名稱在同一個有效區域範圍內不可以重覆。 4.變數名稱必需要以英文字(A~Z大小寫均可)做開頭,之後可以加上 英文字、數字、底線,但不可以有特殊符號(如:! , @ , # , $ , % , * ……)。如下表所示。 5.變數名稱可以是中文字,但筆者建議不要使用。(有時會產生亂碼哦! 請特別小心) 變數名稱 判斷合法與不合法 原因 M2 合法 正確(英文字母開頭) 3M 不合法 開頭必需要是英文字母 A*5 不可以有特殊符號 Print Print是保留字 2018/11/14

註1*: 保留字(Reserved Word)是指Visual Basic2010系統已經定義的屬性(Property)、事件 (Event)、方法 (Method)、運算子 (Operator) 和函數 (Function) 等所使用的文字或運算符號是由字元組合而成。 例如:For, Next, Loop, If…等。 2018/11/14

2-2.6 一個好程式命名變數的方法 1.在VB2010中變數名稱中的英文字母是不分大小寫的。 2-2.6 一個好程式命名變數的方法 1.在VB2010中變數名稱中的英文字母是不分大小寫的。 例如:TOTAL , Total及total三者都是一樣,代表同一個變數名稱。 2.在VB2010中變數名稱的命名最好具有意義的,並且與該程式有關係的, 唯有如此,才能提高程式的可讀性,以利爾後的除錯。 例如:Stu_Name(代表學生姓名),Stu_No(代表學生學號) 3.如果想不出變數名稱的英文字母時,最好在命名時,適時的在變數之後加以註解。 例如:Dim Start_X AS Integer ' 宣告X的開始座標 2018/11/14

2-2.7 何謂常數(Constant) 在程式設計時,有些值會在程式中重複出現,並且其值也不會被改變,我們可以利用一個較有意義的名稱來取代這些不會被改變的數字或字串,我們稱為「常數」。亦即在整個程式執行中,不會改變內容的資料稱之。 一般而言,常數可分為兩種,分別為數字常數與字串常數,其說明如下: 1.數字常數 2.字串常數 2018/11/14

一、數字常數 假設我們已知有圓的半徑,而現在要計算圓的面積與周長時,就必須要用到圓周率為3.14。因此,在撰寫程式就必須要在許多敘述中要輸入3.14。但是,當我們想要更準確計算圓的面積與周長時時,勢必要將圓周率3.14改為3.141592,那我們就必須要逐行去檢查原來的3.14,並改為3.141592。如此的作法容易產生錯誤,因為可以能某些敘述「輸入錯誤」或「未改到」。 2018/11/14

【語法】Const 常數名稱 As 資料型態=常數值 宣告常數的方法 【語法】Const 常數名稱 As 資料型態=常數值 【說明】利用宣告常數的方法之後,只須要在最前面宣告PI為常數 即可。如此,可以減少程式的錯誤。 01 02 03 04 Const PI As Single = 3.141592 '宣告「圓周率」為3.14的常數 R = 3 '初值設定 A = PI * R ^ 2 '計算圓面積 L = 2 * PI * R '計算圓周長 2018/11/14

二、字串常數 在Visual Basic中,字串常數前後必須使用雙引號「"」括起來。 【例如】Const MyName As String="李大同" Const MyID As String="A123456789" 【優點】 1.減少程式錯誤的機會。 2.讓程式更易於閱讀。 3.使程式較容易修正。 2018/11/14

2-3 VB註解的使用 何謂註解?它是一種「非執行的敘述」亦即是給人看的,而電腦不會去執行它。此功能就是用來說明某一段程式碼的作用與目的。 其「註解」的方法下: 我們可以使用單引號「 ' 」或REM(Remark的縮寫)作為單行的註解。 1.使用單引號「 ‘ 」的使用時機:可以寫在程式碼的後面。 2.使用REM的使用時機:只能寫成單獨一行註解。 在我們辛辛苦苦開發一套資訊系統之後,一定使用了不少的函數、變數及各種敘述,並且程式的複雜度也隨之增加。因此,當我們下次要去維護時,有時會發現無法瞭解當時宣告的變數或敘述所代表的意義,也無法馬上了解該程式的目的。所以,我們在撰寫程式時,應該適度的註解,有助於日後程式的維護。 2018/11/14

例如:設計一個求圓面積與圓周長的程式。 題目:VB註解的使用 程式檔案名稱 ch2-3.sln 01 02 03 04 05 06 07 08 09 10 11 12 13 14 Private Sub Button1_Click(……) Handles Button1.Click REM ===設計一個求圓面積與圓周長的程式=== REM 宣告變數 Dim A As Single '宣告「圓面積」變數 Dim L As Single '宣告「圓周長」變數 Dim R As Integer '宣告「半徑」變數 Const PI As Single = 3.14 '宣告「圓周率」為.14的常數 R = 3 '初值設定 REM 處理 A = PI * R ^ 2 '計算圓面積 L = 2 * PI * R '計算圓周長 REM 輸出 MsgBox("圓面積=" & A & vbNewLine & "圓周長=" & L) End Sub 2018/11/14

2-4 資料的運算 我們都知道電腦處理資料的過程為:輸入---處理---輸出,其中「處理」程序通常是藉由運算式(Expression)來完成。每一行運算式都是由運算元(Operand)與運算子(Operator)所組合而成的。例如:A=B+1,其中「A,B,1」稱為運算元,「=,+」則稱為運算子。 一般而言,「運算元」都是變數或常數,而運算子則可分為四種: (一) 指定運算子 (二) 算術運算子 (三) 關係運算子 (四) 邏輯運算子 2018/11/14

舉例: 求圓的面積與周長。 01 02 03 04 05 06 07 08 Dim A As Single '宣告「圓面積」變數 Dim L As Single '宣告「圓周長」變數 Dim R As Integer '宣告「半徑」變數 Const PI As Single = 3.14 '宣告「圓周率」為3.14的常數 R = 3 '初值設定 A = PI * R ^ 2 '計算圓面積 L = 2 * PI * R '計算圓周長 MsgBox("圓面積=" & A & vbNewLine & "圓周長=" & L) 常數宣告區 運算式=運算元+運算子+運算元 2018/11/14

2-4.1 指定運算子 一般初學者,在撰寫程式中遇到數學上的等號「=」時,都會有一些疑問,那就是何時才是真正的「等號」,何時才能當作「指定運算子」來使用。 基本上,在VB2010中的等號「=」大部份都是當作「指定運算子」來使用,也就是在某一行運算式中,從「=」指定運算子的右邊開始看,亦即將右邊的運算式的結果指定給左邊的運算元。 例如:將變數A與B的值相加以後,指定給Sum變數,其程式如下: 如果初學者以數學上的觀點來看,則一定會覺得Sum變數的值不是為0嗎?為什麼最後的結果變成3呢? 10 20 30 40 Sum=0 A=1 B=2 Sum=A+B 2018/11/14

注意:我們在撰寫運算式時,特別小心的就是不能將常數或二個 及二個變數以上放在「=」指定運算子的左邊。例如: 10 20 30 40 Sum=0 (O) A=1 (O) 2=B (X) REM原因:「=」的左邊不能有常數。 A+B=Sum (X) REM原因:「=」的左邊不能是運算式或兩個變數。 2018/11/14

2-4.2 算術運算子 在數學上有四則運算,而在程式語言中也不例外,其主要的目的就是用來處理使用者輸入的數值資料。而在程式語言的算術運算式中,也是由數學運算式所構成的計算式,因此,在運算時也要注意到運算子的優先順序。 2018/11/14

說明:程式語言中的乘法是以星號「*」代替,數學中則以「×」代替。 優先順序 運算子 功能 例子 執行結果 1 ( ) (括號) (1+2)/2 1.5 2 ^ (指數) 計算A的B次方值 2^4 16 3 - (負數) 計算A或是B的負值 -(88) -88 4 * (乘) A與B兩數相乘 5*8 40 / (除) A與B兩數相除 10/3 3.33333333…. 5 \ (商除) A與B兩數相除後,取商數 10\3 6 Mod (餘除) A與B兩數相除後,取餘數 10 Mod 3 7 ┼ (加) A與B兩數相加 14+28 42 ─ (減) A與B兩數相減 28-14 14 說明:程式語言中的乘法是以星號「*」代替,數學中則以「×」代替。 2018/11/14

【實例】 數學式轉換成VB程式語言的運算式 (1)F=3A+2B+C (2)F= A X 2+ B X + C (3)F=( A) X Y+ BZ+1 (4)F=( A + B)(C +D) (5)F= A X2.5+ B X1.5+ C X0.5 【解答】 (1)F=3*A+2*B+C (2)F=A*X^2+B*X+C (3)F=A^(X*Y)+B^Z+1 (4)F=(A+B)*(C+D) (5)F=A*X^2.5+B*X^1.5+C*X^0.5 2018/11/14

2-4.3關係運算子 關係運算子是一種比較大小的運算式 , 因此又稱「比較運算式」。其比較種類有兩種 : (1)數值的大小 :數值關係運算式 (2)字串的大小 :字串關係運算式 2018/11/14

1.使用時機: 當我們在撰寫「選擇結構」時,會常用到「關係運算子」,其主要目的是用來判斷條件式是否成立。如果條件式成立,則會傳回True(真),否則會傳回False(假) 。如下表所示: 關係運算子的種類: 運算子 功能 條件式 執行結果 = (等於) 判斷A與B是否相等 A=B False <> (不等於) 判斷A是否不等於B A<>B True < (小於) 判斷A是否小於B A<B <= (小於等於) 判斷A是否小於等於B A<=B > (大於) 判斷A是否大於B A>B >= (大於等於) 判斷A是否大於等於B A>=B 2018/11/14

中文字 > 英文小寫字母 > 英文大寫字母 > 數字字元 例如: ? ("A" > "5") '印出True 2.數值與字串的比較 一般而言,「關係運算子」較常用於比較「數值資料」或「字串資料」的大小關係,因此,在進行比較時,必須要依照字元碼的ASCII碼的大小,其大小順序如下:其ASCII碼對照表,請參照附錄。 中文字 > 英文小寫字母 > 英文大寫字母 > 數字字元 例如: ? ("A" > "5") '印出True ? ("a" > "A") '印出True ? ("中文字" > "a") '印出True ? (10 < "a" ) '產生錯誤(型態不符)∵比較兩邊的運 算元型態必須相同 2018/11/14

語法:If <條件式> Then 敘述 例如: If a>=0 Then Msgbox(" a為正整數") 3.實際用途 一般而言,關係運算子都是常應用於IF 後面的條件式,在If敘述的條件式中,經常要分辨兩個資料的關係,如果所列的關係屬實(為「真(True)」),表示該條件式成立;如果該關係不屬實(為「假(False)」),則條件式不成立。 語法:If  <條件式>  Then 敘述 例如: If  a>=0  Then Msgbox(" a為正整數") 2018/11/14

2-4.4 邏輯運算子 邏輯運算式是數學家布林(Boolean)所發展出來的,包括六種邏輯,分別是NOT(反)、AND(且)、OR(或)XOR(互斥或)…等,如表(a)所示。邏輯運算(Logical Operation)又稱為布林運算(Boolean Operation),在VB中提供六種邏輯運算,其中以And及Or最為常用。 表(a)邏輯運算式的運算子先後順序 運算子 順序 意義 運算式 運算結果為True的條件 Not 1 反 Not A A必為假 And 2 且 A And B A、B必須皆真 Or 3 或 A Or B A、B中至少一個為真 Xor 4 互斥或 A Xor B A、B中必須一真一假 Eqv 5 相等 A Eqv B A、B必須皆真或皆假 Imp 6 推論 A Imp B 除了A真B假 , 餘皆真 2018/11/14

它是一種比較複雜的運算式 , 如同數學上的交集或聯集之條件運算,其運算結果只有兩種結果: 1.使用時機: 它是一種比較複雜的運算式 , 如同數學上的交集或聯集之條件運算,其運算結果只有兩種結果: (1)當運算結果為真(True)時,則執行[成立敘述]區段程式 (2)當運算結果為假(False) 時,則執行[不成立敘述]區段程式 2018/11/14

請選擇「檢視/即時運算視窗」進入即時運算視窗查看上述例子之運算結果,如下圖所示。 2.實例: 請選擇「檢視/即時運算視窗」進入即時運算視窗查看上述例子之運算結果,如下圖所示。 2018/11/14

If 國文>=60 And 英文>=60 Then Msgbox("我兩科都及格了!") 3.實際用途   前面提過的If敘述中的「條件式」均只做單一條件的判斷,稱為「簡單條件式」。如果有兩個以上的條件要一起考慮,則稱為「複合條件式」,此時就必須使用「邏輯運算」來配合運用。 例如:If---Then敘述的應用 If  國文>=60  And 英文>=60   Then Msgbox("我兩科都及格了!") 在「選擇結構」中,時常將「邏輯運算子」與「比較運算子」結合使用,以加強程式的功能。 2018/11/14

例如:將學生的平均成績分成五個等第。程式碼如下所示: 說明:在上面的多重選擇結構實例中,有利用「複合條件」(Compound Condition) 就是由兩個以上的關係條件所組成的條件,也可以 稱之組合條件 (Combined Condition)。 01 02 03 04 05 06 07 08 09 10 11 12 13 Average = 50 If Average < 60 Then result = "丁等生" ElseIf Average >= 60 And Average < 70 Then result = "丙等生" ElseIf Average >= 70 And Average < 80 Then result = "乙等生" ElseIf Average >= 80 And Average < 90 Then result = "甲等生" Else result = "優等生" End If MsgBox result 比較運算子 邏輯運算子 2018/11/14

使用關係運算式的"AND"或"OR"來連接兩個關係條件。 1. AND的用法 2018/11/14

2-4.5 複合指定運算式 有學會C語言的讀者,一定會覺得非常的熟悉。雖然這種表示方式乍看之下似乎很詭異,但是讀者用久了就會很習慣而懶得再使用舊有的語法,事實上這是VB從C語言中學來的東西,對C/C++程式設計師而言,一定覺得很親切。 2018/11/14

說明:在VB6.0的敘述I=I+2,指定符號兩邊的運算元都有相同名稱的變 數I,因此,在VB2010中為了將敘述更加的簡化並且提高執行效 複合指定運算式的種類: 說明:在VB6.0的敘述I=I+2,指定符號兩邊的運算元都有相同名稱的變 數I,因此,在VB2010中為了將敘述更加的簡化並且提高執行效 率採用複合指定運算式來表示:I+=2。 運算子 功能 簡化的 表示法 相當於 執行結果 設I的初值為3 = 指定符號 I=2 += 相加後再指定給變數 I+=2 I=I+2 I=5 -= 相減後再指定給變數 I-=2 I=I-2 I=1 *= 相乘後再指定給變數 I*=2 I=I*2 I=6 /= 相除後再指定給變數 I/=2 I=I/2 I=1.5 \= 先取整數後再指定給變數 I\=2 I=I\2 ^= 先指數運算後再指定給變數 I^=2 I=I^2 I=9 &= 先字串連接後再指定給變數 I&=2 I=I & 2 I=32 2018/11/14

2-4.6 綜合運算 在前面我們已經介紹過各種運算符號,包括: 1.算數運算符號(Arithmetic Operator) 2.關係運算符號(Relational Operator) 3.邏輯運算符號(Logical Operator) 假設在實際應用上,以上三種運算式同時存在時,則必須依照「算術運算子」最先、「比較運算子」次之,「邏輯運算子」最後之優先順序來計算。 2018/11/14

【舉例】以5>3*2 OR 2^3 <> 2*3為例,其計算方式如下: 2018/11/14

因此,我們必須要先了解,VB2010執行時的一些規則,其優先順序規則。如下表所示: 運算子 說明 1 (  ) 小括號 2 ^ 指數 3 - 負數 4 *  ,  / 乘,除 5 \ 商除 6 Mod 餘除 7 ┼,- 加,減 8 ┼及& 字串運算子,優先順序相同 9 比較運算子 優先順序皆相同 10 Not 反 11 And 且 12 Or 或 13 Xor 互斥 14 Eqr 相等 15 Imp 包含 2018/11/14

(一)邏輯與關係運算混合使用     If a<100 And (b<10 Or b>100) Then … 說明:表示a<100 ,而且b要小於10或大於100,整個複合條件才算成立。 如果誤寫成:     If a<100 And b<10 Or b>100  Then … 則意思完全不一樣了,比如:a=120  : b=110 對前面的寫法算不成立,但對後面的寫法則算成立了。所以同學們在使用綜合運算時,應注意各種運算符號的優先順序,遇到沒有把握的狀況,最好多利用「括號」區分清楚。 2018/11/14

(二)實例 題目:年齡在26歲至32歲之間,或月入100000元以上的就輸出 “OK”。 程式碼:If age>=26 And age<=32 Or salary>=100000 Then Msgbox(“OK”) 2018/11/14

牛刀小試 國文成績為100,而且英文或數學兩科成績中,只要任何一科為100分以上,就輸出「優等生」 正確寫法:   If Chinese = 100 And (English=100 Or math=100) Then Msgbox(“甲等生”) 錯誤寫法:   If Chinese = 100 And English=100 Or math=100 Then Msgbox("甲等生") 2018/11/14

2-4.7 字串連結運算子 在我們撰寫程式時,往往在輸出時,都必須要透過「字串連結運算子」才能顯示出所須要的資訊。一般而言,字串連結運算子有兩種:「&」與「+」。如下表所示: 運算子 功能 例子 執行結果 & A字串與B字串相連結 "100" & "B" 100B ┼ "100" + "B" 2018/11/14

「&」運算子是在VB2010中使用最廣的字串連結運算子,因為它可以結合「字串與變數」與「字串與字串」及「字串與算術運算式」 一、 「&」運算子 「&」運算子是在VB2010中使用最廣的字串連結運算子,因為它可以結合「字串與變數」與「字串與字串」及「字串與算術運算式」 2018/11/14

2018/11/14

「+」運算子的左右兩邊的運算元必須要相同的資料型態,否則在執行時會產生錯誤。其使用的情況只有兩種:「運算元都是數值」及「運算元都是字串」 二、 「+」運算子 「+」運算子的左右兩邊的運算元必須要相同的資料型態,否則在執行時會產生錯誤。其使用的情況只有兩種:「運算元都是數值」及「運算元都是字串」 2018/11/14

2018/11/14

2-5 變數的生命週期 在我們撰寫程式時,所使用的變數一定要事先加以宣告,而所宣告的變數在主記憶體中有它們的生命週期。 第二個按鈕(Button2)得到的答案卻是 0 ,為什麼呢?因為A變數是屬於區域性變數(local variable),其生命週期會隨著該事件程序執行完畢後就會從記憶體空間中釋放掉。其解決方法則是利用全域性變數(global variable)。 2018/11/14

2-5.1 區域性變數(local variable) 凡是宣告在事件程序中的變數都可以稱為區域性變數,也就是說,在事件程序中的變數生命週期最短,因為當該事件程序結束之後,其變數的生命週期馬上結束。 2018/11/14

2018/11/14

2-5.2 全域性變數(global variable) 當專案程式只有一個表單而沒有『一般模組』時,此表單的『表單模組』所宣告的常數及變數就是全域性變數 。 2018/11/14