《第6章 过程整理优秀课件.ppt》由会员分享,可在线阅读,更多相关《第6章 过程整理优秀课件.ppt(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第6章章 过程整理过程整理第1页,本讲稿共26页6.1 函数过程的定义和调用函数过程的定义和调用(P125)例6-1(补充)求组合数例6-1-1(P125 自学)已知多边形各条边和对角线的长度,求多边形的面积.第2页,本讲稿共26页w函数的默认作用域是函数的默认作用域是Public;w可以使用可以使用 Exit Function语句强制退出函数语句强制退出函数.w函数体中函数体中必须至少必须至少有一条语句为函数名赋值。例如有一条语句为函数名赋值。例如 函数名函数名=表达式表达式6.1.1 函数过程的定义函数过程的定义(P126)Private|Public Function 函数名(形参表)
2、AS 数据类型函数体;End Function格式为格式为:形参名形参名1 As 类型类型,形参名形参名2 As 类型类型 第3页,本讲稿共26页6.1.2 函数的调用函数的调用w与系统内部函数的调用方法相同.格式为:例6-2(P127)编写一个求最大公约数的函数.例6-3(补充)编写一个函数,查找一个字符串在另外一个字符串中的出现次数.例6-3-1(P128 自学)编写一个 函数,统计字符串中汉字的个数.函数名(实参列表)第4页,本讲稿共26页6.2 子过程的定义和调用子过程的定义和调用(P129)例6-4(P129)编写一个过程,对Label1控件进行移动,其中通过参数Tag的值(1或-1
3、)决定向右下角还是左上角移动.第5页,本讲稿共26页6.2.1 子过程的定义子过程的定义(P130)Private|Public Sub 子过程名(形式参数表)语句块 其中可以使用Exit Sub语句强制退出过程End Subw 默认为 Public(公用过程);w 过程名的命名规则遵循标识符的命名规则.第6页,本讲稿共26页6.2.2 子过程的调用子过程的调用(P130)Call 子过程名子过程名(实际参数表实际参数表)说明说明:1)无参数时,连同括号一起省略无参数时,连同括号一起省略;2)参数个数多于一个时用逗号分隔参数个数多于一个时用逗号分隔;3)实参可以是常量、变量、数组或表达式。实参
4、可以是常量、变量、数组或表达式。w格式1:子过程名子过程名 实际参数表实际参数表w格式2:第7页,本讲稿共26页 子过程示例子过程示例例例6-5(P131)分别编写一个子过程分别编写一个子过程(Sub)和一个函数过程和一个函数过程(Function),统计字符串统计字符串S中单词中单词“the”出现的次数出现的次数.第8页,本讲稿共26页6.3 参数传递参数传递(P132)按地址传递(ByRef,默认方式)按值传递(ByVal)w参数的传递方法Sub ProcThe(ByVal s As String,ByRef Count As Integer)End Subw形参形参过程定义时,过程名后的
5、圆括号中出现的变量名过程定义时,过程名后的圆括号中出现的变量名.w实参实参过程调用时,过程名参数过程调用时,过程名参数.Call ProcThe(Text1,n)实参与形参的个数、类型、位置必须一一对应第9页,本讲稿共26页6.3.1 传值传值(ByVal)和传地址和传地址(ByRef)1.传值(ByVal)将实参的值传递给形参.实参和形参各自占用不同的存储空间,因此,形参的改变不会影响实参.形参形参变量名;变量名;实参实参可以是变量名、常量、表达式、数组元素可以是变量名、常量、表达式、数组元素.第10页,本讲稿共26页2.传地址传地址(ByRef)形参和实参共用同一个存储单元,因此,形参的改
6、变影响实参。形参形参变量名;变量名;实参实参变量名或数组元素。变量名或数组元素。如果实参是常量或表达式,则按传值如果实参是常量或表达式,则按传值方式传递参数。方式传递参数。第11页,本讲稿共26页传值和传地址示例传值和传地址示例例6-6 按值和按地址传递参数(补充)。例6-6-1(P133)阅读交换两个数的过程Swap1和Swap2,总结传值和传地址的功能。第12页,本讲稿共26页6.3.2 数组参数的传递数组参数的传递(P134)例6-7 数组作参数实现排序和二分查找(补充)。第13页,本讲稿共26页数组作参数的使用说明数组作参数的使用说明(P135)形参数组形参数组过程定义时只写出数组名和
7、圆括号,过程定义时只写出数组名和圆括号,不指定数组维数的上界;不指定数组维数的上界;实参数组实参数组过程调用时,只写出数组名和圆括号过程调用时,只写出数组名和圆括号(可省写);(可省写);数组作参数时,只能是传地址方式,即形参数组与数组作参数时,只能是传地址方式,即形参数组与实参数组共用同一段内存空间。实参数组共用同一段内存空间。第14页,本讲稿共26页6.3.3 使用可选参数使用可选参数(补充补充)1.可选参数可选参数形参表中,使用形参表中,使用 Optional 关键字定义的形参为关键字定义的形参为可选参数;可选参数;例6-8 可选参数(补充)2.使用说明所有可选形参必须在形参表的最后声明
8、;可以在形参表中为可选参数指定默认值;过程调用时,可以为可选参数指定对应的实参,也可以不指定对应的实参。第15页,本讲稿共26页6.4 过程的嵌套和递归调用过程的嵌套和递归调用(P136)1.过程的嵌套调用一个被调用的过程中又调用了另外一个过程.例6-9 嵌套调用示例(补充)第16页,本讲稿共26页2.递归调用递归调用在一个过程中调用了本身,称为递归调用.例6-10 使用递归调用求n!(P137)第17页,本讲稿共26页6.5 变量的作用域变量的作用域(P139)事件过程(Sub)函数过程(Function)子过程(Sub)函数过程(Function)子过程(Sub)应用程序(.vbp)窗体模
9、块(.frm)类模块(.cls)标准模块(.bas)第18页,本讲稿共26页6.5.1 变量的作用域变量的作用域(P140)w局部变量w模块级变量:使用Dim或Private声明w全局变量:使用Public声明非静态变量:使用Dim声明静态变量:使用Static声明第19页,本讲稿共26页1.局部变量局部变量在过程(Sub或Function)内部声明的变量,只能在本过程中使用.局部变量使用Dim或Static关键字声明;第20页,本讲稿共26页2.模块级变量模块级变量在模块的所有过程之外使用Dim或Private关键字声明的变量。模块级变量只能在本模块的各过程中使用。第21页,本讲稿共26页3
10、.全局变量全局变量在模块的所有过程之外使用Public关键字声明的变量。全局变量可以在所有模块的所有过程中使用。在标准模块中声明的全局变量在其他模块中直接使用;在非标准模块中声明的全局变量在其他模块中按如下格式使用:模块名.变量名声明变量的模块第22页,本讲稿共26页4.变量的生存期变量的生存期(补充补充)(1)过程内部使用Dim声明的变量w过程被调用时过程被调用时,变量获得存储空间变量获得存储空间,过程调用结束过程调用结束,释放变量占用的存储空间释放变量占用的存储空间.(2)全局变量、模块级变量和Static变量w在整个应用程序运行过程中一直保持它们的值在整个应用程序运行过程中一直保持它们的
11、值,但但三种变量的作用域不同三种变量的作用域不同.wStatic变量的作用域是局部的变量的作用域是局部的.第23页,本讲稿共26页例例6-11 变量的作用域变量的作用域局部变量、模块级变量和全局变量的作用范围.第24页,本讲稿共26页6.5.2 静态变量静态变量(P142)在过程内部使用Static语句声明的变量;静态变量在程序中第一次出现时,获得存储空间,直到程序运行结束才释放该空间。例6-12 利用静态变量,统计单击窗体的次数。(P142)第25页,本讲稿共26页6.6 综合应用综合应用(P143)重点自学以下内容P143 例6-13 数制转换程序;P145 例6-14 加密/解密程序;P146 例6-15 顺序查找程序.第26页,本讲稿共26页