Page 1

單元 1: 認識Visual Basic 學 習 目 標

1.認識 VB 的開發環境 2.認識一般工具列與檔案相關的功能並學會儲存 VB 專案 3.介紹 VB 主控台程式的輸入及輸出。 4.介紹程式設計的工具

一、建立第 1 個程式 Hello!World. 建立一個可以產生下列視窗的專案。

圖 1:Hello ! World .程式

不用怕~~~請各位接著看完本單元的各項說明,你就可以產生這一個程式了!

二、網路設定 (1)停用網路卡:「控制台」→「網路連線」→「區域網路 X」→「停用」 (2)啟動網路卡:流程同上,最後改為「啟用」即可。 說明:由於 VB 2008 會透過網路檢查電腦環境,會造成開啟 VB 或由執行畫面 切換回設計畫面的速度變慢。所以先關閉網路卡,可以加快切換開發環境的速度, 等到要上傳或下載資料時,再啟用網路卡。

三、上傳作業至老師電腦或自老師電腦下載資料 動作

上傳

下載

備註

Host

teacher

teacher

(1)利用 FTP 軟體

User ID

bb-up

bb-down

Password

ilvs

ilvs

(2)Host 可以改用 IP 表示 10.1.1.100

單元 1:認識 Visual Basic

-1-


四、啟動 VB 2008 設計新專案 (1)開啟新專案:啟動 VB2008 後,可以下列 4 種方式之一新增專案。 (a)→在主畫面中選「建立:專案(P)…」(※最常使用的方式)

按「建立

專案(P)…」

圖 2:建立新專案

(b)→在工具列中選「

新增專案」鈕

(c)→「檔案」功能表→「新增專案」 (d)「Ctrl + N」快速鍵 (2)選擇 VB 專案類型 (a)視窗程式:「Windows Form 應用程式」(※輔導課第 1 週及第 2 學期) (b)Dos 模式程式:「主控台應用程式」(※輔導課第 2 週起至第 1 學期結束)

1)選「Windows Form 應用…」

2)設定專案名稱 3)按「確定」

圖 3:選擇專案類型

(3)設定專案名稱 課程中的專案名稱格式規定如右:「NNNN-3 位班級代碼-2 位座號-姓名」。 共 4 個區段,每段以半型「-」連接,不可以有任何空白字元。(0001-253-xx-n) 單元 1:認識 Visual Basic

-2-


五、認識 VB2008 的專案開發環境 (A) (B) (C) (D)

(E)

(G) (F)

圖 4 :VB2008 專案開發環境

(A) 標題列

(E) 方案總管

(B) 功能表列

(F) 屬性視窗

(C) 工具列

(G) 表單設計視窗

(D) 工具箱

六、調整開發環境的工作視窗 (1)隱藏或顯示各種「工具列」: 由「檢視」→「工具列」中設定是否顯示不同工具列。 (2)隱藏工作視窗(除工具列外): 直接點按各工作視窗上的 即可隱藏視窗。 (3)顯示工作視窗(除工具列外): (a)由「檢視」直接選取各工作視窗。 (b)由「工具列」的「

」區域直接點取要顯示的工作視窗。

(4)移動工作視窗: 直接拖曳工作視窗的標題列即可。 (5)工作視窗的停駐: 單元 1:認識 Visual Basic

-3-


