4-3-4 Visual Basic的資料型態

Download Report

Transcript 4-3-4 Visual Basic的資料型態

基本視窗程式應用
第四章
4-1 電腦程式語言的介紹
4-2 流程圖的介紹
4-3 視窗程式語言實例介紹
-Visual Basic 程式語言
什麼是程式語言?

程
式
語
言
(Programming
Languages)就是用來組成電腦程式
的語言,每一種程式語言都有它特
定的用字與使用的片語,人們利用
這些字與片語告訴電腦做些什麼事
,並將這些字及片語依照該語言特
有的文字規則及標準符號合併成指
令或敘述,進而組合成為程式。
4-1
電腦程式語言的介紹
4-1-1
4-1-2
4-1-3
4-1-4
程式語言的分類
物件導向程式設計的四元件
物件導向程式設計的三種特性
程式的翻譯
4-1-1 程式語言的分類
4-1-1 程式語言的分類

第一代程式語言:機器語言(Machine Language)

機器語言是電腦所能處理之最直接的程式語言,它不需經由翻譯就可以
在電腦上執行。

機器語言主要是由0和1兩種符號所組成,因此在學習上及程式的撰寫上
都相當地不容易。

機器語言的可攜性低。

所有的程式在執行之前
,都得被翻譯成機器語
言才行。
4-1-1 程式語言的分類

第二代程式語言:組合語言(Assembly Language)

組合語言又稱符號語言(Symbolic Language),它是利用符號來代替機器語言的
程式語言。

和機器語言相差無幾,仍然是很難看得懂,但使用起來卻比機器語言方便多了。

用組合語言所寫出來的程式,
必須透過組譯程式(Assembler)
翻成機器語言後,才可以在電
腦上執行。

當所要撰寫的程式複雜到一定
的程度後,程式設計師通常就
不會再使用組合語言來設計了。
4-1-1 程式語言的分類

第三代程式語言:程序導向
語言名稱
說明及其應用的範圍
FORTRAN
數值計算能力強,故適用於科學與工程用途,為
最早的高階語言。
COBOL
與英文語法相近,對檔案的處理能力強,且具商
業報表製作的能力,故適於商業用途。
式中所有敘述之先後順序,
BASIC
具有易於找出程式錯誤的特性,適用於程式設計
的初學者。
依次執行的程式語言。
Pascal
為第一個具有結構化程式設計概念的程式語言,
適於教學上使用。
考程式中的各項流程,而後
C
同時具有高階與低階語言的特性,且具有極高的
可攜性,可用來發展系統軟體。(UNIX、Linux作
業系統,大部份就是由C語言所撰寫出來的)
透過程式的語法一一地告知
LISP、
PROLOG
語言(Procedural-Oriented
Language)


程序導向語言是一種依照程
程式設計者必須要仔細地思
電腦。
具有推理之能力,為人工智慧語言。
4-1-1 程式語言的分類

第四代程式語言:物件導向語言
(Object-Oriented Language,OOL)

在物件導向語言中,它將程式語言所要處
理的對象都看成是一種物件,而後針對每
個物件進行開發,到最後再將所有物件組
合成一個可以解決問題的程式。

物件導向的程式設計方式,是站在比較人
性化的觀點來思考及設計程式的邏輯,所
強調的是做什麼,而不再是程序導向語言
的怎麼做。
語言名稱
說明及其應用的範圍
C++
由C語言所修改而成的物件導向
語言,如同C語言,亦適用於開
發系統軟體。
Delphi
以Pascal語言為基礎所開發出來
的物件導向語言。
Visual
Basic
以BASIC為基礎,加入了物件導
向及視覺化程式設計的觀念。
Java
具有極高的可攜性,適用於網頁
及手機遊戲的設計。
4-1-2
物件導向程式設計的四元件

物件(Object):一般泛指宇宙間任何具體或抽象的事物。

屬性(Property):是物件的一項描述內容,用以描述該物件的外貌
與特徵。

事件(Event):是一種預先定義好的特定動作,通常由使用者或電腦
系統所啟動。若為這些事件反應安排執行步驟,程式即可依設計者
的指定來進行處理的程序,而為這些為反應所撰寫的處理程序,就
是事件驅動(Event Driven)的程式碼,也就是事件程序。

方法(Method):是指透過某種程序,可令物件產生特定的動作或行
為。
4-1-3
物件導向程式設計的三種特性

封裝(Encapsulation):係指物件的封閉性。程式設計師在設計完
成某個物件之後,只要透過該物件所提供的介面輸入訊息,不必知
道物件內部的運作方式,物件便會將結果顯現出來,這便是所謂的
封裝性。

