Transcript ppt

Chapter 14
程式語言實例─VB
14-1 Visual Basic的基本操作
14-2 VB的組成元素與資料型態
14-3 訊息方塊與輸入方塊
14-1 Visual Basic的基本操作
Visual Basic就字面來說可分為「Visual」與「Basic」
二部份,因此要使用VB來開發程式,除了要學會使
用視覺化工具來建構使用者介面外,學會BASIC語法
的相關觀念與用法也是必備的基礎。
14-1.1 VB的大環境
啟動VB並雙按【標準執行檔】的選項即可進入VB主
畫面,其中包含功能表、工具列、工具箱、表單設計
師、專案總管、屬性視窗以及表單配置視窗等幾個主
要的部份。
14-1.1 VB的大環境
14-1.1 VB的大環境
14-1.1 VB的大環境
認識VB控制項
工具箱上的各種控制項物件是用來建構程式介面的元
件,這些控制項各有不同的功用,簡單介紹如下:
14-1.1 VB的大環境
14-1.1 VB的大環境
14-1.1 VB的大環境
14-1.1 VB的大環境
工具箱與表單的基本操作
使用工具箱上的控制項在表單上建構使用者介面,是
撰寫VB程式最基本的工作之一,請參考以下範例:
在表單上建立一個按鈕物件
利用工具箱的「Command Button 」控制項在表單上
建立一個按鈕物件。
14-1.1 VB的大環境
14-1.1 VB的大環境
VB中的座標與度量單位
VB中的物件座標是相對於表單而言,以表單的最左
上角為原點,向右X座標遞增,向下則Y座標遞增,
物件本身的座標則以物件最左上角的那一點為準,在
VB中所使用的度量單位則稱為twip,當選定某一物件
時,工具列最右方便會顯示該物件的座標與長寬。
14-1.1 VB的大環境
14-1.1 VB的大環境
即時運算視窗
即時運算視窗是VB中的測試與除錯工具之一,顧名
思義,只要在即時運算視窗中輸入一行BASIC程式碼
並按下ENTER鍵,VB便會馬上把執行結果顯示在視
窗中,藉此可以測試一些簡單指令的用法與執行結果
,請參考以下範例。
14-1.1 VB的大環境
即時運算視窗操作實例
請開啟【即時運算】視窗並以之計算「8 + 3」與「8 /
3」的值。
14-1.1 VB的大環境
14-1.2 第一個VB程式
接著將配合BASIC指令「PRINT」、「CLS」與「
END」來撰寫第一個程式。這個程式叫做「
Hello,world!」,唯一的功能只是在表單上印出「
Hello,world!」的字樣,不過藉此可以更瞭解Visual
Basic的基本運作方式。
14-1.2 第一個VB程式
撰寫第一個VB程式:Hello,world!
請在表單上建立三個按鈕物件, 如下圖,當按下「
顯示」按鈕時, 將在表單上顯示「Hello,world!」字
樣,而按下「清除」按鈕時,可以清除表單上的「
Hello,world!」字樣,最後當按下「結束」按鈕時可以
結束此一程式。
14-1.2 第一個VB程式
14-1.2 第一個VB程式
14-1.2 第一個VB程式
14-1.2 第一個VB程式
14-1.2 第一個VB程式
14-1.2 第一個VB程式
14-1.2 第一個VB程式
執行VB專案
按一下工具列上的開始鈕
即可執行程式。以「
Hello,world!」的範例來說,當我們按下「顯示」鈕時
,每按一次便顯示一次「Hello,world!」的字樣,按下
「清除」鈕能清除所有的「Hello,world!」字樣,最後
再按一下「結束」鈕即可結束程式。
14-1.2 第一個VB程式
儲存專案
當程式設計工作告一段落時,可將專案先行儲存起來
,往後則藉由「開啟舊專案」的方式進行修改或是繼
續開發的工作。在儲存專案時,Visual Basic會一併儲
存專案內所有相關的檔案。
14-1.2 第一個VB程式
14-1.2 第一個VB程式
開啟舊專案
按下工具列上的開啟舊專案
鈕即可選擇並開啟專
案,開啟後若沒有看到表單,只要在【專案總管】視
窗中雙按表單檔名即可開啟之前設計的表單。
14-1.2 第一個VB程式
產生可執行檔
VB同時兼具直譯與編譯的特性,當按下工具列上的
開始鈕
時,VB會以「直譯」的方式逐行執行專案
中的程式碼,但VB亦提供將專案「編譯」成可執行
檔的方式,如此不但執行效率較佳,而且往後不需要
啟動VB主程式也可以在Windows中直接執行設計好的
程式。
14-1.2 第一個VB程式
14-1.3 VB中的屬性、事件與方法
認識「物件導向程式設計」的相關詞彙
在物件導向程式設計(OOP)的觀念中,將焦點放在一
個個稱為物件的程式單元上,物件中同時包含資料以
及對於特定刺激所產生的反應步驟,如此設計時只需
設定每個物件在發生特定事件時執行特定工作,並不
需要像以前一樣規畫整個程式的執行流程,而且其他
程式需要時,也可以自由的複製這個物件或其特性,
大幅降低程式開發的複雜性與困難度。
14-1.3 VB中的屬性、事件與方法
物件
真實世界中的「物件」,其實就是我們習以為常的「
東西」。物件(object)並沒有最大或最小的範圍限制,
例如就讀高中的小明也是一個物件。
類別
物件中具相同特性和行為訊息的集合稱為類別(class)
,例如「人」是一種類別,而你、我、小明等都是屬
於「人」這個類別的一個物件。
14-1.3 VB中的屬性、事件與方法
屬性
每一物件都有不同的屬性(attribute) , 例如一個「人」便
具有「髮色」、「膚色」、「身高」、「體重」、「性別
」等不同的屬性。
14-1.3 VB中的屬性、事件與方法
事件與事件程序
物件可以對某一事件(event)進行辨識和回應,而其回
應方法則稱為事件程序。
例如,當我們「打」「小明」時「小明」會「喊痛」
,「打」便是作用在物件「小明」上的事件,而「喊
痛」就是物件「小明」所回應的事件程序。
14-1.3 VB中的屬性、事件與方法
方法
物件原來就內含的程序稱為方法(method),例如「行走」
是「人」與生俱來的本能,因此「行走」便是物件「人」
的一種方法。
14-1.3 VB中的屬性、事件與方法
事件驅動
在物件導向程式設計的環境中,每個物件都包含資料
以及相關的指令。當程式執行時,物件便等待事件發
生,然後再採取相關行動(即事件程序),這樣的方
式稱為事件驅動(event-driven),也是物件導向程式與
傳統程式之間的最大差別。
14-1.3 VB中的屬性、事件與方法
14-1.3 VB中的屬性、事件與方法
物件與屬性
VB中的物件一般
指的是藉由工具
箱所產生的控制
項,每個控制項
都有它獨特的屬
性表,透過【屬性】視窗即可修改物件屬性的設定值
,例如在「第一個程式」中我們藉由修改Caption屬性
來更改按鈕上的顯示文字。
14-1.3 VB中的屬性、事件與方法
VB常見的物件屬性
14-1.3 VB中的屬性、事件與方法
事件與事件程序
事件是一種加在物件上的「作用」,而事件程序則是
物件對此作用所產生的「反應」。在Visual Basic中,
事件程序的表達方式如下:
14-1.3 VB中的屬性、事件與方法
這表示當按鈕物件「Command3」被滑鼠點一下
(click)時,便執行事件程序「End」,也就是結束程式
。在Visual Basic中,我們透過【程式碼】視窗來指定
作用於物件上的事件以及事件程序,按一下專案總管
中檢視程式碼的按鈕 即可開啟程式碼視窗,撰寫事
件程序。
14-1.3 VB中的屬性、事件與方法
VB常見的表單事件
14-1.3 VB中的屬性、事件與方法
VB常見的表單事件
14-1.3 VB中的屬性、事件與方法
方法
物件原來就內含的函數或程序就叫做方法。物件的屬
性或事件程序都可以重新設定或修改,但是方法的內
容是固定、不能修改的。事實上,我們也只能「用它
」而已,也就是執行這些固定功能的程式指令。
14-1.3 VB中的屬性、事件與方法
用「方法」來控制VB中的某
個物件時,其實就是執行該
物件的某個內部函數或程序
,例如右方的例子:
透過物件內含的「方法」,
我們可以輕易完成物件顯示
、隱藏、移動等動作,下表
則列出表單中常見的方法。
14-1.3 VB中的屬性、事件與方法
表單中常見的方法
14-2 VB組成元素與資料型態
雖然設計VB程式的原則很簡單,但若要設計較複雜
的VB程式時,還是必須瞭解VB語言的組成元素與各
種邏輯結構,才能有效撰寫事件程序的內容,因此本
節將針對VB字元集、保留字、常數、變數、資料型
態、運算式與運算子等主題一一進行說明。
14-2.1 VB語言的組成元素
Visual Basic的字元集
VB語言的程式碼及指令必須由字元集所組成。VB字
元集的內容包含下列五種:
1. 大寫英文字母:A∼Z
2. 小寫英文字母:a∼z
3. 數字:0∼9
4. 特殊符號如「= + - * / % !」等,這些符號在VB語言中具
有特定意義
5. 中文字
14-2.1 VB語言的組成元素
Visual Basic的保留字
保留字具有特殊的意義及使用規則,使用者不可隨意
使用或定義保留字。例如Print、Cls等都是保留字,
若將Cls指定為某數值(如:Cls = 5)會出現「編譯錯
誤:必須是函數或變數」的錯誤訊息。
14-2.1 VB語言的組成元素
Visual Basic的敘述與命令
敘述(statement)及命令(command)都是VB語言的
組成單位,VB中的事件程序便是由一行行的敘述或
命令所組成的。其中命令是指獨立的保留字(如Cls
、End等),敘述則通常由保留字、常數、變數或運
算式等組成,例如:
14-2.1 VB語言的組成元素
上面「敘述」的例子,其中「LET」為保留字,「D
」為變數,「= A + B」為算術運算式,其功能是將
變數「A」和「B」的內容相加後指定給變數「D」。
而「Print」也是保留字,其功能是將「D」的值顯示
出來。另外,VB的每一個敘述通常獨立成行,若是
有二個以上的敘述寫在同一行,其間必須以「:」分
隔,例如上面的二個敘述亦可寫成:
14-2.1 VB語言的組成元素
註解
有時為了增加程式的可讀性,方便程式設計師維護或
修改程式,我們會在程式中加上說明性質的註解文字
。在VB中以指令REM(Remark的縮寫)或單引號「'
」來識別註解文字,電腦執行時會忽略這些文字。
14-2.1 VB語言的組成元素
14-2.1 VB語言的組成元素
常數
在程式的運算過程中,有些資料的值從始至終不會改
變,我們稱之為常數(cons tant )。在VB中使用指令
Cons t來宣告常數值。
例如我們將圓周率π設定為「Const PI = 3.1415926」
,則以後的程式中若是需要用到圓周率,程式師只要
用常數PI來代替即可。
14-2.1 VB語言的組成元素
14-2.1 VB語言的組成元素
變數
相對於常數而言,變數(variable)是指其所代表的資料
值會隨著程式的執行而有所改變,如下程式片段:
14-2.1 VB語言的組成元素
因為「=」在數學式與在程式語言中有不同的代表意
義。在VB語言中,這類敘述的意義是指將等號右邊
的運算值指定給等號左邊的變數,所以「X = X + 2」
這個敘述代表的意思是「將X + 2的值指定給變數X」
。
14-2.1 VB語言的組成元素
最後的輸出結果是「3」。此外要特別注意的是,若
在VB中輸入敘述「X + 2 =X」是不合法的,因為等號
的左邊必須是變數而不可以是運算式,也就是我們不
能將變數的值指定給某一運算式。
14-2.1 VB語言的組成元素
變數及常數的命名規則
VB中的變數與常數在命名時都必須遵守以下規則:
1. 必須以英文字母(A∼Z,a∼z)或中文字開頭。
2. 接著只能使用中、英文字母(A∼Z,a∼z)、數字(
0∼9)、與底線符號(_)。
3. 不可超過255字元。
4. 不可使用VB的保留字。
14-2.1 VB語言的組成元素
另外,VB在翻譯程式碼時並不考慮大小寫的問題,
例如Money、money、mOnEY、MonEy等都代表相同
的變數,因此可適當調整各敘述文字的大小寫以增加
可讀性。
14-2.2 VB資料型態
VB中的資料型態
所謂資料型態是指一種變數(或常數)的特性,用來
決定變數(或常數)可以存放何種類型的資料,下表
列出VB中較常用的資料型態。
14-2.2 VB資料型態
14-2.1 VB語言的組成元素
宣告變數資料型態
在Visual Basic中使用Dim敘述來宣告變數的資料型態
,宣告時若是省略「AS資料型態」的敘述則表示使
用「可變型態Variant」。
傳統的BASIC語言允許我們以型態宣告字元來宣告變
數的資料型態,宣告時只要將特殊字元直接加在變數
之後即可。
14-2.1 VB語言的組成元素
14-2.3 運算式與運算子
運算式可看做一個方程式,是由資料與運算子所組成
。例如「Total = 50 +30」就是一個運算式。其中「
Total」、「50」與「30」都是資料,而符號「+」則
是運算子,用來處理常數與變數資料之間的運算。
14-2.3 運算式與運算子
Visual Basic中的運算式有:
–算術運算式
–關係運算式
–串接運算式
–邏輯運算式
14-2.3 運算式與運算子
當同一個運算式同時包含算術運算式、關係運算式、
邏輯運算式和小括弧等時,我們稱之為複合運算式。
一個複合運算式在運算時必須考量各運算子的優先順
序。
14-2.3 運算式與運算子
算術運算式
算術運算式是指資料與資料間的算術運算,例如加、
減、乘、除等。
14-2.3 運算式與運算子
比較特別的是整數除法及除法餘數。整數除法是取二
整數相除之後的商,除法餘數是取二整數相除之後的
餘數,二者在運算前都會先將二邊的數值四捨
五入後再進行運算,例如:
14-2.3 運算式與運算子
數學的四則運算有「先乘除後加減」的概念,VB算
術運算式的運算子也有不同的優先次序,由高至低依
序為:
「括弧>次方>負號>乘號>除號>整數除法>除法
餘數>加號>減號」
14-2.3 運算式與運算子
關係運算式
關係運算式用於比較資料與資料間的相對關係,包含
大於、等於、小於、小於等於、大於等於等。
14-2.3 運算式與運算子
關係運算式可用於比較數值或字串資料,但必須是相
同型態的資料才可互相比較其關係,如果是數值便比
較其大小,若是字串則依序比較字串中各字元的
ASCII碼來判斷關係,其大小順序為:
14-2.3 運算式與運算子
14-2.3 運算式與運算子
串接運算式
串接運算式提供一個特殊的運算子「&」,其作用為
忽略變數的資料型態而將二個變數的內容加以連結。
運算子「+」也有類似的功用,不過「+」只能連結字
串型態的資料。【範例檔案:串接.frm】
14-2.3 運算式與運算子
邏輯運算式
邏輯運算式又稱布林運算式,用以判斷二資料項之間
的邏輯關係,下表為VB常用之邏輯運算子的運算規
則與優先順序和真值表。
14-2.3 運算式與運算子
真值表
14-2.3 運算式與運算子
邏輯運算式的範例
14-2.3 運算式與運算子
複合運算式
若運算式中同時包含算術運算式,關係運算式,邏輯
運算式和小括弧等時,我們稱之為複合運算式。一個
複合運算式在運算時必須考量各運算子的優先順序
「括弧>算術運算子>關係運算子>邏輯運算子」,
例如:
14-2.3 運算式與運算子
在這個例子中,根據運算式的優先次序,我們可依下
列步驟解題:
1. 先計算算術運算式得 36 < 35 XOR "Ken" > "Karen"
2. 再計算關係運算式得False XOR True
3. 最後計算邏輯運算式即得解答True
14-3 訊息方塊與輸入方塊
在Visual Basic程式中,除了透過表單上的各種物件來
顯示或輸入資料外,還會配合MsgBox與InputBox函數
產生對話方塊,藉此顯示資訊或與使用者進行簡易的
互動。
14-3.1 訊息方塊MsgBox
MsgBox是VB中的一個函數,只要依格式輸入相關參
數即可產生所需的結果。另外,MsgBox不但可用以
顯示資訊,還可以與使用者進行簡單的互動。
14-3.1 訊息方塊MsgBox
14-3.1 訊息方塊MsgBox
14-3.1 訊息方塊MsgBox
14-3.1 訊息方塊MsgBox
14-3.2 輸入方塊InputBox
輸入函數InputBox可用來要求使用者輸入資料,例如
我們可以用InputBox函數產生對話方塊要求使用者輸
入密碼。
14-3.2 輸入方塊InputBox
14-3.2 輸入方塊InputBox
14-3.2 輸入方塊InputBox
訊息方塊與輸入方塊的綜合應用
請練習撰寫一個簡單的登入畫面程式,如下圖,當程
式開始時會顯示輸入方塊要求使用者輸入姓名,登入
後則顯示包括姓名與問候語的登入成功訊息方塊。
14-3.2 輸入方塊InputBox