好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

清华大学VB经典教案第七节——过程.ppt

27页
  • 卖家[上传人]:油条
  • 文档编号:47915820
  • 上传时间:2018-07-06
  • 文档格式:PPT
  • 文档大小:243.50KB
  • / 27 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第7章 过过 程7.1 过过程的概念及其形式过过程是完成某一特定功能的一段程序,又称子程序结结构化程序设计设计 的核心思想就是将一个复杂杂的问题问题 不断细细分成多个结结构简单简单 、功能单单一的模块块,每个模块块只完成一个相对对独立的功能,多个模块组块组 合起来完成复杂杂的功能,在Visual Basic中,将这这种程序模块块称为过为过 程,一个大的应应用程序可以包含多个过过程过过程的应应用大大提高了代码码的可重用性,简简化了编编程,使程序更具有可读读性过过程与过过程之间间有调调用与被调调用的关系,一个过过程可以调调用其他的过过程,也可以被其他的过过程调调用,当一个过过程调调用其他的过过程时时,被调调用过过程执执行完毕毕后,返回调调用过过程的下一条语语句继续执继续执 行,如图图7-1所示在Visual Basic中,过程可以分为两大类:Sub过程(子 过程)和Function过程(函数过程)Sub过程和Function过 程最基本的区别是:Sub过程可以没有返回值,也可以有一个 或多个返回值,即Sub过程可以有0~多个返回值;Function 过程只有一个返回值 7.2 Sub过程Sub过程可以分为:事件过程和通用过程两类。

      7.2.1 事件过程事件过程指的是当对象的某个事件被触发时,去执行对 应这个事件的一段程序,事件过程是Visual Basic应用程序的 主体 1.事件过程名事件过程依附于窗体或控件,依附于窗体的事件过程名由 Form、短下划线“_”和事件名三个部分组成;依附于控件的事 件过程名由控件名(控件的Name属性值)、短下划线“_”和事 件名三个部分组成 2.事件过程的格式 依附于窗体或控件的事件过程的一般格式如下:Private Sub Form|控件名_事件名([])End Sub 注意: (1)事件过程的开始和结束语句,最好由系统用事件过程 模板自动生成; (2)由于控件的事件过程名与控件名紧密相关,因此,如 果生成了事件过程以后,再改变控件名,则控件的事件过程 名中的控件名不会自动更改 7.2.2 通用过程及其定义通用过程又称为用户自定义的Sub过程,一般用于完成 一个通用功能,通用过程不依赖于任何对象通用过程的 定义格式如下: [Private|Public|Static] Sub ([])[Exit Sub]End Sub 说明:(1)Sub前的关键字Private、Public决定了通用过程的作 用域;Static决定了过程中过程级变量的生存期(所有的过程 级变量都是静态变量,前面章节已经介绍); (2)通用过程名应满足标识符的命名规则,而且,在同一 个模块中过程名要惟一; (3)当通用过程有多个形式参数时,相互之间用逗号分隔 ; (4)在通用过程中不能再定义过程,但可以调用其他的过 程。

      创建通用过程的方法有如下两种: (1)直接在代码窗口中输入,只要输入通用过程的开始,按 下回车键后,通用过程的结束语句End Sub会自动产生; (2)执执行“工具”菜单单下的“添加过过程”命令,打开“添加过过程 ”对话对话 框,如图图7-2所示,输输入名称,选择选择 “类类型”和“范围围”, 单击单击 “确定”按钮钮即可 7.2.3 Sub过程的调用调用Sub过程的方法有两种: (1)Call ([实参表]) (2) [实参表] 说明: (1)实参表是实际参数列表,当过程有多个实际参数时, 相互之间用逗号分隔; (2)用第一种方法调用Sub过程时,实参表必须用圆括号 括起来;用第二种方法调用Sub过程时,实参表不能用圆括 号括起来,但过程名与实参表之间要加一个空格 【例7-1】编写一个求n!的通用过程,在由四个命令按钮组 成的控件数组中分别计算4!、6!、8!以及1~10的阶乘和 并输出,如图7-3所示 【例7-2】编写一个求三个数的 最大值和最小值的通用过程,在 命令按钮的Click事件过程中, 任意输入三个数调用该通用过程 求它们的最大值和最小值并输出 ,如图7-4所示 7.3 滚动条控件滚动条通常用于附加在窗口上帮助观察数据或确定位置,也可以作为数据输入的工具或者数量、进度的指示器。

      滚动条控件有两种:水平滚动条和垂直滚动条两种滚动条的结构和操作完全一样 1.滚动条的常用属性 (1)Value属性设置或返回滚动条滑块的当前位置值2)Max属性滚动条能表示的最大值,范围为-32768~32767当滑块 位于水平滚动条的最右端或垂直滚动条的最下端时,Value属性所取的值 (3)Min属性滚动条能表示的最小值,范围为-32768~32767当滑块 位于水平滚动条的最左端或垂直滚动条的最上端时,Value属性所取的值 (4)LargeValue属性当用鼠标单击滚动框的空白处,或滚动条获得焦点时按下 PageUp或PageDown键时,Value属性值的改变量 (5)SmallValue属性当用鼠标单击滚动条两端的箭头,或滚动条获得焦点时按 下箭头键←、↑或→、↓键时,Value属性值的改变量2.滚动条的常用事件 (1)Change事件当移动滑块或在代码中改变Value属性值时触发滚动条的 Change事件 (2)Scroll事件当拖动滑块时触发滚动条的Scroll事件 【例7-3】设计一个调色板7.4 Function过程在Visual Basic中,提供了大量的内部函数,用户编写程 序时可以直接调用内部函数,为了完成特定的功能,用户也可 以编写自己的函数,Function过程就是用户自定义的函数过程 。

      Function过程的调用与内部函数的调用完全相同 7.4.1 Function过程的定义Function过程的定义格式如下: [Private|Public|Static] Function ([]) [As ][Exit Function][=] End Function 说明:Function前的三个关键字的含义以及对函数过程名、 形参和函数过程的要求与通用过程相同Function过程的创建方法与通用过程的创建方法一样也有 两种方法需要强调的是:Function过程的返回值在函数过程中一定 要赋给函数过程名 7.4.2 Function过程的调用Function过程的一般调用格式为: [()]其中,实参表可以是一个或多个参数,参数可以是常量、 变量或表达式,如有多个参数,参数之间用逗号分隔,如果函 数没有参数,调用时可以省略圆括号Function过程在程序代码中的具体调用形式主要有四种( 前面章节已经介绍) 【例7-4】将例7-1中的求n!的通用过程改成Function过程实现 同样的功能 【例7-5】输入一个正整数n的值,计算 s=1*(1+2)*(1+2+3)*…*(1+2+3+…+n)的 值,要求先编写求1+2+3+…+k的 Function过程,然后调用这个Function 过程求前n项的乘积,如图7-6所示。

      【例7-6】编写一个判断正整数n是否是 素数的Function过程,调用这个过程求 100~1000之间所有的孪生素数并输出, 如图7-7所示孪生素数是指两个素数的差值为2的 素数,如:101和103就是孪生素数 【例7-7】编写用辗转相除法求两个正整数的最大公约数的 Function过程,调用这个Function过程求四个正整数的最大公 约数并输出,如图7-8所示 7.5 过程参数 7.5.1 形式参数与实际参数在Visual Basic中,调用过程时,使用参数传递的方式实 现调用过程与被调用过程之间的数据传递,即将调用过程中 的实际参数传给被调用过程对应的形式参数形式参数简称形参,是在定义Sub过程或Function过程时 ,出现在圆括号中的变量名或数组名,其作用是接受调用程 序传来的数据;实际参数简称实参,是在调用Sub过程或 Function过程时,传递给Sub过程或Function过程的常量、变 量、表达式或数组 需要强调的是: (1)在定义Sub过程或Function过程时,在圆括号中定义 的形参表,即变量名或数组名(),只需要在过程的圆括号中写 成:变量名|数组名() As 数据类型; (2)形参表与实参表中对应位置的形参名和实参名可以相 同也可以不同,Visual Basic都认为不同;(3)在传递参数时,一般情况下,要求形参表与实参表中参 数的个数、数据类型和位置顺序都必须一一对应,除非在形 参的前面加上关键字Optional或ParamArray; (4)当数组作为过程的形参和实参时,必须写成数组名和空 的圆括号“()”; (5)实参如果是变量也必须定义,而且数据类型与对应的形 参要相同; (6)不能用定长字符串变量或定长字符串数组作为形参,但 可以用定长字符串变量作为实参。

      过程形参的格式如下: [ByVal|ByRef|Optional|ParamArray] | [As ] 7.5.2 按地址传递与按值传递参数在过程形参的前面加上关键字ByRef或省略关键字,表 示按地址或者按引用传递参数,简称传地址,默认的过程参 数传递方式是传地址;在过程形参的前面加上关键字ByVal ,表示按值传递参数,简称传值 1.传地址传地址指的是用实参去代替或者替换对应的形参,由实参本身参与过程的计算,因此,在过程中如果改变了形参的值 ,实际上就改变了对应的实参的值例7-8】传地址调用过程输入两个正整数,调用例7-7中 用辗转相除法求两个正整数的最大公约数的Function过程, 求它们的最大公约数并输出,如图7-9所示 【例7-9】传值调用过程将例7-7中用辗转相除法求两个正整数的 最大公约数的Function过程的形 参m、n前分别加上关键字ByVal ,或者调用这个Function过程时 给实参a、b加上圆括号,输入两个正整数,求它们的最大公约数 并输出,如图7-10所示 2.传值传值指的是将实参的值复制给对应的形参,实参本身不参与过程的计算,而由形参参与过程的计算,因此,在过 程中即使改变了形参的值,实参的值不变。

      如果定义过程时采用的是默认方式传地址,调用过程时只要将实参用圆括号括起来,也可以变成传值 7.5.3 可选参数及其默认值在过程形参的前面加上关键字Optional表示可选的参数,调用该过程时,可以提供或不提供(省略)与此形参相对应的 实参,但在过程中需要用函数IsMissing()来处理当 在过程的某个形参前加上关键字Optional后,其后所有的形参都成为可选的参数,因此,可选的参数一般放在形参表的后面 ,而且数据类型为Variant(默认数据类型) 【例7-10】编写一个Function过程,调用该过程计算两个数的 和、三个数的和、四个数的和并输出,如图7-11所示 加上关键字Optional的可选参数,还可以设置默认值(缺 省值),当一个可选的形参设置了默认值后,调用过程时如果 为该形参传递实参则接受实参的值,否则,将使用默认值 【例7-11】将例7-10中Function过程的形参c、d的默认值设为0 ,调用该过程计算两个数的和、三个数的和、四个数的和并输 出 7.5.4 可变参数在过程形参的前面加上关键字ParamArray可以传递任意 个数的参数,但其后的形参必须是Variant类型(默认数据类 型)的数组,而且只能用于形参表的最后一个参数, ParamArray不能与ByVal、ByRef或Optional关键字一起使用 。

      【例7-12】将例7-10中Function过程的形参设为可变参数,调 用该过程计算两个数的和、三个数的和、四个数的和并输出 7.5.5 数组参数在通用过程或函数过程中,可以将数组或数组元素作为参 数进行传递,当传递整个数组,即将数组作为过程的形参和实 参时,必须写成数组名和空的圆括号“()”的形式;数组参数只 能按地址传递,不能按值传递,即不能在数组形参前加关键字 ByVal 【例7。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.