Visual Basic语言程序设计08 ryjc vb ch7 过程与函数
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
见例7.4、例7.5
7.4 事Байду номын сангаас过程
事件过程就是在响应事件时执行的程序段 格式:
Private Sub 对象名_事件名([形参列表]) 变量定义语句 执行语句
End Sub
说明:
(1)事件过程的名字是由对象名、下划线“_”和事件名组成,对象 可以是窗体或者控件
如:窗体双击事件的事件过程名是Form_DblClick (2)虽然可以自己输入首行的事件过程名,但使用系统提供的框 架会更方便,模板自动将正确的过程名包括进来
见例7.6
7.5 参数传递的方式
形式参数(形参)
在Sub和Function过程的定义中出现的变量参数
实际参数(实参)
在调用Sub和Function过程时传递给Sub和Function过程的常量、 变量、表达式或数组
在调用一个过程时,一般主调过程和被调过程之间有数据 传递,即将主调过程的实参(调用时已有确定值和内存地 址的参数)传递给被调过程的形参,完成实参和形参的结 合,然后执行被调过程体
见例7.7、例7.8
7.5.2 传引用
用ByRef对形参进行声明,则表示该参数在调用时采用传 引用方式,这是默认的参数传递方式
实参变量名
存储单元
形参变量名
调用过程语句执行时,将实参的地址传给了形参,形参和 实参实际上使用的是同一个存储单元
所以传引用方式与传值方式最大的区别在于,传引用调用 时形参的值发生变化,会使实参的值也同步发生变化
数值型函数过程的默认返回值是0,字符型函数过程的默认返回值是空串(“”)
见例7.3
7.3.2 函数过程的调用
函数过程的调用形式与内部函数相同,即在表达式中写出它的名称 和相应的实参
由于函数过程有返回值,因此一般将函数过程的调用作为赋值语句 的一部分 格式:
变量=函数过程名([实参列表])
End Sub
说明:
参数表中的参数称为形参,若有多个行参,各个参数之间用逗号分隔,一 般表示形参的类型、个数、位置,只能是简单变量、数组名、自定义类型, 不能是常量、数组元素、表达式,定义时是无值的,只有在过程被调用时, 才获得相应的值
见例7.1
7.2.2 子过程的调用
子过程调用
方法一:Call 过程名[(参数列表)] 方法二:过程名 [参数列表]
说明:
(1)过程调用时的参数称为实参,用Call关键字时,若有实参,则 实参必须用圆括号括起,无实参圆括号省略,不用用Call关键字时, 过程的参数直接跟在过程名后面,不用括号把实参括起来 (2)在调用过程的语句中,实参的个数、类型以及前后次序需和 被调用过程的形参一致,有多个参数时,用逗号分隔。 (3)在调用过程中,由实参将数据传递给相应的形参。形参在过 程被调用时才被分配内存空间
第7章 过程
子过程 函数过程 事件过程 参数传递的方式 嵌套调用与递归调用 作用域与生存期 滚动条 直线和形状
7.1 概述
在VB程序设计中,为相对独立的功能模块编写的一段程 序代码就称之为过程
常用的过程有:
(1)子过程(Sub过程) (2)函数过程(Function过程) (3)事件过程
VB语言的参数传递有传值、传引用和传数组三种方式
传数组方式可以归结为传引用方式的一种特例
7.5.1 传值
用ByVal对形参进行声明,则表示该参数在调用时采用传 值方式
传值就是将实参的值传递给形参,在调用过程时,将实参 的值复制给形参,这样形参和实参在内存中不同的存储单 元中,如果在程序执行过程中,形参的值改变了,不会影 响主调程序中的实参的值
说明:
(1)必须给参数加上括号,即使没有参数也不能省略括号 (2)实参必须与形参个数相同,位置与类型一一对应。可以是同类型的 常量、变量、表达式。 (3)函数调用作为表达式,出现在赋值语句的右侧。执行这条赋值语句 时,先对函数过程进行调用,然后把过程的返回值带回来并赋给某个变 量,从而使主调过程获得这个返回值。
见例7.2
7.3 函数过程
7.3.1 函数过程的定义 函数过程是过程的另一种形式,它在执行完毕之后会产生一个返回值 函数过程中的运算结果直接返回调用语句处
[Public | Private] Function 过程名([形参列表]) [As 类型] <语句组1> [函数名=返回值] [Exit Function] <语句组2> [函数名=返回值]
不跟圆括号和下标。 (3)传数组方式本质上是传引用方式的特例,发生过程调用时,把
数组名作为实参传递给形参数组,使得形参数组和实参数组的起始地 址相同。由于两个数组的类型也完全相同,导致这两个数组各自的元 素在内存共占同一段空间。 (4)对于每一次过程调用时形参数组的长度,可以调用LBound函数, 得到形参数组的下界;调用UBound函数,得到形参数组的上界 见例7.11、例7.12
7.2 子过程
7.2.1 子过程的定义 可以被其他程序或主程序调用,并且可以完成特定功能的一段程序为
子过程,它是以Sub关键字开头的,因此也称为Sub过程 子过程由过程头部和过程体组成,过程头部应该有过程名,一般还应
有参数表,在过程体中书写语句
[Public | Private] Sub 子过程名([参数列表]) 变量定义语句 执行语句 [Exit Sub]
见例7.9、例7.10
7.5.3 传数组
VB允许将数组作为实参传送到过程中,实现对一组数据的处理 传数组方式可以归结为传引用方式的一种特例 说明: (1)声明数组参数时,由于无法预知数组的长度,所以可设置一个
动态数组,如a(),可不必声明长度。 (2)调用过程时,将要传递的数组名放在实参表中,数组名后面可
End Function
说明:
[As 类型]是指函数过程的类型,即返回值的类型。如果没有进行类型说明,则系 统默认该函数过程的返回值类型为变体型(Variant)
在函数体内,函数名可以当变量使用,函数的返回值就是通过对函数名的赋值语 句来实现的,在函数过程中一般至少要对函数名赋值一次
如果在过程体中没有对函数名赋值的语句,则该函数过程会返回一个默认值
7.4 事Байду номын сангаас过程
事件过程就是在响应事件时执行的程序段 格式:
Private Sub 对象名_事件名([形参列表]) 变量定义语句 执行语句
End Sub
说明:
(1)事件过程的名字是由对象名、下划线“_”和事件名组成,对象 可以是窗体或者控件
如:窗体双击事件的事件过程名是Form_DblClick (2)虽然可以自己输入首行的事件过程名,但使用系统提供的框 架会更方便,模板自动将正确的过程名包括进来
见例7.6
7.5 参数传递的方式
形式参数(形参)
在Sub和Function过程的定义中出现的变量参数
实际参数(实参)
在调用Sub和Function过程时传递给Sub和Function过程的常量、 变量、表达式或数组
在调用一个过程时,一般主调过程和被调过程之间有数据 传递,即将主调过程的实参(调用时已有确定值和内存地 址的参数)传递给被调过程的形参,完成实参和形参的结 合,然后执行被调过程体
见例7.7、例7.8
7.5.2 传引用
用ByRef对形参进行声明,则表示该参数在调用时采用传 引用方式,这是默认的参数传递方式
实参变量名
存储单元
形参变量名
调用过程语句执行时,将实参的地址传给了形参,形参和 实参实际上使用的是同一个存储单元
所以传引用方式与传值方式最大的区别在于,传引用调用 时形参的值发生变化,会使实参的值也同步发生变化
数值型函数过程的默认返回值是0,字符型函数过程的默认返回值是空串(“”)
见例7.3
7.3.2 函数过程的调用
函数过程的调用形式与内部函数相同,即在表达式中写出它的名称 和相应的实参
由于函数过程有返回值,因此一般将函数过程的调用作为赋值语句 的一部分 格式:
变量=函数过程名([实参列表])
End Sub
说明:
参数表中的参数称为形参,若有多个行参,各个参数之间用逗号分隔,一 般表示形参的类型、个数、位置,只能是简单变量、数组名、自定义类型, 不能是常量、数组元素、表达式,定义时是无值的,只有在过程被调用时, 才获得相应的值
见例7.1
7.2.2 子过程的调用
子过程调用
方法一:Call 过程名[(参数列表)] 方法二:过程名 [参数列表]
说明:
(1)过程调用时的参数称为实参,用Call关键字时,若有实参,则 实参必须用圆括号括起,无实参圆括号省略,不用用Call关键字时, 过程的参数直接跟在过程名后面,不用括号把实参括起来 (2)在调用过程的语句中,实参的个数、类型以及前后次序需和 被调用过程的形参一致,有多个参数时,用逗号分隔。 (3)在调用过程中,由实参将数据传递给相应的形参。形参在过 程被调用时才被分配内存空间
第7章 过程
子过程 函数过程 事件过程 参数传递的方式 嵌套调用与递归调用 作用域与生存期 滚动条 直线和形状
7.1 概述
在VB程序设计中,为相对独立的功能模块编写的一段程 序代码就称之为过程
常用的过程有:
(1)子过程(Sub过程) (2)函数过程(Function过程) (3)事件过程
VB语言的参数传递有传值、传引用和传数组三种方式
传数组方式可以归结为传引用方式的一种特例
7.5.1 传值
用ByVal对形参进行声明,则表示该参数在调用时采用传 值方式
传值就是将实参的值传递给形参,在调用过程时,将实参 的值复制给形参,这样形参和实参在内存中不同的存储单 元中,如果在程序执行过程中,形参的值改变了,不会影 响主调程序中的实参的值
说明:
(1)必须给参数加上括号,即使没有参数也不能省略括号 (2)实参必须与形参个数相同,位置与类型一一对应。可以是同类型的 常量、变量、表达式。 (3)函数调用作为表达式,出现在赋值语句的右侧。执行这条赋值语句 时,先对函数过程进行调用,然后把过程的返回值带回来并赋给某个变 量,从而使主调过程获得这个返回值。
见例7.2
7.3 函数过程
7.3.1 函数过程的定义 函数过程是过程的另一种形式,它在执行完毕之后会产生一个返回值 函数过程中的运算结果直接返回调用语句处
[Public | Private] Function 过程名([形参列表]) [As 类型] <语句组1> [函数名=返回值] [Exit Function] <语句组2> [函数名=返回值]
不跟圆括号和下标。 (3)传数组方式本质上是传引用方式的特例,发生过程调用时,把
数组名作为实参传递给形参数组,使得形参数组和实参数组的起始地 址相同。由于两个数组的类型也完全相同,导致这两个数组各自的元 素在内存共占同一段空间。 (4)对于每一次过程调用时形参数组的长度,可以调用LBound函数, 得到形参数组的下界;调用UBound函数,得到形参数组的上界 见例7.11、例7.12
7.2 子过程
7.2.1 子过程的定义 可以被其他程序或主程序调用,并且可以完成特定功能的一段程序为
子过程,它是以Sub关键字开头的,因此也称为Sub过程 子过程由过程头部和过程体组成,过程头部应该有过程名,一般还应
有参数表,在过程体中书写语句
[Public | Private] Sub 子过程名([参数列表]) 变量定义语句 执行语句 [Exit Sub]
见例7.9、例7.10
7.5.3 传数组
VB允许将数组作为实参传送到过程中,实现对一组数据的处理 传数组方式可以归结为传引用方式的一种特例 说明: (1)声明数组参数时,由于无法预知数组的长度,所以可设置一个
动态数组,如a(),可不必声明长度。 (2)调用过程时,将要传递的数组名放在实参表中,数组名后面可
End Function
说明:
[As 类型]是指函数过程的类型,即返回值的类型。如果没有进行类型说明,则系 统默认该函数过程的返回值类型为变体型(Variant)
在函数体内,函数名可以当变量使用,函数的返回值就是通过对函数名的赋值语 句来实现的,在函数过程中一般至少要对函数名赋值一次
如果在过程体中没有对函数名赋值的语句,则该函数过程会返回一个默认值