预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共59页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第5章过程5.1过程的定义与调用5.1.1Sub过程的定义与调用【例5.1】在窗体上添加两个命令按钮。PrivateSubCommand1_Click()Callprt(10)EndSubPrivateSubCommand2_Click()n%=Val(InputBox(“请输入整数:”))Ifn%<>0ThenCallprt(n%)ElseExitSubEndIfPrint"$$$$$"EndSubPrivateSubprt(nAsInteger)Fori=1TonPrint"*";NextiPrintEndSub说明:[Private|Public][Static]Sub子程序名([形参列表])语句组1[ExitSub][语句组2]EndSub关键字Private和Public中最多只能选其一。使用Private,表示该过程是私有的局部过程,只能被该过程所在的窗体或标准模块中的其他过程所调用。使用Public,表示该过程是公共的全局过程,可被应用程序中的任何窗体或任何标准模块中的过程所调用。VB默认所有标准模块中的子程序是Public。关键字Static的作用在5.2节中介绍。第一种形式:Call子程序名[(实参列表)]第二种形式:子程序名[实参列表]【例5.2】按值和按地址传递参数示例。根据下图所示的窗体设计界面。程序代码:说明:VB除了用加括弧的方式区分按值或按址传递参数外,还可以在定义过程时,在相应的形参前加关键字ByVal或ByRef表示。按址传递是默认方式【例5.3】在窗体上添加两个文本框和两个命令按钮。PublicSubswap(xAsString,yAsString)t$=xx=yy=t$EndSubPrivateSubCommand1_Click()a$=Text1.Textb$=Text2.TextCallswap(a$,b$)Text1.Text=a$Text2.Text=b$EndSubPrivateSubCommand2_Click()Form2.ShowForm1.HideEndSubPrivateSubCommand1_Click()a$=Text1.Textb$=Text2.Textc$=Text3.Textd$=a$IfVal(d$)<Val(b$)ThenCallswap(d$,b$)IfVal(d$)<Val(c$)ThenCallswap(d$,c$)Text4.Text=d$EndSubPrivateSubCommand2_Click()Form1.ShowForm2.HideEndSub在标准模块的声明段中用关键字Public定义的子程序为全局级子程序,这种子程序可被应用程序中的任何模块所调用。本例中Form1和Form2窗体就分别调用了全局级子程序swap,完成相同的交换功能;【例5.4】函数过程的示例。在窗体上添加两个标签、两个文本框和两个命令按钮。PrivateSubCommand1_Click()Text2.Text=sum(Val(Text1.Text))Label2.Caption=“总和是”EndSubPrivateSubCommand2_Click()n%=Val(Text1.Text)Text2.Text=sum(n%)/n%Label2.Caption=“平均值是”EndSubPrivateFunctionsum(nAsInteger)Fori=1Tons=s+INextIsum=sEndFunction本例用到过程的另一种形式:函数过程。在解决实际问题时,如果没有现成的函数可用时,我们可以自定义函数过程。函数过程同Sub过程一样也是由一段独立的代码组成,可以被某个过程多次调用[Private|Public][Static]Function函数名[(形参列表)][As类型]语句组1[函数名=函数返回结果ExitFunction]语句组2函数名=函数返回结果EndFunction函数过程的调用同标准函数调用,其形式为:函数过程名([实参列表])注意:实参数列表中的个数必须与形参个数相同,位置与类型一一对应。可以是同类型的常量、变量、表达式。【例5.5】计算1!+2!+3!+……+20!的值。在窗体上添加一个标签、一个文本框和两个命令按钮。PrivateSubCommand1_Click()DimmAsInteger,jsumAsSingleForm=1To20jsum=jsum+jch(m)NextmText1.Text=”1!+2!+3!+…+20!=”&jsumEndSub变量jsum的作用是存放1!、2!、…、20!的累加和。在循环体中,每次调用函数jch时,将循环控制变量m作为实参发送到函数过程的形参中,作为当前要计算的n!在函数过程中,将计算n!的结果f