實(shí)驗(yàn)七? 過程
一、實(shí)驗(yàn)?zāi)康?br>(1)掌握子過程的定義和調(diào)用方法。
(2)分清子過程和函數(shù)過程的異同。
(3)掌握遞歸概念和使用方法。
(4)掌握變量、函數(shù)和過程的作用域。
二、相關(guān)知識
(1)?子過程是在響應(yīng)事件時(shí)執(zhí)行的代碼塊。將模塊中的代碼分成子過程后,在應(yīng)用程序中查找和修改代碼會變得更容易。子過程的語法是:
[Private|Public][Static]Sub 子過程名(形式參數(shù))
語句
End? Sub
??? 每次調(diào)用過程都會執(zhí)行Sub和End Sub之間的語句??梢詫⒆舆^程放入標(biāo)準(zhǔn)模塊、類模塊和窗體模塊中。按照缺省規(guī)定,所有模塊中的子過程為Public(公用的),這意味著在應(yīng)用程序中可隨處調(diào)用它們。在Visual Basic中子過程分為通用過程和事件過程兩類。
??? ①通用過程
??? 如果幾個(gè)不同的事件過程要執(zhí)行同樣的動作。應(yīng)將這組公共語句放入一分離開的過程(通用過程)中,該通用過程告訴應(yīng)用程序如何完成一項(xiàng)指定的任務(wù)。一旦確定了通用過程,就必須由事件過程來調(diào)用它。
??? ②事件過程
??? 當(dāng)Visual Basic中的對象對一個(gè)事件的發(fā)生作出認(rèn)定時(shí),便自動用相應(yīng)的事件名字調(diào)用該事件的過程。因?yàn)槊衷趯ο蠛痛a之間建立了聯(lián)系,所以說事件過程是附加在窗體和控件上的。
(2)子過程的定義可以在“代碼”窗口輸入過程頭并按下回車鍵,系統(tǒng)自動添加End Sub語句;也可以通過“添加過程”對話框完成。
(3)過程的調(diào)用與過程的類型、位置以及在應(yīng)用程序中的使用方式有關(guān)。調(diào)用Sub過程有兩種方法:用Call語句調(diào)用或直接調(diào)用。當(dāng)使用Call語句時(shí),參數(shù)必須在括號內(nèi)。若直接調(diào)用,則也必須省略參數(shù)兩邊的括號。函數(shù)過程的調(diào)用與VB內(nèi)部函數(shù)的調(diào)用方法相同,可以在表達(dá)式中直接使用;也可以像調(diào)用Sub過程一樣,但此時(shí)VB將放棄函數(shù)返回值。
(4)向過程傳遞參數(shù)有按數(shù)值傳遞和按地址傳遞兩種方法。按地址傳遞參數(shù)使過程用變量的內(nèi)存地址去訪問實(shí)際變量的內(nèi)容,這是VB默認(rèn)的參數(shù)傳遞方式。按值(ByVal)傳遞參數(shù)比按地址(ByRef)快,如果過程中不需改變參數(shù)的值,盡量采用按值(ByVal)來傳遞。一般來說,過程調(diào)用中的參數(shù)個(gè)數(shù)應(yīng)等于過程說明的參數(shù)個(gè)數(shù),但也可以是不確定的。VB允許過程接受可選參數(shù)和不定量參數(shù)。
三、實(shí)驗(yàn)舉例
(實(shí)例1)靜態(tài)變量與一般變量對比。
Private Sub Command1_click()
????? Dim? i? As? integer
Print? ”a”,”b”
For? I=1 to 10
???? Call f()
Next i
End? Sub
Sub f()
??? Static a?? as? integer
Dim? b As? integer
a? =? a? + 1
b? =? b? + 1
Print? a,b
End Sub
觀察輸出結(jié)果。
(實(shí)例2)通過點(diǎn)擊窗體事件,來循環(huán)改變窗體標(biāo)題名字練習(xí)。
Private? Sub? Form1_CliCk()
Static? index? As? integer
index? =? index? +? l
Select? case? index
Case? l
???????? Form1.caption=? ”單項(xiàng)測試題“
Case? 2
???????? Forml.caption? =? ”Windows操作題”
Case? 3
???????? Forml.caption? = “Word操作題”
Case? 4
???????? Forml.Caption = “Excel操作題”
Case? 5
???????? Form1.Caption=? ”網(wǎng)絡(luò)操作題”
Case? Else
Index = 0
????? End Select
End Sub
觀察結(jié)果。
一、實(shí)驗(yàn)?zāi)康?br>(1)掌握子過程的定義和調(diào)用方法。
(2)分清子過程和函數(shù)過程的異同。
(3)掌握遞歸概念和使用方法。
(4)掌握變量、函數(shù)和過程的作用域。
二、相關(guān)知識
(1)?子過程是在響應(yīng)事件時(shí)執(zhí)行的代碼塊。將模塊中的代碼分成子過程后,在應(yīng)用程序中查找和修改代碼會變得更容易。子過程的語法是:
[Private|Public][Static]Sub 子過程名(形式參數(shù))
語句
End? Sub
??? 每次調(diào)用過程都會執(zhí)行Sub和End Sub之間的語句??梢詫⒆舆^程放入標(biāo)準(zhǔn)模塊、類模塊和窗體模塊中。按照缺省規(guī)定,所有模塊中的子過程為Public(公用的),這意味著在應(yīng)用程序中可隨處調(diào)用它們。在Visual Basic中子過程分為通用過程和事件過程兩類。
??? ①通用過程
??? 如果幾個(gè)不同的事件過程要執(zhí)行同樣的動作。應(yīng)將這組公共語句放入一分離開的過程(通用過程)中,該通用過程告訴應(yīng)用程序如何完成一項(xiàng)指定的任務(wù)。一旦確定了通用過程,就必須由事件過程來調(diào)用它。
??? ②事件過程
??? 當(dāng)Visual Basic中的對象對一個(gè)事件的發(fā)生作出認(rèn)定時(shí),便自動用相應(yīng)的事件名字調(diào)用該事件的過程。因?yàn)槊衷趯ο蠛痛a之間建立了聯(lián)系,所以說事件過程是附加在窗體和控件上的。
(2)子過程的定義可以在“代碼”窗口輸入過程頭并按下回車鍵,系統(tǒng)自動添加End Sub語句;也可以通過“添加過程”對話框完成。
(3)過程的調(diào)用與過程的類型、位置以及在應(yīng)用程序中的使用方式有關(guān)。調(diào)用Sub過程有兩種方法:用Call語句調(diào)用或直接調(diào)用。當(dāng)使用Call語句時(shí),參數(shù)必須在括號內(nèi)。若直接調(diào)用,則也必須省略參數(shù)兩邊的括號。函數(shù)過程的調(diào)用與VB內(nèi)部函數(shù)的調(diào)用方法相同,可以在表達(dá)式中直接使用;也可以像調(diào)用Sub過程一樣,但此時(shí)VB將放棄函數(shù)返回值。
(4)向過程傳遞參數(shù)有按數(shù)值傳遞和按地址傳遞兩種方法。按地址傳遞參數(shù)使過程用變量的內(nèi)存地址去訪問實(shí)際變量的內(nèi)容,這是VB默認(rèn)的參數(shù)傳遞方式。按值(ByVal)傳遞參數(shù)比按地址(ByRef)快,如果過程中不需改變參數(shù)的值,盡量采用按值(ByVal)來傳遞。一般來說,過程調(diào)用中的參數(shù)個(gè)數(shù)應(yīng)等于過程說明的參數(shù)個(gè)數(shù),但也可以是不確定的。VB允許過程接受可選參數(shù)和不定量參數(shù)。
三、實(shí)驗(yàn)舉例
(實(shí)例1)靜態(tài)變量與一般變量對比。
Private Sub Command1_click()
????? Dim? i? As? integer
Print? ”a”,”b”
For? I=1 to 10
???? Call f()
Next i
End? Sub
Sub f()
??? Static a?? as? integer
Dim? b As? integer
a? =? a? + 1
b? =? b? + 1
Print? a,b
End Sub
觀察輸出結(jié)果。
(實(shí)例2)通過點(diǎn)擊窗體事件,來循環(huán)改變窗體標(biāo)題名字練習(xí)。
Private? Sub? Form1_CliCk()
Static? index? As? integer
index? =? index? +? l
Select? case? index
Case? l
???????? Form1.caption=? ”單項(xiàng)測試題“
Case? 2
???????? Forml.caption? =? ”Windows操作題”
Case? 3
???????? Forml.caption? = “Word操作題”
Case? 4
???????? Forml.Caption = “Excel操作題”
Case? 5
???????? Form1.Caption=? ”網(wǎng)絡(luò)操作題”
Case? Else
Index = 0
????? End Select
End Sub
觀察結(jié)果。
電子發(fā)燒友App









評論