VB课件:过程
Option Explicit Sub fact(ByVal N%, ByRef result&)
Dim i% result = 1 For i = 1 To N
result = result * i Next i End Sub Private Sub Form_Click() Dim x%, r& x = Val(InputBox("input x")) Call fact(x, r) MsgBox x & " 的阶乘是:" & r End Sub
▪ 例:计算5!+2!+3!+8!+10!
Option Explicit Private Sub Form_Click()
Dim i%, s#, P# P=1 For i = 1 To 5
P=P*i Next i s=s+P P=1 For i = 1 To 2
P=P*i Next i s=s+P
例10-3:随机产生10个三位整数存储在数组中,调用一 个Sub子过程对该数组按从小到大的顺序排序。
Option Explicit
Sub sort(ByRef x%())
Dim i%, j%, c%, t%
For i = LBound(x) To UBound(x) - 1
c=i For j = i + 1 To UBound(x)
P=1 For i = 1 To 3
P=P*i Next i s=P+s P=1 For i = 1 To 8
P=P*i Next i s=s+P P=1 For i = 1 To 10
P=P*i Next i s=s+P Print s End Sub
10.2 Sub子过程
▪ 例:计算5!+2!+3!+8!+10!
Option Explicit Private Sub Form_Click()
Dim i%, s#, P# Call Factorial(5,P) s=s+P Call Factorial(2,P) s=s+P
Call Factorial(3,P) s = S+ P Call Factorial(8,P) s=s+P Call Factorial(10,P) s=s+P Print s End Sub
Private Sub Form_Click() Dim s&, i& For i = 1 To 12 s = s + factorial(i) Next i Print s
End Sub
例:利用Function函数实现1!+2!+……+12!。
Function factorial(ByVal N As Long) As Long Dim s&, i& s=1 For i = 1 To N s=s*i Next i factorial = s
第十章 过程
10.1 Function函数过程
▪ 作用:当程序中多处执行相同的任务并需要返回值时
▪ 定义语法格式:
Function 函数名(形参表) As 类型
[<语句块>]
[Exit Function] Option Explicit
[<语句块>]
Function Factorial(ByVal x%) As Double Dim i%, P!
tmp = True
For i = 2 To N - 1
If N Mod i = 0 Then tmp = False: Exit For
Next i
If tmp Then isPrime = True Else isPrime = False
End Function
例:利用Function函数实现1!+2!+……+12!。
If x(c) > x(j) Then c = j Next j t = x(i) x(i) = x(c) x(c) = t Next i End Sub
For i = 1000 To 9999
If isPrime(i) Then
Print i;
c=c+1
If c Mod 20 = 0 Then Print
End If
Next i Function isPrime(N%) As Boolean
End Sub
Dim i%, tmp As Boolean
Sub子过程只有被调用时,子过程内的程序语句才会被执行。 由于Sub子过程不能返回一个值,因此不能像函数一样在表 达式中调用Sub子过程,调用Sub子过程必须是一个独立的 语句,可以采用下面两种方式调用Sub子过程: Call 过程名(实际参数列表) 过程乘。
End Function
10.2 Sub子过程
▪ 作用:当程序中多处执行相同的任务而不需要返回任何值与 Function函数主要的区别是Sub子过程没有一个返回值。
▪ 过程的定义格式如下: Sub <过程名>(形式参数列表)
[<语句序列1>]
[Exit Sub] [<语句序列2>]
End Sub ▪ 调用子过程的语法
Dim s# s = s + Factorial(5) s = s + Factorial(3) s = s + Factorial(10) Print s End Sub
例:利用Function函数实现找出1000-9999间所有的素数。
Private Sub Form_Click()
Dim i%, c%
函数名=表达式
P=1 For i = 1 To x
End Function
P=P*i Next i
Factorial = P
End Function
▪ 调用函数语法格式:
方法一:
跟调用系统内部函数方法一样。 方法二:
可以像调用Sub过程那样调用函数过程。 使用Call语句:Call 函数名(实参表) 直接使用函数名:函数名 实参表 当使用这种方法调用函数时,VB放弃返回值
例10-1:用Function函数,计算5! +3!+ 10!的值。
Option Explicit Function Factorial(ByVal x%) As Double Dim i%, P! P=1 For i = 1 To x P=P*i Next i Factorial = P End Function Private Sub Form_Click()