七、物件導向的基本概念 (1)類別:用來定義及描述一種相似的物體,所具有的功能或外觀、資料。 例如:真實世界裡,所有人可以統稱為「人類」 ,所有貓統稱為「貓類」 。所以 只要我們說這是一個「人類」時,你就會知道所說的物體大概是長成什麼樣子, 能做什麼事等等。 程式世界中,也是有許多不同種類的物體,例如「視窗」 、 「按鈕」 、 「捲軸」等, 這些物體在不同的程式中大概都具有類似的功能與外觀,所以我們就可以定義一 個「視窗」類別來統稱所有的視窗,並定義好一個視窗所應該有的功能及外觀。 (2)物件:一個真實存在,個別化的獨立物體。 類別只是定義了這一類型的物體有什麼功能或外觀而已,並不是一個真正的、 獨立的物體,「物件」才是真正存在的物體。 例如: 「比爾蓋茲」就是「人類」這種類別的一個真實且獨立的「物件」 。當然, 在座的你我每一個人也都是屬於「人類」的物件。 雖然「你」是人類物件,「比爾蓋茲」也是人類物件,但你們各自擁有自己的 動作、外觀、或其它相關的資料。例如人類都有膚色,但你有你自己的膚色,而 比爾蓋茲也會有他自己的膚色,兩個人的膚色是獨立擁有的。(如果不是獨立擁有 的,那天下的人就都會很高興了,因為比爾蓋茲的資產,就會變成所有人類共有 的資產了) 程式世界中,每一個視窗都可以視為一個獨立的「物件」,視窗中的每一個工 具按鈕也都是不同且獨立的「按鈕類別物件」(簡稱「按鈕物件」)。 (3)屬性:類別或物件所具有的資料或外觀。 例如:前面所說的人類有膚色,而「膚色」就是人類的一種「屬性」。當然以 人類而言還有很多種屬性,如姓名、身高、體重、髮色、財產、父母等。 (4)方法:類別或物件能做的動作或功能。 例如:人類可以做「走」這一種動作,所以「走」就是人類的「方法」。

練習題: (1)請舉出三個屬於程式世界中的類別(請不要寫出前面寫過類別): 下拉式選單、圖片、文字方塊、標籤 (2)請舉出三個屬於程式世界中「視窗」這個類別的「屬性」: 寬、高、位置、標題文字 (3)請舉出三個屬於程式世界中「視窗」這個類別的「方法」:顯示、隱藏、關閉

單元 1:認識 Visual Basic

-4-


八、控制項與工具箱 (1)控制項類別: 就是 VB 提供給程式設計者用來設計程式外觀或操作的物件「類別」(還記得類 別嗎)。在 VB 中常見的控制項包含了「Label」(標籤)、 「TextBox」(文字方塊)、 「Button」 (按鈕)等,我們會在視窗程式的單元做更詳細的介紹。 (2)工具箱: 控制項類別的收容所,也就是用來收集、展示控制項並提供給程式設計者使用 的一個工作視窗。 (3)使用非預設控制項類別: 前面所顯示的工具箱是 VB 預設的且較常使用的控制項,不過事實上 VB 提供 了許多的控制項,例如開啟舊檔的對話視窗、網路運作的控制、多媒體播放等。 我們可以展開不同的索引標籤就可以使用其它控制項。 但有時候,在這些標籤中可能也會找不到你想使用的項目,這時候我們就可以 加入新的項目。加入的方法: 在「工具箱」按右鍵→「選擇項目(I)...」→跳出「選擇工具箱項目」視窗

圖 5:選擇工具箱項目視窗

九、視窗程式開發流程 配置表單上的控制項 → 設定表單及控制項屬性值 → 撰寫控制項事件程序 → 執行測試與除錯 單元 1:認識 Visual Basic

-5-


十、配置表單上的控制項 (1)表單設計視窗: 在表單設計視窗可以顯示我們程式所用到的所有表單(即程式執行時的視窗), 並且可以在表單上放置各種我們想要的控制項。 (2)在表單中放置控制項:示範在表單上加入 1 個 Label 物件 (a)法一:【直接點擊 2 下】在工具箱直接在想加入的控制項上點擊 2 次,VB 就 會自動將這個控制項放置在表單可用區域的左上角。 (b)法二:【點選後拖曳插入】點選「工具箱」中想加入的控制項(點擊 1 次)→在 表單上想放置的位置上開始拖曳拉出想要的物件大小。 等等~~為什麼我們插入的 Label 和原來拖曳的大小不同?這是因為 Label 有 個可以自動依文字內容改變大小的功能,當然我們可以將這個功能關閉,那 Label 就會聽我們的話產生我們想要的大小了。 (3)控制項物件: 放置在表單中的控制項就會成為一個真實且獨立的物件。也就是說如果我們插 入 2 個 Label 到表單上,則這 2 個 Label 就是 2 個物件,他們可以擁有自己的外觀 與資料。