繼承(Inheritance):物件會擁有其上層物件的一些性質,同時又會
擁有自己新增的一些特質。

多型(Polymorphism):指的是物件內一樣名稱的函數被不同的下
層物件所繼承時,裡面所做的動作可以不一樣。
4-1-4 程式的翻譯

所有的程式在撰寫完成後,都必須被翻譯成機器語
言才能被電腦執行。

不同的程式語言皆有特定的翻譯程式來協助進行翻
譯的工作。

翻譯程式一般可分為組譯程式、直譯程式及編譯程
式等三種。
4-1-4 程式的翻譯

組譯程式(Assembler)

組譯程式又稱為組譯器,它可以將組合語言所撰寫出來的原始程
式(Source Code)轉換成目的程式(Object Code)。

目的程式常無法直接在電腦的主記憶體內直接執行,必須再透過
連結程式(Linker)將目的程式載入到主記憶體後才能執行。
4-1-4 程式的翻譯

編譯程式(Complier)

編譯程式又稱為編譯器,它利用批次作業的方式,將高階語言所撰
寫出來的原始程式,一次翻譯成目的程式,而後經由連結程式將目
的程式與程式庫連結,產生可以在電腦主記憶體中執行的執行檔。

由於執行檔可以重複執行,亦即電腦在每次執行時,不需重新編譯
,因此執行速度較快。目前常見的高階程式語言,如Fortran、C、
Pascal、Visual Basic…等,皆使用編譯程式來翻譯原始程式。
4-1-4 程式的翻譯

直譯程式(Interpreter)

直譯程式又稱為直譯器,它將高階語言所寫成的原始程式
,逐列翻譯成機器語言,每翻譯完一列便立即執行一列。

直譯程式並不會產生目的程式,所以執行的速度較慢,而
且每次執行時,都必須要重新翻譯。

好處是找出程式的錯誤較容易,因此適合初學者學習。早
期的BASIC和現在之Visual Basic語言中的即時運算視窗便
是使用直譯的方式。
4-2
流程圖的介紹
4-2-1 演算法的意義
4-2-2 演算法的示例
4-2-3 認識流程圖
4-2-1 演算法的意義

演算法(Algorithm)在韋氏辭典中的定義為:「在有限步驟內
解決數學問題的程序」。

廣義的演算法指的是「一組用來解決特定問題的有限指令或
步驟,我們可以依循這些指令或步驟逐步地解決問題」。

當我們利用電腦來解決問題時,必須事先清楚地知道每一個
步驟該如何做,並將這些解決問題的先後順序及步驟,以文
字的方式逐一表達出來,這種解決問題的有限步驟就稱為演
算法。
4-2-2 演算法的示例

問題:若我們有三公升和五公升的量器各一個,量器上都沒
有刻度。請問要如何填裝剛好四公升的水呢?

演算法:

步驟一:將水裝滿三公升的量器,並倒入五公升的量器中。

步驟二:再將水裝滿三公升的量器,並同樣地倒入五公升的量器
,直到五公升量器裝滿水為止,此時三公升的量器中尚餘一公升
的水。

步驟三:將五公升量器中的水倒掉。

步驟四:將三公升量器中的一公升水倒入五公升量器中。

步驟五:再將水裝滿三公升量器,並倒入五公升的量器中。
4-2-2 演算法的示例

問題:請寫出1+2+3+4+5+6+7+8+9+10=?的演算法。

演算法:

步驟一:將兩個整數Count和Sum的值分別設為1和0。

步驟二:將Count和Sum兩值相加,所得的結果傳給Sum。

步驟三:Count的值加1。

步驟四:如果count的值小於11,就跳到步驟二,否則就往下執
行。

步驟五:印出Sum的值即為所求。
4-2-3 認識流程圖

演算法是以文字敘述的方式來表示解決問題的步驟,而程式
設計師根據演算法的內容,就可以很直接且迅速地轉寫成程
式。

文字表示的方法,對一般人而言,通常比較無法把握住重點
,若能以我們慣用的圖形來表示,就可以減少錯誤發生的機
會。

流程圖(Flow Chart)就是利用各種特定的圖形符號,以圖表
的方式來說明解決問題的方法及步驟。
4-2-3 認識流程圖

問 題 : 請 繪 出 1+2+3+4+5
+6+7+8+9+10=?的流程圖
。
4-2-3 認識流程圖

