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

    VisualBasic过程.ppt

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

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

    VisualBasic过程.ppt

    2023/11/8,1,第7章 过程,本章内容:概述 子过程 函数过程 事件过程 参数传递的方式 嵌套调用与递归调用 作用域与生存期 滚动条 直线和形状,http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/www.xunchi-http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/www.51xiu.org/http:/http:/http:/http:/http:/http:/http:/www.gz-http:/www.gz-http:/http:/http:/http:/,2023/11/8,Visual Basic程序设计简明教程,2,7.1 概述,VB的应用程序是由过程(Procedure)组成的,代码设计阶段的主要工作就是编写过程。VB通过事件驱动方式执行程序,调用事件过程完成对事件的响应。事件过程(Event Procedure)虽然是VB程序的主体,但是有时也需要在程序中编写通用过程,供事件过程或者其他通用过程调用。如果过程A调用了过程B,则约定把A称为主调过程,B称为被调过程。,2023/11/8,Visual Basic程序设计简明教程,3,说明:,根据通用过程是否有返回值,可以分为Sub过程和Function过程。Sub过程又称为子过程,它往往用于完成一些操作,而这些操作不需要有返回值。Function过程又称为函数过程,或者简称为函数。函数过程一般应有一个返回值。,返回,2023/11/8,Visual Basic程序设计简明教程,4,7.2 子过程子过程的定义,Public|Private Sub 过程名(形参列表)变量定义语句 执行语句 Exit Sub End Sub,2023/11/8,Visual Basic程序设计简明教程,5,说明:,关键字Sub指明了过程的性质,关键字Public和Private则指明了过程的作用域。括号内为形参列表,用于从主调过程接收数据。如果过程不需要参数,则可以省略形参列表。形参由传递方式、形参名和类型组成,形参之间用逗号分开。形参定义的格式是:ByVal 形参名 As 数据类型 ByVal是对形参进行传递方式声明,表示所声明的形参是传值参数。如果ByVal被省略,则默认该形参是引用参数(ByRef)。过程头部和End Sub之间的部分称为过程体,可以在过程体中定义变量,过程完成的工作主要是在过程体中进行的。如果在运行子过程时需要提前退出,则可以使用Exit Sub语句。,2023/11/8,Visual Basic程序设计简明教程,6,创建子过程,第一种方法是在代码窗口中直接定义,输入过程头部之后按下回车键,此时会自动出现End Sub,从而生成过程的框架。第二种方法是使用“添加过程”对话框,在“工具”菜单中选择“添加过程”命令,打开“添加过程”对话框。,2023/11/8,Visual Basic程序设计简明教程,7,7.2 子过程子过程的调用,通用过程不属于任何一个对象,它不由事件驱动,必须由其他过程调用才会被执行。子过程调用语句有两种形式:Call 过程名(实参列表)过程名 实参列表,2023/11/8,Visual Basic程序设计简明教程,8,说明:,(1)第一种调用形式使用了关键字Call,而第二种调用形式不仅没有Call,并且也没有括号。(2)实参即实际参数,表示传递给被调过程的一些必要数据,实参之间用逗号隔开。如果调用时没有实参,则可以省略实参列表和括号。(3)主调过程调用被调过程时,经常需要向被调过程传递一些数据,这主要是通过实参与形参的结合来完成的。形参是变量,过程调用时才被分配内存空间,过程调用语句中的实参会把数据传递给相应的形参。(4)VB语言要求实参与形参个数相等,类型尽量保持一致。实参向形参传递数据时,遵循从左向右,一一对应的规则。,2023/11/8,Visual Basic程序设计简明教程,9,例7.1 计算n!,Private Sub Command1_Click()Dim n As Integer n=Val(Text1.Text)Call fac(n)调用子过程 End Sub,2023/11/8,Visual Basic程序设计简明教程,10,Private Sub fac(ByVal n As Integer)Dim s As Long,i As Integer s=1 For i=1 To n s=s*i Next i Text2.Text=Str(s)输出n的阶乘 End Sub,返回,2023/11/8,Visual Basic程序设计简明教程,11,7.3 函数过程函数过程的定义,Public|Private Function 过程名(形参列表)As 类型 变量定义语句 执行语句 Exit Function End Function,2023/11/8,Visual Basic程序设计简明教程,12,说明:,(1)函数过程的语法与子过程非常相似,其定义的关键字是Function。(2)过程头部右端的As 类型是指函数过程的类型,即返回值的类型。(3)函数过程的返回值通过对函数名赋值来指定,如下所示:函数名=表达式 这样的赋值语句在函数过程的过程体中一般至少应出现一次,作用是确定函数过程的返回值。一旦调用结束,系统就会把返回值带回到主调过程的调用处。(4)如果在运行函数过程时需要提前退出,则可以使用Exit Function语句。,2023/11/8,Visual Basic程序设计简明教程,13,变量=函数过程名(实参列表)函数调用作为表达式,出现在赋值语句的右侧。调用时应给出相应的实参列表,使得实参与形参相结合。执行这条赋值语句时,先对函数过程进行调用,然后把过程的返回值带回来并赋给某个变量,从而使主调过程获得这个返回值。,7.3 函数过程函数过程的调用,2023/11/8,Visual Basic程序设计简明教程,14,例7.3 计算n!,Private Sub Command1_Click()Dim s As Long,n As Integer n=Val(Text1.Text)s=fac(n)调用函数过程,得到返回值 Text2.Text=Str(s)End Sub Private Function fac(ByVal n As Integer)As Long 定义函数过程 Dim s As Long,i As Integer s=1 For i=1 To n s=s*i Next i fac=s 确定函数过程的返回值 End Function,返回,http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/www.xunchi-http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/www.51xiu.org/http:/http:/http:/http:/http:/http:/http:/www.gz-http:/www.gz-http:/http:/http:/http:/,2023/11/8,Visual Basic程序设计简明教程,15,7.4 事件过程,Private Sub 对象名_事件名(形参列表)变量定义语句 执行语句 End Sub,2023/11/8,Visual Basic程序设计简明教程,16,说明:,(1)事件过程的名字是由对象名、下划线(_)和事件名组成,对象可以是窗体或者控件。(2)单击和双击等事件的事件过程是没有参数的,而有些事件过程则需要参数,以接收必要的数据。,2023/11/8,Visual Basic程序设计简明教程,17,例7.5 设计一个简易的计算器,在框架Frame1中创建一个命令按钮控件数组Command1,它有4个元素,分别对应“+”、“-”、“”和“”等4个命令按钮。创建一个文本框控件数组Text1,它有3个元素,第一个元素对应的文本框负责输入左操作数,第二个元素对应的文本框负责输入右操作数,第三个元素对应的文本框则负责输出运算的结果。,2023/11/8,Visual Basic程序设计简明教程,18,Private Sub Command1_Click(Index As Integer)Label2.Caption=Command1(Index).Caption 显示运算符 Select Case Index Case 0 加 Text1(2).Text=Val(Text1(0).Text)+Val(Text1(1).Text)Case 1 减 Text1(2).Text=Val(Text1(0).Text)-Val(Text1(1).Text)Case 2 乘 Text1(2).Text=Val(Text1(0).Text)*Val(Text1(1).Text)Case 3 除 If Val(Text1(1).Text)0 Then 除数不能为0 Text1(2).Text=Val(Text1(0).Text)/Val(Text1(1).Text)Else MsgBox(除数不能为0!)Text1(1).Text=Text1(1).SetFocus End If End Select End Sub,Private Sub Command2_Click()Dim i As Integer For i=0 To 2 Text1(i).Text=清除操作数和运算结果 Next i Label2.Caption=清除运算符 End Sub,简易计算器的代码实现,2023/11/8,Visual Basic程序设计简明教程,19,Private Sub Text1_KeyPress(Index As Integer,KeyAscii As Integer)If KeyAscii=13 Then 按下回车键 If IsNumeric(Text1(Index).Text)=False Then MsgBox(必须输入数字!)Text1(Index).Text=Text1(Index).SetFocus End If End If End Sub,简易计算器的代码实现,返回,2023/11/8,Visual Basic程序设计简明教程,20,7.5 参数传递的方式传值,调用时把实参的值从左至右,一一传递给各个形参。这种传递是单向的,形参的值发生变化,对实参毫无影响。,2023/11/8,Visual Basic程序设计简明教程,21,例7.6 交换两个整型变量的值,Sub swap(ByVal a As Integer,ByVal b As Integer)传值方式 Dim t As Integer t=a a=b b=t End Sub,2023/11/8,Visual Basic程序设计简明教程,22,7.5 参数传递的方式传引用,如果用ByRef对形参进行声明,则表示该参数在调用时采用传引用方式。传引用调用时形参的值发生变化,会使实参的值也同步发生变化。,2023/11/8,Visual Basic程序设计简明教程,23,例7.7 传值与传引用,Private Sub Command1_Click()Dim x As Integer,y As Integer x=1 y=2 Print 过程调用之前:Print x=;x;y=;y Call fun(x,y)调用子过程 Print 过程调用之后:Print x=;x;y=;y End Sub Sub fun(ByVal x As Integer,ByRef y As Integer)x=x+1 y=y+1 修改了实参y的值 Print 过程调用中:Print x=;x;y=;y End Sub,2023/11/8,Visual Basic程序设计简明教程,24,7.5 参数传递的方式传数组,可以采用传数组的方式传递成批的数据,具体实现的方法是:1.过程的形参为动态数组,形参数组的类型必须与实参数组的类型一致。2.过程调用时,数组名作为过程的实参。,2023/11/8,Visual Basic程序设计简明教程,25,例7.9 求某班VB考试的平均成绩,Const N As Integer=30 Private Sub Command1_Click()Dim a(1 To N)As Integer,i As Integer,aver As Single For i=1 To N 输入学生成绩 a(i)=Val(InputBox(请输入第 aver End Sub Function average(b()As Integer)As Single 定义函数过程 Dim i As Integer,sum As Integer sum=0 For i=LBound(b)To UBound(b)累加学生成绩 sum=sum+b(i)Next i average=sum/N 确定平均成绩是函数返回值 End Function,返回,2023/11/8,Visual Basic程序设计简明教程,26,7.6 嵌套调用与递归调用,VB语言规定,过程的定义不能嵌套,过程的调用可以嵌套。递归调用是一种既有趣又实用的过程调用形式,它是嵌套调用的特例。,2023/11/8,Visual Basic程序设计简明教程,27,7.6 嵌套调用与递归调用嵌套调用,过程A在执行时调用了过程B,过程B在执行时又调用了过程C,这种现象称为嵌套调用。嵌套调用的执行特点可以总结为一句话:层层调用,逐级返回。,2023/11/8,Visual Basic程序设计简明教程,28,7.6 嵌套调用与递归调用递归调用,在过程的过程体内出现直接或间接调用自身的语句,即过程在执行期间又调用自己的现象,称为递归调用。,2023/11/8,Visual Basic程序设计简明教程,29,例7.11 递归调用求n!,Private Sub Command1_Click()Dim s As Long,n As Integer n=Val(Text1.Text)s=fac(n)调用函数过程 Text2.Text=Str(s)End Sub Private Function fac(ByVal n As Integer)As Long 定义函数过程 Dim s As Long,i As Integer If n=1 Then s=1 Else s=n*fac(n-1)递归调用 End If fac=s 确定函数过程的返回值 End Function,2023/11/8,Visual Basic程序设计简明教程,30,计算4!的递归过程:,2023/11/8,Visual Basic程序设计简明教程,31,递归要素:,递归公式。使得递归调用不断进行下去的因素,在本例中,递归公式是n!=n(n-1)!。递归终止条件。使得递归调用最终结束的条件,如果没有这个条件,将出现无限递归的情况,最后使程序非正常终止。在本例中,递归终止条件是1!=1。,返回,2023/11/8,Visual Basic程序设计简明教程,32,7.7 作用域与生存期作用域,作用域是指变量和对象等实体在程序中的有效范围。只有位于实体的作用域中,才能允许访问该实体。VB各种实体的作用域由小到大,主要可以划分为3个层次,它们分别是局部作用域、模块作用域和全局作用域。,2023/11/8,Visual Basic程序设计简明教程,33,局部作用域,在过程内部定义的变量称为局部变量,又称为过程变量。局部变量的作用域是定义它的过程,既可以是事件过程,也可以是通用过程。只有在本过程的内部才能使用局部变量,在此过程之外是不能使用这些变量的。,2023/11/8,Visual Basic程序设计简明教程,34,举例:,Private Sub Command1_Click()事件过程Command1_Click Dim a As Integer 局部变量a End Sub Private Sub Sub1()子过程Sub1 Dim a As Integer 局部变量a End Sub,2023/11/8,Visual Basic程序设计简明教程,35,说明:,(1)在不同的过程中可以定义相同名字的变量。正所谓井水不犯河水,它们分别代表不同的局部变量,在内存中占据不同的空间,互不干扰。(2)过程的形参也是局部变量,其他过程无法使用。,2023/11/8,Visual Basic程序设计简明教程,36,模块作用域,在模块的所有过程之外即通用段,用Dim或者Private定义的变量称为模块变量。在窗体模块中定义的模块变量,又称为窗体变量。模块变量的作用域是定义它的模块,可以被本模块的所有过程共同使用。,2023/11/8,Visual Basic程序设计简明教程,37,举例:,Dim a As Integer 模块变量a Private Sub Command1_Click()事件过程Command1_Click Print a 访问模块变量a End Sub Private Sub Sub1()子过程Sub1 Dim b As Integer 局部变量b a=a+1 访问模块变量a End Sub,2023/11/8,Visual Basic程序设计简明教程,38,模块过程,如果在模块中定义过程时,用Private加以声明,则称为模块过程。在窗体模块中定义的模块过程,又称为窗体过程。模块过程的作用域是定义它的模块,只能被本模块的所有过程所调用,其它模块的过程则无法调用。,2023/11/8,Visual Basic程序设计简明教程,39,全局作用域,在标准模块或者窗体模块的所有过程之外即通用段,用Public定义的变量称为全局变量。全局变量的作用域是定义它的程序,可以被整个工程的所有模块共同使用。,2023/11/8,Visual Basic程序设计简明教程,40,2023/11/8,Visual Basic程序设计简明教程,41,说明:,(1)在标准模块中定义的全局变量,可以在程序的所有模块中直接使用。如果在不同的标准模块中定义了相同名字的全局变量,则使用时必须指出所在的标准模块名。例如在标准模块Module1和Module2中都定义了全局变量a,则使用时应写为Module1.a和Module2.a。(2)在窗体模块中定义的全局变量,在程序的模块中使用时,必须指出所在的窗体名。例如在窗体模块Form1中定义了全局变量a,则使用时应写为Form1.a。,2023/11/8,Visual Basic程序设计简明教程,42,全局过程,如果在模块中定义过程时,用Public加以声明,则称为全局过程。全局过程的作用域是定义它的程序,可以被本程序所有模块中的过程所调用。,2023/11/8,Visual Basic程序设计简明教程,43,变量屏蔽,如果具有较大作用域的变量与具有较小作用域的变量同名,当在较小作用域内访问该同名变量时,访问的是具有较小作用域的变量,这种现象称为变量屏蔽。,2023/11/8,Visual Basic程序设计简明教程,44,举例:,Dim a As Integer 定义模块变量a Private Sub Command1_Click()Dim a As Integer 定义局部变量a a=2 访问局部变量a End Sub,返回,2023/11/8,Visual Basic程序设计简明教程,45,7.7 作用域与生存期生存期,生存期是指实体在程序运行过程中的生命周期。如果实体的生命周期结束,则该实体将会消亡,并由系统自动回收其所占据的内存等资源。,2023/11/8,Visual Basic程序设计简明教程,46,动态变量,动态变量是指在程序执行的某一时期,被动态地创建而又动态地撤消的一种变量。动态变量往往存在于一个程序的局部,创建和撤消都是由系统在程序执行期间自动完成的。,Private Sub Command1_Click()Dim i As Integer 定义局部变量iFor i=1 To 3Call Sub1(i)Next iEnd SubPrivate Sub Sub1(m As Integer)子过程定义Print m=;mEnd Sub,动态变量举例,http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/www.xunchi-http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/www.51xiu.org/http:/http:/http:/http:/http:/http:/http:/www.gz-http:/www.gz-http:/http:/http:/http:/,2023/11/8,Visual Basic程序设计简明教程,47,静态变量,静态变量一般具有全局性质,存储空间在程序的整个运行期间是固定的。静态变量在程序编译时就为其分配存储空间,即程序开始执行时它已经存在,程序执行结束时才撤消其所占内存空间。静态变量语法形式:static 变量名 As 类型,2023/11/8,Visual Basic程序设计简明教程,48,静态变量举例,Private Sub Command1_Click()Dim a As Integer,i As Integer 定义局部变量 For i=1 To 3 a=fun1(i)函数调用 Print a=;a Next i End Sub Private Function fun1(m As Integer)函数定义 Static b As Integer 定义静态局部变量 b=b+m fun1=b 确定函数的返回值 End Function,2023/11/8,Visual Basic程序设计简明教程,49,静态过程,如果在定义过程时,用static关键字加以声明,则称为静态过程。语法形式:static Sub|Function 过程名(形参列表)过程体 End Sub|Function,返回,2023/11/8,Visual Basic程序设计简明教程,50,7.8 滚动条,滚动条(ScrollBar)控件通常用来直观地确定数据的位置,也可以作为模糊数据输入的工具。滚动条有水平滚动条(HScrollBar)和垂直滚动条(VScrollBar)两种形式,除了方向之外,这两种滚动条的结构和操作是完全相同的。在工具箱中表示为:,2023/11/8,Visual Basic程序设计简明教程,51,滚动条的常用属性,2023/11/8,Visual Basic程序设计简明教程,52,说明:,(1)程序第一个水平滚动条控件的默认对象名是HScroll1,依次类推。如果是垂直滚动条,则其第一个控件的默认对象名是VScroll1。(2)Max和Min属性值的取值范围是-3276832767。如果滑块位于水平滚动条的最左端,或者位于垂直滚动条的最上端,Value的属性值就为最小值(Min);如果滑块位于水平滚动条的最右端,或者位于垂直滚动条的最下端,Value的属性值就为最大值(Max)。(3)Value的属性值显然应该在Max和Min的属性值之间。如果在程序中设置Value的属性值,则表示把滑块移动到滚动条的相应位置。,2023/11/8,Visual Basic程序设计简明教程,53,滚动条的常用事件,2023/11/8,Visual Basic程序设计简明教程,54,说明,(1)当用户改动了滑块在滚动条中的位置,就会自动触发Change事件。可以通过Change事件,得知滑块在滚动条中的当前位置。(2)单击滚动条两端的箭头或者空白处时,并不会触发Scroll事件。可以通过Scroll事件,跟踪滑块在滚动条中的动态变化。,2023/11/8,Visual Basic程序设计简明教程,55,例7.17 用滚动条设计调色板,在窗体中创建3个水平滚动条,分别用于调整红色、绿色和蓝色3个颜色分量。创建6个标签控件,前3个标签作为滚动条的标题,后3个标签分别用于显示3个颜色分量的当前值。创建一个文本框控件,用于展示调整颜色之后的实际效果。,2023/11/8,Visual Basic程序设计简明教程,56,Private Sub HScroll1_Change()Text1.BackColor=RGB(HScroll1.Value,HScroll2.Value,HScroll3.Value)Label4.Caption=HScroll1.Value End Sub Private Sub HScroll2_Change()Text1.BackColor=RGB(HScroll1.Value,HScroll2.Value,HScroll3.Value)Label5.Caption=HScroll2.Value End Sub Private Sub HScroll3_Change()Text1.BackColor=RGB(HScroll1.Value,HScroll2.Value,HScroll3.Value)Label6.Caption=HScroll3.Value End Sub,返回,2023/11/8,Visual Basic程序设计简明教程,57,7.9 直线和形状,直线(Line)控件用于在窗体上绘制直线。形状(Shape)控件用于在窗体上绘制简单的几何图形,它的初始状态是一个矩形。在工具箱中表示为:,2023/11/8,Visual Basic程序设计简明教程,58,直线的常用属性,2023/11/8,Visual Basic程序设计简明教程,59,说明:,(1)程序第一个直线控件的默认对象名是Line1,第二个直线控件的默认对象名是Line2,依次类推。(2)BorderStyle的属性值有7个,默认值是1。(3)用直线控件绘制出的图形实际上是一条线段,其起点的坐标是(X1,Y1),终点的坐标是(X2,Y2)。,2023/11/8,Visual Basic程序设计简明教程,60,2023/11/8,Visual Basic程序设计简明教程,61,形状的常用属性,2023/11/8,Visual Basic程序设计简明教程,62,说明:,(1)程序第一个形状控件的默认对象名是Shape1,依次类推。(2)Shape是形状控件最重要的属性之一,用来确定具体的图形。Shape的属性值有6个,默认值是0。,2023/11/8,Visual Basic程序设计简明教程,63,Shape属性值,2023/11/8,Visual Basic程序设计简明教程,64,例7.18 设计一个能够定时变换颜色和形状的图形,Dim k As Integer 定义模块变量 Private Sub Command1_Click()Timer1.Enabled=True k=0 End Sub Private Sub Command2_Click()Timer1.Enabled=False End Sub,http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/www.xunchi-http:/http:/http:/http:/http:/http:/http:/http:/http:/http:/www.51xiu.org/http:/http:/http:/http:/http:/http:/http:/www.gz-http:/www.gz-http:/http:/http:/http:/,2023/11/8,Visual Basic程序设计简明教程,65,Private Sub Timer1_Timer()If k=0 Then Shape1.BackColor=vbRed 设置图形的背景色 ElseIf k=1 Then Shape1.BackColor=vbGreen Else Shape1.BackColor=vbYellow End If Shape1.Shape=k+1 设置图形的形状 k=(k+1)Mod 3 End Sub,返回,

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开