練習題

(1)在表單中插入 1 個「Label」控制項。

十一、控制項的屬性 (1)屬性視窗:在設計階段時用來設定指定控制項的各種外觀及性質資料。 (B)名稱

(C) 控制項類別 (A) 控制項物件

(D) 屬性

(E) 屬性值

圖 6:屬性視窗 單元 1:認識 Visual Basic

-6-


(2)選取控制項物件: 在設計階段時,若想改變控制項物件的屬性,必須先做選取物件的動作。可透 過下列 2 種方式選取: (a)直接點選表單中的控制項物件。 (b)在屬性視窗的控制項物件下拉式選單中選取。 (3)設定或改變屬性值: 在設計階段時直接在屬性視窗中找到想修改的屬性,再點選修改即可。屬性值 的輸入方式可分為 3 種類型: (a)文字方塊:直接在屬性值方塊中輸入屬性值即可。 (b)下拉式選單:點選屬性值方塊中的「 (c)對話視窗:點選屬性值方塊中的「

」後會出現一個選單。 」後會跳出一個視窗。

(4)「Name」屬性: 每一個獨立的控制項物件都一定會有「Name」屬性,這個屬性是用來表示控 制項物件的「名字」。 所以在同一個表單中,就算是不同的控制項類別,我們也不可以有 2 個(或以 上)相同「Name」屬性的控制項物件,即不可以有重複的名稱。 既然 Name 屬性是一個物件必要的且不能重複的,所以當我們在表單中新增一 個控制項物件時,VB 會自動幫我們命名,以避免我們忘記命名。自動命名的原則 就是以控制項的類別名稱再加上數字。例如:加入 2 個 Label 控制項物件,則第 1 次加入的 Label 控制項物件的名字(Name 屬性)會是「Label1」(※請注意,最後的 是數字 1),而第 2 次加入的 Label 控制項物件的名字將會是「Label2」以此類推。 當然,我們也可以透過屬性視窗改變 Name 屬性。請注意,Name 屬性代表了 這個控制項物件,所以如果你更改了這個屬性值,那麼與原物件相關的程式碼也 必須一併修改成新的名字,否則 VB 就不知道你的程式是想控制誰了!(※命名的 規則與變數命名的規則相同,我們會在後面介紹)

練習題

(1)設定 Label1 的 Text 屬性值為「Hello ! World . 」;設定表單的 Text 屬性值為 「xx 號 nnn 的第一個視窗程式」。其中「xx」是 2 位座號,「nnn」是姓名。 (2)設定 Label1 的 Font 屬性對話視窗中,「字型」子屬性值為「Arial Black」, 「大小」子屬性值為「20」。 (3)移動 Label1 的位置到你喜歡的位置,並調整 Label1 及表單的大小。

單元 1:認識 Visual Basic

-7-


十二、執行程式 在 VB2008 的開發環境中,有 3 種不同的開發階段: (1)設計階段:指設計程式的階段 在這個階段我們可以設計表單、放置控制項、設定控制項屬性值、撰寫控制項 的程式碼等開發程式的動作。※注意:只有在這個階段我們才可以寫程式碼。 怎麼知道我們目前是否在設計階段呢?可以從 2 個地方看出來: 1.標題列除專案名稱及 VB2008 外沒有顯示其它文字

2.只有「開始」鈕可以使用

圖 7:設計階段的開發環境

