【正文】
用和參與運(yùn)算 定義 Function過(guò)程 定義 Function過(guò)程說(shuō)明: 1) Function過(guò)程以 Function語(yǔ)句開頭,以 End Function結(jié)束;中間代碼部分為函數(shù)體; 2)函數(shù)名有返回值,其值類型由 As 數(shù)據(jù)類型指定; 3) 函數(shù)體內(nèi)一般都會(huì)至少為函數(shù)名賦值一次 ;如果不賦值, 函數(shù)返回值默認(rèn)為 0或空 ; 4)函數(shù)中途可以利用 Exit Function退出。 Function函數(shù)返回值的方式 與 Sub過(guò)程不同的是, Function函數(shù) 通過(guò)函數(shù)名 返回一個(gè)值,這個(gè)值是在過(guò)程的語(yǔ)句中賦給函數(shù)名的。 Function mySquare(intA,intB) ‘intA和 intB是形式參數(shù) Dim lngSum lngSum=intA^2+intB^2 mySquare=lngSum End Function 函數(shù)可以作為表達(dá)式來(lái)調(diào)用。格式為: 函數(shù)名 [(實(shí)際參數(shù)列表) ] 如果函數(shù)要直接作為語(yǔ)句來(lái)使用,則必須按照子過(guò)程的方式來(lái)調(diào)用,當(dāng)然此時(shí)也就不能利用函數(shù)的返回值了。 例如下列三條語(yǔ)句都可以調(diào)用前面定義的函數(shù)Fun1: Print fun1(2, 3) Call fun1(2, 3) fun1 2, 3 函數(shù)的調(diào)用 定義 Function過(guò)程 例如,求 n! Private Function fac%(n As Integer) If n0 Then fac = 1:Exit Function Else fac = 1 For i = 1 To n fac = fac*i Next i End If End Function 定義 Function過(guò)程 例如,求 m, n的最大公約數(shù) Private Function gcd%(ByVal m%,ByVal n%) Dim r%,t% If mn Then Call Change(m, n) r = m Mod n Do While r0 m = n n = r r = m Mod n Loop gcd = n End Function Private Sub Change(x1%, x2%) Dim Temp As Integer Temp = x1 x1 = x2 x2 = Temp End Sub 過(guò)程和函數(shù)需注意的幾點(diǎn) ?過(guò)程的定義不可以嵌套 ?函數(shù)和過(guò)程必須先定義才能使用 ?使用自定義過(guò)程的兩個(gè)步驟: 定義過(guò)程 和 調(diào)用過(guò)程 函數(shù)和過(guò)程的相互轉(zhuǎn)換 寫函數(shù)首先要確定函數(shù)的輸入和輸出 Private Sub Command1_Click() Print sum(5, 3) End Sub Function sum(x, y) s = x + y sum = s End Function 定義函數(shù) 調(diào)用函數(shù) 函數(shù)和過(guò)程的相互轉(zhuǎn)換 Private Sub Command1_Click() Call sum(5, 3, s) Print s End Sub Sub sum(x, y, s) s = x + y End Sub 定義過(guò)程 調(diào)用過(guò)程 例題 編寫一個(gè)求任意三角形面積的函數(shù) Private Function Area!(a!, b!, c!) Dim t! t = (a+b+c)/2 Area = Sqr(t*(ta)*(tb)*(tc)) End Function 例題 編寫一個(gè)求任意三角形面積的子過(guò)程 Private Sub Area (a!, b!, c!, s!) Dim z! z = (a+b+c)/2 s = Sqr(z*(za)*(zb)*(zc)) End Sub 過(guò)程實(shí)例 定義 Sub過(guò)程判斷手機(jī)號(hào)碼格式是否正確并調(diào)用它 Sub IsTel (tel) if len(tel)=11 and IsNumeric(tel) then Print 手機(jī)號(hào)碼格式正確 else Print 格式不正確,請(qǐng)重新輸入 end if end Sub Call IsTel(13388888888) 39。調(diào)用 Sub過(guò)程 函數(shù)的實(shí)例 限制標(biāo)題顯示的內(nèi)容長(zhǎng)度的函數(shù) ,如果輸入的字符串( tit)長(zhǎng)度大于指定的長(zhǎng)度( n),則返回按指定的長(zhǎng)度截取前面部分并加省略號(hào)的字符串,如果長(zhǎng)度小于等于指定長(zhǎng)度,則返回原字符串。 function title(tit,n) if len(tit)n then title=left(tit,n)amp?!? 39。返回函數(shù)值 else title=tit 39。返回函數(shù)值 end if end function 參數(shù)傳遞 形參與實(shí)參