620 likes | 767 Views
程式語言 II. 第8章 函數與程序. 本章大綱. 字串函數 數學函數 時間函數 比較函數 陣列函數 程序 遞迴. 8-1 字串函數. 電腦資料型態可分為數值(如 Integer、Long), 日期( date)、 字串( String)、 不定型( Variant) 等。 專門處理字串資料的函數,稱為字串函數。 字串資料常見的應用,如文字旋轉、走馬燈效果、字串搜尋、取部份子字串( Mid、Right、Left) 等。. 8-1-1 ASC 函數. 語法: ASC(“ 字串”) 說明: 傳回一個整數數值,為字串中第一個字母的字元碼。 實例:
E N D
程式語言II 第8章 函數與程序
本章大綱 • 字串函數 • 數學函數 • 時間函數 • 比較函數 • 陣列函數 • 程序 • 遞迴
8-1 字串函數 • 電腦資料型態可分為數值(如Integer、Long),日期(date)、字串(String)、不定型(Variant)等。 • 專門處理字串資料的函數,稱為字串函數。 • 字串資料常見的應用,如文字旋轉、走馬燈效果、字串搜尋、取部份子字串(Mid、Right、Left)等。
8-1-1 ASC 函數 • 語法: ASC(“字串”) • 說明:傳回一個整數數值,為字串中第一個字母的字元碼。 • 實例: Print ASC(“A”) 65 Print ASC(“ABC”) 65 Print ASC(“a”) 97 Print ASC(“0”) 48
8-1-2 Chr 函數 • 語法: Chr(數值) • 說明:傳回指定ASCII碼所代表的字元。例如大寫英文字母A的ASCII碼為65,所以 Chr(65)傳回A。 • 實例: Print Chr(65) A Print Chr(97) a Print Chr(48) 0
8-1-3 String 字串函數 • 語法 String(n,”字元“ 或ASCII碼) • 說明: 1.n是代表一數值,重複輸出“字元”n次。 2.若“字元”為一字串,則只重覆字串的第一個字元。 3.若“字元”為一數字,則代表ASCII字元。 實例: Print String(6,”A“) AAAAAA Print String(6,65) AAAAAA
8-1-4 Len 字串長度函數 • 語法 : Len(”字串“) • 說明: 1.傳回“字串”的長度。 2.中文字雖然是佔2個byte,但其長度還是1。 實例: Print Len(“AAAA“) 4 Print Len(“中華民國”) 4
8-1-5 Left 左字串函數 • 語法: Left(“字串“,n) • 說明: 傳回“字串”最左邊的n個字元。 實例: Print Left(“ABCDEF”,2) AB Print Left(“中華民國”,2) 中華
8-1-6 Right 右字串函數 • 語法: Right(“字串“,n) • 說明: 傳回“字串”最右邊的n個字元。 實例: Print Right(“ABCDEF”,2) EF Print Right(“中華民國”,2) 民國
8-1-7 Mid 取子字串函數 • 語法: Mid(“字串“,m,n) • 說明: 從“字串”第m個字元開始,取n個字元。 • 若n省略,則從第m個字元取到“字串”結尾。 實例: Print Mid(“ABCDEF”,2,2) BC Print Mid(“中華民國”,2,2) 華民
8-1-8 Space 空格函數 • 語法: Space(數值) • 說明: 傳回指定數值的空格。 實例: Print “ABC”;Space(2);”abc” ABC abc Print Space(3)+“中華” 中華
8-1-9 Lcase 強制小寫函數 • 語法: Lcase(“字串“) • 說明: 不論字串內的字元為大寫或小寫,強制轉為小寫輸出。 • 實例: Print Lcase(“ABCabc”) abcabc
8-1-10 Ucase 強制大寫函數 • 語法: Ucase(“字串“) • 說明: 不論字串內的字元為大寫或小寫,強制轉為大寫輸出。 • 實例: Print Lcase(“ABCabc”) ABCABC
8-1-11 Ltrim 去左空白函數 • 語法: Ltrim(“字串“) • 說明: 字串左邊所有空白去掉。 • 實例: Print “AB”+Ltrim(“ CDEF”) ABCDEF
8-1-12 Rtrim 去右空白函數 • 語法: Rtrim(“字串“) • 說明: 字串右邊所有空白去掉。 • 實例: Print Rtrim(“AB ”)+”CDEF” ABCDEF Print Rtrim(“中華 ”)+”民國” 中華民國
8-1-13Trim 去掉前後空白函數 • 語法: Trim(“字串“) • 說明: 字串前後所有空白去掉。 • 實例: Print Trim(“ AB ”)+Trim(” CD ”) ABCD Print Trim(“ 中華 ”)+”民國” 中華民國
8-1-14 Str 數值轉字串函數 • 語法: Str(數值) • 說明: 將“數值”轉換為字串,一般方便與字串作為連結顯示。 • 實例: Print Str(123) “123” Print “學生成績:”+Str(90) 學生成績: 90
8-1-15 Val 數值函數 • 語法: Val(“字串”) • 說明: 1.將“字串”轉換為數值。 2.如字串非數字開頭,則傳回0。 • 實例: Print val(“123”) 123 Print val(“中華”) 0
8-1-16 Format 格式函數 • 語法: Format("運算式", "輸出格式") • 說明: 1.將運算式的結果,依輸出格式傳回。 2.格式有數值、日期、時間、字串,以及使用者自定日期/時間格式、字串格式。 • 實例: • Print Format("1230","currency") NT$1,230.00
8-1-16 Format 格式函數(續) • 數值範例: Formatl(1000, "standard") 1,000.00 Formatl(1234.661, "fixed") 1234.66 • 符號定義數值格式範例: Format(1234.5678,"####.##") 1234.57 Format(1234.5678,"####.##%")123456.78% • 日期及時間格式範例: Format(now, "m/d/yy") 2/6/03 Format(now, "yyyy年m月d日" )2003年2月6日 • 符號定義字串格式範例: Format("Happy", "<@@@@@@@" ) happy 強迫小寫 Format("Happy", ">@@@@@@@" ) HAPPY 強迫大寫
8-1-17 Tab 定格函數 • 語法: Tab(n) • 說明: 1.n為數值,在游標所在資料行的第n個位置(格)顯示。 2.n最小值為1,若n大於表單的顯示寬度時。則不顯示。 3.Tab函數通常會配合Print使用,用以指定資料行顯示的位置。 • 實例: Print Tab(10); "test" 空格10 test
8-2 數學函數 Abs 取絕對值函數 Fix 取最大整數值函數 Int 取整數函數 Sqr 開平方函數 Rnd 亂數函數 Sgn 正負號函數 Hex 16進位函數 Oct 8進位函數 Log 自然對數函數 Exp 指數函數
8-2-1 Abs 取絕對值函數 • 語法: Abs(數值) • 說明: 將數值取絕對值,如Abs(-5),則為+5。 • 實例: Print Abs(-2) 2 Print Abs(-2.2) 2.2 Print Abs(4.4) 4.4
8-2-2 Fix 取最大整數函數 • 語法: Fix(數值) • 說明: 取數值的最大整數值,小數點無條件捨去。 • 實例: Print Fix(-2.2) -2 Print Fix(2.2) 2 Print Fix(4) 4
8-2-3 Int 取整數函數 • 語法: Int(數值) • 說明: 1.傳回小於或等於數值的最大整數。 2.數值為正值,則Int及Fix函數傳回整數部份相同;當數值為負數時,Int函數傳回小於或等於該數之最大整數。 • 實例: Print Fix(-2.2) -2 Print int(-2.2) -3 Print int(2.2) 2
8-2-4 Sqr 開平方函數 • 語法: Sqr(數值) • 說明: 1.傳回數值的平方根。 2.數值必須為正值,若為負數會產生語法錯語。 • 實例: Print Sqr(4) 2 Print Sqr(-4) 錯誤
8-2-5 Rnd 亂數函數 • 語法: Rnd() • 說明: 1.傳回0到1之間的亂數,0<=Rnd()<1。 2.如要產生x到y之間的亂數,公式為Int((y-x+1)*Rnd)+x。 3.使用Randomize,可產生不同亂數表。 • 實例: Print Rnd() 0.612 0<= 數值 <1 Print Int(Rnd*5+1) 1<= 數值 <=5
8-2-6 Sgn 正負號函數 • 語法: Sgn(n) • 說明: 1.n為數值。 2.若n>0,則傳回1。 3.若n=0,則傳回0 。 4.若n<0,則傳回-1 。 • 實例: Print Sgn(0) 0 Print Sgn(2) 1 Print Sgn(-2) -1
8-2-7 Hex 16進位函數 • 語法: Hex(x) • 說明: 1.x為數值,傳回x所代表的16進位。 2.Hex(x)傳回Variant型態 • 實例: Print Hex(10) A Print Hex(17) 11
8-2-8 Oct 8進位函數 • 語法: Oct(x) • 說明: 1.x為數值,傳回x所代表的8進位。 2.Oct(x)傳回Variant型態 • 實例: Print Oct(12) 14 Print Oct(8) 10
8-2-9 Log 自然對數函數 • 語法: Log(x) • 說明: 1 Log(x) 是以e為底的對數函數值,一般稱為自然對數函數,e約等於2.718282。 2.x必須大於0。 • 實例: Print Log(1) 0 Print Log(2.718282) 1.00000006310639
8-2-10 Exp指數函數 • 語法:Exp(x) • 說明 : Exp(x)是以e為底的指數函數,用以計算ex之值。 • 實例: Print exp(1) -> 2.71828182845905 Print exp(2) -> 7.38905609893065
8-2-11 Sin 函數 • 語法:Sin(x) • 說明 : 1.Sin(x) x是為徑度量。 2.傳回x的正弦函數值,其值的範圍在-1到1之間 3.一個圓=360度=2pi徑度, 所以1徑度=360/2pi • 實例: pi=3.1415926 print sin(30/180*pi) -> 0.49999999226498
8-2-12 Cos 函數 • 語法:Cos(x) • 說明 : 1.Cos(x) x是為徑度量。 2.傳回x的餘弦函數,其值的範圍在-1到1之間 • 實例: pi=3.1415926 print cos(30/180*pi) -> 0.866025408250255
8-2-13 Tan 函數 • 語法:Tan(x) • 說明 : 1.Tan(x) x是為徑度量。 2.傳回x的正切函數。 • 實例: pi=3.1415926 print tan(30/180*pi) ->0.577350257280783
8-3 時間函數 本節要介紹VB 時間函數如下: • Now • Date • Time • Year • Month • Day • Hour • Minute • Second
8-3-1 Now 函數 • 語法:Now • 說明 : 傳回系統現在的日期和時間。 • 實例: Print now 2003/01/31 7:12:04
8-3-2 Date 函數 • 語法:Date • 說明 : 傳回系統現在的日期。 • 實例: Print Date 2003/01/31
8-3-3 Time 函數 • 語法:Date • 說明 : 傳回系統現在的時間。 • 實例: Print Date 7:15:09
8-3-4 Year 函數 • 語法:Year ("日期") • 說明 : 傳回系統日期的年份。 • 實例: Print now 2003/01/31 7:17:06 Print year(now) 2003
8-3-5 Month 函數 • 語法:Month ("日期") • 說明 : 傳回系統日期的月份。 • 實例: Print now 2003/01/31 7:17:06 Print Month(now) 1 Print Month("1/29/2003") 1
8-3-6 Day 函數 • 語法:Day("日期") • 說明 : 傳回系統日期的日數。 • 實例: Print now 2003/01/31 7:17:06 Print Day(now) 31 Print Day("1/29/2003") 31
8-3-7 WeekDay 函數 • 語法:WeekDay("日期") • 說明 : 1.傳回系統現在日期的星期幾。 2.星期天,傳回1,星期一,傳回2,依此類推,星期六,傳回7。 • 實例: Print now 2003/01/31 7:17:06 Print Weekday(now) 6 <=星期五
8-3-8 Hour 函數 • 語法:Hour("時間") • 說明 : 傳回系統現在時間,24小時制,值從0到23,表示一天之中的某個時段。 • 實例: Print now 2003/01/31 7:17:06 Print Hour(now) 7
8-3-9 Minute 函數 • 語法:Minute("時間") • 說明 : 傳回系統現在時間之分鐘,值從0到59,表示一小時中的某個分鐘。 • 實例: Print now 2003/01/31 7:17:06 Print Minute(now) 6
8-3-10 Second 函數 • 語法:Second("時間") • 說明 : 傳回系統現在時間之秒數,值從0到59,表示一分鐘中的某個秒數。 • 實例: Print now 2003/01/31 7:17:06 Print Second(now) 56
8-4 比較函數 本節要介紹VB 比較函數如下: • IIF 判斷函數 • Choose 選擇函數 • InStr 字串比對
8-4-1 IIF 函數 • 語法:IIf(運算式或判斷式,真區,偽區) • 說明 : 1.若運算式為真,則執行真區,否則執行偽,並傳回結果。 2.真區及偽區可為運算式、字串或數值。 3.判斷式為真,電腦顯示True,反之為False • 實例: a=10 : b=20 Print a>b => False Print iif(a>b,”真“,”假“) => 假
8-4-2 Choose 函數 • 語法:Choose(n,運算式1[,運算式2]…) • 說明 : 1.若運算式個數,從1至最多13個。 2.若n<1或n大於運算式個數,則傳回nul(空)。 • 實例: Print choose(3,”一“,”二“,”三“,”四“) 三
8-4-3 InStr 函數 • 語法:InStr(n,字串1,字串2[,比較模式]) • 說明 : 1.於字串1中從第n個字元開始與字串2逐一比對,如果字串2包含於字串1,則傳回字串2於字串1的起始位置。 2.比較模式可為0或1,若為1則大小寫字母視為相同,若為0則大小寫不同,若省略則VB預設為0l。 • 實例: Print Instr(1,”abcdefg”,”cde“) => 3 Print Instr(1,”abcdefg”,”Ade“) => 0 Print Instr(1,”海青工商”,”工“) => 3