第七章过程知识分享

上传人:yuzo****123 文档编号:142648461 上传时间:2020-08-22 格式:PPT 页数:36 大小:449.50KB
返回 下载 相关 举报
第七章过程知识分享_第1页
第1页 / 共36页
第七章过程知识分享_第2页
第2页 / 共36页
第七章过程知识分享_第3页
第3页 / 共36页
第七章过程知识分享_第4页
第4页 / 共36页
第七章过程知识分享_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《第七章过程知识分享》由会员分享,可在线阅读,更多相关《第七章过程知识分享(36页珍藏版)》请在金锄头文库上搜索。

1、第七章 过程,本章目录,7.1 Sub过程 7.2 Function过程 7.3 过程调用 7.4 参数的传递 7.5 递归过程 7.6 变量作用域 7.7 程序示例 7.8 创建与设置启动过程,本章重点和难点,1、过程、函数的定义和调用方法 2、参数的传递方法(传值、传址) 3、变量的作用域 4、递归过程的使用方法,Private Sub Command1_Click() Randomize For i = 1 To 4 For j = 1 To 5 rndarray(i, j) = Int(9 * Rnd) + 1 Picture1.Print rndarray(i, j); Next j

2、 Picture1.Print Next i End Sub,Private Sub Command2_Click() For j = 1 To 5 sum = 0 For i = 1 To 4 sum = sum + rndarray(i, j) Next i Text1.Text = Text1.Text & sum & Next j End Sub,如:,利用过程进行编程的两大好处是: 过程可以使程序划分成离散的逻辑单元,每个单元都比无过程的整个程序容易调试,也便于维护; 一个程序中的过程往往只要稍作修改,便可以成为另一个程序的过程,可移植性好(可重复利用)。,过程的分类,子程序过程:S

3、ub,函数过程:Function,属性过程:property,没有返回值,返回值,可以返回和设置窗体、标准模块以及类模块的属性值, 也可以设置对象的属性。,7.1 Sub过程,Sub过程,事件过程,通用过程,窗体事件,控件事件,7.1.1 事件过程,窗体事件,窗体事件过程,此处不能写成Form1,有几点说明,注意:,1)窗体事件过程名由Form_事件名组成; 2)每个窗体事件过程名前都有一个Private的前缀,表示该事件过程不能在它自己的窗体模块之外被调用; 3)事件过程有无参数,完全由VB提供的具体事件本身决定,用户不可以随意添加。,2. 窗体事件的执行顺序(掌握),回忆:窗体的常用事件有

4、哪些?,Initialize Load Activate Gotfocus,Initialize:初始化,窗体被加载Load之前,窗体被配置的时候触发 Load:加载,VB把窗体从磁盘或从磁盘缓冲区读入内存时发生 Activate:激活,窗体已经被装入内存,变成被激活的窗体时触发 gotFocus:当窗体成为当前焦点时触发,几个事件的发生顺序(掌握) InitializeLoadActivate Activate和gotFocus可以有多次, Initialize和Load一般只有一次,例:下面代码的执行结果是什么?,Private Sub Form_Activate() Debug.Prin

5、t 3 End Sub Private Sub Form_GotFocus() Debug.Print 4 End Sub Private Sub Form_Initialize() Debug.Print 1 End Sub Private Sub Form_Load() Debug.Print 2 End Sub,2)初始化的程序只能放在initialize和load事件中,load事件只能发生一次,而activate事件可能发生多次。 窗体的切换将激发什么事件?,问:下面代码能否实现实现预期效果?,例:Private Sub Form_Load() print “在窗体上打印你好” te

6、xt1.setfocus End Sub,3. 控件事件过程,语法:Private Sub 控件名_事件名(参数列表) 局部变量和常数声明 语句块End Sub,例:Private Sub command1_click() Msgbox(“you click the command button”) End Sub,注意: 其中的控件名必须与窗体中某控件相匹配,否则VB将认为它是一个通用过程。 控件事件过程也是一个私有过程,属于包含它的窗体模块,4. 建立事件过程的方法,1)打开代码编辑器窗口(两种方法:双击对象或从工程管理器中单击“查看代码”按钮) 2)在代码编辑器窗口中,选择所需要的“对象

7、”和“事件过程” 3)在Private Sub End Sub之间键入代码 4)保存工程和窗体.,事件过程的调用,事件过程由一个发生在VB中的事件来自动调用或者由同一模块中的其他过程显式调用。,课堂练习1,窗体上有3个命令按钮,2个文本框,分别编写事件过程,要求:当单击窗体和命令按钮时,实现2个文本框中数据的交换。,如果多个事件过程中需要执行相同或相似的功能,就得在事件过程中使用相同的程序段,这样会造成代码的重复,更不便于程序修改,此时,需要用到VB另一种过程:通用过程,7.1.2 通用过程(重点),定义:用户根据自己需要定义的,供其他程序多次调用的,用于重复处理数据的,具有某种功能的一段代码

