15-7.1副程式(Sub Procedure)
特點 |
1.簡化程式,增加可讀性,易於維護,節省記憶體空間。 2.結構化、模組化(Modulize)。 3.以堆疊結構處理資料,較費時。 |
|
堆疊(Stack) |
先進後出(FILO, First In Last
Out) 最後放入(push)的資料,最先取出(pop)。 |
|
佇列(Queue) |
先進先出(FIFO, First In First
Out) 由尾端加入資料,由頭端取出資料。 |
|
種類 |
程序 (Procedure) |
事件程序 Private Sub Button1_Click(…)
Handles Button1.Click
… End Sub |
自定程序Sub-End Sub |
||
函數 (Function) |
內建建數 |
|
自定函數Function-End Function |
15-7.2自定程序Sub-End Sub
格式 |
[Private | Public] Sub 程序名稱([ByVal | ByRef] 引數1 [As 資料型態], [ByVal | ByRef] 引數2 [As 資料型態], …) 敘述區段 End Sub |
|
呼叫 |
使用Call敘述呼叫Sub程序。 |
|
引數傳遞方式 |
傳址呼叫 Call by Address Call by Reference |
副程式的引數前加上ByRef,主程式的引數與副程式的引數共用一個記憶體位址,會影響實際值。 |
傳值呼叫 Call by Value |
副程式的引數前加上ByVal,主程式的引數與副程式的引數不共用記憶體位址,不會影響實際值。 |
15-7.3自定函數Function-End Function
格式 |
[Private | Public] Function 函數名稱([ByVal | ByRef] 引數1 [As 資料型態], [ByVal | ByRef] 引數2 [As 資料型態], …) [As 傳回值資料型態] 敘述區段 函數名稱 = 運算式 : End Function |
傳回值型態 |
預設為Object。 |
函數 |
需包含一個函數傳回值的設定敘述,即將函數名稱設成運算式。 |
15-7.4數值函數
函數 |
功用 |
範例 |
Math.Abs(X) |
取X的絕對值。 |
Math.Abs(5)=5 Math.Abs(-5)=5 |
CInt(X) |
四捨六入取最近的整數。 若小數.5,採奇進偶捨。 |
CInt (12.5)=12 CInt (-1.5)=-2 |
Int(X) Math.Floor(X) |
取小於等於X的最大整數。 |
Int(12.5)=12 Math.Floor(-13.5)=-14 |
Fix(X) Math.Truncate(X) |
只取X的整數部分。 |
Fix(12.5)=12 Math.Truncate(-13.5)=-13 |
Randomize(n) |
產生Rnd()的種子值。 n為倍精度型態。 |
|
Rnd() |
產生0≦Rnd()<1的亂數。 |
Int(Rnd*(B-A+1)+A) Int(Rnd*(B-A+1))+A |
Math.Round(X) |
四捨六入取整數。 若小數.5,採奇進偶捨。 |
Math.Round(12.5)=12 Math.Round(-13.5)=-14 |
Math.Round(X, p) |
傳回數字X取至第p位的結果。 四捨六入,採奇進偶捨。 若p省略,取整數。 |
Math.Round(2.65, 1)=2.6 |
Math.Sign(X) |
判斷X為正值、負值或零。 |
Math.Sign(12)=1 Math.Sign(0)=0 Math.Sign(-34)=-1 |
Math.Sqrt(X) |
求X的平方根。 |
Math.Sqrt(9)=3 |
Math.Exp(X) |
自然對數e的X次方。 與Math.Log(X)互為反函數。 |
Math.Exp(1)=2.71828182845905 Math.Log(Math.Exp(1))=1 |
Math.Log(X) |
傳回自然對數值 與Math.Exp(X)互為反函數 |
Math.Log(1)=0 Math.Exp(Math.Log(2))=2 |
Math.Max(X, Y) |
傳回X與Y的較大值 |
Math.Max(3, 9)=9 |
Math.Min(X, Y) |
傳回X與Y的較小值 |
Math.Min(3, 9)=3 |
15-7.5字串函數
函數 |
功用 |
範例 |
Strings.Left(S, n) |
選取字串S左起n個字元 |
Strings.Left("ABCDE", 2)= "AB" |
Strings.Right(S, n) |
選取字串S右起n個字元 |
Strings.Right("ABCDE", 2)= "DE" |
Mid(S, n, m) Strings.Mid(S, n, m) |
由字串S第n個字元起選取m個字元 |
Mid("ABCDE", 2, 2)= "BC" Strings.Mid("ABCDE", 3)= "CDE" |
Len(S) |
傳回字串S長度 |
Len("中文版VB")=5 Len("中 文 版 V B")=9 |
LCase(S) |
將字串S的所有英文大寫字母轉成小寫字母 |
LCase("AbCdE")="ABCDE" |
UCase(S) |
將字串S的所有英文小寫字母轉成大寫字母 |
UCase("AbCdE ")="abcde" |
Replace(S, A, B) |
將字串S中的字串A全部取代為字串B |
Replace(“AbcAbc”, “Ab”, “%”)=”%c%c” |
InStr(X, A, B) |
從字串A左邊第X個字開始搜尋字串B第一次出現的位置。 若X省略,從第1個字開始搜尋。 若搜尋不到,傳回0。 |
A$=”Happy Birthday” B$=”Bir” InStr(1, A$, B$)=7 InStr(10, A$, B$)=0 |
InstrRev(A, B, X) |
從字串A右邊第X個字開始搜尋字串B第一次出現的位置。 若X省略,從最後1個字開始往前搜尋。 若搜尋不到,傳回0。 |
A$=”Happy Birthday” B$=”Bir” InstrRev(A$, B$, 1)=7 InstrRev(A$, B$, 10)=0 |
StrComp(A, B) |
比較字串A與字串B的大小。 A$<B$→-1 A$=B$→1 A$>B$→1 |
StrComp(“Apple”, “Banana”)=-1 StrComp(“Apple”, “Apple”)=0 StrComp(“apple”, “Banana”)=1 |
StrDup(X, A) |
重複X個字串A的第1個字元。 |
StrDup(3, “ABC”)=”AAA” |
Trim(S) |
刪除字串S前後的空白字元。 |
Trim(“△Happy△△“)=“Happy“ |
LTrim(S) |
刪除字串S左邊的空白字元。 |
LTrim(“△Happy△△“)=“Happy△△“ |
RTrim(S) |
刪除字串S右邊的空白字元。 |
RTrim(“△Happy△△“)=“△Happy“ |
15-7.6轉換函數
函數 |
功用 |
範例 |
|
Asc(s) |
互為 反函數 |
將字串s的第一個字元轉成ASCII碼。 |
Asc("A")=65 |
Chr(ASCII碼) |
傳回ASCII碼代表的字元。 |
Chr(65)=A |
|
Val(s) |
互為 反函數 |
將字串s轉成數值資料。 |
Val(" |
Str(X) |
將數值資料X轉成字串資料。 若X≧0,第一個字元前加上空白(以△表示)。 若X<0,直接轉成字串。 |
Str(12)=△12 Str(-34)=-34 |
|
Math.Exp(X) |
互為 反函數 |
自然對數e的X次方。 |
Math.Exp(1)=2.71828182845905 Math.Log(Math.Exp(1))=1 |
Math.Log(X) |
傳回自然對數值。 |
Math.Log(1)=0 Math.Exp(Math.Log(2))=2 |
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。