六章节过程.ppt
《六章节过程.ppt》由会员分享,可在线阅读,更多相关《六章节过程.ppt(38页珍藏版)》请在三一文库上搜索。
1、第六章 过程,第六章 过 程,6.1 函数过程 6.2 子过程 6.3 参数传递 6.4 综合应用 6.5 自主学习-递 归,本章目录,6. 过程概述,一、问题的提出 引例.1 自动和手动事件 例.5 输入数据合法性检验: 回车键、Tab键表示输入,完成相同的输入数据合法性,本章目录,过程的引入: 使同类的操作不重复编写,写一次多次用 把一项复杂的工作分成简单的功能块,分而治之 过程: 完成一段独立功能,可供其他过程使用(调用)。 调用过程: 调用其他过程的过程,调用过程: 调用Sprg1 调用Sprg1 调用Sprg2,子过程: Sprg1,子过程: Sprg2,常用过程分类:,Sub过程,
2、Function过程,事件过程 自定义子过程,内部函数(标准函数) 自定义函数过程,1)过程是一段程序代码,是相对独立的逻辑模块。 2)一个完整的VB应用程序由若干过程和模块组成。 Sub子过程:完成一定的操作和功能,无返回值。 Function函数过程:完成一定的操作和功能,并且可将数据处理的结果返回。,6.1 函数过程,6.1.1 引例求多边形面积 已知多边形各条边的长度,计算多边形的面积。,本章目录,分析: 计算多边形面积,可将多边形分解成若干个三角形。 计算三角形面积的公式如下:,6.1.1 引例,定义函数过程area Function area(x!, y!, z!) As Sing
3、le Dim c! c = 1 / 2 * (x + y + z) area = Sqrt(c * (c - x) * (c - y) * (c - z) End Function,Sub command1_click() 输入若干个三角形边长 S=area(a,b,c)+area(c,d,e)+area(e,f,g) msgbox(“面积=” & S) End Sub,调用函数过程,本章目录,6.1.2函数过程的定义,定义函数过程的形式如下: Public |Private Function 函数过程(形参) As 类型 变量声明 语句块 Return 表达式 或 函数名=表达式 End F
4、unction,本章目录,Public 全局函数过程,可被程序任何模块调用。 Private 仅供本模块中的其它过程调用。 形参(或称哑元) 只能是变量或数组名( ), 仅表示参数的个数、类型,无值。,例6.2 编一求最大公约数的函数过程 分别求若干组数的最大公约数 分析:求最大公约数的算法已在例4.19中解决 (辗转相除法、相减法),本章目录,解决的问题:如何构建函数(函数头,参数设置), 供多次调用,搞清楚: 解该问题已知数据有几个(本例两个), 处理结果几个(本例1个)。,6.1.3函数过程的调用,调用形式:函数过程名(参数列表) 参数列表(称为实参或实元):必须与形参个数相同,位置与类
5、型一一对应。可以是同类型的常量、变量、表达式。,Sub Form1_Click() Handles MyBase.Click Dim x%, y%, z% x = 124: y = 24 z = gcd(x, y) MsgBox(“最大公约数是“ & z) End Sub,程序运行流程,Function gcd( m%, n%) As Integer Dim r% If m 0 m = n: n = r : r = m Mod n Loop gcd = n End Function,本章目录,调用演示,函数过程的调用,例6.3编一函数,统计字符串中汉字的个数。,本章目录,代码说明,分析:在VB
6、.NET中,字符以Unicode码存放,每个汉字和英文是一个字符、占有两个字节,区别是汉字的机内码最高位为1,若利用Asc函数求其码值为小于0(以补码表示),而西文字符的最高位为0,Asc函数求其码值为大于0,6.2 子过程的定义与调用,6.2.1 引例-控件随机移动 例6.4编一过程,对Label1控件进行移动,通过参数Tag的值(1或-1)决定移动方向。 分析: 该过程不是为了计算获得某个结果,而是进行对控件移动的处理。,本章目录,针对函数过程问题的提出: 不是为了获得某个函数值,而是为了某种功能处理。 要获得多个结果。 VB.NET中提供了使用更灵活的子过程。,6.2.2子过程的定义,子
7、过程定义的方法同函数过程,形式如下: Sub 子过程名(参数列表) 局部变量或常数定义 语句 Exit Sub 语句 End Sub 子过程名、形参同函数过程中对应项的规定,当无形参时不要括号。,本章目录,子过程与函数过程的区别,把某功能定义为函数过程还是子过程,没有严格的规定。一般若程序有一个返回值时,函数过程直观;当有多个返回值时,习惯用子过程。 函数过程必须有返回值,函数名有类型。子过程名没有值,过程名没有类型,不能在子过程体内对子过程名赋值。,本章目录,子过程的调用是一句独立的调用语句,有两种形式: Call 子过程名(实参列表) 子过程名 (实参列表),6.2.3子过程调用,本章目录
8、,注意:若实参要获得子过程的返回值,则实参只能是变量(与形参同类型的简单变量、数组名、结构类型),不能是常量、表达式,也不能是控件名。,例6.5 分别编一统计字符串S中定冠词The出现个数的子过程和函数过程,并分别调用。 处理方法:利用InStr函数反复在字符串S找The子串。,本章目录,代码说明,If you cant find the answers you need in the product,i,st,st,第1次,第2次,参数问题,形参是过程与主调程序交互的接口,从主调 程序获得初值,或将计算结果返回给主调程序。不要将过程中所有使用过的变量均作为形参。利6.5找定冠词的rocThe
9、子过程 形参没有具体的值,只代表了参数的个数、位置、类型;只能是简单变量、数组名,不能是常量、数组元素、表达式。,本章目录,6.3 参数传递,在参数传递中,一般是按位置传送,按实参的位置次序与形参的位置次序对应传送,与参数名没有关系。 按位置传送是最常用的参数传递方法,如在调用标准函数时,用户根本不知道形参名,只要关心形参的个数、类型、位置.,本章目录,如Mid函数形式: Mid(字符串$,起始位%,取几位%) 调用: s=Mid(“ This is VB.NET “,9,2) s为“VB“ 若调用:s=Mid(9, “ This is VB.NET “ ,2) 则错误,6.3.1 形参与实参
10、,6.3.2 传址与传值,传值方式参数结合过程 当调用时,系统将实参的值复制给形参,实参与形参断开了联系。在过程体内对形参的任何操作不会影响到实参。 传址方式参数结合过程 当调用时,将实参的地址传递给形参。因此在被调过程体中对形参的任何操作都变成了对相应实参的操作,实参的值就会随过程体内对形参的改变而改变。,本章目录,实参与形参两种结合方法: 传址(ByRef,)、传值(ByVal默认),传值、传址对比例,本章目录,例6.6 编写交换两个数的过程Swap1,其中x,y为形参,使用传值传递方式。,例6.7 编写交换两个数的过程Swap2,其中x,y为形参,使用传址传递方式。,传递方式的选择,被调
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 章节 过程
链接地址:https://www.31doc.com/p-2596924.html