Visual Basic语言程序设计及实验教程课件:过程.ppt
事件过程:通用过程:ab1015xy按地址传递按地址传递tmp101510过程例:PublicSubMysub3(ByValxAsInteger,yAsInteger)x=y+xy=xModyEndSubPrivateSubForm_Click()DimaAsInteger,bAsIntegera=11:b=22CallMysub3(a,b)Printa;bEndSubA.3311B.1111C.1122D.22112.按值传递参数传递的只是变量的副本,如果过程改变了这个值,则所做的变动只影响副本而不会影响变量本身。过程PrivateSubSwap(ByValxAsInteger,ByValyAsInteger)DimtmpAsIntegertmp=x:x=y:y=tmpEndSub过程PrivateSubForm_Click()DimaAsInteger,bAsIntegera=10:b=15Print调用交换函数过程前:a=;a,b=;bSwapa,b‘按值传递参数Print调用交换函数过程后:a=;a,b=;bEndSub1510事件过程:通用过程:ab1015xy按值传递按值传递tmp101510例:PublicSubMysub4(xAsInteger)x=3*x-1Ifx5Thenx=x+9Printx;EndSubPrivateSubForm_Click()x=1Mysub43+xPrintxEndSubA.201B.2014C.111D.1114例;以下程序段运行后,单击窗体显示的结果是。PublicSubMysub2(x,t)t=0Fork=1Toxt=t+kNextEndSubPrivateSubForm_Click()DimbAsInteger,yAsIntegerCallMysub2(3,b)y=bCallMysub2(4,b)Printy+bEndSubA.13B.16C.19D.217.1.2.3传递数组参数(按地址传递)第六章过程—通用过程(参数传递)当数组作为过程的参数时,采取的是按地址传递的方式,因此对数组元素的修改将带回调用程序。例:编写一个Function过程you,实现数组元素循环右移一位。再编写窗体的Click事件,调用you过程,在窗体上显示移动前和移动后的结果。第六章过程—通用过程(参数传递)7.1.3过程的嵌套与递归调用第六章过程—通用过程(过程的嵌套与递归调用)7.1.3.1过程的嵌套调用第六章过程—通用过程(过程的嵌套与递归调用)7.1.3.2过程的递归调用第六章过程—通用过程(过程的嵌套与递归调用)使用递归调用的条件是:⑴可以把要解决的问题转化为一个新的问题,而这个新的问题的解法仍与原来的解法相同,只是所处理的对象有规律地递增或递减。⑵可以用上述转化过程使问题得到解决。⑶有一个明确的结束递归的条件例:采用递归方法计算n!(n0)。分析:自然数n的阶乘可以递归定义为:第六章过程—通用过程(过程的嵌套与递归调用)递归调用的执行过程分两部分进行:Fact(4)=4*fact(3)Fact(3)=3*fact(2)Fact(2)=2*fact(1)Fact(1)=1*fact(0)Fact(0)=1Fact(4)=4*6Fact(3)=3*2Fact(2)=2*1Fact(1)=1*1边界条件第六章过程—通用过程(过程的嵌套与递归调用)例:P186(2)例:用递归调用方法求两个正整数n和m的最大公约数。(上机操作)分析:通过辗转相除求两个整数最大化的方法,也