可视化程序设计第7章 过程.ppt
《可视化程序设计第7章 过程.ppt》由会员分享,可在线阅读,更多相关《可视化程序设计第7章 过程.ppt(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第7章 过 程7.17.1 SubSubSubSub过程过程过程过程 7.1.1 7.1.1 事件过程与通用过程事件过程与通用过程 7.1.2 7.1.2 7.1.2 7.1.2 通用过程的创建通用过程的创建通用过程的创建通用过程的创建 7.1.3 7.1.3 7.1.3 7.1.3 通用过程的调用通用过程的调用通用过程的调用通用过程的调用7.27.2 FunctionFunctionFunctionFunction过程过程过程过程 7.2.1Function7.2.1Function过程的定义过程的定义过程的定义过程的定义7.2.2Function7.2.2Function过程的调用过程的调
2、用过程的调用过程的调用7.2.3 7.2.3 查看过程查看过程7.37.3向过程传递参数向过程传递参数向过程传递参数向过程传递参数7.3.1 7.3.1 形式参数与实际参数形式参数与实际参数7.3.27.3.2按值按值按值按值传递与传递与传递与传递与按地址按地址按地址按地址传递传递传递传递7.37.3.3 3 使用参数使用参数 7.3.47.3.4传递数组传递数组传递数组传递数组 7.47.47.47.4 过程的嵌套与递归调用过程的嵌套与递归调用过程的嵌套与递归调用过程的嵌套与递归调用 7.4.1 7.4.1 7.4.1 7.4.1 过程的嵌套过程的嵌套过程的嵌套过程的嵌套 7.4.2 7.4
3、.2 7.4.2 7.4.2 过程的递归过程的递归过程的递归过程的递归习题七习题七习题七习题七7.1.1事件过程与通用过程事件过程与通用过程1.事件过程事件过程控件事件过程的语法为控件事件过程的语法为PrivateSub控件名控件名_事件名事件名(形参表形参表)语句组语句组EndSub窗体事件过程的语法为窗体事件过程的语法为PrivateSubForm_事件名事件名(形参表形参表)语句组语句组EndSub7.1.2通用过程的创建通用过程的创建1.在在“代码代码”编辑窗口中输入编辑窗口中输入Private|PublicStaticSub过程名过程名(形参表形参表)语句列语句列ExitSub语句列
4、语句列EndSub说明:说明:(1)子子过过程程名名:命命名名规规则则与与变变量量名名规规则则相相同同。子子过过程程名名不不返返回值,而是通过形参与实参的传递得到结果。回值,而是通过形参与实参的传递得到结果。(2)形式参数列表:形式参数通常简称)形式参数列表:形式参数通常简称“形参形参”,仅表示形,仅表示形参的类型、个数、位置,定义时是无值的,只有在过程被参的类型、个数、位置,定义时是无值的,只有在过程被调用时,虚实参结合后才获得相应的值。调用时,虚实参结合后才获得相应的值。(3)过程可以无形式参数,但括号不能省。)过程可以无形式参数,但括号不能省。(4)参数的定义形式:)参数的定义形式:By
5、ValByRef变量名变量名()As类型类型,,ByVal表示当该过程被调用时,参数是按值传递的;缺省或表示当该过程被调用时,参数是按值传递的;缺省或ByRef表示当该过程被调用时,参数是按地址传递的。表示当该过程被调用时,参数是按地址传递的。2.使用使用”添加过程添加过程”对话框对话框通过通过“工具工具”菜单中的菜单中的“添加过程添加过程”命令,出现命令,出现“添加添加过程过程”对话框(见图),选择过程类型(子过程、函对话框(见图),选择过程类型(子过程、函数、属性、事件)及作用范围(公有的数、属性、事件)及作用范围(公有的Public、私有的、私有的Private),单击确定后得到一个过程
6、或函数定义的结),单击确定后得到一个过程或函数定义的结构框架(模板),如:构框架(模板),如:PublicSubSort()EndSub7.1.3通用过程的调用通用过程的调用调用调用Sub过程有两种方法:过程有两种方法:=使用使用Call语句:语句:Call过程名过程名(实参表实参表)=直接使用过程名:直接使用过程名:过程名过程名实参表实参表【例例7-1】在在一一个个窗窗口口中中包包含含3个个命命令令按按钮钮,当当用用户户单单击击其其中中一个时,要求其他个别按钮不能使用,一个时,要求其他个别按钮不能使用,(1)双击窗体的空白区,打开代码编辑窗口。双击窗体的空白区,打开代码编辑窗口。(2)编写通
7、用过程代码:编写通用过程代码:PublicSubButton_Manage(ButtomAsObject)SelectCaseButtomCaseCommand1Command2.Enabled=FalseCaseCommand2Command1.Enabled=FalseCaseCommand3Command1.Enabled=TrueCommand2.Enabled=TrueEndSelectEndSub(3)运行工程。运行工程。【例例7-2】计算阶乘计算阶乘5!、6!、8!,以及阶乘的和,以及阶乘的和5!+6!+8!(如图(如图7-6所示)。所示)。fact通用子过程为通用子过程为Sub
8、fact(mAsInteger,totalAsLong)计算阶乘子过程计算阶乘子过程DimiAsIntegertotal=1Fori=1Tomtotal=total*iNextiEndSub命令按钮组的命令按钮组的Click事件代码为事件代码为PrivateSubCommand1_Click(IndexAsInteger)DimaAsInteger,bAsInteger,cAsInteger,sAsLong,totAsLongn=IndexSelectCasenCase0a=5Callfact(a,tot)Label1.Caption=a&!=&totCase1a=6Callfact(a,to
9、t)Label1.Caption=a&!=&totCase2a=8Callfact(a,tot)Label1.Caption=a&!=&totCase3a=5:b=6:c=8Callfact(a,tot)s=totCallfact(b,tot)s=s+totCallfact(c,tot)s=s+totLabel1.Caption=a&!+&b&!+&c&!=&sEndSelectEndSub7.2Function过程过程VisualBasic函数分为内部函数和外部函数,外部函数是用户根函数分为内部函数和外部函数,外部函数是用户根据需要用据需要用Function关键字定义的函数过程,与子过程不同
10、的是关键字定义的函数过程,与子过程不同的是函数过程将返回一个值函数过程将返回一个值。7.2.1Function过程的定义过程的定义Private|PublicStaticFunction函函数数名名(形形参参表表)As类型类型语句列语句列函数名函数名=表达式表达式ExitFunction语句列语句列函数名函数名=表达式表达式EndFunction说明:说明:(1)函数名:命名规则与变量名规则相同。)函数名:命名规则与变量名规则相同。(2)在函数体内,函数名可以当变量使用,函数的返回)在函数体内,函数名可以当变量使用,函数的返回值就是通过对函数名的赋值语句来实现的,在函数过值就是通过对函数名的赋
11、值语句来实现的,在函数过程中至少要对函数名赋值一次。程中至少要对函数名赋值一次。(3)AS类型:是指函数返回值的类型,若省略,则函数类型:是指函数返回值的类型,若省略,则函数返回变体类型值(返回变体类型值(Variant)。)。(4)ExitFunction:表示退出函数过程,常常是与选择:表示退出函数过程,常常是与选择结构(结构(If或或SelectCase语句)联用,即当满足一定条件语句)联用,即当满足一定条件时,退出函数过程。时,退出函数过程。(5)形参数列表:形参的定义与子过程完全相同。)形参数列表:形参的定义与子过程完全相同。7.2.2Function过程的调用过程的调用调用形式如下
12、:调用形式如下:函数名(实参列表)函数名(实参列表)说明:说明:在调用时实参和形参的数据类型、顺序、个数必须在调用时实参和形参的数据类型、顺序、个数必须匹配。函数调用只能出现在表达式中,其功能是求得匹配。函数调用只能出现在表达式中,其功能是求得函数的返回值。函数的返回值。【例例7-3】计算任意整数计算任意整数n的阶乘的的阶乘的Function过程过程fact:Functionfact(xAsInteger)AsLongDimpAsLong,iAsIntegerp=1Fori=1Toxp=p*iNextifact=pEndFunction【例例7-4】计算圆面积的计算圆面积的Function过程
13、过程cir:Functioncir(rAsSingle)AsSingleConstpiAsSingle=3.1415926cir=pi*r2EndFunction【例例7-5】已知直角三角形两直角边,计算第已知直角三角形两直角边,计算第3边(斜边)的边(斜边)的Function过程:过程:FunctionHypotenuse(aAsInteger,bAsInteger)AsSingleHypotenuse=Sqr(a2+b2)EndFunction【例例7-6】求求3到到10的阶乘之和。的阶乘之和。PrivateSubCommand1_Click()DimsumAsLong,iAsIntege
14、rFori=3To10sum=sum+fact(i)NextiLabel2.Caption=sumEndSub【例例7-7】编编写写求求两两数数最最大大公公约约数数的的Function过过程程。在在主主程程序序中中输输入入3个个整整数,调用数,调用Function过程求出过程求出3个整数的最大公约数。个整数的最大公约数。FunctionHcf(mAsLong,nAsLong)AsLongDimrAsLong,cAsLongIfmnThenc=m:m=n:n=cEndIfr=mModnDoWhiler0m=nn=rr=mModnLoopHcf=nEndFunctionPrivateSubComm
15、and1_Click()DimlAsLong,mAsLong,nAsLongDimpAsStringl=Val(Text1.Text)m=Val(Text2.Text)n=Val(Text3.Text)Ifl*m*n=0ThenExitSubp=3个数的最大公约数是个数的最大公约数是:&Str(Hcf(Hcf(l,m),n)Label1.Caption=pEndSub7.3向过程传递参数向过程传递参数VisualBasic中不同模块(过程)之间数据的传递有两种方式:中不同模块(过程)之间数据的传递有两种方式:通过过程调用实参与形参的结合实现;使用全局变量来实现各通过过程调用实参与形参的结合实现
16、;使用全局变量来实现各过程中共享数据。过程中共享数据。7.3.1形式参数与实际参数形式参数与实际参数1、形式参数、形式参数 是指在定义通用过程时,出现在是指在定义通用过程时,出现在Sub或或Function语句中的变语句中的变量名后面园括号内的数,是用来接收传送给子过程的数据,量名后面园括号内的数,是用来接收传送给子过程的数据,形参表中的各个变量之间用逗号分隔。形参表中的各个变量之间用逗号分隔。2、实际参数、实际参数实际参数是指在调用实际参数是指在调用Sub或或Function过程时,写入子过程名过程时,写入子过程名或函数名后括号内的参数,其作用是将它们的数据(数值或或函数名后括号内的参数,其
17、作用是将它们的数据(数值或地址)传送给地址)传送给Sub或或Function过程与其对应的形参变量。过程与其对应的形参变量。实参可由常量、表达式、有效的变量名、数组名(后加左、实参可由常量、表达式、有效的变量名、数组名(后加左、右括号,如右括号,如A())组成,实参表中各参数用逗号分隔。)组成,实参表中各参数用逗号分隔。7.3.2参数传递(虚实结合)参数传递(虚实结合)参数传递指主调过程的实参(调用时已有确定值和内存参数传递指主调过程的实参(调用时已有确定值和内存地址的参数)传递给被调过程的形参,参数的传递有两地址的参数)传递给被调过程的形参,参数的传递有两种方式:按值传递、按地址传递。形参前
18、加种方式:按值传递、按地址传递。形参前加“ByVal”关关键字的是按值传递,缺省或加键字的是按值传递,缺省或加“ByRef”关键字的为按地关键字的为按地址传递。址传递。传址与传值传址与传值传址:传址:形参得到的是实参的地址,当形参值的改变同形参得到的是实参的地址,当形参值的改变同时也改变实参的值。时也改变实参的值。传值:传值:形参得到的是实参的值,形参值的改变不会影形参得到的是实参的值,形参值的改变不会影响实参的值。响实参的值。SubSwap1(ByValx%,ByValy%)DimTemp%Temp=x:x=y:y=TempEndSubSubSwap2(x%,y%)DimTemp%Temp=
19、x:x=y:y=TempEndSubPrivateSubCmdOK_Click()Dima%,b%a=10:b=20Swap1a,b传传值值PrintA1=;a,B1=;ba=10:b=20Swap2a,b传地址传地址PrintA2=;a,B2=;bEndSub值传递的执行过程如下图:值传递的执行过程如下图:通过地址传递数据的执行过程通过地址传递数据的执行过程7.3.3使用参数使用参数1.使用可选的参数使用可选的参数概念:概念:用户在自定义子过程或函数时也可以定义可选参数。要指定某个用户在自定义子过程或函数时也可以定义可选参数。要指定某个形参为可选参数,这就是在形参变量前加入形参为可选参数,这
20、就是在形参变量前加入Optional关键字即关键字即可。可。如果一个过程某个形参为可选参数,则在调用此过程时可以不提如果一个过程某个形参为可选参数,则在调用此过程时可以不提供对应于这个形参的实参,若一个过程有多个形参,当它的一供对应于这个形参的实参,若一个过程有多个形参,当它的一个形参被设定为可选参数,则这个参数之后面的其它参数也必个形参被设定为可选参数,则这个参数之后面的其它参数也必是可选的,并且要用是可选的,并且要用Optional关键字来声明。关键字来声明。说明:说明:1、检测可选参数是否被省略检测可选参数是否被省略使用使用VB的内部函数的内部函数IsMissing(可选参数名)(可选参
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 可视化程序设计第7章 过程 可视化 程序设计
限制150内