《第七章过程PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第七章过程PPT讲稿.ppt(68页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第七章 过程第1页,共68页,编辑于2022年,星期一7.1 通用过程通用过程7.2 常用算法举例常用算法举例第七章 过程第2页,共68页,编辑于2022年,星期一7.1 通用过程通用过程 7.1.1 通用过程概念通用过程概念 7.1.2 参数传递参数传递 7.1.3 过程的嵌套与递归调用过程的嵌套与递归调用 7.1.4 变量、过程的作用域变量、过程的作用域第七章 过程第3页,共68页,编辑于2022年,星期一 引例:已知多边形的各条边的长度,要计算多边形的面积。a ab bd df fg ge ec cs3s3s2s2s1s1求三角形面积的代码重复使用了三次第七章 过程第4页,共68页,编辑
2、于2022年,星期一 解解决决办办法法:对对于于重重复复使使用用的的程程序序段段,可可以以自自定定义义一个一个函数函数过程过程,供多次调用,供多次调用第七章 过程第5页,共68页,编辑于2022年,星期一 7.1.1 通用过程概念及分类通用过程概念及分类Function过程(函数过程)。第七章 过程Sub过程(子过程)第6页,共68页,编辑于2022年,星期一7.1.1.1 Function过程过程1.Function过程的定义过程的定义第七章 过程利用代码窗口直接定义通用过程利用代码窗口直接定义通用过程 Public|PrivateStatic Function 函数名函数名(形参表形参表)
3、As 数据类型数据类型 语句组语句组 函数名函数名=表达式表达式 Exit Function 语句组语句组 函数名函数名=表达式表达式 End Function第7页,共68页,编辑于2022年,星期一利用“工具”菜单下的“添加过程”命令定义过程第七章 过程第8页,共68页,编辑于2022年,星期一2.Function过程的调用过程的调用 格式二(独立作为语句)格式二(独立作为语句)Function过程名过程名(参数列表参数列表)第七章 过程 格式一(作为语句的一部分):格式一(作为语句的一部分):a=Function过程名过程名(参数列表参数列表)第9页,共68页,编辑于2022年,星期一
4、引例:已知多边形的各条边的长度,要计算多边形的面积。a ab bd df fg ge ec cs3s3s2s2s1s1第七章 过程第10页,共68页,编辑于2022年,星期一例例:编写函数过程求编写函数过程求s=3!+5!+11!。第七章 过程第11页,共68页,编辑于2022年,星期一7.1.1.2 Sub过程过程1.Sub过程的定义过程的定义第七章 过程利用代码窗口直接定义通用过程其格式为:Private|Public Static Sub 过程名(参数表)语句组 Exit Sub 语句组 End Sub第12页,共68页,编辑于2022年,星期一2.Sub过程的调用过程的调用 直接使用过
5、程名调用直接使用过程名调用Sub过程,即把过程名过程,即把过程名作为一个语句来使用,格式如下:作为一个语句来使用,格式如下:过程名过程名 参数列表参数列表 使用使用Call语句调用语句调用Sub过程。格式如下过程。格式如下 Call 过程名过程名(参数列表参数列表)第七章 过程第13页,共68页,编辑于2022年,星期一7.1.2 参数传递参数传递第七章 过程第14页,共68页,编辑于2022年,星期一7.1.2.1 形式参数与实际参数的概念形式参数与实际参数的概念 形式参数第七章 过程 (简称形参)是指在定义过程时,在过程头(指Sub或Fuction语句行)的参数列表中出现的变量名和数组名,
6、在过程体中被引用。第15页,共68页,编辑于2022年,星期一 实际参数第七章 过程(简称实参)是调用过程时,在过程名后的参数列表中出现的变量名、数组名、常量或表达式。第16页,共68页,编辑于2022年,星期一7.1.2.2 参数按地址传递和按值传递参数按地址传递和按值传递第七章 过程2.按值传递参数按值传递参数1.按地址传递参数按地址传递参数第17页,共68页,编辑于2022年,星期一判断参数传递方式的原则:原则一:定义通用过程时的形参前是否有关键字ByVal或ByRef,若为ByVal 按值传递 若为ByRef 按地址传递 原则二:事件过程中调用通用过程时实参的形式 常量、表达式常量、表
7、达式 按值传递按值传递 变量、数组变量、数组 按地址传递按地址传递第七章 过程第18页,共68页,编辑于2022年,星期一1.按地址传递参数按地址传递参数 让过程根据变量的内存地址去访问实际变量的内容,即形式参数与实际参数使用相同的内存地址单元,这样通过子过程就可以改变变量本身的值。第七章 过程第19页,共68页,编辑于2022年,星期一Private Sub Swap(x As Integer,y As Integer)Dim tmp As Integer tmp=x:x=y:y=tmpEnd Sub第七章 过程Private Sub Form_Click()Dim a As Integer
8、,b As Integer a=10:b=15 Print 调用交换函数过程前:a=;a,b=;b Swap a,b Print 调用交换函数过程后:a=;a,b=;bEnd Sub第20页,共68页,编辑于2022年,星期一事件过程:通用过程:ab1015xy按地址传递按地址传递按地址传递按地址传递tmp101510第21页,共68页,编辑于2022年,星期一第七章 过程例:例:Public Sub Mysub3(ByVal x As Integer,y As Integer)x=y+x y=x Mod yEnd SubPrivate Sub Form_Click()Dim a As Int
9、eger,b As Integer a=11:b=22 Call Mysub3(a,b)Print a;bEnd Sub A.33 11 B.11 11 C.11 22 D.22 11第22页,共68页,编辑于2022年,星期一2.按值传递参数 传递的只是变量的副本,如果过程改变了这个值,则所做的变动只影响副本而不会影响变量本身。第七章 过程第23页,共68页,编辑于2022年,星期一Private Sub Swap(ByVal x As Integer,ByVal y As Integer)Dim tmp As Integer tmp=x:x=y:y=tmpEnd Sub第七章 过程Priv
10、ate Sub Form_Click()Dim a As Integer,b As Integer a=10:b=15 Print 调用交换函数过程前:a=;a,b=;b Swap a,b 按值传递参数 Print 调用交换函数过程后:a=;a,b=;bEnd Sub第24页,共68页,编辑于2022年,星期一1510事件过程:通用过程:ab1015xy按按值值传递传递按按值值传递传递tmp101510第25页,共68页,编辑于2022年,星期一例:例:Public Sub Mysub4(x As Integer)x=3*x-1 If x 5 Then x=x+9 Print x;End Su
11、bPrivate Sub Form_Click()x=1 Mysub4 3+x Print xEnd SubA.20 1 B.20 14 C.11 1 D.11 14第26页,共68页,编辑于2022年,星期一例;以下程序段运行后,单击窗体显示的结果是 。Public Sub Mysub2(x,t)t=0 For k=1 To x t=t+k NextEnd SubPrivate Sub Form_Click()Dim b As Integer,y As Integer Call Mysub2(3,b)y=b Call Mysub2(4,b)Print y+bEnd SubA.13 B.16
12、C.19 D.21第27页,共68页,编辑于2022年,星期一7.1.4 变量、过程的作用域变量、过程的作用域第六章 过程通用过程(变量、过程的作用域)第36页,共68页,编辑于2022年,星期一7.1.4.1 代码模块的概念代码模块的概念第六章 过程通用过程(变量、过程的作用域)1 1窗体模块窗体模块 2 2标准模块标准模块 3 3类模块类模块VB应用程序.VBP窗体模块.Frm类模块.Cls标准模块.Bas函数过程(Function)Sub过程事件过程函数过程(Function)Sub过程第37页,共68页,编辑于2022年,星期一第六章 过程通用过程(变量、过程的作用域)7.1.4.2
13、变量的作用域变量的作用域 1过程级变量过程级变量 2模块级变量模块级变量第38页,共68页,编辑于2022年,星期一7.1.4.3 变量的生成期变量的生成期 1.动态变量动态变量 2.静态变量(静态变量(Static)第六章 过程通用过程(变量、过程的作用域)第39页,共68页,编辑于2022年,星期一例:运行下列程序段后,单击窗体,显示结果是 ,再次单击窗体时,显示结果是。去掉Static Temp语句后,单击窗体,显示结果是,再次单击窗体时,显示结果是。Private Function Fn2(t As Integer)Static Temp Temp=Temp+t Fn2=TempEnd
14、 FunctionPrivate Sub Form_Click()s=Fn2(1)+Fn2(2)+Fn2(3)Print sEnd Sub第40页,共68页,编辑于2022年,星期一第六章 过程通用过程(变量、过程的作用域)7.1.4.4 过程的作用域过程的作用域 1模块级过程模块级过程 2全局过程全局过程 3调用其他模块中的过程调用其他模块中的过程第41页,共68页,编辑于2022年,星期一7.2 常用算法举例常用算法举例 第六章 过程通用过程(常用算法举例)第42页,共68页,编辑于2022年,星期一4.下列程序段运行后,单击窗体时显示的结果是下列程序段运行后,单击窗体时显示的结果是 。P
15、ublic Sub Mysub3(ByVal x As Integer,y As Integer)x=y+x y=x Mod yEnd SubPrivate Sub Form_Click()Dim a As Integer,b As Integer a=11:b=22 Call Mysub3(a,b)Print a;bEnd Sub A.33 11 B.11 11 C.11 22 D.22 11第47页,共68页,编辑于2022年,星期一6 6在窗体模块的通用段中声明变量时,不能使用在窗体模块的通用段中声明变量时,不能使用 关键字。关键字。A.Dim A.Dim B.Public B.Publ
16、ic C.Private C.Private D.Static D.Static第六章 过程通用过程(习题)第49页,共68页,编辑于2022年,星期一2在窗体上已经建立了在窗体上已经建立了3个文本框个文本框(Text1,Text2及及Text3)和一个命令按和一个命令按钮钮(Command1),运行程序后单击命令按钮,则在文本框,运行程序后单击命令按钮,则在文本框Text1中显示中显示的内容是的内容是 ,在文本框,在文本框Text2中显示的内容是中显示的内容是 ,在文本,在文本框框Text3中显示的内容是中显示的内容是 。Public Sub MySub5(x,ByVal y)a=x+y x
17、=a+y y=2*xEnd SubPrivate Sub Command1_Click()Dim b As Integer,c As Integer b=1:Call MySub5(b,c)c=a+b:Call MySub5(c,b)a=a+c Text1.Text=a Text2.Text=b Text3.Text=cEnd Sub第53页,共68页,编辑于2022年,星期一3运行下列程序段后,单击窗体,显示结果是运行下列程序段后,单击窗体,显示结果是 ,再次单击窗体时,显示结果是再次单击窗体时,显示结果是。去掉。去掉Static Temp语句后,单击窗体,显示结果是语句后,单击窗体,显示结果是,再次单击窗体时,显示结果是,再次单击窗体时,显示结果是。Private Function Fn2(t As Integer)Static Temp Temp=Temp+t Fn2=TempEnd FunctionPrivate Sub Form_Click()s=Fn2(1)+Fn2(2)+Fn2(3)Print sEnd Sub第54页,共68页,编辑于2022年,星期一