VB程序设计 第八章.ppt
《VB程序设计 第八章.ppt》由会员分享,可在线阅读,更多相关《VB程序设计 第八章.ppt(39页珍藏版)》请在三一办公上搜索。
1、Visual Basic程序设计教程,内蒙古科技大学实践训练中心,第八章 过程,8.1 过程的定义与调用,VB的过程:系统提供的内部函数过程,其中,事件是构成VB应用程序的主体,应 用设计基本上是对事件过程进行设计;用户根据应用的需要而设计的过程;VB的过程分类:以”Sub”保留字开始的子过程;以“Function”保留字开始的函数过程;以“Property”保留字开始的属性过程;以“Event”保留字开始的事件过程;,8.1 过程的定义与调用,8.1.1 Sub过程的定义与调用 用户自定义子过程通常来完成一个特定的功能,其名字可由用户根据自己的习惯而定义。VB的事件过程只在用户触发该事件后启
2、动,而用户自定义的子过程只有在被其他过程调用时才启动。1、用户自定义子过程的一般格式 Static Private|Public Sub 子过程名(参数列表)语句块 Exit Sub 语句块 End Sub 说明:格式中“Sub 子过程名”和”End Sub“不可缺;子过程名的命名规则与 变量命名规则相同;,8.1 过程的定义与调用,8.1.1 Sub过程的定义与调用 Static:在过程名之前使用Static,表示过程中的局部变量都是静态变 量。当程序退出该程序时,局部变量的值仍然保留作为下次调用的初 值。Static对数组变量也有效,但对动态变量则无法转换为静态变量;Private:表示该
3、过程为私有过程,只有本模块中的其他过程访问,不能 被其他模块中的模块访问;Public:表示该过程为公有过程,即可以被程序中所有模块调用。本窗 体和其他模块均可调用,但过程名必须是唯一的,否则在过程名前加上 该过程所在的窗体名或模块名。参数列表:其他过程与本过程进行参数传递和交换的形式参数,当参数 个数大于等于2时,参数之间用”,”隔开;Exit Sub:在过程任意位置终止过程的运行而退出过程而使用的语句;End Sub:过程结束标识,用来正常终止过程;,8.1 过程的定义与调用,8.1.1 Sub过程的定义与调用 过程参数的传递默认方式为引用(地址)传递(ByRef),若只传参数(实参)的值
4、则必须将形式参数说明为Byval,格式如下:Byval 变量名或数组名()As 数据类型 过程内部不能再定义其他过程,可以调用其他合法的过程,事件过程中 也不允许定义子过程。,sub command_click()call test()end sub,static sub test()dim a(2)as integer a(0)=a)(0)+1 a(1)=a(1)+1 print a(0);a(1)end sub,8.1 过程的定义与调用,8.1.1 Sub过程的定义与调用 定义过程的方式:手工方式:在过程、事件代码窗口中,编写事件程序:sub 过程名(参数列表)End Sub 系统方式 进
5、入模块代码窗口:系统菜单”工程“”添加”“新建”,则新建一 个模块,在标准模块中填写子过程代码;系统菜单”工具“”添加过程“,确定子过程的名称以及类型后,即回 到模块的代码窗口;,8.1 过程的定义与调用,8.1.1 Sub过程的定义与调用 2、子过程调用 Call 过程名(实参列表);如:call text(12,”abc”)过程名实参列表;如:test 12,”abc”例8-1求n!解题思路:在标准模块中定义一个子过程n,用于实现求任意正整数的阶乘。,8.1 过程的定义与调用,8.1.1 Sub过程的定义与调用 2、子过程调用 Call 过程名(实参列表);如:call text(12,”
6、abc”)过程名实参列表;如:test 12,”abc”例8-2给出矩形的长和宽,求矩形的面积。解题思路:定义一个过程area,计算矩形的面积。,8.1 过程的定义与调用,8.1.2 Function过程的定义与调用 函数过程(Function)与子过程一样,可将一组完成特定功能的程序代码组织起来,作为一个相对独立的过程使用;但子过程没有值的返回,函数过程有值的返回。1、函数过程的定义 Static Public Private Function 函数过程名(参数列表)As 类型 语句块 Exit Function 语句块给函数名赋返回值End Funtion,8.1 过程的定义与调用,8.1
7、.2 Function过程的定义与调用 说明:格式中的Static、Public、Private的含义与作用以及参数列表的格式 和使用方法,Byval传值的作用等均与子过程的定义相同;Exit Function的作用与Exit Sub相同;As类型,指定该函数的返回值的类型;语句块为符合VB语法的一条语句或多条语句;给函数名赋值:一般情况下,定义一个函数过程,就是能返回一个值 给调用程序,故函数过程应有一条语句给函数名赋值即调用后的返回 值;若不赋值,则默认返回值为0(数值型函数),或空值(可变类 型函数)。与Sub定义一样,函数过程定义的函数体内不允许定义其他的函数过 程和子过程。,8.1
8、过程的定义与调用,8.1.2 Function过程的定义与调用 2、函数过程的定义方法 在代码窗口中手工输入函数过程的框架;如:Static Private Function Areturn(a as integer,b as integer)as Integer End Function 系统菜单“工具”“添加过程”,选择相应的类型和范围属性;3、函数过程的调用 函数过程的调用如同调用VB的系统内部函数一样;程序中。函数过程的 调用一般放在表达式中赋值号”“的右边,将它看成某种类型的值而参加 表达式的组成。,8.1 过程的定义与调用,8.1.2 Function过程的定义与调用3、函数过程的
9、调用 例8-3函数过程的定义与调用:判断某个成绩(百分制)的等级.解题思路:定义一个函数过程,用于判断分数的等级,判断后的结果返回为 字符串:优、良、中、及格或不及格。,8.1 过程的定义与调用,8.1.2 Function过程的定义与调用 例8-4 编写求任意给定两个自然数的最大公约数的程序。解题思路:对于已知两个数m、n,使得mn;m除以n得余数 r;若r0,则n为所求的最大公约数,算法结束,否则执行(1);nm,rn,再重复步骤(2);,8.2 函数和过程的参数传递,参数传递:在调用过程时,过程参数使用的是实际参数,它要与定义过程时的形式参数一一对应,并以适当的形式将实参传给行参,供过程
10、使用。参数传递的方式:传值;传址;8.2.1 传值 形参:指在定义过程时出现在参数列表中的变量名,这些变量名的使用只 能在过程内部。实参:是在调用该过程时调用过程中已组织好的准备传给形参的常量、变 量、表达式或数组控件对象等,它是在调用过程(主程序或父过程)中 组织好的数据,实参若是常量,则传递就相当于将该常量的值赋给 形参。实参若为一个简单变量的表达式,也是与常量一样将该表达 式的值赋给对应的形式参数。传递参数时,形参和实参的个数一定相同,传递时要一一对应;参数之间要用“,”隔开;每个实参的类型必须与相对应的行参类型相同;,8.2 函数和过程的参数传递,8.2.1 传值 Sub tempSu
11、b(a as integer,b as single,c as string)End Sub可采用调用方式:call tempsub(a%,b!,”comm”),过程定义中默认的参数传递是地址传递,但在定义过程中,若某个参数用Byval来说明。则该参数便是传值。传值的一个特点是将实参的值复制一份给形式参数所代表的临时内存单元,此后实参与形参之间再无任何联系,形式参数的任何变化均不会对实参产生任何影响。,8.2 函数和过程的参数传递,8.2.1 传值 例【8-5】传值调用 Private sub command1_click()dim x as integer,y as integer x=10
12、:y=20 print“x=“;x;”y=“;y;call temp(x,y)print“x=“;x;”y=“;y;End Sub Sub temp(Byval x as integer,Byval y as integer)x=x+100:y=x*60 print“x=“;x,”y=“,y;End Sub 运行结果:x=10 y=20 调用前的实参 x=110 y=6600 temp中的行参 x=10 y=20 调用后的实参,8.2 函数和过程的参数传递,8.2.1 传值 例8-6求幂级数 解题思路:定义temp函数用于计算x的幂,需要用到2个参数,x和y,x用于传递某个数,y用于传递幂的次
13、方数。y是传值参数,因此,函数中y值的改变不会影响它相应的实际参数。,8.2 函数和过程的参数传递,8.2.2 传址 在过程调用过程中,参数传递的默认方式是按地址传递,故不加任何关键字就是传址调用。传址的特点是形参与对应实参用相同的内存地址,形参的改变将影响实参的改变,实际上,形参也是实参的别名。通常情况下,形式参数为传值形式,则形式参数可认为是一个局部变量;但若为传址方式,则由形参与实参连系起来,使形参为非局部变量,因为形参的改变结果直接传给了实参。例【8-7】对于例8-5中的过程temp将其定义为:sub temp(x as integer,y as integer)End Sub 则Ca
14、ll temp(x,y)变为了传址调用,故形参的改变会引起实参x、y的值改变。,8.2 函数和过程的参数传递,8.2.2 传址 例8-8传值与传址两种方式下,形参与实参的改变。,8.2 函数和过程的参数传递,8.2.3 数组及对象作为过程的参数 1、数组作为参数 用数组名作为形参或实参;用数组元素作为实参进行传递;注意:第中方法相当于传址方式,即将数组的起始地址传给形参,但在使 用时应注意以下几点:用数组名进行地址传递时,在参数列表中说明数组,不需要说明其维 数的定义,但圆括号不可省略;在过程定义体内如需要知道参数的上、下界,可用UBound和 LBound 确定参数组的上、下界;形参数组和实
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB程序设计 第八章 VB 程序设计 第八
链接地址:https://www.31ppt.com/p-5451924.html