学学习网 手机版

学学习网

学习路径: 学习首页 > 应用开发 > vb >

第六节 VB的过程设计及子过程(Sub)的定义与调(2)

设置字体:
----------------------------------

  2)按回车键,即可创建一个Sub过程样板
  3)在新创建的过程中输入内容
  3.Sub子过程的调用
  (1) 用Call语句调用Sub过程
  语法:Call 过程名(实在参数表)
  实在参数的个数、类型和顺序,应该与被调用过程的形式参数相匹配,有多个参数时,用逗号分隔。
  (2)把过程名作为一个语句来用
  语法:过程名 [实参1[,实参2……]]
  它与(1)的不同点是:去掉了关键字和实参列表的括号
  如上例中可以改成:area a,b,c,w
6.3参数的传递
   1.形参与实参的概念
  形参:指出现在Sub 和Function过程形参表中的变量名、数组名,过程被调用前,没有分配内存,其作用是说明自变量的类型和形态以及在过程中的角色。形参可以是:
  1)除定长字符串变量之外的合法变量名;
  2)后面跟()括号的数组名。
  实参:是在调用Sub 和Function过程时,传送给相应过程的变量名、数组名、常数或表达式。在过程调用传递参数时,形参与实参是按位置结合的,形参表和实参表中对应的变量名可以不必相同,但位置必须对应起来。
  形参与实参的关系:形参如同公式中的符号,实参就是符号具体的值;调用过程:即实现形参与实参的结合,也就是把值代入公式进行计算。
  2. 按值传递参数(定义时加ByVal)
  按值传递参数(Passed By Value)时,是将实参变量的值复制一个到临时存储单元中,如果在调用过程中改变了形参的值,不会影响实参变量本身,即实参变量保持调用前的值不变。
  3.按地址传递参数(定义时没有修饰词或带关键字ByRef)
  按地址传递参数时,把实参变量的地址传送给被调用过程,形参和实参共用内存的同一地址。在被调用过程中,形参的值一旦改变,相应实参的值也跟着改变。如果实参是一个常数或表达式,VB会按“传值”方式来处理。
  4.数组参数
  VB允许把数组作为形参出现在形参表中,语法: 形参数组名() [As 数据类型]
  形参数组只能按地址传递参数,对应的实参也必须是数组,且数据类型相同。调用过程时,把要传递的数组名放在实参表中,数组名后面不跟圆括号。在过程中不可以用Dim语句对形参数组进行声明,否则会产生“重复声明”的错误。但在使用动态数组时,可以用ReDim语句改变形参数组的维界,重新定义数组的大小。

  5. 对象参数
  VB中可以向过程传递对象,在形参表中,把形参变量的类型声明为“Control”,可以向过程传递控件;若声明为“Form”,则可向过程传递窗体。对象的传递只能按地址传递。
 
6.4变量、过程的作用域
  1. VB应用程序的组成:

  2. 过程的作用域

  3. 变量的作用域

  4.静态变量

  用Static声明的静态变量,在每次调用过程时保持原来的值,不重新初始化。而用Dim声明的变量,每次调用过程时,重新初始化
   例:显示1到5个数。

  5.同名变量

  对不同范围内出现的同名变量,可以用模块名加以区别。一般情况下,当变量名相同而作用域不同时,优先访问局限性大的变量。
 
6.5递归过程
  1.递归的概念
  通俗的讲,用自身的结构来描述自身就称为“递归”。如对阶乘运算的定义就是递归的:
  n!=n(n-1)!     (n-1)!=(n-1)(n-2)!
  2.递归子过程和递归函数
  VB 允许一个自定义子过程或函数过程在过程体的内部调用自己,这样的子过程或函数就叫递归子过程和递归函数。递归过程包含了递推和回归两个过程。构成递归的条件是:
 (1)递归结束条件和结束时的值
 (2)能用递归形式表示,并且递归向结束条件发展。
  例:编制程序求fac(n)=n!的函数
  3.注意事项
 (1)递归算法设计简单,但消耗的上机时间和占据的内存空间比非递归大
 (2) 设计一个正确的递归过程或函数过程必须具备两点:

  1)具备递归条件;

  2)具备递归结束条件
 (3) 一般而言,递归函数过程对于计算阶乘、级数、指数运算有特殊效果。
----------------------------------
课程列表
重点难点
赞助链接