7.2 过程调用与参数传递.ppt
《7.2 过程调用与参数传递.ppt》由会员分享,可在线阅读,更多相关《7.2 过程调用与参数传递.ppt(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、上节课复习上节课复习知识要点知识要点1、过程的基本概念、过程的基本概念2、sub过程过程定义格式定义格式定义方法定义方法窗体事件的执行顺序窗体事件的执行顺序3、Function过程(定义格式、定义过程(定义格式、定义方法)方法)7.3 7.3 过程调用过程调用7.3.1 7.3.1 事件过程的调用事件过程的调用7.3.2 7.3.2 调用调用S Sub ub过程过程7.3.3 7.3.3 调用调用FunctionFunction过程过程7.3.4 7.3.4 调用其它模块中的公有过程调用其它模块中的公有过程 事件过程由一个发生在事件过程由一个发生在Visual BasicVisual Basi
2、c中的事中的事件来自动调用或者由同一模块中的其它过程件来自动调用或者由同一模块中的其它过程显式调用。显式调用。请看示例。请看示例。p131p1317.3.1 7.3.1 事件过程的调用事件过程的调用 SubSub过程和过程和functionfunction过程必须在事件过程或其他过程必须在事件过程或其他过程中过程中显式调用显式调用,否则过程代码就永远不会被执行。,否则过程代码就永远不会被执行。在调用程序时,程序执行到调用某通用过程的在调用程序时,程序执行到调用某通用过程的语句后,语句后,系统就会将控制转移到被调用的过程。系统就会将控制转移到被调用的过程。在在被调用的过程中,被调用的过程中,从第
3、一条从第一条subsub或或functionfunction语句开语句开始始,依次执行其中的所有语句,依次执行其中的所有语句,当执行到当执行到end subend sub或或end functionend function语句后语句后,返回到主调程序的断点返回到主调程序的断点,并并从断点处继续从断点处继续程序的执行。程序的执行。7.3.2 7.3.2 调用调用SubSub过程过程主调程序主调程序 调用过程调用过程AEnd Sub过程过程AEnd Sub调用调用SubSub通用过程流程通用过程流程Sub子过程的调用子过程的调用(1)用用Call语句语句调用调用Sub过程过程 语法:语法:Call
4、 过程名(实在参数表)过程名(实在参数表)实在参数的实在参数的个数个数、类型类型和和顺序顺序,应该与,应该与被调用过程的形式参数相匹配,有多个参数时,被调用过程的形式参数相匹配,有多个参数时,用逗号分隔。如果被调用的过程是一个无参过用逗号分隔。如果被调用的过程是一个无参过程,则括号可以省略程,则括号可以省略.Private Sub Command1_Click()Dim a As Integer,b As Integer a=Val(Text1.Text):b=Val(Text2.Text)Call add(a,b)End Sub例:例:Private Sub add(x As Integer
5、,y As Integer)s=x+y Text3.Text=sEnd Sub调用调用add子过程子过程Private Sub Command1_Click()Dim a As Integer,b As Integer a=Val(Text1.Text):b=Val(Text2.Text)s=a+b Text3.Text=sEnd Sub等价于:等价于:例7-2编写一个找出任意一个正整数的因子的程序编写一个找出任意一个正整数的因子的程序Private Sub Command1_Click()Dim Inta As Integer,St As String Inta=Text1.Text Cal
6、l Factor(Inta,St)Text2.Text=StEnd SubPrivate Sub Factor(ByVal N As Integer,S As String)Dim I As Integer For I=1 To N-1 If N Mod I=0 Then S=S&Str(I)Next IEnd Sub(2)把)把过程名作为一个语句过程名作为一个语句来用来用语法:过程名语法:过程名 实参实参1,实参,实参2它与(它与(1)的不同点是:)的不同点是:去掉了关键字去掉了关键字call和和实参实参列表的括号列表的括号Private Sub Command1_Click()Dim a
7、As Integer,b As Integer a=Val(Text1.Text):b=Val(Text2.Text)add a,bEnd SubPrivate Sub add(x As Integer,y As Integer)s=x+y Text3.Text=sEnd Sub练一练练一练:使用第使用第2种调用方式修改例种调用方式修改例7.2。Private Sub Command1_Click()Dim Inta As Integer,St As String Inta=Text1.Text Factor Inta,St Text2.Text=StEnd SubPrivate Sub Fa
8、ctor(ByVal N As Integer,S As String)Dim I As Integer For I=1 To N-1 If N Mod I=0 Then S=S&Str(I)Next IEnd Sub课堂练习课堂练习2:编写一个实现两数交换的程序,:编写一个实现两数交换的程序,要求程序中定义一个交换两数的通用过程。要求程序中定义一个交换两数的通用过程。Private Sub command1_click()Dim a%,b%a=text1.text b=text2.text call swap(a,b)text1.text=a text2.text=bEnd SubPriva
9、te Sub Swap(X As Integer,Y As Integer)Dim temp As Integer Temp=X:X=Y:Y=TempEnd Sub 调调用用FunctionFunction过过程程的的方方法法与与调调用用Visual Visual BasicBasic内内部部函函数数方方法法相相同同。即即在在表表达达式式中中写写出出它它的的名名称称和和相应的实在参数:相应的实在参数:Function Function 过程名过程名(实在参数表实在参数表)1)1)调调用用FunctionFunction过过程程与与调调用用SubSub过过程程不不同同,必必须须给给参参数数加加上
10、上括括号号,即即使使调调用用无无参参函函数数,括括号号也也不不能缺省能缺省;2)2)Visual BasicVisual Basic也允许像调用也允许像调用SubSub过程那样调用过程那样调用FunctionFunction过程。过程。(即使用即使用callcall语句和把函数名当作一语句和把函数名当作一个语句使用。个语句使用。)7.3.3 7.3.3 调用调用FunctionFunction过程过程例例7-3 编写程序,求两个正整数的最大公约数。编写程序,求两个正整数的最大公约数。Private Sub Form_Click()Dim N As Integer,M As Integer,G
11、As Integer N=InputBox(输入N)M=InputBox(输入M)G=Gcd(N,M)Print N;和;M;的最大公约数是:;GEnd SubPrivate Function Gcd(ByVal A As Integer,ByVal B As Integer)As Integer Dim R As Integer R=A Mod B Do While R 0 A=B:B=R:R=A Mod B Loop Gcd=BEnd Function1.1.调用调用窗体窗体模块中的模块中的公有公有过程过程 Call Form1.ExamSubCall Form1.ExamSub(实参表实
12、参表)2 2调用调用标准标准模块中的模块中的公有公有过程过程 Call Call CommonSubCommonSub (实在参数实在参数)或或 Call Module2.CommonSub(Call Module2.CommonSub(实实参表参表)7.3.4 7.3.4 调用其它模块中的公有过程调用其它模块中的公有过程(了解了解)课堂练习课堂练习在调用过程中,下述说明中正确的是()A A)只能使用)只能使用CallCall语句调用语句调用SubSub过程过程B B)调用)调用SubSub过程时,实在参数必须用括号括起来过程时,实在参数必须用括号括起来CC)在表达式中调用)在表达式中调用Fu
13、nctionFunction过程时,过程时,可以不用括号把实在参数括起来可以不用括号把实在参数括起来D D)FunctionFunction过程也可用过程也可用CallCall语句调用语句调用课堂练习课堂练习在Visual Basic中,以下说法正确的是()A A)过程的定义可以嵌套,但过程的调用不能嵌套)过程的定义可以嵌套,但过程的调用不能嵌套B B)过程的定义不可以嵌套,但过程的调用能嵌套)过程的定义不可以嵌套,但过程的调用能嵌套CC)过程的定义和过程的调用均可以嵌套)过程的定义和过程的调用均可以嵌套D D)过程的定义和过程的调用均不可以嵌套)过程的定义和过程的调用均不可以嵌套课堂练习课堂
14、练习在语句Public Sub Sort(I As Integer)中,I是一个按()传递的参数A A)地址)地址B B)值)值CC)变量)变量D D)常量)常量7.4 7.4 参数的传递参数的传递(重点、难点重点、难点)7.4.1 7.4.1 形参与实参形参与实参7.4.2 7.4.2 按值传递参数按值传递参数7.4.3 7.4.3 按地址传递参数按地址传递参数7.4.4 7.4.4 数组参数数组参数7.4.5 7.4.5 对象参数对象参数 在调用一个有参数的过程时在调用一个有参数的过程时,首先进行的是首先进行的是“形形实结合实结合”,即按传值传递或按地址传递方式,实现,即按传值传递或按地址
15、传递方式,实现调用程序和被调用的过程之间的数据传递。调用程序和被调用的过程之间的数据传递。Private Sub command1_click()Dim a%,b%a=text1.text b=text2.text call swap(a,b)text1.text=a text2.text=bEnd SubPrivate Sub Swap(X As Integer,Y As Integer)Dim temp As Integer Temp=X X=Y Y=TempEnd Sub实参实参形参形参7.4.1 7.4.1 形参与实参形参与实参1.1.形参形参 出出现现在在SubSub过过程程和和Fu
16、nctionFunction过过程程的的形形参参表表中中的的变变量量名名、数数组组名名称称之之为为形形式式参参数数,过过程程被被调调用用之之前前,并并未未为为其其分分配配内内存存,其其作作用用是是用用来来接接收收传传送送给给子子过过程程的的数数据据 形参可以是:形参可以是:1)1)除定长字符串变量之外的合法变量名;除定长字符串变量之外的合法变量名;2)2)后后面面跟跟有有左左、右右圆圆括括号号(注注意意:不不含含下下标标)的数组名。的数组名。2.2.实参实参 实实际际参参数数是是指指包包含含在在过过程程调调用用的的实实参参表表中中的的变变量量,数数组组等等。其其作作用用是是将将它它们们的的数数
17、据据(数数值值或或地地址址)传传送给送给Sub或或Function过程与其对应的形参变量。过程与其对应的形参变量。实实参参可可以以是是常常量量、表表达达式式、有有效效的的变变量量名名、数数组名组成。组名组成。如如call test(x2,true,a,st)算术表达式算术表达式 参数传递是按对应参数传递是按对应“位置位置”结合而不是按名字结合,结合而不是按名字结合,即第一个实参与第一形参结合,第二个实参与第二个即第一个实参与第一形参结合,第二个实参与第二个形参结合,依此类推。形参结合,依此类推。3 3、参数传递(虚实结合)、参数传递(虚实结合)参数传递指主调过程的实参(调用时参数传递指主调过程
18、的实参(调用时已有确定值和已有确定值和内存地址的参数内存地址的参数)传递给被调过程的形参,参数的传递)传递给被调过程的形参,参数的传递有两种方式:按值传递、按地址传递。形参前加有两种方式:按值传递、按地址传递。形参前加“ByVal”关键字的是按关键字的是按值传递值传递,缺省缺省或加或加“ByRef”关关键字的为按键字的为按地址传递地址传递。例:例:Private Sub command1_click()Dim a%,b%a=text1.text b=text2.text call swap(a,b)text1.text=a text2.text=bEnd SubPrivate Sub Swap
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 7.2 过程调用与参数传递 过程 调用 参数 传递
限制150内