函数、过程的定义和调用(一)15_第1页
函数、过程的定义和调用(一)15_第2页
函数、过程的定义和调用(一)15_第3页
函数、过程的定义和调用(一)15_第4页
函数、过程的定义和调用(一)15_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、浙江科技学院教信系计算机基础教学网站:浙江科技学院教信系计算机基础教学网站:www.Goit.Netwww.Goit.Net目录6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 小结 作业 第六章 过 程 掌握子过程掌握子过程(Sub过程的定义、调用过程的定义、调用);掌握函数过程(掌握函数过程(Function过程)的定义、调用;过程)的定义、调用;掌握值传递、地址传递的传递规则;掌握值传递、地址传递的传递规则;理解递归的概念。理解递归的概念。本章要求:本章要求:本章重点:本章重点:Sub过程及过程及Function过程的定义与调用。过程的定义与调用。过程调用中数据的传递。过程

2、调用中数据的传递。本章难点:本章难点:过程调用中数据的传递。过程调用中数据的传递。浙江科技学院教信系计算机基础教学网站:浙江科技学院教信系计算机基础教学网站:www.Goit.Netwww.Goit.Net目录6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 小结 作业 6.1 过程概述过程概述在在VB5.0/6.0中,除了系统提供的内部函数过程和中,除了系统提供的内部函数过程和事件过程外,用户可自定义过程下列四种过程:事件过程外,用户可自定义过程下列四种过程: “Sub” 保留字开始的为子过程保留字开始的为子过程“Function” 保留字开始的为函数过程保留字开始的为函数过程

3、 “Property”保留字开始的为属性过程保留字开始的为属性过程“Event”保留字开始保留字开始的事件过程的事件过程浙江科技学院教信系计算机基础教学网站:浙江科技学院教信系计算机基础教学网站:www.Goit.Netwww.Goit.Net目录6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 小结 作业 在在VB中,的中,的Sub子过程分为:子过程分为:事件过程和通用过程事件过程和通用过程 6.2.1 事件过程事件过程 (1)窗体事件的语法)窗体事件的语法Private Sub Form_事件名事件名(参数列表参数列表) 语句组语句组End Sub (2)控件事件的语法)控件

4、事件的语法Private Sub 控件名控件名_事件名事件名(参数列表参数列表) 语句组语句组 End Sub6.2 Sub过程过程浙江科技学院教信系计算机基础教学网站:浙江科技学院教信系计算机基础教学网站:www.Goit.Netwww.Goit.Net目录6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 小结 作业 子过程的定义形式如下:子过程的定义形式如下:Public|PrivateStatic Sub 子过程名子过程名(形参表形参表) 语句组语句组 Exit Sub 语句组语句组End Sub 6.2.2 通用过程(通用过程(Sub过程)的定义过程)的定义 说明:说明:

5、(1)子过程名:子过程名:命名规则与变量名规则相同。命名规则与变量名规则相同。子过程名不返回值,而是通过形参与实参的传递得到结果,子过程名不返回值,而是通过形参与实参的传递得到结果,调用时可返回多个值。调用时可返回多个值。6.2 Sub过程过程浙江科技学院教信系计算机基础教学网站:浙江科技学院教信系计算机基础教学网站:www.Goit.Netwww.Goit.Net目录6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 小结 作业 (2)形式参数列表:形式参数列表:形式参数通常简称形式参数通常简称“形参形参”,仅表示,仅表示形参的类型、个数、位置,定义时是无值的,形参的类型、个数、

6、位置,定义时是无值的,只有在过程被只有在过程被调用时,虚实参结合后才获得相应的值调用时,虚实参结合后才获得相应的值。(3)过程可以无形式参数,但括号不能省。过程可以无形式参数,但括号不能省。(4)参数的定义形式:参数的定义形式:ByValByRef变量名变量名( )As 类型类型,,ByVal表示当该过程被调用时,参数是按值传递的;表示当该过程被调用时,参数是按值传递的;ByRef表示当该过程被调用时,参数是按地址传递的。表示当该过程被调用时,参数是按地址传递的。 6.2 Sub过程过程浙江科技学院教信系计算机基础教学网站:浙江科技学院教信系计算机基础教学网站:www.Goit.Netwww.