如同我們日常所看到交
通標誌,有三角形、圓
流程圖符號
符號名稱
符
號
代
表
的
意
義
起訖符號
表示流程圖的起點或終點。
處理符號
表示事件的處理和運算,例如加減除乘。
輸入/輸
出 符 號
表示資料輸入、輸出的動作。
是如此,每種符號各代
決策符號
表示根據某種條件來進行決定或判斷。
表一個不同的意義
流向符號
表示工作的流向,也就是各步驟執行的順序
,可以向上、向下、向左或向右。
連接符號
表示流程圖的某一處接點。
副
符
式
號
表示使用某個副程式或已定義的函數。
文件符號
表示輸出的結果是由印表機列印出來。
註解符號
對流程圖某些步驟所做的說明,以增進流程
圖的可讀性。
形及方形,每個形狀各
代表不同的含意。流程
圖所會使用到的符號也
程
4-2-3 認識流程圖

問題:請繪出郵局提款機(ATM)密
碼判斷的流程圖,其演算法說明如
下:

步驟一:使用者輸入密碼。

步驟二:將所輸入之密碼與5566(
正確密碼)比對,若正確,則列印
出“正確”二字,並跳至步驟五。

步驟三:若輸入錯誤(不是5566),
則列印出“錯誤”二字。

步驟四:若輸入錯誤達三次以上,
則列印出“不玩了”字樣,並跳至
步驟五;而若錯誤未達三次,就要
求使用者回到步驟一重新輸入。

步驟五:結束。
4-3
視窗程式語言實例紹介紹
Visual Basic程式語言
4-3-1 認識Visual Basic
4-3-2 撰寫第一個Visual Basic程式
4-3-3 Visual Basic程式的物件、屬性、事件與方法
4-3-4 Visual Basic的資料型態
4-3-5 運算式和運算子
4-3-6 程式流程的控制
4-3-7 迴圈控制敘述
4-3-8 陣列 (Array)
4-3-9 Visual Basic常用函數
4-3-1

認識Visual Basic
一個Visual Basic程式可以概
分為以下三個主要的部份:

專 案 (Project) : 一 個 專 案 就
代表了一個完整Visual Basic
應用程式。如小算盤。

表單(Form):就是我們在視
窗環境下常見的交談視窗或
是普通的視窗。如視窗A。

控 制 項 (Control) : 每 個 表 單
上具有特殊用途的物件就稱
之為控制項。如B、C、D。
4-3-1

Visual Basic工作環境

功能表:A。

工具列:B。

工具箱:C。

表單設計師:D。

專案總管:E。

屬性視窗:F。

表單配置視窗:G。
認識Visual Basic
4-3-1

認識Visual Basic
Visual Basic的即時運算視窗

即時運算視窗是透過直譯的方式來翻譯程式碼。

只要在即時運算視窗中輸入一
列程式碼,並按下Enter鍵,
Visual Basic便會馬上將執行結
果顯示在視窗中。

即時運算視窗很適於程式設計
師用來進行程式測試及除錯的
工作。
4-3-1
認識Visual Basic

Visual Basic主要是由一列一列的敘述和命令所組合而成的。

敘述:由保留字後面跟隨著常數、變數、運算式等所組合。
例如:Let C = A + B,其中 Let 為保留字、而 C 為變數, =
A + B 為算術運算式。

若想將兩個以上的敘述寫在同一列,則敘述之間應以冒號(:)隔
開。

命令:命令是獨立的保留字。例如:End、Cls等。

敘述或命令都是以英文字來表示,而用大寫英文字母或小寫英文
字母來表示,對Visual Basic是沒有差別的,也就是英文字母大
小寫都視為一樣。
4-3-1

認識Visual Basic
Print敘述

格式:Print 欲顯示之內容。

功能:將程式的執行結果,顯示在表單中。

說明:
1.
Print可以用問號“?”來代替。
2.
顯示之內容可以是字串資料或常數、變數及運算式。
3.
若顯示字串資料,則引號內的資料會原封不動地印出來。
4.
若要顯示的內容為運算式,則會將運算結果印出。
5.
後續若接分號“;”,則表示連續輸出。
6.
後續若接逗號“,”,則資料會在特定輸出區輸出。
4-3-2
撰寫第一個Visual Basic程式



Int函數

格式:Int(X)

功能:取小於或等於數值X的最大整數值。
Cls命令

格式:Cls

功能:清除顯示在表單中的資料。
End命令

格式:End

功能:結束程式的執行。
4-3-2
撰寫第一個Visual Basic程式

Rnd函數

格式:Rnd

功能:隨機函數,會產生一個亂數值。

說明:
1.
所產生的亂數值範圍為 0 ≦ Rnd < 1。
2.
所產生的亂數值可能為0,可能為0.99999,但不可能為1。
3.
在使用Rnd函數前,設計師一般多會先加上Randomize這個的指令,
Randomize會以電腦系統的時間當作亂數種子來始動亂數產生器。如
此在每次執行程式時,方能隨機產生不同的隨機值。
4.
若要產生A至B之間的整數亂數,可以透過下列公式產生:
Int((B-A+1) * Rnd) + A
4-3-2
撰寫第一個Visual Basic程式

