vb程序设计——进程与函数.ppt
文本预览下载声明
VB程序设计;6.1 子过程的定义与调用
6.2 函数的定义与调用
6.3 子过程与函数的参数传递
6.4 变量、过程的作用域
6.5 递归
6.6 常用算法举例;本节课要求;引入过程和函数的目的;? VB中的过程有两种:
(1) 系统提供的内部函数过程和事件过程。
(2) 用户根据应用的需要而设计的过程。
在VB中根据应用的要求可分为几种类型的自定义过程:
(1) 以“Sub”保留字开始的子过程。
(2) 以“Function”保留字开始的函数过程。
(3) 以“Property”保留字开始的属性过程。
(4) 以“Event”保留字开始的事件过程。
本书仅讨论以“Sub”开头的子过程和以“Function”开头的函数过程。 ;过程和函数;函数Function和过程Sub的区别;打爆米花;;建立函数的一般过程;6.1.1 子过程的定义;子过程的定义;6.1.2 子过程的调用;6.1.2 通用子过程;事件过程;Sub过程(子程序);Function函数;6.2 定义Function过程;Function函数返回值的方式;;6.2 定义Function过程;6.2 定义Function过程;过程和函数需注意的几点;函数和过程的相互转换;函数和过程的相互转换;例题;例题;过程实例;函数的实例;5.7 参数传递;5.7.1 形参与实参;6.4.1 形参与实参;5.7.2 参数传递方式;6.4.2~3 参数传递方式;6.4.2~3 参数传递方式;6.4.2~3 参数传递方式;;;6.3 子过程与函数的参数传递;2.可选参数
在形式参数前加上关键字Optional可以指定该形式参数为可选参数。可选参数在过程调用时可以不提供与可选参数对应的实际参数。可选参数可以指定默认的缺省值。
3.命名参数
实际参数使用“形式参数名:= 实际参数”的格式即为命名参数。命名参数出现的位置可以与定义时的顺序无关。但需注意非命名参数仍需按定义时的位置出现,所以非命名参数在定义时应排在第一个命名参数之前。
4.数组作为参数和返回值
数组可以作为实际参数传递到过程中。此时形式参数应为Variant类型或与实际参数类型完全相同的数组类型。作为形式参数的数组应为可变数组,用数组名跟空的圆括号表示。函数的返回值也可以是数组,此时类型说明为Variant类型或“As 类型()”。;【例6-7】下列程序运行后,单击窗体时显示“9”、 “8”、“7”。
Option Explicit
Function f(a() As Long) As Long()
f = a
End Function
Sub Form_Click()
Dim b() As Long
Dim c(2) As Long
c(0) = 9
c(1) = 8
c(2) = 7
b = f(c)
print b(0)
b()=f(c())
print b(1)
Print f(c)(2) ’函数表达式直接带数组下标代表数组元素
End Sub;5.可变个数参数
将最后一个形式参数声明为Variant类型的数组,同时在前面加上ParamArray关键字,就变成可变个数的参数;调用过程时可输入任意个数的参数,输入的参数转变为数组的元素;也可以省略该参数。ParamArray 关键字不能与 ByVal或ByRef一起使用,也不能在参数列表中出现Optional。
【例6-8】下列程序运行后,每次单击窗体就会显示“6”。
Option Explicit
Function f(a, ParamArray b())
f = a + b(0) + b(1)
End Function
Sub Form_Click()
Print f(1, 2, 3)
End Sub
注意:在用可变个数参数时,实参个数不能少于使用的形参个数。;6.4 变量、过程的作用域 ;Private Sub Form_Click()
Print 第1次调用过程b
b
Print
Print 第2次调用过程b
b
Print
显示全部