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