7、Goit.Net目录6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 小结 作业 例例6.1 编一个交换两个整型变量值的子过程。编一个交换两个整型变量值的子过程。6.2 Sub过程过程浙江科技学院教信系计算机基础教学网站:浙江科技学院教信系计算机基础教学网站:www.Goit.Netwww.Goit.Net目录6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 小结 作业 6.2.3 子过程的建立子过程的建立 通过通过 “工具工具”菜单中的菜单中的“添加过程添加过程”命令,出现命令,出现“添加添加过程过程”对话框(见图对话框(见图6.1),选择过程类型(子过程、函数、

8、),选择过程类型(子过程、函数、属性、事件)及作用范围(公有的属性、事件)及作用范围(公有的Public、私有的、私有的Private),),单击确定后得到一个过程或函数定义的结构框架(模板),单击确定后得到一个过程或函数定义的结构框架(模板),如:如:Public Sub Sort( )End Sub6.2 Sub过程过程浙江科技学院教信系计算机基础教学网站:浙江科技学院教信系计算机基础教学网站:www.Goit.Netwww.Goit.Net目录6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 小结 作业 6.2.4 过程的调用过程的调用 1 子过程的调用子过程的调用 子过程

9、名子过程名 参数列表参数列表 或或 Call 子过程名子过程名(参数列表参数列表)说明:说明: (1)参数列表参数列表称为实参或实元,它必须与形参保持个数称为实参或实元,它必须与形参保持个数相同,位置与类型一一对应。相同,位置与类型一一对应。 (2)调用时把实参值传递给对应的形参。其中值传递)调用时把实参值传递给对应的形参。其中值传递(形参前有(形参前有ByVal说明)时实参的值不随形参的值变化而改变。说明)时实参的值不随形参的值变化而改变。而地址传递时实参的值随形参值的改变而改变。而地址传递时实参的值随形参值的改变而改变。6.2 Sub过程过程浙江科技学院教信系计算机基础教学网站:浙江科技学

10、院教信系计算机基础教学网站:www.Goit.Netwww.Goit.Net目录6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 小结 作业 (3)当参数是)当参数是数组数组时,形参与实参在参数声明时应省略时,形参与实参在参数声明时应省略其维数,但括号不能省。其维数,但括号不能省。 (4)调用子过程的形式有两种,用)调用子过程的形式有两种,用Call关键字时,实参关键字时,实参必须加圆括号括起,反之则实参之间用必须加圆括号括起,反之则实参之间用“,”分隔。分隔。 例:调用上面定义的例:调用上面定义的Swap子过程的形式:子过程的形式: Swap a,b Call Swap(a,b

11、)6.2 Sub过程过程浙江科技学院教信系计算机基础教学网站:浙江科技学院教信系计算机基础教学网站:www.Goit.Netwww.Goit.Net目录6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.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 过程调用的执行过程:过程调用的执行过程:6.2 Sub过程过程浙江科技学院教信系计算机基础教学网站:浙江科技学院教信系计算机基础教学网站:www.Goit

12、.Netwww.Goit.Net目录6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 小结 作业 6.3 Function过程过程 Visual Basic函数分为内部函数和外部函数,外部函数是函数分为内部函数和外部函数,外部函数是用户根据需要用用户根据需要用Function关键字定义的函数过程,关键字定义的函数过程,与子过程与子过程不同的是函数过程将返回一个值不同的是函数过程将返回一个值 。 6.3.1 函数过程(函数过程(Function过程)的定义过程)的定义Public|PrivateStaticFunction 函数名函数名()As 函数名函数名=返回值返回值 Exit

13、 Function 函数名函数名=返回值返回值 End Function如:如:public function fac(n as integer) as integer函数体浙江科技学院教信系计算机基础教学网站:浙江科技学院教信系计算机基础教学网站:www.Goit.Netwww.Goit.Net目录6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 小结 作业 说明:说明:(1)函数名:函数名:命名规则与变量名规则相同。命名规则与变量名规则相同。(2)在函数体内,函数名可以当变量使用,函数的返回值就)在函数体内,函数名可以当变量使用,函数的返回值就是通过对函数名的赋值语句来实现的

14、,是通过对函数名的赋值语句来实现的,在函数过程中至少要对在函数过程中至少要对函数名赋值一次。函数名赋值一次。(3)AS类型:类型:是指函数返回值的类型,若省略,则函数返回是指函数返回值的类型,若省略,则函数返回变体类型值(变体类型值(Variant)。)。 (4)Exit Function:表示退出函数过程,常常是与选择结构:表示退出函数过程,常常是与选择结构(If或或Select Case语句)联用,即当满足一定条件时,退出函语句)联用,即当满足一定条件时,退出函数过程。数过程。(5)形参数列表形参数列表:形参的定义与子过程完全相同。:形参的定义与子过程完全相同。 6.3 Function过