執行專案:執行程式的方式很簡單,只需按一下工具列上的開始鈕
就可
以了。

儲存專案:按選工具列上的儲存專案工具鈕。

我們在Visual Basic中所撰寫或所使用到的表單、物件、程式碼等,若將它們單獨
存檔,日後便可以再給其它的專案檔來使用。

開啟舊專案:按選工具列上的開啟舊專案工具鈕,並選擇所要開啟的專案就
可以了。


若開啟後未看到表單,此時只要在專案總管視窗中,用滑鼠雙按表單檔名即可。
產生可執行檔:按選【檔案/???.exe】的選項。

Visual Basic提供編譯的方式,允許我們將專案製成可以在Windows環境中執行的
執行檔。
4-3-3 Visual Basic
程式的物件、屬性、事件與方法

物件與屬性:

由工具箱所拖曳至表單上的控制項便是物件,每個物件都
有特定的屬性,透過屬性視窗的設定,我們就可以更改物
件的屬性設定值。

物件的屬性值,除了可以直接在屬性視窗中更改外,也可
以經由程式來設定。在程式中,物件的屬性有其規定的設
定方式:
4-3-3 Visual Basic
程式的物件、屬性、事件與方法

事件與事件程序:

事件指的是發生在物件上的一個動作或狀況。例如當我們
在表單上按一下滑鼠的左鍵,這就是一個事件。事件會引
發事件程序,事件程序的命名方式為:
4-3-3 Visual Basic
程式的物件、屬性、事件與方法

方法:

方法指的是作用在物件上的內建指令或程序,其目的是要
求物件去執行某個特定的動作。方法之使用方式為:
4-3-4
Visual Basic的資料型態

資料的型態:Visual Basic將資料區分為許多種不同的型態,其中常
用的資料型態簡介如下:

依所處理的資料來分:分為數值資料、字串資料及其它資料。
1. 數 值 資 料 : 整 數 ( 整 數 , 長 整 數 ) , 實 數 ( 單 精 準 數 , 倍 精 準 數 ) 、 貨 幣 及
科學符號。
2.字串資料:可動、固定。
3.其它資料:日期、布林、變異。

依資料是否具有變動性來分:分為常數,變數。

上述兩種資料型態的分類,是可以組合的,例如數值常數、數值變數或
是字串常數、字串變數。
4-3-4
Visual Basic的資料型態

變數(Variable):在程式設計的階段,我們時常需要將資料
計算或統計的結果做暫時性的儲存,而這種需要暫存的資料
,大多是透過變數來完成。每個變數都包含三個部分:
1.
名稱(Name):有了變數的名稱,我們便可以在程式中,利用
這個變數名稱引用它所包含的資料值。
2.
資料型態(Data Type):可以決定變數存放的是哪種類型的資
料,如整數資料、字串資料。
3.
資料值(Data Value):就是變數所存放的內容。
4-3-4
Visual Basic的資料型態

變數的命名規則:變數名稱不是任意的,它具有一些的限制
,因此在為變數命名時,必須遵守下列的規則:
1.
變數名稱的長度只能 1 ~ 255 字元。
2.
第一字元必須使用英文字,不可使用數字。
3.
第二字元以後可以使用英文、數字、底線。
4.
保留字不可作為變數名稱。
5.
英文字母大小寫視為相同。
4-3-4
Visual Basic的資料型態

變數的資料型
資料型態
英文名稱
佔用記憶體數
有
效
範
態 : 在 Visual
字
串
String
視字串的
長度而定
0到65536個字
Basic中,變數
整
數
Integer
2 bytes
-32768 ~ 32767
長 整 數
Long
4 bytes
-2147483648 ~ 2147483647
單精準數
Single
4 bytes
負數:-3.4E+38 ~ -1.4E - 45
正數:1.4E-45 ~ 3.4E+38
整數(整數,長
倍精準數
Double
8 bytes
負數:-1.79E+308 ~ -4.94E-324
正數:4.94E-324 ~ 1.79E+308
整數)、實數(
布
Boolean
2 bytes
True或Flase
的資料型態主
要分為字串、
林

單精準數,倍
精準數)、布林
、變異等。
變
異
Variant


圍
變數在使用前若未宣告,則預
設為變異。
其資料型態視程式中指定的資
料而定。
其資料型態可以在程式執行中
隨時改變。
4-3-4
Visual Basic的資料型態

Dim敘述

格式:Dim 變數名稱 [As 變數的資料型態]

