实验七 过程
一、实验目的
(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
观察结果。
评论
查看更多