(2)執行階段: 按下「 」執行程式就會進入「執行階段」,也就是 VB 以除錯方式執行程式 的階段。在執行階段我們不能再對程式或表單做任何的修改動作,如果想要修改 就必須要按下「 」停止執行程式回到設計階段。 在執行階段,標題列除原本文字外會額外出現「執行」兩字,且無法使用「開 始」鈕,僅可以使用「暫停」或「結束」鈕。 (3)中斷階段: 。在中斷階段 在執行階段中如果按下「 」暫停鈕,VB 就會進入「中斷階段」 我們可一行一行地執行程式,測試每一行程式執行後的結果。如果在中斷階段時, 我們修改了程式碼,則 VB 並不會立即執行修改過的程式。我們必須先停止回到 設計階段,再重新執行程式。 在中斷階段,標題列除原本文字外會額外出現「偵錯」,且無法使用「暫停」 鈕,僅可以使用「開始」或「結束」鈕。

單元 1:認識 Visual Basic

-8-


十三、儲存專案 (1)儲存專案步驟 按下工具列「 全部儲存」鈕 → 設定「名稱」 ,以「瀏覽」選擇儲存位置,並勾選「為方案建立目錄」選項(※ 課程中所有專案的儲存位置選「C:\」) → 按下「儲存」鈕 (※VB 會自動以前步驟之「名稱」為方案及專案建立成一個 資料夾;並以相同名稱建立方案檔及專案檔) → 建立可執行檔(參考下一主題) → 結束 VB2008 主程式 → 壓縮方案資料夾 (※方便上傳至老師電腦或複製到隨身碟)。 (2)移動方案資料夾 一定要結束 VB2008 主程式後,才可透過 Windows 處理程式的資料夾。

十四、建立可執行檔 (1)編譯 還是 直譯? 在 VB 2008 程式碼視窗所輸入的程式均會以編譯的方法來執行,所以程式碼 必須完全正確無誤,才能執行。 而「即時運算視窗」中的程式碼會以直譯的方法執行。可以利用快速鍵 「Ctrl + G」開啟即時運算視窗。 (2)除錯模式 當按下工具列中「 」時,VB 會以「除錯模式」編譯程式碼後再執行,並將 編譯所產生的可執行檔儲存在專案資料夾下「bin\Debug」目錄中。 除錯模式除了原始程式碼外,也會加入用來檢查錯誤的指令,所以產生的可執 行檔會比較大,效能也會比較差,但可以隨時由 VB 中斷並檢查目前的執行結果 或變數內容。檢查完畢後,可以回到中斷點繼續執行原來的程式。 (3)建置 利用「建置(B)」功能表 → 「建置 xxx(U)」 ,可以產生一般的可執行檔。建置 所產生的可執行檔會儲存在專案資料夾下「bin\Release」目錄中,且檔案通常比除 錯模式所產生的檔案小,效能也較好。 建置所產生的可執行檔無法以中斷方法暫停或繼續,也無法檢視過程中的變數 內容。 單元 1:認識 Visual Basic

-9-


練習題:簡單的視窗程式 (1)簡單瀏覽器 設計一個簡單的瀏覽器。專案名稱:0002-班級-座號-姓名。建置可執行檔。

圖 8:簡單瀏覽器

類別

物件名稱

屬性

屬性值

Form

Form1

StartPosition

WindowsDefaultBounds 班級 座號 姓名 的瀏覽器

Text WebBrowser WebBrowser1 Url

Http;//www.ilvs.ilc.edu.tw

(2)簡單記事本 設計一個簡單的記事本。專案名稱:0003-班級-座號-姓名。建置可執行檔。

圖 9:簡單記事本

類別

物件名稱

屬性

屬性值

Form

Form1

Text

班級 座號 姓名 的簡單記事本

TextBox

TextBox1

Dock

Fill

Multiline

True

Font

標楷體,16 點字

單元 1:認識 Visual Basic

- 10 -