功能:宣告變數的資料型態。

說明:
1.
Dim及As都屬於保留字,是用來提示程式接
下來要對某一個變數進行宣告的動作。
2.
變數名稱得依照變數的命名規則來命名。
3.
在同一個宣告敘述中,可以同時宣告多個變
數,但變數名稱間必須以 , 來區隔。
4.
變數宣告時,若只寫Dim 變數名稱而省略了
As 變數的資料型態,則代表該變數的資料型
態為變異。
5.
一個變數在使用前若未經Dim來宣告,Visual
Basic亦會將該變數的資料型態視為是變異。
4-3-4
Visual Basic的資料型態

常數(Const):有些資料的內容是固定且不隨程式
之執行而改變的,這類的資料我們就稱之為常數。

將固定不變的數設定為常數具有以下幾點好處:

讓程式更容易閱讀。

減少程式發生錯誤的機率。

使程式在修正時較為容易。
4-3-4
Visual Basic的資料型態

在Visual Basic中,常數可概分為兩種:

使用者自定的常數:使用者根據程式的需要自行設定,例
如圓周率π=3.14159便是。

Visual Basic預設(內定)的常數:由Visual Basic事先定義
好的常數,這類的常數名稱皆以vb這兩個英文字母為開頭
來 命 名 , 例 如 vbOKOnly 、 vbYesNo 、 vbKeyUp 、
vbKeyTab…等皆是。在使用Visual Basic預設的常數時,
並不需要事先宣告,而是可以直接使用的。
4-3-4
Visual Basic的資料型態

Const敘述

格式:Const 常數名稱 [As 常數的資料型態] = 常數的設定值

功能:宣告常數的資料型態及其設定值。

說明:
1.
Const及As都屬於保留字,是用來提示程式接下來要宣告某一個常數。
2.
常數名稱的命名規則和變數名稱相同。
3.
常數的資料型態種類同變數。
4.
常數一旦宣告後,若於程式中進行修改,
會出現「編譯錯誤:不可指定至常數」的
錯誤訊息。
4-3-4
Visual Basic的資料型態

MsgBox敘述




格式一:變數 = MsgBox(訊息文字,[按鈕種類+訊息圖示],[標題文字])
格式二:MsgBox 訊息內容, [按鈕種類+訊息圖示], [標題文字]
功能:用來顯示錯誤、警告…等訊息的交談視窗。
說明:
1.
2.
3.
4.
5.
6.
7.
MsgBox有兩種使用的格式。
訊息文字:要顯示在視窗中的內容。
按鈕種類:參考次頁表一。
訊息圖示:參考次次頁表二。
按鈕種類和訊息圖示可不設定,而若
同時設定,則兩個參數值必須相加。
標題文字:對交談窗標題列的標題文字(可省略不寫)。
變數:當使用者按下按鈕後,所傳回的按鈕值,參考次三頁表三。
4-3-4
Visual Basic的資料型態

表一:按鈕種類
預設常數名稱
常數值
vbOKOnly
0
vbOKCancel
1
vbAbortRetryIgnore
2
vbYesNoCancel
3
vbYesNo
4
vbRetryCancel
5
顯示於訊息對話視窗上的按鈕
4-3-4
Visual Basic的資料型態

表二:訊息圖示
常數名稱
常數值
vbCritical
16
vbQuestion
32
vbExclamation
48
vbInformation
64
訊息圖示
4-3-4
Visual Basic的資料型態

表三:按鈕回傳值
按鈕種類
傳回之函數值
1
2
3
4
5
6
7
4-3-4
Visual Basic的資料型態

InputBox敘述

格式:變數 =InputBox(訊息文字, [標題文字], [預設文字])

功能:將鍵盤上所輸入的文字,指定到對應的變數中。

說明:
1.
訊息文字:要顯示在視窗中
的內容。
2.
標題文字:對話視窗標題列
的標題文字(可省略不寫)。
3.
預設文字:文字輸入區所預
設會顯示的文字(可省略不寫)。
4.
變數:當使用者按下「確定」
鈕後,變數值會等於使用者
所輸入的內容。
4-3-5 運算式與運算子

一個運算式是由運算元及運算子所組成。

在運算式中做為運算資料者就稱之為運算元,運算元可以是
變數、常數或函數。

介於不同運算元之間的符號就稱之為運算子。

以5+6-4這個運算式為例,5、6、4就是運算的資料,因此是
運算元,而加號+和減號-則是運算子。
4-3-5 運算式與運算子


