第七章  过程
双击滚屏  关闭窗口

 

7.2 Function 过程

  7.2.1 Function 过程的定义
  7.2.2 Function 过程的调用

VB 允许使用 Function 语句编写用户自定义的 Function (函数)过程。 Function 过程与内部函数一样,可以在程序或函数嵌套中使用。

7.2.1 Function 过程的定义

Function 过程的定义:

[Private|Public][Static] Function < 函数名 >([< 形参表 >])[As < 类型 >]

[< 语句组 >]

[< 函数名 >= < 表达式 >]

[Exit Function ]

[< 语句组 >]

[< 函数名 >= < 表达式 >]

End Function

说明 :

◇省略 “< 函数名 >= < 表达式 >” ,则函数返回一个默认值,数值函数返回 0 ,字符函数返回空字符串。

◇建立 Function 过程的方法与建立 Sub 过程的方法一样。

例 3 :计算任意整数 n 的阶乘的 Function 过程 fact :

Function fact (x As Integer) As Long

Dim i As Integer, p As Long

p = 1

For i = 1 To x

p = p * i

Next I

fact=p

End Function

例 4 :计算圆的面积的 Function 过程 cir :

Function cir (r As Single) As Long

Const pi AS Single=3.1415926

Cir=pi*r^2

End Function

 

7.2.2 Function 过程的调用

Function 过程的调用 , 可以像使用 VB 内部函数一样来调用 Function 过程,即在表达式中写上它的名字。下面的代码用了例 4 中计算圆面积的 Function 过程:

Text2.Text=cir(30)

例 5 :求 3!+4!+…+10! 的值。

程序代码:

Private Sub Command1_Click()

Dim sum As Long

Dim i As Integer

For i = 3 To 10

sum = sum + fact(i)

Next i

Label1.Caption = “3!+4!+……+10!=” & str(sum)

End Sub

 

执行结果:

                    

例 6 :编写求两数最大公约数的 Function 过程,在主程序中输入 3 个整数 , 调用 Function 过程求出 3 个整数的最大公约数。

程序代码:

Function Hcf(m As Long, n As Long) As Long

Dim r As Long, c As Long

If m < n Then

c = m: m = n: n = c

End If

r = m Mod n

Do While r <> 0

m = n

n = r

r = m Mod n

Loop

Hcf = n

End Function

 

Private Sub Command1_Click()

Dim l As Long, m As Long

Dim n As Long

Dim p As String

l = Val(Text1.Text)

m = Val(Text2.Text)

n = Val(Text3.Text)

If l * m * n = 0 Then Exit Sub

p = "3 个数的最大公约数是 :" _

& Str(Hcf(Hcf(l, m), n))

Label1.Caption = p

End Sub

 

执行结果:

                     

 
双击滚屏  关闭窗口
 
版权所有数学与信息科学学院