资源描述:
《VB60基础教程 之第9章 过 程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第9章过程9.1函数过程的定义和调用9.2子过程的定义与调用9.3参数传递9.4变量与过程的作用域9.5递归9.6常用算法9.1函数过程的定义和调用1.引例:已知多边形的各条边的长度,要计算多边形的面积。计算多边形面积,可将多边形分解成若干个三角形。计算三角形面积的公式如下:定义函数过程areaPublicFunctionarea(x!,y!,z!)AsSingleDimc!c=1/2*(x+y+z)area=Sqr(c*(c-x)*(c-y)*(c-z))EndFunction调用函数过程:Subcommand1_click()…输入若干个三角形边长S=area(a,b,c)+
2、area(c,d,e)S=S+area(e,f,g)PrintSEndSub函数过程的定义自定义函数过程有两种方法:(1)利用工具
3、添加过程命令定义,生成一个函数的框架。(2)利用代码窗口直接定义。函数过程形式:Function函数过程名([参数列表])[As类型]局部变量或常数定义语句块函数名=返回值函数过程体[ExitFunction]语句块函数名=返回值EndFunction函数过程的定义函数过程名:命名规则同变量名参数列表形式:[ByVal]变量名[()][As类型]称为形参或哑元,仅表示参数的个数、类型,无值。函数名=返回值在函数体内至少对函数名赋值一次[ExitFun
4、ction]:表示退出函数过程例:编一求最大公约数的函数过程Functiongcd(m%,n%)AsIntegerIfm0r=mModn:m=n:n=rLoopgcd=mEndFunctionPrivateSubCommand1_Click()s=“VB程序设计教程5.0版”PrintMyReplace(s,"5.0","6.0")EndSubFunctionMyReplace$(s$,OldS$,NewS$)Dimi%,lenOldS%lenOldS=Len(OldS)i=InStr(s,OldS)DoWhilei>0s=L
5、eft(s,i-1)+NewS+Mid(s,i+lenOldS)i=InStr(s,OldS)LoopMyReplace=sEndFunction函数过程的调用函数过程调用形式:函数过程名([参数列表])参数列表:称为实参或实元,它必须与形参个数相同,位置与类型一一对应。可以是同类型的常量、变量、表达式。EndSubPrivateSubCommand1_Click()s=“VB程序设计教程5.0版”PrintMyReplace(s,"5.0","6.0")S”5.0””6.0”MyReplace$(s$,OldS$,NewS$)程序运行流程9.2子过程的定义与调用以下情况使用函数
6、过程存在不足:不是为了获得某个函数值,而是为了某种功能的处理。要获得多个结果。VB中提供了使用更灵活的子过程。子过程定义的方法同函数过程,形式如下:Sub子过程名[(参数列表)]局部变量或常数定义语句[ExitSub]语句EndSub子过程名、形参同函数过程中对应项的规定,当无形参时不要括号。子过程与函数过程的区别(1)函数过程有返回值,过程名就有类型;同时在函数过程体内必须对函数过程名赋值。子过程名没有值,过程名也就没有类型,同样不能在子过程体内对子过程名赋值。(2)把某功能定义为函数过程还是子过程,没有严格的规定。一般若程序有一个返回值时,函数过程直观;当有多个返回值时,习惯
7、用子过程。(3)形参个数的确定。形参是过程与主调程序交互的接口,从主调程序获得初值,或将计算结果返回给主调程序。不要将过程中所有使用过的变量均作为形参。(4)形参没有具体的值,只代表了参数的个数、位置、类型;只能是简单变量、数组名、自定义类型,不能是常量、数组元素、表达式。子过程的调用是一句独立的调用语句,有两种形式:Call子过程名[(实参列表)]子过程名[实参列表]用Call关键字时,若有实参,则实参必须用圆括号括起,无实参圆括号省略注意:若实参要获得子过程的返回值,则实参只能是与形参同类型的简单变量、数组名、自定义类型变量,不能是常量、表达式,也不能是控件名。将函数过程改为
8、子过程,只需将函数过程的返回结果作为子过程的形参。子过程调用9.3参数传递传址的结合过程是:当调用一个过程时,它将实参的地址传递给形参。因此在被调过程体中对形参的任何操作都变成了对相应实参的操作,实参的值就会随过程体内对形参的改变而改变。在调用过程时,一般主调过程与被调过程之间有数据传递,即将主调过程的实参传递给被调过程的形参,完成实参与形参的结合,然后执行被调过程体。在VB中,实参与形参的结合有两种方式,即传址(ByRef)和传值(ByVal),其中传址又称为引用,是默认的方法