VB蒋加伏第四版第8章.ppt

  1. 1、本文档共57页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VB蒋加伏第四版第8章

8.3 变量、过程的作用域 在程序中我们定义的变量、过程、函数均有其作用范围即作用域,作用域分为三个层次: 过程:作用域最小,仅限于过程内部。 模块:仅在某个模块或文件内。 全局(工程):作用域最大,作用在整个工程内。 VB应用程序组成 VB应用程序 (.VBP) 至少一个或若 干个窗体模块 (.Frm)文件 可有一个或若 干个标准模块 (.Bas)文件 可有一个或若 干个类模块 (.Cls)文件 事件过程(Sub) 自定义过程(Sub) 自定义函数过程(Function) 自定义过程(Sub) 自定义函数过程(Function) 自定义属性过程(Property) 自定义方法过程(Sub或Function) 自定义事件过程(Event) 8.3.1 过程的作用域 过程一般分为两级: 模块级(文件级):只能在本模块或本文件中被调用。 全局级(工程级):在整个工程内均能被调用。 不同作用范围的2种过程定义及调用规则 作用范围 模块级 全局级 窗体 标准模块 窗体 标准模块 定义方式 过程名加Private 过程名加Public或缺省 过程名加Public或缺省 能否被本模块调用 能 能 能 能 能否被其它模块调用 否 否 能,但须在过程名前加窗体名 能 8.3.2 变量的作用域 变量一般分为两级: 过程级(局部级):过程内部定义的变量只能在过程中使用。定义方式:Dim,Static。 窗体/模块级:只能在本模块中被调用。定义方式:在“通用声明”中用Dim或Private声明。 全局级(工程级):在整个工程内均能被调用。必须用Public定义。 不同作用范围的3种变量定义及调用规则 作用范围 局部变量 窗体/模块级变量 全局变量 窗体 标准模块 声明方式 Dim,Static Dim,Private Public 声明位置 过程中 “通用声明”段 “通用声明”段 能否被本模块调用 能 能 能 能否被其它模块调用 否 否 能,但须在过程名前加窗体名 能 8.3.3 静态变量 Static 变量名 [As 类型] Static Function 函数名(参数列表)[As 类型] Static Sub函数名(参数列表) 用Static定义的静态变量,只进行一次初始化,在程序运行过程中,可保留变量的值。 用Static声明的函数、过程,表示该函数、过程中所有变量均为静态变量。 例8-10 静态变量与动态变量的比较 Private Sub Form_click() For i = 1 To 5 isum = sum(i) Print isum=; isum, Next i Print End Sub (待续) (接上页) Private Function sum(n) Dim j 比较与 Static j 的区别 j = j + n sum = j End Function 8.4 递归 递归:在调用一个函数的过程中,又直接或间接地调用该函数本身。 例8-11 用递归法求n! Private Sub Command1_Click() n = Val(InputBox(请输入一个正整数:)) Print n !=; FN(n) End Sub (待续) (接上页) Public Function FN(n) If n = 1 Or n = 0 Then FN = 1 Else FN = n * FN(n - 1) End If End Function 例8-12 用递归法画三角形 Private Sub Picture1_Click() Dim n As Integer n = Val(InputBox(Input n:)) Picture1.Print Tab(5); 递归N= n; 时的图形。 Picture1.Scale (0, 600)-(600, 0) ‘定义Picture1的座标系统, Call triangle(30, 320, 570, 30, 570, n) End Sub (待续) (接上页) Private Sub triangle(x1!, x2!, x3!, y1!, y2!, k%) Dim u1!, u2!, v1!, v2! If k 1 Then u1 = (x1 + x2) / 2 u2 = (x2 + x3) / 2

文档评论(0)

zilaiye + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档