首页 理论教育测量平差程序设计:过程的定义

测量平差程序设计:过程的定义

【摘要】:VB程序是由过程组成的,每个过程是为了完成设定的任务,由一组独立的程序代码组成。图1.11添加过程对话框在“添加过程”对话窗口中只需确定过程名称、类型等信息后回车确定,VB系统即可自动生成“过程”的首尾关键字,用户所需做的工作只是在其中编写代码。

VB程序是由过程组成的,每个过程是为了完成设定的任务,由一组独立的程序代码组成。VB中有三大类过程:事件过程、通用过程、函数过程。

事件过程是当对象的某个事件发生时,对该事件做出响应的程序代码段,它是应用程序的主体。

当多个不同的事件过程需要执行一段相同的代码,完成相同或相似的任务时,为了避免程序代码的重复,同时便于程序代码的修改,往往把这段代码独立出来,作为一个单独的功能单元,这样的过程称为通用过程或函数过程。

实际上为了使程序结构清晰,便于阅读和维护,常常将语句较多而功能单一的程序段,设计成通用过程或函数过程,如平差程序设计中的“法方程组成”、“高斯约化解法方程”和“角度转弧度”等,都是设计为通用过程或函数过程。

过程的建立可以执行菜单命令:“视图\代码窗口”。在代码编辑器出现后,执行菜单命令“工具\添加过程”,这时将出现如图1.1所示的“添加过程”对话窗口。

图1.11 添加过程对话框

在“添加过程”对话窗口中只需确定过程名称、类型等信息后回车确定,VB系统即可自动生成“过程”的首尾关键字,用户所需做的工作只是在其中编写代码。

1.事件过程(Event过程)

事件过程是由VB控件的事件发生驱动(或由系统自动调用)。控件的事件由VB系统设置,当用户操作对象产生一个事件时,VB即自动启动该事件过程。

事件过程语法结构如下:

2.通用过程(Sub过程)

过程不与特定事件相联系,只能由其他过程中的指令来调用。语法为:(www.chuimin.cn)

使用Public关键字声明的过程,在应用程序中可随处调用,而选用Private声明,则只有该过程所在模块可以调用。Static选项使过程中所有变量值,在整个程序运行过程中都存在。<形参表>中形参的语法为:

[Optional][ByVal∣ByRef][ParamArray]<变量名][()][As《类型》][=《缺省值》]…

参数ByVal、ByRef分别声明实参和形参之间是传值或传址,但并不是所有被关键字ByRef修饰的形参在过程调用时都是按地址传递数值。只有实参是单个变量时才能实现按地址传递,若实参是常量或表达式,实际进行的是按值传递。如希望将某一ByRef修饰单个变量按值传递,可对其加以括号,VB就将它理解为一个表达式。

Optional加在形参前,将其设为“可选参数”。如果过程的某一形参设为可选参数,则在调用此过程时可以不提供对应于这个形参的实参。未提供实参的形参在调用时被赋予形参类型的默认值。若过程中一个形参设定为可选后,后面所有的形参都应用关键字Optional定义为可选参数。调用时若省略的实参不是最后一个时,其位置要用逗号保留。

使用ParamArray关键字声明的数组,调用时可接受任意多个实参。ParamArray关键字不可与Optional、ByVal、ByRef关键字针对同一形参使用。一个过程只能有一个ParamArray修饰的形参,有多个形参时,ParamArray修饰的形参必须是最后一个。

3.函数过程

函数过程(Function过程)与通用过程(Sub过程)功能完全相同,其唯一的差异在于函数过程名本身作为一个变量可返回一个值。其语法为:

虽然函数过程和通用过程功能完全相同,但是习惯上将功能相对简单、返回单一计算结果的程序段设计为函数过程,而将语句较长、功能较为复杂、返回多个计算结果的程序段设计为通用过程。

4.过程的嵌套、递归调用

VB的过程定义是相互平行和孤立的,一个过程内不可包含另一过程。但可以嵌套调用过程,若一个过程调用它自身,就称为递归。