第9章 过程.ppt_第1页
第9章 过程.ppt_第2页
第9章 过程.ppt_第3页
第9章 过程.ppt_第4页
第9章 过程.ppt_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、Visual Basic语言编程,第9章程序,第2节,第9章程序,第9.1节子程序,第9.2节函数程序,第9.3节参数传递,第9.4节可选参数和变量参数,第9.5节对象参数,第9.6节本地内存分配,第9.7节外壳函数,第3节,第9.1节子程序。我们将子程序定义的子程序称为子程序进程或子进程,函数定义的函数称为函数进程或函数进程。9.1.1建立子过程9.1.2调用子过程9.1.3一般过程和事件过程,4,9.1.1建立子过程,1定义子过程一般子过程的结构类似于以前多次看到的事件过程的结构。一般格式如下:静态私有公共子过程名(参数表列)语句块退出子语句块结束子过程可以用上述格式定义,例如:私有子测试

2、()打印这是一个子过程结束子过程,5.9.1.1建立一个子过程,说明(1)子过程以子过程开始,以结束子过程结束,子过程和结束子过程之间是一个描述过程操作的语句块,称为“过程体”或“子程序体”。(2)当程序执行到结束Sub时,退出进程并返回到调用语句下面的语句。您也可以使用一个或多个退出子语句从过程体中的过程中退出。(3)子过程不能嵌套。6,9.1.1建立子过程,2建立子过程在表格模块或标准模块中,键入子过程的名称,在输入回车后,系统将自动添加结束子语句以形成一个过程,在该过程中可以添加代码。在Sub语句之前,您可以使用诸如Public或Private之类的语句来声明流程的范围。7,9.1.2调

3、用子过程,1带有调用语句的调用子过程格式:调用带有调用语句的过程时调用过程名(实际参数),如果过程本身没有参数,可以省略“实际参数”和括号;否则,应给出相应的实际参数并放在括号中。“实际参数”是传递给子过程的变量或常数。示例:调用试运行(a,b),8,9.1.2调用子过程,2。使用过程名作为语句。当调用子过程时,如果省略了关键字调用,则成为调用子过程的第二种方式。与第一种方法相比,它有两个不同之处:(1)去掉了关键词Call;(2)去掉“实际参数”的括号。示例:试运行a,b,9,9.1.2调用子过程,示例:对于I=1到n个打印空间(n-I),有一个一般过程启动子过程(n%)。对于j=1至2 *

4、 i - 1打印*;在事件过程中,调用语句用于调用私有子命令1 _ click()调用star (6)结束子,调用语句也可以以star 6或star (6)、10、9.1.3一般过程和事件过程的形式省略,这也是一个特殊的子过程。控件的事件过程由控件名称(名称属性)、下划线和事件名称组成。表单事件过程由“表单”、下划线和事件名称组成。表单的事件过程不能由用户任意定义,而是由系统指定。控制事件过程的一般格式为:私有|公共子控制名_事件名(参数表)语句组结束子窗体事件过程为:私有|公共子窗体_事件名(参数表)语句组结束子窗体。注意:这只能是一个表单,与表单名称无关。11、9.1.3一般过程和事件过程

5、,事件过程只能以模块、一般过程的形式出现。如果过程名在项目中是唯一的,可以直接用过程名来调用。如果有同名的进程,可以用模块名来限定。格式为:模块名称。流程名称(参数表)示例:夫曼d1_click(),12,9.2功能流程。子进程不直接返回值,但可以作为独立的基本语句调用。函数过程返回一个值,该值通常出现在表达式中。本节将介绍函数过程的定义和调用。,9.2.1建立函数过程,9.2.2调用函数过程,13,9.2.1建立函数过程,函数过程定义的格式如下:静态私有公共函数过程名(参数表列)作为类型语句块过程名表达式退出函数语句块结束函数,14,9.2.1建立函数过程,描述:(1)函数过程以函数开始,以

6、结束函数结束,中间是描述过程操作的语句块,即“过程体”或“函数体”。(2)调用函数过程来返回值,这样它就可以用在像内部函数这样的表达式中。通过“过程名称表达式”,将过程的值赋给“过程名称”。为了使函数过程能够完成指定的操作,通常需要给过程体中的“过程名”赋值。15,9.2.1建立函数过程,例如:将函数搜索(下限%,上限%)为布尔值.如果下限=上限,则b搜索=真退出函数,否则b搜索=假结束,如果.这个例子定义了一个搜索过程,它有两个整数参数,返回值是boolean。该过程根据发送给它的实际参数返回true或false。16,9.2.2,相对简单,可以像VB内部函数一样调用。函数过程可以返回值,因

7、此它可以被视为一个函数,与内部函数(如Sqr、Str、Chr等)没有什么不同。),除了内部函数由语言系统提供,而函数过程由用户自己定义。17,9.2.2调用函数过程,VB过程出现在表单模块和标准模块中。您可以在表单模块中定义和编写子程序过程、函数过程和事件过程,但在标准模块中只能定义子程序过程和函数过程。18、9.3参数传递,当调用一个流程时,必须将实际参数传递给该流程,完成形式参数和实际参数的组合,然后使用实际参数执行被调用的流程。表格9.3.1参与从实际参数9.3.2的参考9.3.3传输阵列参数9.3.4,表格19、9.3.1参与实际参数。形式参数(形式参数)是出现在子过程和函数过程定义中

