實驗七? 過程
一、實驗目的
(1)掌握子過程的定義和調用方法。
(2)分清子過程和函數過程的異同。
(3)掌握遞歸概念和使用方法。
(4)掌握變量、函數和過程的作用域。
二、相關知識
(1)?子過程是在響應事件時執行的代碼塊。將模塊中的代碼分成子過程后,在應用程序中查找和修改代碼會變得更容易。子過程的語法是:
[Private|Public][Static]Sub 子過程名(形式參數)
語句
End? Sub
??? 每次調用過程都會執行Sub和End Sub之間的語句。可以將子過程放入標準模塊、類模塊和窗體模塊中。按照缺省規定,所有模塊中的子過程為Public(公用的),這意味著在應用程序中可隨處調用它們。在Visual Basic中子過程分為通用過程和事件過程兩類。
??? ①通用過程
??? 如果幾個不同的事件過程要執行同樣的動作。應將這組公共語句放入一分離開的過程(通用過程)中,該通用過程告訴應用程序如何完成一項指定的任務。一旦確定了通用過程,就必須由事件過程來調用它。
??? ②事件過程
??? 當Visual Basic中的對象對一個事件的發生作出認定時,便自動用相應的事件名字調用該事件的過程。因為名字在對象和代碼之間建立了聯系,所以說事件過程是附加在窗體和控件上的。
(2)子過程的定義可以在“代碼”窗口輸入過程頭并按下回車鍵,系統自動添加End Sub語句;也可以通過“添加過程”對話框完成。
(3)過程的調用與過程的類型、位置以及在應用程序中的使用方式有關。調用Sub過程有兩種方法:用Call語句調用或直接調用。當使用Call語句時,參數必須在括號內。若直接調用,則也必須省略參數兩邊的括號。函數過程的調用與VB內部函數的調用方法相同,可以在表達式中直接使用;也可以像調用Sub過程一樣,但此時VB將放棄函數返回值。
(4)向過程傳遞參數有按數值傳遞和按地址傳遞兩種方法。按地址傳遞參數使過程用變量的內存地址去訪問實際變量的內容,這是VB默認的參數傳遞方式。按值(ByVal)傳遞參數比按地址(ByRef)快,如果過程中不需改變參數的值,盡量采用按值(ByVal)來傳遞。一般來說,過程調用中的參數個數應等于過程說明的參數個數,但也可以是不確定的。VB允許過程接受可選參數和不定量參數。
三、實驗舉例
(實例1)靜態變量與一般變量對比。
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
觀察輸出結果。
(實例2)通過點擊窗體事件,來循環改變窗體標題名字練習。
Private? Sub? Form1_CliCk()
Static? index? As? integer
index? =? index? +? l
Select? case? index
Case? l
???????? Form1.caption=? ”單項測試題“
Case? 2
???????? Forml.caption? =? ”Windows操作題”
Case? 3
???????? Forml.caption? = “Word操作題”
Case? 4
???????? Forml.Caption = “Excel操作題”
Case? 5
???????? Form1.Caption=? ”網絡操作題”
Case? Else
Index = 0
????? End Select
End Sub
觀察結果。
一、實驗目的
(1)掌握子過程的定義和調用方法。
(2)分清子過程和函數過程的異同。
(3)掌握遞歸概念和使用方法。
(4)掌握變量、函數和過程的作用域。
二、相關知識
(1)?子過程是在響應事件時執行的代碼塊。將模塊中的代碼分成子過程后,在應用程序中查找和修改代碼會變得更容易。子過程的語法是:
[Private|Public][Static]Sub 子過程名(形式參數)
語句
End? Sub
??? 每次調用過程都會執行Sub和End Sub之間的語句。可以將子過程放入標準模塊、類模塊和窗體模塊中。按照缺省規定,所有模塊中的子過程為Public(公用的),這意味著在應用程序中可隨處調用它們。在Visual Basic中子過程分為通用過程和事件過程兩類。
??? ①通用過程
??? 如果幾個不同的事件過程要執行同樣的動作。應將這組公共語句放入一分離開的過程(通用過程)中,該通用過程告訴應用程序如何完成一項指定的任務。一旦確定了通用過程,就必須由事件過程來調用它。
??? ②事件過程
??? 當Visual Basic中的對象對一個事件的發生作出認定時,便自動用相應的事件名字調用該事件的過程。因為名字在對象和代碼之間建立了聯系,所以說事件過程是附加在窗體和控件上的。
(2)子過程的定義可以在“代碼”窗口輸入過程頭并按下回車鍵,系統自動添加End Sub語句;也可以通過“添加過程”對話框完成。
(3)過程的調用與過程的類型、位置以及在應用程序中的使用方式有關。調用Sub過程有兩種方法:用Call語句調用或直接調用。當使用Call語句時,參數必須在括號內。若直接調用,則也必須省略參數兩邊的括號。函數過程的調用與VB內部函數的調用方法相同,可以在表達式中直接使用;也可以像調用Sub過程一樣,但此時VB將放棄函數返回值。
(4)向過程傳遞參數有按數值傳遞和按地址傳遞兩種方法。按地址傳遞參數使過程用變量的內存地址去訪問實際變量的內容,這是VB默認的參數傳遞方式。按值(ByVal)傳遞參數比按地址(ByRef)快,如果過程中不需改變參數的值,盡量采用按值(ByVal)來傳遞。一般來說,過程調用中的參數個數應等于過程說明的參數個數,但也可以是不確定的。VB允許過程接受可選參數和不定量參數。
三、實驗舉例
(實例1)靜態變量與一般變量對比。
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
觀察輸出結果。
(實例2)通過點擊窗體事件,來循環改變窗體標題名字練習。
Private? Sub? Form1_CliCk()
Static? index? As? integer
index? =? index? +? l
Select? case? index
Case? l
???????? Form1.caption=? ”單項測試題“
Case? 2
???????? Forml.caption? =? ”Windows操作題”
Case? 3
???????? Forml.caption? = “Word操作題”
Case? 4
???????? Forml.Caption = “Excel操作題”
Case? 5
???????? Form1.Caption=? ”網絡操作題”
Case? Else
Index = 0
????? End Select
End Sub
觀察結果。
評論
查看更多