VB考试教程:过程之Function过程
3.功能过程
VB包含内置或内部函数,也可以用函数语句编写自己的函数过程。定义函数后,可以像调用任何VB内部函数一样使用它,即可以在任何表达式、语句或函数中引用它。
过程是标准模块中Function语句和End Function语句之间的一系列语句。函数中的这些语句做一些有意义的工作,通常是处理文本、输入或计算值。
该函数可以通过将其名称与任何必需的参数一起放在程序语句中来调用。换句话说,使用函数的过程和使用内置函数(比如Time,Int或者Str)的过程是完全一样的。
每个函数执行一项服务,例如计算和返回值。
默认情况下,标准模块中声明的函数是公共函数,它们可以在任何事件或过程中使用。
(1)1)功能过程的定义
函数过程的定义格式:
[public | private | friend | static]函数过程名[(参数列表)][作为数据类型]
[节目片段]
[过程名称=表达式]
[退出功能]
[节目片段]
[过程名称=表达式]
结束功能
描述:
1)函数进程以Function开始,以End Function结束,用一个语句块描述进程的操作,即“进程体”或“函数体”。格式中的“过程名”、“参数表”、Public、Private、Friend、Static、Exit函数的含义与Sub过程相同。As数据类型是函数过程返回值的数据类型;如果省略,则为变体。
比如知道直角三角形两条直角边的值,计算斜边,就可以定义一个函数函数。
函数斜边(A为整数,B为整数)为字符串
hypotenuse=sqr(A^2+B^2)
结束功能
另一个例子:
函数BinarySearch(Lower,Upper作为整数)作为布尔值
…
if lower = upper then
二分搜索法= true
exit函数
else
二分搜索法= false ' procedure name = expression
end if
…
结束功能
2)调用Sub过程相当于执行一条语句而不返回值;调用Function过程是为了返回值,因此它可以像内部函数一样用在表达式中。
在VB中调用函数过程的方法和调用任何内部函数的方法是一样的,比如调用上面的“斜边”函数:
label 1 . caption =斜边(Cint(text1.text),cint(text2.text))
strX =斜边(宽度,高度)
函数总是用函数的名称向调用过程返回值。因此,函数中的最后一条语句往往是将函数的最终计算结果放入“过程名”中的赋值语句。例如,下面的函数过程total1用于计算项目,然后将结果分配给total1。
功能合计1(成本)
t1 =成本*0.05
t2 =成本*0.015
“1 = t1+T2”将结果分配给函数total1。
结束功能
函数过程返回的值放在上述格式的“表达式”中,其值赋给“过程名=表达式”。如果Function过程中省略了“过程名=表达式”,则过程返回默认值:数值函数过程返回值0;string过程返回空字符串;variat函数返回空值。如果在返回对象引用的函数过程中没有将对象引用赋值给name(通过set ),则该函数不返回任何内容。通常,为了使一个函数过程能够完成指定的操作,通常需要给过程体中的“过程名”赋值。
3)如前所述,流程不能嵌套。因此,通用过程(包括Sub过程和Function过程)不能在事件过程中定义,通用过程只能在事件过程中调用。
(2)建立功能流程
上面提到的三种建立子程序的方法也可以用来建立函数程序,但是当使用第一种方法时,在对话框的“类型”栏中选择“函数”。
(3)调用函数过程。
比如写一个求公约数(GCD)的函数程序。
该过程如下:
Function gcd(ByVal x As Integer,ByVal y As Integer)
Do While y 0
reminder = x Mod y
x = y
y = reminder
Loop
gcd = x
End Function
求公约数的方法:
两个数A和B,如果B能把A整除,则是这两个数的公约数(例如6和3的公约数是3),否则:
GCD (a,b) = GCD (b,a mod b)
例如:GCD
下面是调用这个过程的方法。
函数的调用过程比较简单,可以像使用VB内部函数一样调用。因为Function过程返回值,所以可以看作是一个函数,和内部函数没什么区别(比如Sqr,Str,Chr等。),只不过内部函数是语言系统提供的,而函数过程是用户自己定义的。
0条评论