十五、主控台程式 (1)程式基本架構 Module Module1 '專案中的 VB 模組檔案名稱(會自動依檔名改變) Sub Main() '開始執行的位置 '想要執行的程式指令碼 End Sub End Module

(a)VB 的指令、變數、函數是不區分大小寫的。 (b)「'」表示「註解」,即說明用的文字,VB 不會去執行。 (c)「_」表示「接續上一列的指令」。 (d)錯誤訊息:在設計程式的階段,VB 就會不斷地檢查程式碼是否錯誤,並且除 了在畫面下方的錯誤訊息視窗出現訊息外,也會在程式碼上以不同的顏色表 示。 ♦藍色波浪底線:指令或函數輸入錯誤(打錯字了或是沒有這個指令)。 ♦紅色長方底線:沒有宣告變數或格式錯誤。 ♦綠色波浪線:宣告了變數,但在後續的程式中完全沒有使用到。(不會影響 程式的執行) (2)宣告變數 格式:Dim 變數名稱 [As 資料型態] [ = 初始值] 宣告變數的目的是要 VB 在電腦中保留一個記憶體空間以儲存指定的資 料。後續會更詳細說明變數的命名規則。 範例: Dim x Dim N As Integer Dim y = "Abc" Dim C As Integer = 3

'宣告一個名為「x」任意資料型態的變數 '宣告一個名為「N」的整數變數 '宣告一個名為「y」任意資料型態的變數,且其內容設為「Abc」 ‘宣告一個名為「C」的整數變數,且其內容設為「3」

(3)輸入指令 格式:變數 = Console.ReadLine 「Console」是指「主控台」類別,也就是文字模式中所有標準輸入、輸出 裝置的集合體(也就是鍵盤、螢幕等)。 「.」是 VB 用來連接類別或物件成員的運算子,可以翻成「的」。 「ReadLine」是「Console」類別的「方法」 ,功能就是讀入使用者透過鍵盤 單元 1:認識 Visual Basic

- 11 -


所輸入一整列的資料(按下「Enter」鍵結束)。所讀入的資料,就會儲存在「=」 前方的變數內。 範例: Dim x x = Console.ReadLine

(4)輸出指令 (a)顯示後不換列 格式:Console.Write(要顯示的內容) 「Write」方法會將小括號內的資料顯示在螢幕上,顯示後並不會換列。也就 是文字游標會停留在所顯示的文字的後方。 範例: Dim N = 3 Console.Write(N) Console.Write("N") Console.Write(3+2) Console.Write("3+2")

'在螢幕顯示變數 N 的內容 → 3 '在螢幕顯示字串內容 → N '在螢幕顯示運算式結果 → 5 '在螢幕顯示字串內容 → 3+2

(b)顯示後換列 格式:Console.WriteLine(要顯示的內容) 「WriteLine」方法一樣會將小括號內的資料顯示在螢幕上,不同的是 「WriteLine」顯示資料後會換到下一列的第一個字。 (5)執行程式 若直接按下工具列中的「 」鈕,VB 會以偵錯模式執行,並在執行完程式碼 後,自動結束程式回到 VB 主畫面。如此一來,我們將無法看到命令列視窗中所 顯示的執行結果。 因此想要執行主控台的程式,必須以快速鍵「Ctrl + F5」來執行程式。當程式 執行完畢後,會出現「請按任意鍵繼續…」並保留命令列視窗。 (6)示範題 Dim N , M '宣告名為「N」及「M」的變數 Console.Write("請輸入一個數字:") '在螢幕顯示「請輸入一個數字:」,顯示後不換列 N = Console.ReadLine '讀入使用者所輸入的資料 M=2*N '計算 2 倍 N,並將結果儲存在變數「M」 Console.WriteLine("2 倍的" & N & " = " & M) '在螢幕顯示「2 倍的… = …」後換列

單元 1:認識 Visual Basic

- 12 -


