版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第七章过程 所谓过程,就是指具有特定书写格式,包含若干可作为一个整体被执行的代码行的组合。根据执行的方式,可把过程分为事件过程和通用过程。 针对由用户或系统引发的事件,事先编写好的用于改变对象的状态和行为、对相关的信息进行处理的程序代码段称为事件过程。 一个应用程序中的多个窗体可以共享一些代码,或者一个窗体内不同的事件过程可以共享一些代码。为减少编写代码的工作量和使程序结构更加清晰,可以将这些被共享的代码单独设计为一个过程,这个过程称为“通用过程 ” 。通用过程又分为Sub过程和Function过程。 7.1 Sub过程Sub过程的定义格式 访问权限 Sub (形参列表)变量说明语句Exit
2、Sub / 结束过程执行,返回调用处语句End Sub访问权限:Public 或 Private 或 StaticSub过程的创建 方法一:执行菜单命令:视图 | 代码窗口,出现代码编辑器,再执行菜单命令:工具 | 添加过程,出现“添加过程”对话窗口。 方法二:打开代码编辑器,直接在通用模块声明段输入相应代码。Sub过程的调用 Call (实参) 实参 1. 输入一个字符串,逆序输出。(P160) Private Sub invert(x As String, y As String) Call invert(a,b) 2. 计算S = 1! + 2! + + N! (P161) Privat
3、e Sub jc(n As Integer, t As Long) jc i,t7.2 Function过程函数过程的定义访问权限 Function (形参列表) As 数据类型变量说明语句函数名=表达式Exit Function语句End Fuction 建立函数的方法和建立通用过程的方法基本相同。 函数过程的调用 Call (实参) 或 (实参) 调用函数时,参数的传递方式和调用通用过程相同。 例: 定义变量数据交换函数 swap() Function Swap(x As Integer, y As Integer) As Integer Dim Temp As Integer Temp
4、= x x = y y = TempEnd Function Function area(a As Single, b As Single, c As Single) As Single Dim s As Single s=(a+b+c)/2 area=sqr(s*(s-a)*(s-b)*(s-c)End Function已知三角形三边,求三角形面积。(P163) Private Function jc(n As Integer) As Long Dim i%, t& t=1 For i=1 To n t=t*i Next i jc=t End Function求阶乘。(P164)7.3 事件
5、过程事件过程定义格式Private Sub Form_ 事件名( 参数列表 ) 局部变量和常数声明 语句块End Sub Private Sub 控件名 _ 事件名( 参数列表 ) 局部变量和常数声明 语句块End Sub 窗体事件过程控件事件过程事件过程的调用:Call 控件名_事件名例:调用command1的click事件过程 Private Sub Command1_Click() Picture1.Print “Hello”End Sub Call Command1_Click7.4 Sub Main过程Sub Main过程即启动过程,是VB中的一个特殊过程,主要用于在多窗体操作之前对
6、一些条件进行初始化。选择“工程”-“添加模块”,在标准模块窗口中输入Sub Main过程。选择“工程”-“工程属性”,在“通用”选项卡中设置启动对象为Sub Main过程。设置后,运行程序时将首先执行Sub Main过程。7.5 参数传递值传送( ByVal )ByVal :表示参数采用值传送方式;当形参的参数传递方式为值传送时,主调过程将首先为形参分配存储单元,然后将实参值复制给形参,被调过程执行中参与运算的均为形参。过程调用结束返回主调过程时,形参所对应的存储单元被释放,实参保持原来的值不变。 如:计算圆面积 Private Sub Proc(ByVal r%, ByVal s!) (P1
7、67)地址传递或引用传递( ByRef )ByRef :表示参数采用地址传递或引用传递方式,为默认传递方式。当形参的参数传递方式为地址传递时,主调过程将不给给形参分配新的存储空间,而只是将实参的地址传给形参,即形参与实参共用同一存储空间。因此,被调过程执行中对形参的修改,实际就是对实参的修改。 按地址传递,实参必须是变量,如果实参是常量或表达式,则一律按值传递。可选参数 定义过程时,在参数前加了Optional关键字,则该参数是可选参数。可选参数必须排在参数表的后面。过程调用时,对应可选参数的实际参数可以给出,也可以不给出。可选参数在定义时可以设置默认值。如:Function f(a, b,
8、Optional c%=8, Optional d%=9) f=1000*a+100*b+10*c+dEnd Function可变参数 定义过程时,可以定义一个长度不确定的数组为形式参数,过程调用时根据需要给出实参个数。可变参数以ParamArray关键字定义,只用于参数列表中的最后一个参数。如:Function f(ParamArray a() Dim sum As Integer For Each i In a sum=sum+i Next i f=sumEnd Functions=f(1,2,3,4,5)或s=f(1,2,3)数组参数传递 数组作为参数时,形参定义格式为:( ) As 定
9、义时,形参数组的大小可以不指明,但数组名后面的一对圆括号不能省略,否则系统认为形参是变量 。数组作为参数时,调用格式为:() 例:求数组元素中的最大值和最小值。(P172) Sub proc(a(), max, min) n1=LBound(a) n2=UBound(a) max=a(n1) min=a(n1) For i=n1 to n2 If maxa(i) Then min=a(i) Next iEnd Sub Private Sub Command1_click() Dim a(1 to 20) As Integer For i=1 to 20 a(i)=Int(Rnd*100) Pr
10、int a(i); Next I Print Call proc(a,a1,a2) Print “max=”;a1,”min=”;a2End Sub7.6 作用域VB应用程序结构VB 使用工程来管理构成应用程序的所有文件。模块是 VB将不同类型过程代码组织到一起的一种结构。窗体模块 应用程序中的每个窗体都有一个对应的窗体模块(也称窗体文件)。窗体模块不仅包含窗体及窗体内各种对象的属性设置,而且还包含用于处理发生在窗体中各个对象上的事件过程。一个 VB应用程序至少应包含一个窗体模块。标准模块 标准模块主要用于将应用程序中可被多个窗体共享的代码(通用过程)组织在一起,对于作用范围遍及应用程序各个模
11、块的变量(全局变量),通常也定义在标准模块中。标准模块文件的扩展名为 .bas 。一个应用程序可以没有标准模块,也可以包含多个标准模块。 类模块类模块用于定义类的数据成员(属性)和成员函数(方法)。变量的作用域 变量的作用域是指变量的有效范围,根据变量说明方式的不同,变量有三个作用域 使用关键字 Static定义的局部变量称为静态变量。程序开始运行时即给静态变量分配存储空间,直到程序运行结束,空间才被释放。如果在函数名或过程名前加上Static,则其中的变量均为静态变量。局部变量 Private Sub Command1_click() Dim x%, y% x=5 : y=5 x=f(y)
12、Print “x=”; x, ”y=”; yEnd subFunction f(x%) y=2 f=x*y Print “x=”; x, ”y=”; yEnd Function模块级变量 Private x%Private Sub Command1_click() x=x+1 Cls Print “已单击按钮次数:”; xEnd subPrivate Sub Command2_click() x=x+1 Cls Print “已单击按钮次数:”; xEnd sub全局变量 Public x%Private Sub Command1_Click() x=x+1 Print “已单击按钮次数:”;
13、 x Form2.ShowEnd subPrivate Sub Command1_Click() Form1.x=form1.x+1 Print “已单击按钮次数:”; x Form1.ShowEnd subForm1窗体模块Form2窗体模块全局变量与局部变量同名 Public a%, b%Private Sub Command1_Click() Dim a% Print “已单击按钮次数:”; x a=a+1 b=b+1 Print “a=”; a, “b=”; bEnd sub静态变量 Private Sub Command1_click() Dim i% For i=1 to 4 Print sum(i), Next iEnd subPrivate Function sum(x%) Static t% t=t+x sum=tEnd sub过程的作用域 根据过程的定义位置与方式的不同,过程可分为模块级过程和全局级过程。模块级过程 使用关键字Private或Static定义的过程为模块级过程。模块级过程的作用范围是创建该过程的模块。若用Static声明,则该过程中的所有变量均为静态变量。全局级过程 在窗体模块或标准模块中用关键字Public声明或缺省关键字声明的过
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026 年骨科骨折术后快速康复护理实施课件
- 2026年小儿支原体肺炎护理个案
- 2026 年主动脉夹层患者血压管控监护护理
- 腹水分类题目及参考答案分享
- 降尘相关试题及答案解析
- 2026年安徽理工大学附属小学专职教师招聘建设考试参考题库及答案
- 金属工艺学经典试题及答案揭秘
- 2026年度税务师考试《税法(一)》核心考点解析
- 2026年零售产业数字化转型方案
- 2026年企业员工职业发展规划指导方案
- 2026福建福州古厝运营服务有限公司招聘5人考试模拟试题及答案详解
- 智慧医疗分级评价方法及标准(2025版)
- 2026湖南娄底涟源市明宏水利电力开发有限公司招聘12人笔试参考题库及答案详解
- 矿井灾害预防与应急处理全流程培训
- 北海市2025广西北海市招聘县级政府统计机构统计协管员(协统员)6人笔试历年参考题库典型考点附带答案详解
- 【中建】机电工程创优策划方案
- 机电设备安装项目施工进度计划模板
- 2026年工业机器人公司销售业绩考核与提成核算管理制度
- GB/T 7582-2025声学听阈与年龄和性别关系的统计分布
- 机关食堂运营服务方案
- GB/T 5782-2025紧固件六角头螺栓
评论
0/150
提交评论