Visual Basic 程式設計基礎(二) 國立台灣師範大學 工業教育研究所 戴建耘教授 龍清榮主任 吳美華組長 主要參考書目: 電腦概論與程式設計(松崗) MS Visual Basic 6.0程式開發手冊
研習內容 選擇結構 重覆結構 繪圖與語音 陣列 副程式
選擇結構 VB常用選擇結構有下列四種: 1、單一選擇:If Then 敘述 2、雙向選擇:If Then Else 敘述 4、多向選擇:Select Case 敘述
單一選擇的 If Then 敘述: 語法: If <條件> Then 敘述區段 範例: { 程式 }
{ 輸入對話方塊 } { 執行結果 }
雙向選擇的 If Then Else 敘述 語法: If <條件> Then 敘述區段 A Else 敘述區段 B End If
範例: { 程式 }
{ 輸入對話方塊 } { 執行結果 }
巢狀選擇的 If Then Else 敘述 語法: If <條件 1> Then : If <條件 2> Then 敘述區段A Else 敘述區段B End If Eles If <條件 3> Then 敘述區段C 敘述區段D
範例: { 程式 }
{ 輸入對話方塊 } { 執行結果 }
多向選擇的 Select Case 敘述 語法: Select Case 運算式 Case 測試值 1 敘述區段 1 Case 測試值 2 敘述區段 1 Case 測試值 2 敘述區段 2 … Case 測試值 n 敘述區段 n Case Else 敘述區段 n+1 End Select
範例: { 程式 }
{ 輸入對話方塊 } { 執行結果 }
重覆結構 VB提供下列二種迴圈: 1、計數迴圈:For … Next 2、條件迴圈:Do … Loop
計數迴圈:For … Next 語法: For 計數變數 = 初值 To 終值 [Step 增值] 功能: [敘述區段] [Exit For] Next 計數變數 功能: 在指定的次數內,重覆去執行某個 敘述區段。
範例:利用巢狀迴圈,產生九九乘法表。 { 程式 }
{ 執行結果 }
1 、Do While … Loop (前測式迴圈) 2 、Do Until … Loop (前測式迴圈) 條件迴圈:Do … Loop 1 、Do While … Loop (前測式迴圈) 語法:Do While <條件> 敘述區段 [Exit Do] Loop 功能:先檢查是否滿足條件,若滿足才進入迴圈。 2 、Do Until … Loop (前測式迴圈) 語法:Do Until <條件> 敘述區段 [Exit Do] Loop 功能:先判斷是否不滿足條件,若不滿足才進入迴圈。
3 、Do … Loop While (後測式迴圈) 4 、Do … Loop Until (後測式迴圈) 敘述區段 [Exit Do] Loop While <條件> 功能:先進入迴圈執行敘述區段後, 在判斷是否要再進入迴圈。 4 、Do … Loop Until (後測式迴圈) 語法:Do 敘述區段 [Exit Do] Loop Until <條件> 功能:先進入迴圈執行敘述區段後, 在判斷是否不再進入迴圈。
範例:計算 total=1+2+…+10,並顯示。 { 程式 } 使用 Do While … Loop (前測式迴圈)
使用 Do … Loop While (後測式迴圈) { 執行結果 }
繪圖與語音 繪圖方法 1、Pset 方法: 語法: [物件.] Pset (x , y) [,c] 功能: 在物件內所指定座標上, 以指定顏色繪製一點。
2、Line 方法: 語法: 直線: [物件.] Line[(x1,y1)]-[Step](x2,y2) 方框: [物件.] Line[(x1,y1)]-[Step](x2,y2),[c],B 方塊: [物件.] Line[(x1,y1)]-[Step](x2,y2),[c],BF 功能: 在指定物件上繪製直線、方框、方塊。
3、Circle 方法: 語法: 圓形: [物件.] Circle (x,y), r, [c] 圓弧: [物件.] Circle (x,y), r, [c], d1, d2 扇形: [物件.] Circle (x,y), r, [c], -d1, -d2 橢圓: [物件.] Circle (x,y), r, [c],,, a 橢圓弧: [物件.] Circle (x,y), r, [c],d1 ,d2 , a 功能: 在物件上繪製圓、弧、扇或橢圓。
顏色的設定 方法一:使用QBColor函數 QBColor (0 ~ 15) 方法二:使用RGB函數 方法三:直接指定顏色值 &HBBGGRR&
範例: { 程式 }
{ 執行結果 }
範例:設計具有顯示日期、時間和鬧鈴 功能的小鬧鐘程式。 Step1:建立如下圖表單 lblDateT txtDate lblTimeT txtTime lblAlarmT tmrTime cmdEnd optOn optOff txtAlarm
Step2:設定各物件之屬性內容,如下所示:
Step3:編輯程式碼
Step4:執行程式
陣列 陣列的宣告 語法: Dim 陣列名稱 ( 索引1 [,索引2 […] ] ) [As資料型態] 功能: 宣告一個陣列為指定資料型態的一維 (或二維 … )陣列。
清單方塊 清單方塊的建立: 1、點選清單方塊工具 2、指標在適當位置,按住滑鼠左鍵拖曳 拉出適當大小,再放左鍵。
[物件名稱].RemoveItem 項目名稱[,索引值] 清單方塊常用的方法: 1、語法: [物件名稱].AddItem 項目名稱[,索引值] 功能:在清單方塊中加入一個項目。 2、語法: [物件名稱].RemoveItem 項目名稱[,索引值] 功能:在清單方塊中移除一個項目。
範例:設計具有顯示日期、時間和鬧鈴 功能的小鬧鐘程式。 Step1:建立如下圖表單 lblBirthT txtBirth cmdEnd lstName txtTel lbltelT txtAddr lblAddrT
Step2:設定各物件之屬性內容,如下所示:
Step3:編輯程式碼
程式碼 續
Step4:執行程式 結果
副程式 副程式的特點 被呼叫才能執行, 本身無法單獨執行 在一個模組檔中, 不能同時擁有 兩個相同名稱的副程式 被呼叫才能執行, 本身無法單獨執行 在一個模組檔中, 不能同時擁有 兩個相同名稱的副程式 副程式中的變數, 除非特別宣告, 否則都視為區域變數
副程式的特點(續) 其各具特定功能, 而且 程式邏輯簡單明確 可讀性高,易 除錯 和 維護 模組化, 可集眾人之智, 個自發展再整合
Function…End function 副程式的種類 內建函數 內建函數 次常式 事件程序 Sub…End Sub 程序 一般程序 Function…End function 次常式 Go Sub…Return
內建函數 VB將一些常用的 數學公式 或 方法 寫成程式庫 使用時只要呼叫該 函數名稱 給予引 數初值,即傳回一個值 使用時只要呼叫該 函數名稱 給予引 數初值,即傳回一個值 慣用:以符號 n 來表示數值 s 來表示字串或字元
模組 Module 當使用功能表的 【檔案/開啟新專案】選項時, VB會產生一個專案檔(.VBP) 專案檔包含 所有 參用到 的檔案 路徑 及 檔名 等相關資訊
程序 當使用VB來設計程式時, 可以將較複雜的程式 分成 較小的邏輯單元, 以簡化程式設計 我們將這些單元稱為 「程序」
事件程序 VB 提供許多個 初始 並無程式碼 的 事件程序 供設計者在該 事件 內 編寫程式 執行流程 以 事件驅動 為導向
Sub 與 Function 程序 當事件程序中的程式很長時, 為了 可讀性 及 便於 偵錯 與 維護 當事件程序中的程式很長時, 為了 可讀性 及 便於 偵錯 與 維護 可將程序中 具有 獨立功能 的部分,個別編輯成 「Sub程序」 或是「Function程序」
Sub 程序 [Private/Public][Static] Sub 程序名稱 [(引數串列)] [程序區段] [Exit Sub] End Sub
建立 Sub 一般程序 方法 I 方法 II 下個單元
方法 I 【工具 / 新增程序】 Home Next
1 5 2 3 4 Next Back Home
Back Home
方法 II 直接鍵入程式碼 Home
顯示程式碼 【檢視 / 瀏覽物件】或 鍵 F 2 4 1 2 或者… 3
1 2 3 4 進入編碼視窗 亦可檢視程式碼
Call 敘述的用法 語法1 : Call 程序名稱 [(引數串列)] 語法2 : 程序名稱[(引數串列)] 目的 : 呼叫 Sub 程序 注意 : 實引數 和 虛引數 的用法 Call 可以省略,但寫法不同