十六、變數命名規則 第 1 個字

第 2 個字 ~ …

英文字母 _ (底線) 中文

英文字母 _ 中文 阿拉伯數字(即 0 ~ 9)

(1)第 1 個字元: 必須是「英文字母」或「_」符號(在中文版可以使用「中文」)。 如果第 1 個字元是「_ 」符號,則必須有第 2 個字元; 如果第 1 個字元是「英文字母」(或「中文」)則不一定要有第 2 個字元。 (2)第 2 個字元以後(含): 可以是「英文字母」 、 「_」及「阿拉伯數字」(即 0~9),中文版可以使用「中文」。 除此之外其它符號(包含空格)一律不可以使用。 (3)不可以使用 VB 的保留字。保留字,又稱關鍵字。 包含了 VB 的指令或宣告,如 Dim、If、For、As、End、Sub、Private、Public 等,以及系統物件名稱。 (4)名稱的長度不可以超過 1023 個字元。 (5)不區分大小寫。 (6)在宣告的區域或有效範圍內,必須是唯一的。

練習題:主控台練習題 (1)週期程式 設計一個程式,可以讓使用者由鍵盤輸入頻率(Hz)後,顯示出其週期為何? 專案名稱:0101-3 碼班級代碼-2 碼座號-姓名。建置可執行檔 參考公式:週期 =

1 頻率

【參考畫面】 請輸入頻率(Hz):1000 週期為 0.001 秒

單元 1:認識 Visual Basic

- 13 -


(2)BMI 計算程式 設計一個程式,可以讓使用者由鍵盤輸入身高(以公分為單位)及體重(以公斤重為單位) 後,顯示出其 BMI 值為何? 專案名稱:0102-3 碼班級代碼-2 碼座號-姓名。建置可執行檔 參考公式:BMI =

體重 ,單位:體重→公斤重,身高→公尺 身高 2

【參考畫面】 請輸入身高(公分):180 請輸入體重(公斤):64.8 BMI為20

(3)攝氏溫度轉華氏溫度程式 設計一個程式,可以讓使用者由鍵盤輸入攝氏溫度(℃)後,顯示出其華氏溫度(℉)為 何? 專案名稱:0103-3 碼班級代碼-2 碼座號-姓名。建置可執行檔 參考公式:華氏溫度 =

9 攝氏溫度 + 32 5

【參考畫面】 請輸入攝氏溫度(℃):100 相當於華氏溫度212℉

(4)攝氏溫度轉絕對溫度程式 設計一個程式,可以讓使用者由鍵盤輸入攝氏溫度(℃)後,顯示出其絕對溫度(K)為 何? 專案名稱:0104-3 碼班級代碼-2 碼座號-姓名。建置可執行檔 參考公式:絕對溫度 = 攝氏溫度 + 273 【參考畫面】 請輸入攝氏溫度(℃):100 相當於絕對溫度373K

單元 1:認識 Visual Basic

- 14 -


十七、程式設計的工具 (1)文字性工具 (a)演算法 (b)虛擬碼 (2)圖形化工具:流程圖 流程圖符號

程式中的意義

程式的開始 / 結束

處理(如指定運算子)

輸入 / 輸出 (用鍵盤或螢幕)

決策(又稱條件、選擇、判斷)

連接(換頁或接續至其它地方)

流向線

單元 1:認識 Visual Basic

- 15 -


練習題:演算法及流程圖 (1)寫出程式題「0101」週期程式的演算法,並畫出流程圖 演算法 1.

程式開始

2.

輸入頻率

3.

計算週期

4.

將週期顯示在螢幕上

5.

程式結束

流程圖

(2)寫出程式題「0102」BMI 程式的演算法,並畫出流程圖 演算法

單元 1:認識 Visual Basic

流程圖

- 16 -

余家樞的VB2008講義:單元一認識VB  

余家樞為宜蘭高商程式語言課程自編教材