版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、整理课件第第5 5章章 过程过程 将程序分割成较小的逻辑部件就可以简化程序将程序分割成较小的逻辑部件就可以简化程序设计任务,称这些部件为设计任务,称这些部件为过程过程。 VB中有两类过程,一类是内部过程,另一类是中有两类过程,一类是内部过程,另一类是外部过程,每一类过程又可分为函数过程和事件过外部过程,每一类过程又可分为函数过程和事件过程。内部过程是由系统提供的、不需要用户编写、程。内部过程是由系统提供的、不需要用户编写、可直接用过程名调用的程序段。外部过程是由用户可直接用过程名调用的程序段。外部过程是由用户根据自己的需要定义和编写的、可供事件过程多次根据自己的需要定义和编写的、可供事件过程多
2、次调用的程序段。调用的程序段。 过程的使用,一方面将大的程序分成离散的逻过程的使用,一方面将大的程序分成离散的逻辑单元,方便程序的调试;另一方面,方便了其他辑单元,方便程序的调试;另一方面,方便了其他的程序或过程的调用。的程序或过程的调用。整理课件在在VB中,的中,的Sub子过程分为:事件过程和通用过程子过程分为:事件过程和通用过程 5.1.1 事件过程事件过程 (1)窗体事件的语法)窗体事件的语法Private Sub Form_事件名事件名(参数列表参数列表)语句组语句组End Sub(2)控件事件的语法)控件事件的语法Private Sub 控件名控件名_事件名事件名(参数列表参数列表)
3、语句组语句组 End Sub5.1 Sub5.1 Sub过程过程整理课件子过程的定义形式如下:子过程的定义形式如下:Public|PrivateStatic Sub 子过程名子过程名(形参表形参表) 语句组语句组 Exit Sub 语句组语句组End Sub 5.1.2 通用过程(通用过程(Sub过程)的定义过程)的定义 说明:说明:(1)子过程名:命名规则与变量名规则相同。子过程名不)子过程名:命名规则与变量名规则相同。子过程名不返回值,而是通过形参与实参的传递得到结果,调用时可返回值,而是通过形参与实参的传递得到结果,调用时可返回多个值。返回多个值。整理课件例:编一个交换两个整型变量值的子
4、过程。例:编一个交换两个整型变量值的子过程。Private Sub Swap( X As Integer, Y As Integer)Dim temp As Integer Temp=X : X=Y : Y=TempEnd Sub(2)形式参数列表:形式参数通常简称)形式参数列表:形式参数通常简称“形参形参”,仅表示,仅表示形参的类型、个数、位置,定义时是无值的,只有在形参的类型、个数、位置,定义时是无值的,只有在过程被调用时,虚实参结合后才获得相应的值。过程被调用时,虚实参结合后才获得相应的值。(3)过程可以无形式参数,但括号不能省。)过程可以无形式参数,但括号不能省。(4)参数的定义形式:
5、)参数的定义形式: ByValByRef变量名变量名( )As 类型类型,, ByVal表示当该过程被调用时,参数是按表示当该过程被调用时,参数是按值值传递的;传递的;缺省或缺省或ByRef表示当该过程被调用时,参数是按表示当该过程被调用时,参数是按地址地址传递的。传递的。 整理课件5.1.3 子过程的建立子过程的建立 通过通过 “工具工具”菜单中的菜单中的“添加过程添加过程”命令,出现命令,出现“添加过添加过程程”对话框(见图),选择过程类型(子过程、函数、属性、对话框(见图),选择过程类型(子过程、函数、属性、事件)及作用范围(公有的事件)及作用范围(公有的Public、私有的、私有的Pr
6、ivate),单击),单击确定后得到一个过程或函数定义的结构框架(模板),如:确定后得到一个过程或函数定义的结构框架(模板),如:Public Sub Sort( )End Sub整理课件5.1.4 过程的调用过程的调用 1 子过程的调用子过程的调用 子过程名子过程名 参数列表参数列表 或或 Call 子过程名子过程名(参数列表参数列表)说明:说明: (1)参数列表称为实参或实元,它必须与形参保持个数相参数列表称为实参或实元,它必须与形参保持个数相同,位置与类型一一对应。同,位置与类型一一对应。 (2)调用时把实参值传递给对应的形参。其中值传递(形调用时把实参值传递给对应的形参。其中值传递(形
7、参前有参前有ByVal说明)时实参的值不随形参的值变化而改变。说明)时实参的值不随形参的值变化而改变。而地址传递时实参的值随形参值的改变而改变。而地址传递时实参的值随形参值的改变而改变。整理课件 例:调用上面定义的例:调用上面定义的Sawp子过程的形式:子过程的形式: Swap a,b Call Swap(a,b)(3)当参数是数组时,形参与实参在参数声明时应省略其维数,当参数是数组时,形参与实参在参数声明时应省略其维数,但括号不能省。但括号不能省。(4)调用子过程的形式有两种,用调用子过程的形式有两种,用Call关键字时,实参必须加关键字时,实参必须加圆括号括起,反之则实参之间用圆括号括起,
8、反之则实参之间用“,”分隔。分隔。整理课件Private Sub CmdOK() Call Swap(a,b) Swap a,bEnd SubPrivate Sub Swap(x%,y%) Dim temp% Temp=X X=Y Y=TempEnd Sub 过程调用的执行过程:过程调用的执行过程:整理课件例:我们创建这样一个应用程序例:我们创建这样一个应用程序,它包含一个按钮它包含一个按钮,当用户在当用户在窗体上单击时窗体上单击时,计算机的喇叭会发出计算机的喇叭会发出3声声“嘟嘟”的声音的声音;如果如果用户在按钮上单击用户在按钮上单击,喇叭响五下喇叭响五下.我们定义一个控制计算机操作的过程我
9、们定义一个控制计算机操作的过程,命名为命名为BeepSound,喇叭的次数作为参数有调入者传入喇叭的次数作为参数有调入者传入,参数命名为参数命名为n.过程过程BeepSound如下如下:Sub BeepSound(n As Interger) Dim i As Integer, j As Long For i= 1 to n Beep For j= 0 to 1000000 Next NextEnd Sub 整理课件我们可以用我们可以用 Call BeepSound(5) 或或BeepSound 5 调用调用BeepSound,所以我们可以在窗体所以我们可以在窗体Form1和按钮和按钮Comm
10、and1的的Click事件过程中调用事件过程中调用BeepSound过程过程(如下如下:)Private Sub Command1_click( ) Call BeepSound(5)End SubPrivate Sub Form_Click() BeepSound 3End Sub 整理课件我们可以通过此图来了解这一操作我们可以通过此图来了解这一操作:事件过程事件过程Command1_Click事件过程事件过程Form_Click通用过程通用过程BeepSound调用调用返回返回调用调用返回返回由上可知由上可知,子过程分为两种子过程分为两种:通用过程和事件过程通用过程和事件过程整理课件5.2
11、 Function5.2 Function过程过程 Visual Basic函数分为内部函数和外部函数,外部函数函数分为内部函数和外部函数,外部函数是用户根据需要用是用户根据需要用Function关键字定义的函数过程,关键字定义的函数过程,与子与子过程不同的是函数过程将返回一个值过程不同的是函数过程将返回一个值 。 5.2.1 函数过程(函数过程(Function过程)的定义过程)的定义Public|PrivateStaticFunction 函数名函数名()As 函数名函数名=返回值返回值 Exit Function 函数名函数名=返回值返回值End Function函数体函数体整理课件说明
12、:说明:(1)函数名:命名规则与变量名规则相同。但不能与系统)函数名:命名规则与变量名规则相同。但不能与系统的内部函数或其它通用子过程同名,也不能与已定义的全的内部函数或其它通用子过程同名,也不能与已定义的全局变量和本模块中模块级变量同名。局变量和本模块中模块级变量同名。(2)在函数体内,函数名可以当变量使用,函数的返回值)在函数体内,函数名可以当变量使用,函数的返回值就是通过对函数名的赋值语句来实现的,在函数过程中至就是通过对函数名的赋值语句来实现的,在函数过程中至少要对函数名赋值一次。少要对函数名赋值一次。(3)AS类型:是指函数返回值的类型,若省略,则函数返类型:是指函数返回值的类型,若
13、省略,则函数返回变体类型值(回变体类型值(Variant)。)。 (4)Exit Function:表示退出函数过程,常常是与选择结:表示退出函数过程,常常是与选择结构(构(If或或Select Case语句)联用,即当满足一定条件时,语句)联用,即当满足一定条件时,退出函数过程。退出函数过程。(5)形参数列表:形参的定义与子过程完全相同。)形参数列表:形参的定义与子过程完全相同。 整理课件5.2.2 函数的调用函数的调用调用形式如下:调用形式如下: 变量函数名(实参列表)变量函数名(实参列表)说明:说明: 在调用时实参和形参的数据类型、顺序、个数在调用时实参和形参的数据类型、顺序、个数必须匹
14、配。函数调用只能出现在表达式中,其功必须匹配。函数调用只能出现在表达式中,其功能是求得函数的返回值。能是求得函数的返回值。整理课件5.3 5.3 过程之间参数的传递过程之间参数的传递Visual Basic中不同模块(过程)之间数据的传递有两种中不同模块(过程)之间数据的传递有两种方式:方式: 通过过程调用实参与形参的结合实现;通过过程调用实参与形参的结合实现;使用全局变量来实现各过程中共享数据。使用全局变量来实现各过程中共享数据。 5.3.1 5.3.1 形式参数与实际参数形式参数与实际参数1、形式参数、形式参数 是指在定义通用过程时,出现在是指在定义通用过程时,出现在Sub或或Functi
15、on语句中语句中的变量名后面园括号内的数,是用来接收传送给子过程的的变量名后面园括号内的数,是用来接收传送给子过程的数据,形参表中的各个变量之间用逗号分隔。数据,形参表中的各个变量之间用逗号分隔。 整理课件2、实际参数、实际参数 实际参数是指在调用实际参数是指在调用Sub或或Function过程时,写入子过程过程时,写入子过程名或函数名后括号内的参数,其作用是将它们的数据(数值名或函数名后括号内的参数,其作用是将它们的数据(数值或地址)传送给或地址)传送给Sub或或Function过程与其对应的形参变量。过程与其对应的形参变量。 实参可由常量、表达式、有效的变量名、数组名(后加左、实参可由常量
16、、表达式、有效的变量名、数组名(后加左、右括号,如右括号,如A( ))组成,实参表中各参数用逗号分隔。)组成,实参表中各参数用逗号分隔。5.3.2 5.3.2 参数传递(虚实结合)参数传递(虚实结合) 参数传递指主调过程的实参(调用时已有确定值和内存参数传递指主调过程的实参(调用时已有确定值和内存地址的参数)传递给被调过程的形参,参数的传递有两种方地址的参数)传递给被调过程的形参,参数的传递有两种方式:按值传递、按地址传递。形参前加式:按值传递、按地址传递。形参前加“ByVal”关键字的是关键字的是按值传递,缺省或加按值传递,缺省或加“ByRef”关键字的为按地址传递。关键字的为按地址传递。
17、整理课件 传址与传值传址与传值 传址:传址: 形参得到的是实参的地址,当形参值的改变同形参得到的是实参的地址,当形参值的改变同时也改变实参的值。时也改变实参的值。 传值:传值: 形参得到的是实参的值,形参值的改变不会影形参得到的是实参的值,形参值的改变不会影响实参的值。响实参的值。Sub Swap2(x%, y%) Dim Temp% Temp = x: x = y: y = Temp End SubSub Swap1(ByVal x%, ByVal y%) Dim Temp% Temp = x: x = y: y = TempEnd Sub例例整理课件Private Sub CmdOK_Cl
18、ick() a% = 10: b% = 20: Swap1 a, b 传传 值值 Print A1=; a, B1=; b a = 10: b = 20: Swap2 a, b 传地址传地址 Print A2=; a, B2=; bEnd Sub程序调用执行过程:程序调用执行过程:整理课件值传递的执行过程如下图:值传递的执行过程如下图:通过地址传递数据的执行过程通过地址传递数据的执行过程 整理课件数据传递的几点说明:数据传递的几点说明:1.参数的数据类型参数的数据类型2.按值传递参数按值传递参数形参是实参的一个副本形参是实参的一个副本3.按地址传递参数按地址传递参数形参实参公用内存单元形参实参
19、公用内存单元4.子过程执行一系列操作,函数过程返回一个值子过程执行一系列操作,函数过程返回一个值注意:如果实参是常量(系统常量、符号常量)或者表达式,注意:如果实参是常量(系统常量、符号常量)或者表达式,则无论定义时使用值传递还是地址传递,都是按值传递将则无论定义时使用值传递还是地址传递,都是按值传递将常量或者表达式的计算值传递给形参。常量或者表达式的计算值传递给形参。整理课件5.3.4 5.3.4 数组作过程的参数数组作过程的参数 Visual Basic允许把数组作为实参传送到过程中。数组作允许把数组作为实参传送到过程中。数组作参数是通过传地址方式传送。在传送数组时,除遵守参数参数是通过传
20、地址方式传送。在传送数组时,除遵守参数传送的一般规则外,还应注意以下几点:传送的一般规则外,还应注意以下几点:1把一个数组的全部元素传送给一个过程,应将数组名分把一个数组的全部元素传送给一个过程,应将数组名分别写入形参列表中,并略去数组的上下界,但括号不能省别写入形参列表中,并略去数组的上下界,但括号不能省略。略。Private Sub Sort( a() As single) End Sub其中形参其中形参“a( )”即为数组。即为数组。整理课件2被调过程可通过被调过程可通过Lbound和和Ubound函数确定实参数组的函数确定实参数组的上、下界。上、下界。3当用数组作形参时,对应的实参必须
21、也是数组,且类型当用数组作形参时,对应的实参必须也是数组,且类型一致。一致。4实参和形参结合是实参和形参结合是按地址传递按地址传递,即形参数组和实参数组,即形参数组和实参数组共用一段内存单元。共用一段内存单元。例:定义了实参数组例:定义了实参数组b(1 to 8),给它们赋了值,调用,给它们赋了值,调用Sort()函数过程的形式如下:函数过程的形式如下: Sort b() 或或 Call Sort(b() ) 实参数组后面的括号可以省略,但为便于阅读,建议一般实参数组后面的括号可以省略,但为便于阅读,建议一般不要省略为好。不要省略为好。 整理课件调用时形参数组调用时形参数组a和实参数组和实参数
22、组b虚实结合,共用一段内存单元,虚实结合,共用一段内存单元,如下所示。因此在如下所示。因此在Sort()过程中改变数组过程中改变数组a的各元素值,也就的各元素值,也就相当于改变了实参数组相当于改变了实参数组b中对应的元素的值,当调用结束时,中对应的元素的值,当调用结束时,形参数组形参数组a成为无定义。成为无定义。 b(1) b(2) b(3) b(4) b(5) b(6) b(7) b(8) a(1) a(2) a(3) a(4) a(5) a(6) a(7) a(8)参数为数组时虚实结合示意图参数为数组时虚实结合示意图 整理课件例:编写判断一个整数是不是素数写函数过程。如果给定的整例:编写判
23、断一个整数是不是素数写函数过程。如果给定的整数是素数,则返回逻辑值数是素数,则返回逻辑值True,否则返回,否则返回False Private Function Prime(n As Integer) As Boolean Dim k%,Yes As Boolean Yes=True For k=2 to n2 IF n mod k =0 then Yes=False : Exit For Next k Prime=Yes 给函数名赋值,作为函的返回值给函数名赋值,作为函的返回值End Function如何调用该函数呢?如何调用该函数呢?使用该函数,编一验证哥德巴赫猜想。使用该函数,编一验证哥
24、德巴赫猜想。整理课件Private Sub Form_Click() Dim n%,n1%,n2% n=Val(InputBox(“输入大于输入大于6的偶数的偶数) For n1=3 to n2 step 2 让让n1从从3开始分解开始分解 n2=n-n1 求得求得n2 如果如果n1和和n2都是素数,则打印输出都是素数,则打印输出 If prime(n1) And prime(n2) then Print n & = & n1 & + & n2 Exit For 结束循环结束循环 End if Next n1End Sub整理课件For i = 1 To n -
25、 1 p = i For j = i + 1 To n If a(p) a(j) Then p = j Next j temp = a(i) a(i) = a(p) a(p) = tempNext i选择法排序(升序)的选择法排序(升序)的VB程序程序:如何写一个排序的如何写一个排序的VB过程?过程?例:排序子过程例:排序子过程整理课件Private Sub Sort( a( ) As single) Dim i%,j%,p%,n%,temp! n=Ubound(a) For i = 1 To n - 1 p = i For j = i + 1 To n If a(p) a(j) Then p = j Next j temp = a(i) a(i) = a(p) a(p) = temp Next IEnd Sub整理课件5.4 5.4 过程的嵌套和递归调用过程的嵌套和递归调用5.4.1 过程的嵌套过程的嵌套 在程序中调用一子过程,而在子过程中又调用另外的子过在程序中调用一子过程,而在子过程中又调用另外的子过程,这种程序结构称为程,这种程序结构称为过程的嵌套。过程的嵌套。过程的嵌套调用执行过过程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物流处理话术
- 代跑服务话术
- 2025-2026学年人教新课标七年级英语上册Unit 4 My Favourite Subject单元检测卷(含答案)
- 钳工技能考试试题及答案
- 平度市生物会考试卷及答案
- DB31-T 310030-2025 公共数据分类分级指南
- 光伏施工安全培训记录课件
- 光伏发电技术课程介绍
- 先进安全培训方法
- 佳木斯德语培训小班课件
- DL-T-1946-2018气体绝缘金属封闭开关设备X射线透视成像现场检测技术导则
- 血液透析中低血压的预防与治疗
- 网络空间安全概论智慧树知到期末考试答案2024年
- 编辑打印新课标高考英语词汇表3500词
- 博士论文的写作课件
- 高层建筑消防安全培训课件
- 电气工程师生涯人物访谈报告
- 无染觉性直观自行解脱之道
- 国家开放大学《土木工程力学(本)》形考作业1-5参考答案
- 职位调动申请表模板
- 露地胡萝卜秋季栽培
评论
0/150
提交评论