《Visual-Basic程序设计VB语言第7章-过程》由会员分享,可在线阅读,更多相关《Visual-Basic程序设计VB语言第7章-过程(28页珍藏版)》请在金锄头文库上搜索。
1、第七章过程所谓过程,就是指具有特定书写格式,包含若干可作为一个整体被执行的代码行的组合。根据执行的方式,可把过程分为事件过程和通用过程。针对由用户或系统引发的事件,事先编写好的用于改变对象的状态和行为、对相关的信息进行处理的程序代码段称为事件过程。一个应用程序中的多个窗体可以共享一些代码,或者一个窗体内不同的事件过程可以共享一些代码。为减少编写代码的工作量和使程序结构更加清晰,可以将这些被共享的代码单独设计为一个过程,这个过程称为“通用过程”。通用过程又分为Sub过程和Function过程。7.1Sub过程vSub过程的定义格式访问权限Sub(形参列表)变量说明语句ExitSub/结束过程执行
2、,返回调用处语句EndSub访问权限:Public或Private或StaticvSub过程的创建方法一:执行菜单命令:视图|代码窗口,出现代码编辑器,再执行菜单命令:工具|添加过程,出现“添加过程”对话窗口。方法二:打开代码编辑器,直接在通用模块声明段输入相应代码。vSub过程的调用Call(实参)实参1.输入一个字符串,逆序输出。(P160)PrivateSubinvert(xAsString,yAsString)Callinvert(a,b)2.计算S=1!+2!+N!(P161)PrivateSubjc(nAsInteger,tAsLong)jci,t7.2Function过程v函数过
3、程的定义访问权限Function(形参列表)As数据类型变量说明语句函数名=表达式ExitFunction语句EndFuction建立函数的方法和建立通用过程的方法基本相同。v函数过程的调用Call(实参)或(实参)调用函数时,参数的传递方式和调用通用过程相同。例:定义变量数据交换函数swap()FunctionSwap(xAsInteger,yAsInteger)AsIntegerDimTempAsIntegerTemp=xx=yy=TempEndFunctionFunctionarea(aAsSingle,bAsSingle,cAsSingle)AsSingleDimsAsSingles=
4、(a+b+c)/2area=sqr(s*(s-a)*(s-b)*(s-c)EndFunction已知三角形三边,求三角形面积。(P163)PrivateFunctionjc(nAsInteger)AsLongDimi%,t&t=1Fori=1Tont=t*iNextijc=tEndFunction求阶乘。(P164)7.3事件过程v事件过程定义格式PrivateSubForm_事件名(参数列表)局部变量和常数声明语句块EndSubPrivateSub控件名_事件名(参数列表)局部变量和常数声明语句块EndSub窗体事件过程控件事件过程v事件过程的调用:Call控件名_事件名例:调用comman
5、d1的click事件过程PrivateSubCommand1_Click()Picture1.Print“Hello”EndSubCallCommand1_Click7.6作用域vVB应用程序结构VB使用工程来管理构成应用程序的所有文件。模块是VB将不同类型过程代码组织到一起的一种结构。窗体模块应用程序中的每个窗体都有一个对应的窗体模块(也称窗体文件)。窗体模块不仅包含窗体及窗体内各种对象的属性设置,而且还包含用于处理发生在窗体中各个对象上的事件过程。一个VB应用程序至少应包含一个窗体模块。标准模块标准模块主要用于将应用程序中可被多个窗体共享的代码(通用过程)组织在一起,对于作用范围遍及应用程
6、序各个模块的变量(全局变量),通常也定义在标准模块中。标准模块文件的扩展名为.bas。一个应用程序可以没有标准模块,也可以包含多个标准模块。类模块类模块用于定义类的数据成员(属性)和成员函数(方法)。v变量的作用域变量的作用域是指变量的有效范围,根据变量说明方式的不同,变量有三个作用域使用关键字Static定义的局部变量称为静态变量。程序开始运行时即给静态变量分配存储空间,直到程序运行结束,空间才被释放。如果在函数名或过程名前加上Static,则其中的变量均为静态变量。局部变量PrivateSubCommand1_click()Dimx%,y%x=5:y=5x=f(y)Print“x=”;x,
7、”y=”;yEndsubFunctionf(x%)y=2f=x*yPrint“x=”;x,”y=”;yEndFunction模块级变量Privatex%PrivateSubCommand1_click()x=x+1ClsPrint“已单击按钮次数:”;xEndsubPrivateSubCommand2_click()x=x+1ClsPrint“已单击按钮次数:”;xEndsub全局变量Publicx%PrivateSubCommand1_Click()x=x+1Print“已单击按钮次数:”;xForm2.ShowEndsubPrivateSubCommand1_Click()Form1.x=
8、form1.x+1Print“已单击按钮次数:”;xForm1.ShowEndsubForm1窗体模块Form2窗体模块全局变量与局部变量同名Publica%,b%PrivateSubCommand1_Click()Dima%Print“已单击按钮次数:”;xa=a+1b=b+1Print“a=”;a,“b=”;bEndsub静态变量PrivateSubCommand1_click()Dimi%Fori=1to4Printsum(i),NextiEndsubPrivateFunctionsum(x%)Statict%t=t+xsum=tEndsub7.7过程应用举例例:查找问题(P179)PublicFunctionsearch(a()AsInteger,ByValkey)DimiAsIntegerFori=LBound(a)ToUBound(a)Ifkey=a(i)Thensearch=iExitFunctionEndIfNextisearch=-1EndFunction