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