欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    vb程序设计教程第三版第5章.ppt

    • 资源ID:5451937       资源大小:263KB        全文页数:31页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    vb程序设计教程第三版第5章.ppt

    第5章 过程,将程序分割成较小的逻辑部件就可以简化程序设计任务,称这些部件为过程。VB中有两类过程,一类是内部过程,另一类是外部过程,每一类过程又可分为函数过程和事件过程。内部过程是由系统提供的、不需要用户编写、可直接用过程名调用的程序段。外部过程是由用户根据自己的需要定义和编写的、可供事件过程多次调用的程序段。过程的使用,一方面将大的程序分成离散的逻辑单元,方便程序的调试;另一方面,方便了其他的程序或过程的调用。,在VB中,的Sub子过程分为:事件过程和通用过程 5.1.1 事件过程(1)窗体事件的语法Private Sub Form_事件名(参数列表)语句组End Sub(2)控件事件的语法Private Sub 控件名_事件名(参数列表)语句组 End Sub,5.1 Sub过程,子过程的定义形式如下:Public|PrivateStatic Sub 子过程名(形参表)语句组 Exit Sub 语句组End Sub,5.1.2 通用过程(Sub过程)的定义,说明:(1)子过程名:命名规则与变量名规则相同。子过程名不返回值,而是通过形参与实参的传递得到结果,调用时可返回多个值。,例:编一个交换两个整型变量值的子过程。Private Sub Swap(X As Integer,Y As Integer)Dim temp As Integer Temp=X:X=Y:Y=TempEnd Sub,(2)形式参数列表:形式参数通常简称“形参”,仅表示形参的类型、个数、位置,定义时是无值的,只有在过程被调用时,虚实参结合后才获得相应的值。(3)过程可以无形式参数,但括号不能省。(4)参数的定义形式:ByValByRef变量名()As 类型,,ByVal表示当该过程被调用时,参数是按值传递的;缺省或ByRef表示当该过程被调用时,参数是按地址传递的。,5.1.3 子过程的建立,通过“工具”菜单中的“添加过程”命令,出现“添加过程”对话框(见图),选择过程类型(子过程、函数、属性、事件)及作用范围(公有的Public、私有的Private),单击确定后得到一个过程或函数定义的结构框架(模板),如:Public Sub Sort()End Sub,5.1.4 过程的调用 1 子过程的调用 子过程名 参数列表 或 Call 子过程名(参数列表),说明:(1)参数列表称为实参或实元,它必须与形参保持个数相同,位置与类型一一对应。(2)调用时把实参值传递给对应的形参。其中值传递(形参前有ByVal说明)时实参的值不随形参的值变化而改变。而地址传递时实参的值随形参值的改变而改变。,例:调用上面定义的Sawp子过程的形式:Swap a,b Call Swap(a,b),(3)当参数是数组时,形参与实参在参数声明时应省略其维数,但括号不能省。(4)调用子过程的形式有两种,用Call关键字时,实参必须加圆括号括起,反之则实参之间用“,”分隔。,Private Sub CmdOK()Call Swap(a,b)Swap a,bEnd Sub,Private Sub Swap(x%,y%)Dim temp%Temp=X X=Y Y=TempEnd Sub,过程调用的执行过程:,例:我们创建这样一个应用程序,它包含一个按钮,当用户在窗体上单击时,计算机的喇叭会发出3声“嘟”的声音;如果用户在按钮上单击,喇叭响五下.,我们定义一个控制计算机操作的过程,命名为BeepSound,喇叭的次数作为参数有调入者传入,参数命名为n.过程BeepSound如下:,Sub BeepSound(n As Interger)Dim i As Integer,j As Long For i=1 to n Beep For j=0 to 1000000 Next NextEnd Sub,我们可以用 Call BeepSound(5)或BeepSound 5 调用BeepSound,所以我们可以在窗体Form1和按钮Command1的Click事件过程中调用BeepSound过程(如下:),Private Sub Command1_click()Call BeepSound(5)End SubPrivate Sub Form_Click()BeepSound 3End Sub,我们可以通过此图来了解这一操作:,事件过程Command1_Click,事件过程Form_Click,通用过程BeepSound,调用,返回,调用,返回,由上可知,子过程分为两种:通用过程和事件过程,5.2 Function过程,Visual Basic函数分为内部函数和外部函数,外部函数是用户根据需要用Function关键字定义的函数过程,与子过程不同的是函数过程将返回一个值。,5.2.1 函数过程(Function过程)的定义,Public|PrivateStaticFunction 函数名()As 函数名=返回值 Exit Function 函数名=返回值End Function,说明:(1)函数名:命名规则与变量名规则相同。但不能与系统的内部函数或其它通用子过程同名,也不能与已定义的全局变量和本模块中模块级变量同名。(2)在函数体内,函数名可以当变量使用,函数的返回值就是通过对函数名的赋值语句来实现的,在函数过程中至少要对函数名赋值一次。(3)AS类型:是指函数返回值的类型,若省略,则函数返回变体类型值(Variant)。(4)Exit Function:表示退出函数过程,常常是与选择结构(If或Select Case语句)联用,即当满足一定条件时,退出函数过程。(5)形参数列表:形参的定义与子过程完全相同。,5.2.2 函数的调用,调用形式如下:变量函数名(实参列表)说明:在调用时实参和形参的数据类型、顺序、个数必须匹配。函数调用只能出现在表达式中,其功能是求得函数的返回值。,5.3 过程之间参数的传递,Visual Basic中不同模块(过程)之间数据的传递有两种方式:通过过程调用实参与形参的结合实现;使用全局变量来实现各过程中共享数据。,5.3.1 形式参数与实际参数,1、形式参数 是指在定义通用过程时,出现在Sub或Function语句中的变量名后面园括号内的数,是用来接收传送给子过程的数据,形参表中的各个变量之间用逗号分隔。,2、实际参数 实际参数是指在调用Sub或Function过程时,写入子过程名或函数名后括号内的参数,其作用是将它们的数据(数值或地址)传送给Sub或Function过程与其对应的形参变量。实参可由常量、表达式、有效的变量名、数组名(后加左、右括号,如A())组成,实参表中各参数用逗号分隔。,5.3.2 参数传递(虚实结合),参数传递指主调过程的实参(调用时已有确定值和内存地址的参数)传递给被调过程的形参,参数的传递有两种方式:按值传递、按地址传递。形参前加“ByVal”关键字的是按值传递,缺省或加“ByRef”关键字的为按地址传递。,传址与传值 传址:形参得到的是实参的地址,当形参值的改变同时也改变实参的值。传值:形参得到的是实参的值,形参值的改变不会影响实参的值。,Sub Swap2(x%,y%)Dim Temp%Temp=x:x=y:y=Temp End Sub,Sub Swap1(ByVal x%,ByVal y%)Dim Temp%Temp=x:x=y:y=TempEnd Sub,例,Private Sub CmdOK_Click()a%=10:b%=20:Swap1 a,b 传 值 Print A1=;a,B1=;b a=10:b=20:Swap2 a,b 传地址 Print A2=;a,B2=;bEnd Sub,程序调用执行过程:,值传递的执行过程如下图:,通过地址传递数据的执行过程,数据传递的几点说明:1.参数的数据类型2.按值传递参数形参是实参的一个副本3.按地址传递参数形参实参公用内存单元4.子过程执行一系列操作,函数过程返回一个值注意:如果实参是常量(系统常量、符号常量)或者表达式,则无论定义时使用值传递还是地址传递,都是按值传递将常量或者表达式的计算值传递给形参。,5.3.4 数组作过程的参数,Visual Basic允许把数组作为实参传送到过程中。数组作参数是通过传地址方式传送。在传送数组时,除遵守参数传送的一般规则外,还应注意以下几点:1把一个数组的全部元素传送给一个过程,应将数组名分别写入形参列表中,并略去数组的上下界,但括号不能省略。Private Sub Sort(a()As single)End Sub其中形参“a()”即为数组。,2被调过程可通过Lbound和Ubound函数确定实参数组的上、下界。3当用数组作形参时,对应的实参必须也是数组,且类型一致。4实参和形参结合是按地址传递,即形参数组和实参数组共用一段内存单元。例:定义了实参数组b(1 to 8),给它们赋了值,调用Sort()函数过程的形式如下:Sort b()或 Call Sort(b()实参数组后面的括号可以省略,但为便于阅读,建议一般不要省略为好。,调用时形参数组a和实参数组b虚实结合,共用一段内存单元,如下所示。因此在Sort()过程中改变数组a的各元素值,也就相当于改变了实参数组b中对应的元素的值,当调用结束时,形参数组a成为无定义。b(1)b(2)b(3)b(4)b(5)b(6)b(7)b(8)a(1)a(2)a(3)a(4)a(5)a(6)a(7)a(8)参数为数组时虚实结合示意图,例:编写判断一个整数是不是素数写函数过程。如果给定的整数是素数,则返回逻辑值True,否则返回False,Private Function Prime(n As Integer)As Boolean Dim k%,Yes As Boolean Yes=True For k=2 to n2 IF n mod k=0 then Yes=False:Exit For Next k Prime=Yes 给函数名赋值,作为函的返回值End Function,如何调用该函数呢?使用该函数,编一验证哥德巴赫猜想。,Private Sub Form_Click()Dim n%,n1%,n2%n=Val(InputBox(“输入大于6的偶数)For n1=3 to n2 step 2 让n1从3开始分解 n2=n-n1 求得n2 如果n1和n2都是素数,则打印输出 If prime(n1)And prime(n2)then Print n&=&n1&+&n2 Exit For 结束循环 End if Next n1End Sub,For i=1 To n-1 p=i For j=i+1 To n If a(p)a(j)Then p=j Next j temp=a(i)a(i)=a(p)a(p)=tempNext i,选择法排序(升序)的VB程序:,如何写一个排序的VB过程?,例:排序子过程,Private Sub Sort(a()As single)Dim i%,j%,p%,n%,temp!n=Ubound(a)For i=1 To n-1 p=i For j=i+1 To n If a(p)a(j)Then p=j Next j temp=a(i)a(i)=a(p)a(p)=temp Next IEnd Sub,5.4 过程的嵌套和递归调用,5.4.1 过程的嵌套,在程序中调用一子过程,而在子过程中又调用另外的子过程,这种程序结构称为过程的嵌套。过程的嵌套调用执行过程如下图:,5.4.2 过程的递归调用,用自身的结构来描述自身,称递归。例如,对阶乘的定义:,Visual Basic允许在一个Sub子过程和Function过程的定义内部调用自己,即递归Sub子过程和递归Function函数。,例编求阶乘fac(n)=n!的递归函数,Private Function fac(n As Integer)As Integer If n=1 Then fac=1 Else fac=n*fac(n-1)End IfEnd FunctionPrivate Sub Form_Click()Print“fac(4)=”;fac(4)End Sub,程序的递归过程:,说明:递归处理一般用栈来实现,分递推和回归两个过程,如上图所示。递推过程:每调用一次自身,把当前参数(形参、局部变量、返回地址等)压入栈,直到递归结束条件成立。回归过程:然后从栈中弹出当前参数,直到栈空。递归算法设计简单,解决同一问题,使用递归算法消耗的机时和占据的内存空间要比使用非递归算法大。使用递归算法必须要满足以下的递归条件:(1)存在递归结束条件及结束时的值;(2)能用递归形式表示,且递归向终止条件发展。,

    注意事项

    本文(vb程序设计教程第三版第5章.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开