算術運算子:主要是用
順序
符號
功能
示例及說明
結果
來做數值計算使用,和
1
^
指數(次方)
2^3(2的3次方)
8
一般我們在數學上所使
2
+
正號(正數)
+33(正33)
+33
用的符號並沒什麼不同
2
-
負號(負數)
-33(負33)
-33
,每個運算子有自己算
3
*
乘法
3*9(3乘以9)
27
計優先順序。
3
/
除法
9/2(9除以2)
4.5
在算術運算式中,等號
4
\
整數除法(求商)
9\2(9除以2的商)
4
=並不是數學上等於的
5
Mod
求餘數
9 Mod 2(9除以2的餘數)
1
意思,而是具有設定或
6
+
加法
5+3(5加3)
8
指定的含意存在。
6
-
減法
5-3(5減3)
2
4-3-5 運算式與運算子

關係運算子:關係運算子又稱為
運算子
功能
示例及說明
示例結果
算元之間的大小關係或是否相等
=
等於
3=5
(3等於5)
False
,運算的結果只有兩個:不是真
<>
不等於
3 <> 5
(3不等於5)
True
(True)就是假(False)。
<
小於
3<5
(3小於5)
True
>
大於
3>5
(3大於5)
False
<=
小於等於
(不大於)
3 <= 5
(3小於等於5)
True
>=
大於等於
(不小於)
3 >= 5
(3大於等於5)
False
比較運算子,是用來比較兩個運

所有關係運算子的優先順序相同
,因此在計算時是依照由左而右
的方式來比較。

關係運算式中的等號代表等於。
4-3-5 運算式與運算子


邏輯運算子:邏輯
運算子常和關係運
算子一起搭配,做
為程式流程判斷使
用。
如同算術運算子,
邏輯運算子也有優
先順序,但邏輯運
算式在計算時,它
的運算元只有兩種
,就是布林資料中
的True或False。
示例中的X是True,Y是False
順序
運算子
功能
示例
結果
說明
1
Not
否、反
Not X
False
將True變為False,
或將false變True。
2
And
和、且
X And Y
False
當X和Y都是True時,
結果為True,否則為False。
3
Or
或
X Or Y
True
X或Y只要有一個是True,
結果就是True。
4
Xor
互斥或
X Xor Y
True
當X和Y的真假值不同時,
結果是True,否則是Flase。
4-3-6 程式流程的控制

Visual Basic提供了以下三種可以改變程式流
程的判斷及選擇敘述:

If – Then – End If敘述

If - Then – Else – End If敘述

Select Case – End Select敘述
4-3-6 程式流程的控制

If – Then – End If敘述

格式一:If 條件式 Then

格式二:If 條件式 Then
程式敘述區塊
End If

功能:用來判斷某單一的條件。

說明:
1.
格式一為單列式的If – Then敘述,當條件式成立時,就執行Then後面的敘
述,否則就繼續執行下一個程式敘述。
2.
在格式一(單列式)的If – Then敘述中,整個敘述必須寫成一列,不可以寫成
兩列以上,否則會出現錯誤訊息。
3.
格式二為區塊式的If – Then敘述,當條件式成立時,就執行Then下面的程
式敘述區塊,否則就繼續執行End If下一列的程式敘述。
4-3-6 程式流程的控制
4-3-6 程式流程的控制

If – Then – Else – End If敘述

格式:If 條件式 Then
程式敘述區塊
Else
程式敘述區塊
End If

功能:用來做二重條件的判斷,並根據測試結果(True或False),分別執
行不同的敘述。

說明:
1.
若條件式成立時,就執行Then下面到Else之間的敘述,否則就執行Else到
End If之間的敘述。
2.
在If或Else內的敘述,若包含其它個層次的If - Then - Else - End If,就完成
多重的條件判斷式(亦稱為巢狀式條件判斷式)。
4-3-6 程式流程的控制
4-3-6 程式流程的控制

Select Case – End Select敘述



格式:Select Case 運算式
Case 條件式1
程式敘述區塊1
Case 條件式2
程式敘述區塊2
:
Case Else
程式敘述區塊
End Select
功能:依 Select Case 後運算式的結果,選擇其中合於Case後要求的值
,並執行該Case之下的程式敘述區段。執行完畢後,跳到End Select的
下一列敘述繼續執行。
說明:
1.
2.
若運算式同時符合多個Case時,則僅第一個符合的Case會被執行。
當所有的Case均不符合時,則執行Case Else下方的敘述區塊,若沒有Case
Else,則執行End Select下一列的敘述。
4-3-6 程式流程的控制
4-3-7 迴圈控制敘述

程式的撰寫,時常會遇到某些敘述需要重複執行的情況,這
時就可以利用迴圈(Loop)控制敘述來協助我們,而不需要對
同一個敘述重複寫上多次的程式片段。

