- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章过程剖析
第10章 过程 本章介绍的自定义过程主要有: 函数过程,以“Function”保留字开始; 子过程,以“Sub”保留字开始。 程序中使用过程的作用: 简化程序设计,提高编程效率,提高程序的可读性和重用性。 本章的目标: 掌握子过程与函数过程的定义与调用 掌握子过程与函数过程的参数传递方式 掌握变量与过程的作用域 了解递归 10.1 子过程 10.1.1 子过程的定义 方法一:利用代码窗口直接定义 在窗体或标准模块的代码窗口把插入点放在所有现有过程之外,直接输入子过程。 子过程定义的格式与事件过程类似,形式如下: [Static] [Public | Private] Sub 子过程名[ (参数列表) ] 子过程体 End Sub 其中: (1)关键字“Sub”指明该程序段为子过程。 (2)关键字“Public” 、“Private”、 “Static”指明过程的作用域,具体意义将在10.5节介绍。 (3)子过程名命名规则与变量名规则相同。 (4)参数列表形式: [ByVal | ByRef ] 变量名 [( )] [As 类型][, [ByVal | ByRef] 变量名 [( )] [As 类型]…] 参数只能是变量或数组名(若为数组名则后加“()”),在定义时没有具体值,所以也叫形式参数(简称形参)或哑元。ByVal表示当该过程被调用时,参数是值传递,ByRef是地址传递。若省略则默认为地址传递的方式。参数传递方式将在10.3节中详细介绍。函数过程无参数时,函数过程名后的括号不能省略,这是函数过程的标志。 (5)子过程体中可以包含局部变量或常数定义及语句块。若要在子过程体中退出子过程,可使用Exit Sub语句,将返回到主调过程的调用处。 例如,要编写一个名为MyMove的子过程,实现标签的水平移动,移动方向由参数tag决定,若tag为1,则向右移动100 twip,为-1则向左移动。可添加如下代码: Sub MyMove (tag%) 定义标签移动子过程 Label1.Left = Label1.Left + 100 * tag End Sub 方法二:利用“工具”菜单下的“添加过程”命令 10.1.2 子过程的调用 子过程的调用是将某些具体的数值或确定的变量传递给子过程中的形式参数 的过程。 子过程的调用是一条独立的调用语句,有两种形式: Call 子过程名[(实参列表)] 或 子过程名 [实参列表] 前者用Call关键字时,若有实参,则实参必须加圆括号括起来,无实参时圆括号省略,后者无Call,而且也无圆括号。 若实参要获得子过程的返回值,则实参只能是变量(与形参同类型的简单变量、数组名、自定义类型变量),不能使常量、表达式,也不能是控件名。 关于子过程的调用,有以下需要注意: (1)子过程调用语句中的参数列表称为实参或实元,它必须与形参保持个数相同,位置与类型一一对应(VB允许形参与实参个数不同,但本书不作讨论)。实参可以是与形参同类型的常数、变量、数组元素、表达式等。 (2)当参数是数组时,形参与实参在参数声明时应省略其维数,但括号不能省略。 例10. 1编写一个子过程,实现Label1控件的水平移动,若超出窗体边缘,则反向移动。移动方向通过参数tag来控制。 分析:若要水平移动控件,则可修改其left属性。判断是否碰到窗体边缘,可以判断是否Label1.left0(超出左边缘)或Label1.left+Label1.widthForm1.width(超出右边缘)。 程序运行的流程如下: 10.2函数过程 10.2.1 函数过程的定义 自定义函数过程的形式如下: [Static] [Public | Private] Function 函数过程名 ([参数列表]) [As 类型] 过程体 函数名=返回值 此函数名赋值语句至少出现一次 End Function 其中: (1)关键字“Function”指明该程序段为函数过程,函数过程一般在结束时要返回结果。其中[As 类型]指出返回结果的类型,若未指明类型,则返回值为变体类型。。 (2)函数过程体中可以包含局部变量或常数定义、语句块等,若要退出函数过程,可使用Exit Function语句。需要注意的是,在函数过程体中至少要对函数名赋值一次。(注:是给“函数名”赋值,函数名后面不能加括号和参数)。 (3)其余关键字的含义与子过程定义中相同。 例10.2 编写一函数过程,在已知半径条件下,求圆的面积。 分析:若已知半径,则圆面积公式为:。因此该函数过程如下: Function CircleArea(r As Single) 形参r为半径 Const pi = 3.14159 常量
您可能关注的文档
- 第10章文件操作1207剖析.doc
- 第10章数模与模数转换及应用剖析.ppt
- 第10章建筑消防给水系统-刘源泉剖析.ppt
- 第10章波形变换产生_zzw剖析.ppt
- 第10章状态机图剖析.ppt
- 第10章气体动理论剖析.ppt
- 第10章监盘法和重新执行法剖析.ppt
- 第10章浮力剖析.doc
- 第10章直流稳压电源剖析.ppt
- 第10章电话通信网剖析.ppt
- 湖北省荆州市沙市中学2025-2026学年高一上学期12月月考语文试题.docx
- 吉林省长春市第二实验中学2025-2026学年高二上学期11月期中考试数学含解析.docx
- 四川省字节精准教育联盟2026届高中毕业班第一次诊断性检测政治.docx
- 四川省字节精准教育联盟2026届高中毕业班第一次诊断性检测政治答案.docx
- 物理试卷(A卷)答案山西省三重教育2025-2026学年高二12月阶段性检测(12.17-12.18).docx
- 物理试卷(A卷)山西省三重教育2025-2026学年高二12月阶段性检测(12.17-12.18).docx
- Unit1Reading2课件牛津译林版七年级英语下册.pptx
- 物理试卷(A卷)答案浙江省2025学年第一学期浙江北斗星盟高二年级12月阶段性联考(12.18-12.19).docx
- 四川省字节精准教育联盟2026届高中毕业班第一次诊断性检测语文.docx
- Unit1MynamesGina第3课时考点讲解writing16张.pptx
最近下载
- DB62_T 5101-2025 公路绿化技术规范.docx VIP
- DB62T 1161-2022 机修梯田技术规范.docx VIP
- DB62T 4105-2020 村务公开规范.docx VIP
- DB62T 4894-2024 花椒农业气象观测规范.docx VIP
- DB62T 3152-2018 兰州市屋顶绿化技术标准.docx VIP
- 规范《GB29450-2012-玻璃纤维单位产品能源消耗限额》.pdf
- 法院书记员招聘2025年笔试重点考点大全.docx
- 海尔一键恢复.doc VIP
- 2025年黑河嫩江市公开招聘林场管护工作者135人考试备考题库及答案解析.docx VIP
- DBJ08-232-98 道路交通管理设施施工及验收规程.docx VIP
原创力文档


文档评论(0)