- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.2 Sub过程 5.2.1 Sub过程的定义 Sub过程也称为子过程,其特点是没有返回值。Sub过程可以有参数,也可无参数。它的定义方法为: [Static][Private][Public] Sub 过程名称([形式参数列表]) 语句块 End Sub 说明: (1)Sub过程以Sub开始,以End Sub结束,在两者之间的描述过程操作的语句块,称为“过程体”。 (2)过程名的命名规则与变量的命名规则相同。 (3)参数Static表示在过程体中的变量为Static的,则在过程调用过程中,局部变量值保持不变;如果没有Static关键字,则过程体中的局部变量的值在每次调用时被初始化为0。 (4)Private说明过程是私有过程,只能被本模块中的其它过程访问。 (5)Public说明过程是公有过程,可以在程序的任何地方访问。 (6)形式参数列表描述形式参数的类型、个数及次序,在过程定义时无具体值,也不分配存储空间。在过程被调用时,实际参数把实际的值传递给形式参数。过程可以没有形式参数,此时括号中为空,但括号不能省略。形式参数的定义形式为: [ByVal | ByRef] 变量名[( )] [As 类型] ①ByVal说明该参数是传值参数;否则该参数是引用参数。 ②ByRef说明该过程调用时,参数是按地址传递的。 ③形式参数可以是变量,也可以是数组,如果是数组,则需要括号。 ④类型为变量的类型,如果省略类型,表示该变量为变体型。 (7)Sub过程没有返回值。 (8)如果要提前退出Sub过程,可以使用语句Exit Sub。 【例5-1】编写一个过程计算1+2+3+……+200,并输出结果。 具体操作步骤和源程序参见教材 【例5-2】编写一个过程,实现两个整形数据的交换。 具体操作步骤和源程序参见教材 5.2.2 Sub过程的调用 Sub过程的调用语句为: [Call] 过程名([参数表]) 说明: (1)Call关键字可以省略,例如computer()或Call computer() ; (2)参数列表的括号也可以省略,例如swap x,y、computer; (3)调用过程时,首先为形式参数分配临时的存储空间,再将实际参数的值传递给形式参数对应的临时空间。 【例5-3】编写程序调用例5-1的过程。 具体操作步骤和源程序参见教材 5.2.3 过程参数的传递 1.形参与实参 过程定义时参数列表中的参数为形式参数,形式参数为变量。 过程调用时调用语句中的参数为实际参数,实际参数可以为常量、变量、表达式、数组等。 形式参数与实际参数的数量必须相等,每一对对应的形式参数与实际参数的类型必须是相同的。即使实参与形参的名字相同,也代表两个不同的变量。 2.按值传递与按地址传递 过程调用时把实际参数的值传递给形式参数,传递的方式可以有按值传递和按地址传递。形参列表中用ByVal关键字定义的参数为按值传递,用ByRef定义的参数为按地址传递,默认为按值传递。 当按值传递时,系统为形参分配临时存储空间,将实参的值传递给形参,放在临时空间中,调用过程中不再访问实参,因此在过程体中只改变形参变量的值,不会影响到实参。 当按地址传递时,将实参的地址传递给形参,即形参与实参共享相同的临时存储空间,因此过程体中对于形参的改变也会影响到实参的值。 【例5-4】编写程序调用例5-2的过程。 具体操作步骤和源程序参见教材 【例5-5】使用按值传递参数重新实现例5-4的过程。 具体操作步骤和源程序参见教材 3.数组参数 如果使用数组作为过程的参数,就称为数组参数。使用数组作参数时,不需要指定数组的下标界限,但必须指明数组的维数,数组名后的一对小括号也不能省略,以便与普通的变量进行区别。例如: Function Shuzu(x( ),y( )) …… End Function 调用语句为:Shuzu(a, b) Shuzu过程的两个形参为数组x、y,从x、y后面的小括号可以看出参数为数组而不是变量。调用语句实参的数组不需要小括号。 数组参数的调用为按地址传递,即把数组a、b的首地址分别赋值给x、y。则在过程体中对x(1)的操作其实就是对a(1)操作。即使形参中的数组使用ByVal说明,该数组参数仍为按地址传递。 【例5-6】编写过程计算数组的各个元素的平均值。 具体操作步骤和源程序参见教材 5.3 Function过程 5.3.1 Function过程的定义 Function过程也称为函数,它与Sub的本质区别是有返回值。Function过程可以有参数,也可无参数。 它的定义方法为: [Static][Private][Public] Fu
您可能关注的文档
- 祝贺神舟十一号载人飞船发射成功讲述.doc
- 神奇的九寨沟讲述.ppt
- 神奇的机器人教学讲述.doc
- 磁现象和磁场、磁感应强度详解.ppt
- 神奇的枕头讲述.pptx
- 社团通平台解决方案161018V1讲述.ppt
- 神奇的植物王莲讲述.ppt
- 第5章_总体设计详解.ppt
- 社会7-3-51石油宝库详解.ppt
- 社会人文/地域文化详解.ppt
- 人教版数学六年级上册 第一单元 第5课时 分数乘小数.pptx
- 人教版数学六年级上册 第四单元 第3课时 比的应用.pptx
- 人教版数学六年级上册 第五单元 第5课时 圆的面积-2.pptx
- 人教版数学六年级上册 第一单元 第7课时 解决问题-1.pptx
- 人教版数学六年级下册 第二单元 第4课时 利率.pptx
- 人教版数学六年级上册 第一单元 第8课时 解决问题-2.pptx
- 人教版数学六年级下册 第五单元 第2课时 鸽巢问题的一般形式.pptx
- 人教版数学六年级下册 第四单元 整理和复习.pptx
- 人教版数学六年级上册 第一单元 第3课时 分数乘分数-1.pptx
- 人教版数学六年级下册 第六单元复习第2课时 可能性.pptx
文档评论(0)