【文章內(nèi)容簡(jiǎn)介】
J = 1 To N S = S + J Next J End Sub 第九章 過 程 27 Private Sub Command1_Click() Dim K As Integer, S1 As Integer, I As Integer K = Val() For I = 1 To K 39。 調(diào)用過程 A1求 1+2+…+ I, 和值返回到 S1中 Call A1(I, S1) Sum = Sum + S1 Next I = Sum End Sub 第九章 過 程 28 【例 912】編寫一個(gè) Sub過程,實(shí)現(xiàn)將三個(gè)數(shù)由大到小排序。程序運(yùn)行時(shí)單擊“排序前”按鈕產(chǎn)生 [0,99]之間的三個(gè)隨機(jī)整數(shù),并將文本框 Text2的內(nèi)容清空,單擊“排序后”按鈕,調(diào)用該 Sub過程完成排序。 分析 : 在 Sub過程中引入三個(gè)參數(shù) A、 B、 C用于接收數(shù)據(jù),在過程中對(duì)它們進(jìn)行排序,執(zhí)行完過程后還通過 A、 B、 C返回排序后的結(jié)果。 Text1 Text2 第九章 過 程 29 Dim X As Integer, Y As Integer, Z As Integer 39。 定義排序過程 Sort3 Public Sub Sort3(A As Integer, B As Integer, C As Integer) Dim T As Integer If A B Then T = A: A = B: B = T If A C Then T = A: A = C: C = T If B C Then T = B: B = C: C = T End Sub 39。 單擊 Command1按鈕產(chǎn)生并顯示三個(gè)隨機(jī)數(shù) Private Sub Command1_Click() Randomize X= Int(100 * Rnd) Y = Int(100 * Rnd) Z = Int(100 * Rnd) 第九章 過 程 30 = Str(X) amp。 Str(Y) amp。 Str(Z) = End Sub 39。 單擊 Command2按鈕調(diào)用 Sort3過程進(jìn)行排序, 39。 并顯示排序結(jié)果 Private Sub Command2_Click() Sort3 X, Y, Z = Str(X) amp。 Str(Y) amp。 Str(Z) End Sub 第九章 過 程 31 過程的嵌套 在一個(gè)過程執(zhí)行期間又調(diào)用另一個(gè)過程,稱為過程的嵌套調(diào)用。 調(diào)用過程 子過程 S1 子過程 S2 ┇ 調(diào)用 S1 ┇ ┇ 調(diào)用 S2 ┇ ┇ 第九章 過 程 32 【 例 913】 用 Function過程求 1!+2!+3!+… +20! Private Sub Command1_Click() Dim n As Integer n = Val(InputBox(n=)) Print Sigma(n) 39。 調(diào)用 Sigma過程 End Sub Function Sigma(n As Integer) As Double Dim i As Integer, sum As Double sum = 0 For i = 1 To n sum = sum + Fact(i) 39。 調(diào)用 Fact過程 Next i Sigma = sum End Function 第九章 過 程 33 Function Fact(n As Integer) As Double Dim i As Integer, f As Double f = 1 For i = 1 To n f = f * i Next i Fact = f End Function 第九章 過 程 34 參數(shù)的傳遞 調(diào)用過程與被調(diào)用過程之間的一種數(shù)據(jù)通訊方法。 數(shù)據(jù)的傳遞可以是單向的,也可以是雙向的。 形參和實(shí)參 形參 : 出現(xiàn)在 Sub或 Function語(yǔ)句中。 實(shí)參 : 出現(xiàn)在調(diào)用程序中。 例如,定義如下一個(gè)過程 : Sub SubTest(n As Integer,Sum As Single) … End Sub 調(diào)用語(yǔ)句 : Call SubTest( a , s) 形參 實(shí)參 第九章 過 程 35 說(shuō)明 : ? 在傳遞參數(shù)時(shí),形參表與實(shí)參表中對(duì)應(yīng)參數(shù)個(gè)數(shù)、類型、位置順序必須一一對(duì)應(yīng)。 ? 形參表中的參數(shù)可以是 : 除固定長(zhǎng)度字符串之外的合法變量名、數(shù)組名 () ? 實(shí)參表中的參數(shù)可以是 : 常量、變量、表達(dá)式、 數(shù)組名 () ? 形參與實(shí)參的結(jié)合有兩種方式 : 按值傳遞和按地址傳遞。 第九章 過 程 36 按值傳遞和按地址傳遞 1. 按值傳遞 實(shí)參把其值傳遞給形參而不傳遞實(shí)參的地址。 數(shù)據(jù)的傳遞是單向的。 (1) 當(dāng)實(shí)參為常量或表達(dá)式時(shí),數(shù)據(jù)傳遞總是單向的。 例如 : Call SubTest(10, 1+2) Sub SubTest( n As Integer,Sum As Single) 第九章 過 程 37 (2) 實(shí)參是變量時(shí) , 要實(shí)現(xiàn)按值傳遞需要在形參之前通過關(guān)鍵字 ByVal來(lái)實(shí)現(xiàn)。 例如 : Sub SS(ByVal X, ByVal Y, ByVal Z) X = X + 1: Y = Y + 1: Z = Z + 1 End Sub Private Sub Command1_Click() A = 1: B = 2: C = 3 Call SS(A, B, C) Print A, B, C End Sub 運(yùn)行時(shí),單擊命令按鈕在窗體上打印 : 1 2 3 第九章 過 程 38 2. 按地址傳遞