使用迴圈除了節省程式開發的時間外,也可以讓程式變得更
簡單、易懂。

Visual Basic提供了兩種迴圈控制的方式:

For – Next敘述

Do – Loop敘述
4-3-7 迴圈控制敘述

For – Next敘述

格式:For 控制變數 =初值 To 終值 [Step 增值]
所要重複的程式片段
Next [控制變數]

功能:For – Next迴圈敘述通常用在某一個程式片段需要重複執行
,且事先已經知道所要重複之次數。

說明:
1.
迴圈的執行次數 = Fix((終值 – 初值) / 增值)) + 1。
2.
若是以下兩種情形,則執行次數為0次:
終值 > 初值,而增值 < 0。
終值 < 初值,而增值 > 0。
3.
For – Next一定是成雙成對出現。
4.
格式中,可以省略的部份為:若增值為1時,則Step可以省略;Next後
面的控制變數名稱可以省略。
5.
迴圈的初值、終值和增值,皆於迴圈開始執行時即已決定,不會因為
變數值的改變而改變。
4-3-7 迴圈控制敘述
4-3-7 迴圈控制敘述
4-3-7 迴圈控制敘述

Do – Loop敘述

格式一:前測式
Do While(或Until) 測試條件
所要重複的程式片段
Loop

格式二:後測式
Do
所要重複的程式片段
Loop While(或Until) 測試條件

功能:在所設定的條件範圍內,重複執行Do – Loop之間的所有敘述。

說明:
1.
Do – Loop敘述可將測試條件置於迴圈前端(前測式)或末端(後測式)。
2.
採用前測式時,迴圈執行前會先判斷條件,故可能執行0次(不執行重複的程式片段)。
3.
採用後測式時,先執行迴圈內的敘述一次後再判斷條件,故最少要執行一次。
4.
While(當)是條件成立時進入迴圈,而Until(直到)則是當條件成立時離開迴圈。
4-3-7 迴圈控制敘述
4-3-8 陣列(Array)

在Visual Basic中,我們所宣告的每一個變數都只能儲存一項資料,如果要存
放10項資料,我們就得宣告10個變數,而當資料量成百上千時,要宣告、記
憶及管理這些變數,就會讓程式設計師頭疼不已,此時可以透過宣告陣列
(Array)的方式來解決上述的問題。

陣列的意義:陣列是由許多個元素所組成,每個元素就是一個獨立的變數,
可以存放一項資料,這些元素共同一個變數名稱,而要使用到某一個元素時
,只需在變數名稱後指定是第幾個元素就可以了。
4-3-8 陣列(Array)

Dim敘述(陣列的宣告)

格式:Dim 陣列變數名稱(N) [As 資料型態]

功能:宣告陣列。

說明:
1.
陣列名稱的命名方式和一般變數相同。
2.
N是指陣列的最大註標值。由於陣列的註標是由0開始,所以陣列元素的實際個數是
N+1個,而不是N個。
3.
N可以是一個範圍值,例如當宣告式寫成:
Dim A(4 To 10) As Integer
則代表A陣列中共有7個元素,分別是A(4)、A(5)、...、A(10)。
4.
陣列中所有元素的資料型態(例如整數或字串)皆相同。
5.
陣列宣告後,註標值的範圍便已確定,若使用範圍之外的註標值,則會出現錯誤的
訊息。(錯誤訊息:陣列索引超出範圍)
6.
宣告時若省略資料型態的宣告(即省略As
異型態來儲存。
資料型態),則陣列中的所有元素皆以變
4-3-8 陣列(Array)

陣列具有維度,亦即可以宣告成多維的陣列。我們
可宣告二維陣列如下:
1.
Dim Arr1(N, M)
陣列Arr1的元素個數為 (N + 1) * (M + 1) 個。
2.
Dim Arr2(M1 To N1, M2 To N2)
陣列Arr2的元素個數為 (N1–M1+1) * (N2-M2+1)個。
3.
Dim C(2, 3) As Integer
代表陣列C共有12個元素,每個元素都存放著整數資料。
4-3-8 陣列(Array)

Rem敘述

格式一:Rem 想說明的文字內容

格式二:想說明的文字內容

功能:為程式加上註解。

說明:
1.
程式的註解可以利用保留字Rem來完成(如格式一),也可用單
引號’來取代(格式二)。
2.
程式執行時,當遇到Rem或單引號’時,並不會執行其後的文字
敘述。
4-3-9
Visual Basic常用函數

透過函數的使用,我們可以簡化程式,並節省程式開發
的時間。

