过程与函数的相关知识
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、过程
过程的定义:是实现一个特定功能的指令序列。
过程的分类:事件和通用过程
子过程与函数
补充知识:所谓事件是指对象所能识别的动作
所谓方法是指对象所做出的活动。
对象事件名的组成:对象名_事件名
事件可以由用户来定义其过程,也可以由系统来定义2、子过程的定义格式
private sub 子过程名(形参列表)
过程体
[exit sub]
end sub
说明:过程定义不能嵌套,但可以嵌套调用,即在一个过程中可以调用另外一个过程。
例如:
private sub max(x as integer,y as integer)
if x>y then
print x
else
print y
endif
end sub
private sub fun()
a=2
b=4
max a,b
end sub
3、函数的定义
格式:
private function函数名(形参列表) as 返回值类型函数过程体
[exit function]
end function
说明:函数过程定义不能嵌套,但可以嵌套调用,即在一个函数过程中可以调用另外一个函数过程;函数过程可以
通过函数名返回一个值即:函数名=返回值。
子过程与函数过程的最大区别是:函数过程可以有返回值。
例如:private function max(x as integer,y as integer) as integer if x>y then
z=x
else
z=y
endif
max=z说明:此处通过函数名返回最大值。
end function
4、过程的调动方法
(1) call 过程名(实参列表)
(2) 过程名 实参列表
(3)变量名=函数过程名(实参列表)
call 过程名 实参列表 (错误的调用方法)
过程名(实参列表) (错误的调用方法)
注:函数调用可以出现在表达式中,而子过程调用不能出现在表达式中。因为子过程没有返回值,而函数有返回值。
5、参数传递
(1)实参和形参:
实参:是指出现在过程调用中的参数。
形参:是指出现在过程定义中的参数。
(2)参数的传递方式
传值方式(byval ):是一种传值的方式,即只是将实参的值传递给形参,此时实参与形参各自分配有不同的空间,故改变形参不影响实参的值。
reference
传地址方式(又称引用方式 byref ):是一种传地址方式,即将实参的地址传递给形参,此时形参与实参指向同一空间,故改变形参会改变实参的值。默认情况下,即没有给出传递方式的情况下,是传地址方式。
传值
例如:
…function max(byval x as integer,byref y as integer,z as integer ) as integer
其中:x是传值方式,y 被显式地说明为传地址方式,而z则被默认设置为传地址方式。
……..
end function
(3)数组参数的传递
a)数组作为过程的实参或形参时,必须在数组名后加上括号。
b)为了把数组的全部元素传递给被调过程,应将数组名分别放入实参表和形参表中,并略去数组的上下界,但括号不能省。注:该情况是传地址方式,不能是传值方式。
c)如果只是把数组元素作为实参,则与普通变量用法相同。
例如:
dim a(10) as integer
定义时:function max( a() as integer ) as integer
……..
end function
调用时:max(a()) 此时,将把整个a数组传递给max函数。