15、程过程浙江科技学院教信系计算机基础教学网站:浙江科技学院教信系计算机基础教学网站:www.Goit.Netwww.Goit.Net目录6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 小结 作业 6.3.2 函数的调用函数的调用调用形式如下:调用形式如下: 函数名(实参列表)函数名(实参列表)说明:说明: 在调用时实参和形参的数据类型、顺序、个数必须在调用时实参和形参的数据类型、顺序、个数必须匹配。函数调用只能出现在表达式中,其功能是求得函匹配。函数调用只能出现在表达式中,其功能是求得函数的返回值。数的返回值。6.3 Function过程过程浙江科技学院教信系计算机基础教学网站:

16、浙江科技学院教信系计算机基础教学网站:www.Goit.Netwww.Goit.Net目录6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 小结 作业 例例6.2 求求fac(n)=n!的函数的函数分析:根据求分析:根据求n!的定义!的定义 n!=n*(n-1)!,可写成如下形式:,可写成如下形式: 1,n=1Fac(n)= n*fac(n-1),n16.3 Function过程过程浙江科技学院教信系计算机基础教学网站:浙江科技学院教信系计算机基础教学网站:www.Goit.Netwww.Goit.Net目录6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 小结 作

17、业 6.3 Function过程过程浙江科技学院教信系计算机基础教学网站:浙江科技学院教信系计算机基础教学网站:www.Goit.Netwww.Goit.Net目录6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 小结 作业 6.4 过程之间参数的传递过程之间参数的传递Visual Basic中不同模块(过程)之间数据的传递有两种方式:中不同模块(过程)之间数据的传递有两种方式: 通过过程调用实参与形参的结合实现;通过过程调用实参与形参的结合实现;使用全局变量来实现各过程中共享数据。使用全局变量来实现各过程中共享数据。 6.4.1 6.4.1 形式参数与实际参数形式参数与实际参数

18、1、形式参数、形式参数 是指在定义通用过程时,出现在是指在定义通用过程时,出现在Sub或或Function语句中语句中的的变量名后面圆括号内的数变量名后面圆括号内的数,是用来接收传送给子过程的是用来接收传送给子过程的数据数据,形参表中的各个变量之间用逗号分隔。,形参表中的各个变量之间用逗号分隔。 Function tim(a() as integer) 浙江科技学院教信系计算机基础教学网站:浙江科技学院教信系计算机基础教学网站:www.Goit.Netwww.Goit.Net目录6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 小结 作业 2、实际参数、实际参数 实际参数是指在调

19、用实际参数是指在调用Sub或或Function过程时,写入子过程过程时,写入子过程名或函数名后括号内的参数,其作用是名或函数名后括号内的参数,其作用是将它们的数据(数值或将它们的数据(数值或地址)传送给地址)传送给Sub或或Function过程与其对应的形参变量。过程与其对应的形参变量。 实参可由常量、表达式、有效的变量名、数组名(后加左、实参可由常量、表达式、有效的变量名、数组名(后加左、右括号,如右括号,如A( ))组成,实参表中各参数用逗号分隔。)组成,实参表中各参数用逗号分隔。For i=1 to 5A(i)=iNext IT1=tim(a()6.4 过程之间参数的传递过程之间参数的传

20、递浙江科技学院教信系计算机基础教学网站:浙江科技学院教信系计算机基础教学网站:www.Goit.Netwww.Goit.Net目录6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 小结 作业 6.4.2 参数传递(虚实结合)参数传递(虚实结合) 参数传递指主调过程的实参(调用时参数传递指主调过程的实参(调用时已有确定值和内存已有确定值和内存地址的参数地址的参数)传递给被调过程的形参,参数的传递有两种方)传递给被调过程的形参,参数的传递有两种方式:按值传递、按地址传递。形参前加式:按值传递、按地址传递。形参前加“ByVal”关键字的是关键字的是按按值传递。缺省值传递。缺省或加或加“

21、ByRef”关键字的为按关键字的为按地址传递地址传递。 6.4 过程之间参数的传递过程之间参数的传递浙江科技学院教信系计算机基础教学网站:浙江科技学院教信系计算机基础教学网站:www.Goit.Netwww.Goit.Net目录6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 小结 作业 传址与传值传址与传值 传址:传址: 形参得到的是实参的地址,当形参值的改变同时形参得到的是实参的地址,当形参值的改变同时也改变实参的值。也改变实参的值。 传值:传值: 形参得到的是实参的值,形参值的改变不会影响形参得到的是实参的值,形参值的改变不会影响实参的值。实参的值。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例例6.3 6.4 过程之间参数的传

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论