资源描述:
《过程调用与参数传递》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、上节课复习知识要点1、过程的基本概念2、sub过程定义格式定义方法窗体事件的执行顺序3、Function过程(定义格式、定义方法)7.3过程调用7.3.1事件过程的调用7.3.2调用Sub过程7.3.3调用Function过程7.3.4调用其它模块中的公有过程事件过程由一个发生在VisualBasic中的事件来自动调用或者由同一模块中的其它过程显式调用。请看示例。p1317.3.1事件过程的调用Sub过程和function过程必须在事件过程或其他过程中显式调用,否则过程代码就永远不会被执行。在调用程序时,
2、程序执行到调用某通用过程的语句后,系统就会将控制转移到被调用的过程。在被调用的过程中,从第一条sub或function语句开始,依次执行其中的所有语句,当执行到endsub或endfunction语句后,返回到主调程序的断点,并从断点处继续程序的执行。7.3.2调用Sub过程主调程序调用过程AEndSub过程AEndSub调用Sub通用过程流程Sub子过程的调用(1)用Call语句调用Sub过程语法:Call过程名(实在参数表)实在参数的个数、类型和顺序,应该与被调用过程的形式参数相匹配,有多个参数时,用
3、逗号分隔。如果被调用的过程是一个无参过程,则括号可以省略.PrivateSubCommand1_Click()DimaAsInteger,bAsIntegera=Val(Text1.Text):b=Val(Text2.Text)Calladd(a,b)EndSub例:PrivateSubadd(xAsInteger,yAsInteger)s=x+yText3.Text=sEndSub调用add子过程PrivateSubCommand1_Click()DimaAsInteger,bAsIntegera=Va
4、l(Text1.Text):b=Val(Text2.Text)s=a+bText3.Text=sEndSub等价于:例7-2编写一个找出任意一个正整数的因子的程序PrivateSubCommand1_Click()DimIntaAsInteger,StAsStringInta=Text1.TextCallFactor(Inta,St)Text2.Text=StEndSubPrivateSubFactor(ByValNAsInteger,SAsString)DimIAsIntegerForI=1ToN-1I
5、fNModI=0ThenS=S&Str(I)NextIEndSub(2)把过程名作为一个语句来用语法:过程名[实参1[,实参2……]]它与(1)的不同点是:去掉了关键字call和实参列表的括号PrivateSubCommand1_Click()DimaAsInteger,bAsIntegera=Val(Text1.Text):b=Val(Text2.Text)adda,bEndSubPrivateSubadd(xAsInteger,yAsInteger)s=x+yText3.Text=sEndSub练一练
6、:使用第2种调用方式修改例7.2。PrivateSubCommand1_Click()DimIntaAsInteger,StAsStringInta=Text1.TextFactorInta,StText2.Text=StEndSubPrivateSubFactor(ByValNAsInteger,SAsString)DimIAsIntegerForI=1ToN-1IfNModI=0ThenS=S&Str(I)NextIEndSub课堂练习2:编写一个实现两数交换的程序,要求程序中定义一个交换两数的通用过
7、程。PrivateSubcommand1_click()Dima%,b%a=text1.textb=text2.textcallswap(a,b)text1.text=atext2.text=bEndSubPrivateSubSwap(XAsInteger,YAsInteger)DimtempAsIntegerTemp=X:X=Y:Y=TempEndSub调用Function过程的方法与调用VisualBasic内部函数方法相同。即在表达式中写出它的名称和相应的实在参数:Function过程名([实在参数
8、表])1)调用Function过程与调用Sub过程不同,必须给参数加上括号,即使调用无参函数,括号也不能缺省;2)VisualBasic也允许像调用Sub过程那样调用Function过程。(即使用call语句和把函数名当作一个语句使用。)7.3.3调用Function过程例7-3编写程序,求两个正整数的最大公约数。PrivateSubForm_Click()DimNAsInteger,MAsInteger,GAsInteger