8、的变量名。实际参数(实际参数)是在调用子程序或函数过程时传递给它们的常量、变量、表达式或数组。在Visual Basic中,有两种方法可以发送参数,即通过位置和名称。20,9.3.1表格参与实际参数,1。按位置转移意味着按顺序转移参数。使用这种方法时,实际参数的顺序必须与形式参数的顺序一致。例如,定义了以下过程:子测试子(p1 %,p2!P3 $).结束Sub可以使用下面的语句来调用程序:调用测试sub。Tset),从而完成参与争论转移的表格。21,9.3.1表格参与论证,2。命名参数传输意味着显式指出与参数一起传递的参数,并用“:=”连接参数和参数。与基于位置的传输不同,命名传输不受位置顺序

9、的限制。例如,建立以下一般程序:子add _ num (fvar%,svar%,tvar%) c=(fvar svar) * tvar打印c结束子。如果使用按位置组合,调用语句如下:add_num 4,6,8,22,9.3.1表单参与参数。2.名称转移如果使用名称转移,以下语句相当于Add _ Num Fvar3360=4,Svar3360=6,TVAr3360=8 Add _ Num Svar3360=6,Fvar:=4,TVAr3360=8 Add _ Num TVAr3360=8,Svar Fvar:=,23,9.3.2参考。在VB中,参数有两种传输方式,一种是通过地址传输,另一种是通过

10、值传输。传送的地址习惯上被称为参考。定义一般过程时,参数前面有一个关键字ByRef(通常省略),因此参数是通过引用(即通过地址)传输的。24,9.3.2,例如:Sub a(m%,n%) m=m 1 n=n 1打印m;n结束子专用子窗体_单击()尺寸x%,y% x=5 :y=10调用a(x,y)打印x;y端接头,两次打印的程序结果是相同的。都是6/11。参数的值存储在内存的某个地址中。当通过引用调用一个过程时,参数的地址实际上被传递给过程中的形式参数。因此,变量的地址与被调用过程中相应参数的地址相同。这样,如果一般过程中的操作修改了形式参数的值,它也修改了传递给过程的实际参数的值。25,9.3.

11、3,这意味着将参数的值而不是其地址传输到形式参数。在这种情况下,系统将待转移的变量复制到一个临时单元,然后将临时单元的地址转移到被调用的通用过程。因为一般过程不访问变量(参数)的原始地址,所以它不会改变原始参数的值,并且所有的改变都是在形式参数上进行的。定义一般过程时,如果参数前面有关键字ByVal,则该参数按值传输,否则按引用(即按地址)传输。26,9.3.3,例如:sub a (byval m%,byval n %)m=m1n=n1打印m;n结束子专用子窗体_单击()尺寸x%,y% x=5 :y=10调用a(x,y)打印x;y端接头,打印m,n结果6 11打印x,y结果5 10,27,9.

12、3.4数组参数的传输,VB允许数组作为实际参数传输到程序。例如,定义了以下步骤:子步骤(a)、(b)、(c).这个过程有两个形式参数,都是数组。您可以使用以下语句调用该过程:调用S(p)(q(),调用过程S,将实际的参数数组P和Q传递给S中的形式参数数组A和B,28,9.3.4数组参数的传递,指令:(1)为了将数组的所有元素传递给一个过程,应该将数组名称分别放入实参表和形式参数表中, (2)如果您不需要将整个数组转移到一般过程,您只能转移指定的单个元素,这需要将指定元素的下标写在数组名称后面的括号中。 (3) LBound和UBound函数通常用于确定传递给过程的数组的大小。数组的最低下标值可

13、以通过使用LBound函数获得,而数组的最高下标值可以通过使用UBound函数获得。29,9.4可选参数和可变参数,Visual Basic提供了一种非常灵活和安全的参数传输方式,允许使用可选参数和可变参数。调用过程时,可以向过程传递可选参数或任意数量的参数。9.4.1可选参数、9.4.2可变参数、30、9.4.1可选参数。定义流程时,您可以指定一个或多个参数作为可选参数。可选参数用关键字Optional描述。示例:子多(fir%,sec%,可选第三个)n=fir * sec如果没有丢失(第三个),则n=n *第三个结束如果打印n个结束子,则此过程使用语句Multi 10,20 Multi 1

14、0,20,30可调用,31,9.4.1可选参数,说明:(1)可选参数由可选指定,其类型必须为Variant;(ismissing函数测试是否将实际参数值传递给可选参数。有一个论点是假的,没有一个论点是真的。32,9.4.2可变参数。变量参数过程由ParamArray命令定义。一般的格式是:子过程名(参数数组名)“数组名”是一个只有名字和括号的形式参数,但是没有上下界。该类型默认为变量。33,9.4.2可变参数,例如:sub Multi(param array numbers()n=1每个x中的数字n=n * x下一个x打印n个结束Sub,您可以在调用Multi过程时使用任意数量的参数。例如:Multi1,2,3,4 Multi1,2,3,4,5,6,34,9.5对象参数,Visual Basic允许将对象(即窗体或控件)用作常规过程的参数。9.5.1表单参数,9.5.2控制参数,35,9.5对象参数,格式:子过程名(参数表)语句块退出子.结束子“参数表”参数表中的参数类型通常是控件或表单。当调用包含对象的过程时,只能通过地址传输来传输对象。因此,在定义过程时,关键字ByVal不能添加在其参数之前。,36,9.5.1窗体参数,例:子颜色集(aa形式aa .背景色=vbGreen aa .ForeColor

温馨提示

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

最新文档

评论

0/150

提交评论