8、。例如:求素数,求因子,交换两数。 通用过程的作用:通用过程有助于将复杂的应用程序分解成多个易于管理的逻辑单元,使应用程序更简洁、更易于维护。 通用过程分为公有(Public)过程和私有( Private)过程两种,公有过程可以被应用程序中的任一过程调用,而私有过程只能被同一模块中的过程调用。,1、通用过程的定义格式(重点): Private | Public StaticSub 过程名(参数列表) 局部变量和常数声明用Dim 或Static声明 语句块 Exit Sub 语句块End Sub,说明:,1)Sub过程以Sub语句开头,结束于End Sub语句。 这两个语句之间的语句块,称为子程

9、序体或过程体。 在Sub语句之后,是过程的声明段,可以用Dim或Static语句声明过程的局部变量。,2)以Private为前缀的Sub过程是模块级的过程,只能被本模块内的事件过程或其它过程调用。 以Public为前缀的Sub过程是应用程序级的过程,在应用程序的任何模块中都可以调用它。 缺省Private | public选项,则系统默认值为Public 特别注意: 在一个窗体模块调用另一个窗体模块中的公有过程时,必须以窗体名.公有过程名的形式调用公有过程;,3)以Static 为前缀的sub过程是模块级的,该过程中的局部变量为“静态”变量; 4)过程名的命名规则与变量命名规则相同,在同一个模

10、块中,过程名必须唯一。过程名不能与模块级变量同名,也不能与调用该过程的程序中的局部变量同名。,5)(重点)参数列表中的参数称为形式参数,它可以是变量名或数组名;若变量名后无括号,则表示该形参是普通变量,否则是数组,若有多个参数时,各参数之间用逗号分隔;,VB的过程可以没有参数,但一对圆括号不可以省略。 不含参数的过程称为无参过程。,形参格式为: ByVal 变量名() As 数据类型 ByVal:表明其后的形参是按值传递参数 ByRef:表明其后的形参是按地址传递参数 若形参前缺省ByVal和ByRef时,指的是按地址传递,教材P129示例,Private Sub Employee_Salar

11、y(ByVal Work_time,Salary As Single) Salary = 50 * Work_time End,6)End Sub 标志该过程的结束。当程序执行到End Sub语句时,退出该过程,并返回调用该过程语句的下一条语句。 7) 过程中可以用Exit Sub提前结束过程,程序执行到Exit Sub语句时,提前退出该过程,返回到调用该过程语句的下一条语句。 8)不能在Sub 过程再定义Sub 过程(Sub过程不能嵌套定义),2、建立通用Sub过程的方法,方法一:1)打开代码编辑器窗口2)选择“工具”菜单中的“添加过程”3)从对话框中输入过程名,并选择类型和范围4)在新创建

12、的过程中输入内容,方法二: 1)在代码编辑器窗口的对象中选择“通用”,在文本编辑区输入 Private Sub 过程名 2)按回车键,即可创建一个Sub过程样板 3)在新创建的过程中输入内容,Private Sub Swap( X As Integer, Y As Integer) Dim temp As Integer Temp=X : X=Y : Y=Temp End Sub,过程体,参数列表,例如: 编一个交换两个整型变量值的子过程。,过程名,7.2 Function过程,Privatel| Public Static Function函数名(参数列表) AS数据类型 局部变量和常数声明

13、 语句块 函数名 = 表达式 Exit Function 语句块 函数名 = 表达式 End Function,1. Function过程定义,说明,(1)Function过程应以Function语句开头,以End Function语句结束。中间是描述过程操作的语句,称为函数体或过程体。 (2)函数名的命名规则和变量名的命名规则相同。 (3)As 数据类型,指定返回值的数据类型。缺省时,默认为变体类型。,(4)在函数体内通过“函数名=表达式”语句,来给函数名赋值。 如果缺省给函数名赋值的语句,则该Function函数过程返回对应类型的缺省值。 比如,数值型函数返回0值,而字符串函数返回空字符串

14、。 (5)在函数体内可以含有多个Exit Function语句,程序执行Exit Function语句将退出Function过程,返回调用点。 (6)在Function过程内部不得再定义Sub过程或Function过程,即不可嵌套定义。,2. Function过程添加,Public Function total(a() As Integer) As Long Dim i As Integer For i = 1 To UBound(a) total = total + a(i) Next i End Function,函数名=表达式,函数体,函数的返回值类型为long,函数名为total,例:编写一个Function过程total,实现对一维数组元素的求和,课堂练习,编写一个求n!的函数过程。,Private Function Fact(ByVal N As Integer) As Long Dim K As Integer Fact = 1 If N=0 Or N=1 Then Exit Function Else For K=1 to N Fact = Fact * K Next K End If End Function,函数名返回值,函数名返回值,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号