过程 VB 04
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Next
Label2.Caption = sum End Sub
Function 过程
1 建立Function 过程
格式:
[Static] [Private|Public] Function 过程名 (参数列表) [As 类型] 语句块 [Exit Function] [过程名=<表达式>] End Function 功能: 与 Sub 过程一样,Function 过程也是一个独立的过程,可读取参 数、执行一系列语句并改变其参数的值。由Function 过程返回的值放 在<表达式>中,由“过程名=<表达式>”语句将它赋给“过程名”。
② 在“名称”框中输入过程名。
③ 在“类型”组中选取“子程序”定义子过程。
④ 在“范围”组中选取“共用的”定义一个公共级的全局过程;选 取“私有的”定义一个标准模块级/窗体级的局部过程。
过程名
过程的类型 过程的范围
3 调用 Sub 过程 调用 Sub 过程有两种方法:
Call 过程名 [(实际参数)] 过程名 [实际参数]
例 利用阶乘函数过程fact求 2!+4!+6!+8!+10! Private Sub Command1_Click() Dim sum As Long Dim t As Long Dim i As Integer sum = 0 For i = 2 To 10 Step 2 sum = sum + fact(i) Next Function fact(n As Integer) As Long Dim p As Long, i As Integer p=1
击“查看代码”按钮)
在代码编辑器窗口中,选择所需要的“对象”和“事件过程” 在Private Sub …… End Sub之间键入代码 保存工程和窗体
4)事件过程的Байду номын сангаас用
事件过程由一个发生在VB中的事件来自动调用或者由同一模块
中的其他过程显示调用。
2.通用过程
通用过程独立于事件过程之外,告诉程序如何完成一项指定的任务。
通用过程不与任何特定的事件相联系,可以被别的过程(事件过程 或其它通用过程)或自己来调用,它可以存储在窗体模块或标准模 块中
通用过程是几个不同的事件都要用到的过程。建立通用过程可以不必
为每一个事件都编相同的程序代码,简化了程序的开发,使程序更简 洁,使应用程序更容易维护。
通用过程分为公有(Public)过程和私有( Private)过程两种,公
Private:表示Sub过程是私有过程,只能被本模块中的其它过程调用,
不能被其它模块中的过程调用。
Public:表示Sub过程是公有过程,可以在程序的任何地方调用它。
Exit Sub 语句使执行立即从 Sub 过程中退出,返回到调用处。程序接
着从调用该 Sub 过程的语句下一条语句执行。在 Sub 过程的任何位置 都可以有 Exit Sub 语句,但必须和条件选择语句配合才有实际意义。
For i = 1 To n
p=p*i Next i
Label2.Caption = sum
End Sub
fact = p
End Function
例编制产生随机整数函数,产生30个1~100之内的随机数,并输出。 Private Sub Command1_Click() CurrentX = 120: CurrentY = 120 For i = 1 To 5 For j = 1 To 6 Print Tab(6 * j); randomnum;
事件名;
每个窗体事件过程名前都有一个Private的前缀,表示该事件过程
不能在它自己的窗体模块之外被调用;
事件过程有无参数,完全由VB提供的具体事件本身决定,用户不
可以随意添加。
控件名必须与窗体中某控件相匹配,否则VB将认为它是一个通用
过程。
3)建立事件过程的方法
打开代码编辑器窗口(两种方法:双击对象或从工程管理器中单
将程序分割成较小的逻辑部件就可以简化程序设计任务。称这些部
件为过程,它们可以变成增强和扩展 Visual Basic 的构件。 2.使用过程的好处是什么?
过程可使程序分解成离散的逻辑单元,每个单元的调试比整个程序
的调试更容易。
一个程序中的过程,可以多次被调用。这样可以减少整个程序的代
码量,并增强程序的可读性。
ByVal可选的:表示该参数按值传递。 ByRef可选的:表示该参数按地址传递。ByRef 是 Visual Basic 的缺
省选项。
2. 使用菜单创建Sub过程 方法一:使用“工程”菜单中的“添加模块”命令定义 方法二:使用“工具”菜单下的“添加过程”命令定义
① 选择“工具”菜单下的“添加过程”命令,打开“添加过程”对 话框。
参数表列:为形式参数,它可以是变量名或数组名,只能是简单变量,
不能是常量、数组元素、表达式;若有多个参数时,各参数之间用逗 号隔开。
VB的过程可以没有参数,但一对圆括号不可以省略。不含参数的过程
称为无参过程。
参数列表格式: [ByVal | ByRef] 变量名[( )] [As 数据类型]
Next j
Print : Print Next i Function randomnum()
End Sub
Private Sub Command2_Click() Cls „清除Form1上的信息
randomize
取 整
randomnum = (Rnd * 100 + 1) \ 1 End Function
Dim i As Integer 有参数 sum = 0 调用 For i = 2 To 10 Step 2 Call fact(i, t) sum = sum + t
Public Sub fact(n As Integer, p As Long) p=1 For i = 1 To n p=p*i Next End Sub
3. Visual Basic中过程的分为几类?
Visual Basic中 根据过程是否有返回值,把过程分为两类:
Sub 过程不返回值。 Function 过程返回值。
Sub过程
1 事件过程和通用过程
过程分为事件过程和通用过程
1.事件过程 当 Visual Basic 中的对象对一个事件的发生作出认定时,便自动用 相应于事件的名字调用该事件的过程。因为名字在对象和代码之间建立 了联系,所以说事件过程是附加在窗体和控件上的。 1)窗体事件过程 一般格式:
Private Sub Form_事件名([参数列表])
[局部变量和常数声明] 语句块
End Sub
2)控件事件过程
一般格式: Private Sub 控件名_事件名([参数列表]) [局部变量和常数声明] 语句块 End Sub 注意:
窗体事件过程名由Form_事件名组成,多文档窗体用MDIForm_
阶乘的值赋 给函数名 n的值为10
主程序: Private Sub Command1_Click() Dim a As Integer
调用过程 a = Val(Text1.Text)
Label2.Caption = fact(a) End Sub
参数
End Function
例 编写一个求最大公约数的函数过程。 (用辗转相除法和穷举法。) „函数过程 Function gcd ( x As integer,y As Integer) As Integer Do i = x To <> 0 For While y 1 Step -1 r = x Mod i y 0 And x Mod i = 0 Then If y Mod = x=yExit For „主过程 y=r If End Private Sub Command1_Click() Loop i Next Dim a As Integer, b As Integer gcd=x= i gcd a = Val(Text1.Text) End Function b = Val(Text2.Text) Label4.Caption = gcd(a, b) End Sub 调用函数过程同 时把a,b的值传递 给函数过程的x,y
过程
2013-6-27
1
【本讲内容】 ★ 过程的概念 ★ Sub过程和Function过程的建立和调用 ★ 过程中参数的传递 ★ 过程和变量的作用域
【教学要求】
★掌握Sub过程和Function过程的建立和调用 ★掌握过程中参数的传递 ★掌握过程和变量的作用域 【教学重点】 ★以上内容均为重点
1.什么是过程?
说明:
As 类型:指定Function过程返回值的类型,如果没有As子句,默
认的数据类型为Variant。
表达式的值是函数返回的结果。通过赋值语句将值赋给函数名,该
值就是Function过程返回的值。
如果在Function过程中省略“函数名=表达式”,则该过程返回一
个默认值:数值函数过程返回0,字符串函数过程返回空字符串。
说明:
使用 Call 格式时,参数必须在括号内。 省略 Call 关键字时,必须省略参数两边的括号。 例如: Call TestProc(a,b) TestProc a,b
例:计算5! 子过程: 主程序:
Sub proc()
Private Sub Form_Load() s=1
过程名
For n = 1 To 5
缺省[ Private | Public ]时,系统默认为 Public ; Static可选项,表示在调用之间是否保留 Sub 过程的局部变量的值。
使用Static:在每次调用过程时,局部变量的值保持不变; 省略Static:在每次调用过程时,局部变量被初始化为0或空字符串。
Static对在过程之外定义的变量没有影响,即使这些变量在过程中使用。
For n = 1 To 10
s=s*n
End Sub
If n Mod 2 = 0 Then m = m + s
Next n
Print "2!+4!+6!+8!+10!="; m End Sub
Private Sub command1_Click() Dim sum As Long
i
t
Dim t As Long
有过程可以被应用程序中的任一过程调用,而私有过程只能被同一模 块中的过程调用。
2 建立Sub过程 1. 在代码窗口直接定义(在“代码”窗口输入过程头并按下回车键) 格式: [Static][Private|Public] Sub 过程名 (参数列表) 语句块 [Exit Sub]
End Sub
说明:
End Sub
过程中参数的传递
调用过程的目的,就是在一定条件下完成某一个工作或计算某一个 函数值。外界要把条件告诉过程,反过来过程要把某些结果告诉外界, 这就是过程与外界的通信,即过程中参数的传递。 1 形式参数和实际参数 1. 形式参数 形式参数是指在定义通用过程时,出现在Sub或Function语句中的 变量名,是接收数据的变量。简称形参。 形式参数中各变量之间用逗号分开,表中的变量可以是:
为了使一个Function过程完成所指定的操作,通常要在过程中为函
数名赋值。
Function过程的建立方法与Sub过程
2 调用Funtion 过程 在 Visual Basic 中调用 Function 过程的方法和调用任何内部函数的方 法是一样的。直接在表达式中引用即可
例
计算任意整数n的阶乘的函数过程fact。 函数过程: Function fact(n As Integer) As Long Dim p As Long, i As Integer p=1 For i = 1 To n p=p*i Next i fact = p
除定长字符串之外的合法变量名 后跟左右括号的数组名 变量
数组
例:Sub testsub(p1 As Integer,p2 As String,a1() As Integer )
s=s*n
Call proc
调用过程 过程名
Next n Print “5!=“;s
End Sub
End Sub
例 计算2!+4!+6!+8!+10!的值。 子过程:
主程序:
Private Sub Form_Load() 无参数 调用
Sub proc()
Dim m As Long s=1
Call proc