在Visual Basic中,函數可以分為兩種,一種是Visual
Basic 本 身 所 提 供 的 , 我 們 稱 之 為 內 建 函 數 (Library
Function),另一種則是程式設計師自行設計的,我們
稱之為自定函數(Self-Defined Function)。
4-3-9
Visual Basic常用函數
Visual Basic常用的內建數值函數:

語
法
意
義
與
說
明
範
例
輸出結果
Abs(X)
取X的絕對值。
Print Abs(-12); “,”;Abs(12.56)
12 , 12.56
CInt(X)
以四捨五入法取X的整數值。
(注意奇進偶不進的原則)
Print Cint(3.2) ; “,”;CInt(3.6)
Print CInt(-3.2) ; “,”;CInt(-3.6)
Print CInt(5.5) ; “,”;CInt(4.5)
3,4
-3 ,-4
6,4
Fix(X)
以無條件捨去法取X之整數值。
Print Fix(3.6) ; “,”;Fix(-3.2) ; “,”;Fix(-3.6)
3 ,-3 ,-3
Int(X)
取小於或等於X的最大整數值。
(最接近X又不超過X的整數)
Print Int(3.6) ; “,”; Int(-3) ; “,”;Int(-3.6)
3 ,-3 ,-4
Sgn(X)
取X的符號值。
(X>0得1、X=0得0、X<0得-1)
Print Sgn(3) ; “,”;Sgn(0) ; “,”;Sgn(-3)
1 , 0 ,-1
Sqr(X)
取X的正平方根。
Print Sqr(16) ; “,”;Sqr(100) ; “,”;Sqr(0)
4 , 10 , 0
4-3-9
Visual Basic常用函數

Visual Basic常用的內建字串函數(一):
語
法
意
義
與
說
明
範
例
輸 出 結 果
找尋字串Y在字串X中存在的起始位置
(以先找到為準)。找不到的結果為0。
(N值省略代表N=1)
S = “BALABUBU”
Print InStr(4,S,”B”)
Print InStr(S,”A”)
Print InStr(1,”A”,””)
Print InStr(1,”AB”,”C”)
5
2
1
0
LCase(X)
將字串X內的大寫英文字母改成小寫
的英文字母。
Print LCase(“Book”)
Print LCase(“12AB”)
book
12ab
Left(X,N)
取字串X左邊N個字元。
A=“MOTORCYCLE”
Print Left(A,4)
MOTO
得到X字串的長度。
Print Len(“Beautiful”)
Print Len(“中華民國”)
9
4
刪除字串X左邊的空白字元。
Print LTrim(“△△Good”)
“Good”
InStr(N,X,Y)
Len(X)
LTrim(X)
4-3-9
Visual Basic常用函數

Visual Basic常用的內建字串函數(二):
語
法
意
義
與
說
明
範
例
輸出結果
Mid(X,M,N)
取字串X中,從第M個字元開始取N個字元,若N值
省略,代表取完剩下所有的字。
A=“MOTORCYCLE”
Print Mid(A,3,4)
TORC
Right(X,N)
取字串X右邊N個字元,若N值大於字串X的長度,
則取完為止。
A=“MOTORCYCLE”
Print Right(A,4)
YCLE
刪除字串X右邊的空白字元。
Print RTrim(“Good△△“)
“Good”
Str(X)
將數值資料X轉變為字串資料。
Print Str(100)
Print Str(-50)
100
-50
Trim(X)
刪除字串X左右兩邊的空白字元
Print Trim(“△△Good “)
將字串X內的小寫英文字母改成大寫的英文字母
Print UCsae(“Book”)
Print UCase(“12ab”)
BOOK
12AB
將字串X轉變成數值資料
Print Val(“1234”)
Print Val(“54W33”)
1234
54
RTrim(X)
UCase(X)
Val(X)
“Good”
4-3-9
Visual Basic常用函數

自定函數

格式:Function 函數名稱(參數1 As資料型態,…) As 傳回值資料型態
程式區塊…
函數名稱 = 運算式
程式區塊…
End Function

功能:程式設計師自行定義函數。

說明:
1.
函數名稱是我們為自定函數所取的,取名的規則和取變數名稱相同。
2.
所謂參數就如同我們一般數學函數y=f(x)中的x,當我們將x=3的值代入f(x)中,就會得到一個y
值等於f(3)一樣。
3.
參數的宣告不需要寫保留字Dim。如果所要傳入的參數不止一個,則需要用逗號,將它們隔開。
4.
傳回值之資料型態可以省略不寫,若省略則視為是變異型態。
5.
執行Function後,會將函數名稱等號右邊運算式的運算結果,傳回給左邊的變數名稱,亦即函數
名稱 = 運算式的敘述,是用來設定函數的傳回值。
4-3-9
Visual Basic常用函數