清华大学vb经典教案第七节——过程

上传人:小** 文档编号:55144038 上传时间:2018-09-25 格式:PPT 页数:27 大小:243.51KB
返回 下载 相关 举报
清华大学vb经典教案第七节——过程_第1页
第1页 / 共27页
清华大学vb经典教案第七节——过程_第2页
第2页 / 共27页
清华大学vb经典教案第七节——过程_第3页
第3页 / 共27页
清华大学vb经典教案第七节——过程_第4页
第4页 / 共27页
清华大学vb经典教案第七节——过程_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《清华大学vb经典教案第七节——过程》由会员分享,可在线阅读,更多相关《清华大学vb经典教案第七节——过程(27页珍藏版)》请在金锄头文库上搜索。

1、第7章 过 程 7.1 过程的概念及其形式过程是完成某一特定功能的一段程序,又称子程序。结构化程序设计的核心思想就是将一个复杂的问题不断细分成多个结构简单、功能单一的模块,每个模块只完成一个相对独立的功能,多个模块组合起来完成复杂的功能,在Visual Basic中,将这种程序模块称为过程,一个大的应用程序可以包含多个过程。过程的应用大大提高了代码的可重用性,简化了编程,使程序更具有可读性。过程与过程之间有调用与被调用的关系,一个过程可以调用其他的过程,也可以被其他的过程调用,当一个过程调用其他的过程时,被调用过程执行完毕后,返回调用过程的下一条语句继续执行,如图7-1所示。,在Visual

2、Basic中,过程可以分为两大类:Sub过程(子过程)和Function过程(函数过程)。Sub过程和Function过程最基本的区别是:Sub过程可以没有返回值,也可以有一个或多个返回值,即Sub过程可以有0多个返回值;Function过程只有一个返回值。 7.2 Sub过程Sub过程可以分为:事件过程和通用过程两类。 7.2.1 事件过程事件过程指的是当对象的某个事件被触发时,去执行对应这个事件的一段程序,事件过程是Visual Basic应用程序的主体。,1事件过程名事件过程依附于窗体或控件,依附于窗体的事件过程名由Form、短下划线“_”和事件名三个部分组成;依附于控件的事件过程名由控

3、件名(控件的Name属性值)、短下划线“_”和事件名三个部分组成。,2事件过程的格式 依附于窗体或控件的事件过程的一般格式如下:Private Sub Form|控件名_事件名()End Sub 注意: (1)事件过程的开始和结束语句,最好由系统用事件过程模板自动生成; (2)由于控件的事件过程名与控件名紧密相关,因此,如果生成了事件过程以后,再改变控件名,则控件的事件过程名中的控件名不会自动更改。,7.2.2 通用过程及其定义通用过程又称为用户自定义的Sub过程,一般用于完成一个通用功能,通用过程不依赖于任何对象。通用过程的定义格式如下:,Private|Public|Static Sub

4、()Exit SubEnd Sub 说明:(1)Sub前的关键字Private、Public决定了通用过程的作用域;Static决定了过程中过程级变量的生存期(所有的过程级变量都是静态变量,前面章节已经介绍); (2)通用过程名应满足标识符的命名规则,而且,在同一个模块中过程名要惟一; (3)当通用过程有多个形式参数时,相互之间用逗号分隔; (4)在通用过程中不能再定义过程,但可以调用其他的过程。,创建通用过程的方法有如下两种: (1)直接在代码窗口中输入,只要输入通用过程的开始,按下回车键后,通用过程的结束语句End Sub会自动产生; (2)执行“工具”菜单下的“添加过程”命令,打开“添加

5、过程”对话框,如图7-2所示,输入名称,选择“类型”和“范围”,单击“确定”按钮即可。,7.2.3 Sub过程的调用调用Sub过程的方法有两种:(1)Call (实参表)(2) 实参表,说明: (1)实参表是实际参数列表,当过程有多个实际参数时,相互之间用逗号分隔; (2)用第一种方法调用Sub过程时,实参表必须用圆括号括起来;用第二种方法调用Sub过程时,实参表不能用圆括号括起来,但过程名与实参表之间要加一个空格。,【例7-1】编写一个求n!的通用过程,在由四个命令按钮组成的控件数组中分别计算4!、6!、8!以及110的阶乘和并输出,如图7-3所示。,【例7-2】编写一个求三个数的最大值和最

6、小值的通用过程,在命令按钮的Click事件过程中,任意输入三个数调用该通用过程求它们的最大值和最小值并输出,如图7-4所示。,7.3 滚动条控件滚动条通常用于附加在窗口上帮助观察数据或确定位置,也可以作为数据输入的工具或者数量、进度的指示器。滚动条控件有两种:水平滚动条和垂直滚动条。两种滚动条的结构和操作完全一样。 1滚动条的常用属性 (1)Value属性设置或返回滚动条滑块的当前位置值。,(2)Max属性滚动条能表示的最大值,范围为-3276832767。当滑块位于水平滚动条的最右端或垂直滚动条的最下端时,Value属性所取的值。 (3)Min属性滚动条能表示的最小值,范围为-3276832

7、767。当滑块位于水平滚动条的最左端或垂直滚动条的最上端时,Value属性所取的值。 (4)LargeValue属性当用鼠标单击滚动框的空白处,或滚动条获得焦点时按下PageUp或PageDown键时,Value属性值的改变量。 (5)SmallValue属性当用鼠标单击滚动条两端的箭头,或滚动条获得焦点时按下箭头键、或、键时,Value属性值的改变量。,2滚动条的常用事件 (1)Change事件当移动滑块或在代码中改变Value属性值时触发滚动条的Change事件。 (2)Scroll事件当拖动滑块时触发滚动条的Scroll事件。,【例7-3】设计一个调色板。,7.4 Function过程在

8、Visual Basic中,提供了大量的内部函数,用户编写程序时可以直接调用内部函数,为了完成特定的功能,用户也可以编写自己的函数,Function过程就是用户自定义的函数过程。Function过程的调用与内部函数的调用完全相同。,7.4.1 Function过程的定义Function过程的定义格式如下: Private|Public|Static Function () As Exit Function= End Function,说明:Function前的三个关键字的含义以及对函数过程名、形参和函数过程的要求与通用过程相同。Function过程的创建方法与通用过程的创建方法一样也有两种方法

9、。需要强调的是: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的Functi

10、on过程,然后调用这个Function过程求前n项的乘积,如图7-6所示。,【例7-6】编写一个判断正整数n是否是素数的Function过程,调用这个过程求1001000之间所有的孪生素数并输出,如图7-7所示。孪生素数是指两个素数的差值为2的素数,如:101和103就是孪生素数。,【例7-7】编写用辗转相除法求两个正整数的最大公约数的Function过程,调用这个Function过程求四个正整数的最大公约数并输出,如图7-8所示。,7.5 过程参数 7.5.1 形式参数与实际参数在Visual Basic中,调用过程时,使用参数传递的方式实现调用过程与被调用过程之间的数据传递,即将调用过程中

11、的实际参数传给被调用过程对应的形式参数。形式参数简称形参,是在定义Sub过程或Function过程时,出现在圆括号中的变量名或数组名,其作用是接受调用程序传来的数据;实际参数简称实参,是在调用Sub过程或Function过程时,传递给Sub过程或Function过程的常量、变量、表达式或数组。 需要强调的是: (1)在定义Sub过程或Function过程时,在圆括号中定义的形参表,即变量名或数组名(),只需要在过程的圆括号中写成:变量名|数组名() As 数据类型; (2)形参表与实参表中对应位置的形参名和实参名可以相同也可以不同,Visual Basic都认为不同;,(3)在传递参数时,一般

12、情况下,要求形参表与实参表中参数的个数、数据类型和位置顺序都必须一一对应,除非在形参的前面加上关键字Optional或ParamArray; (4)当数组作为过程的形参和实参时,必须写成数组名和空的圆括号“()”; (5)实参如果是变量也必须定义,而且数据类型与对应的形参要相同; (6)不能用定长字符串变量或定长字符串数组作为形参,但可以用定长字符串变量作为实参。过程形参的格式如下: ByVal|ByRef|Optional|ParamArray | As ,7.5.2 按地址传递与按值传递参数在过程形参的前面加上关键字ByRef或省略关键字,表示按地址或者按引用传递参数,简称传地址,默认的过

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

14、正整数,求它们的最大公约数并输出,如图7-10所示。,2传值传值指的是将实参的值复制给对应的形参,实参本身不参与过程的计算,而由形参参与过程的计算,因此,在过程中即使改变了形参的值,实参的值不变。如果定义过程时采用的是默认方式传地址,调用过程时只要将实参用圆括号括起来,也可以变成传值。,7.5.3 可选参数及其默认值在过程形参的前面加上关键字Optional表示可选的参数,调用该过程时,可以提供或不提供(省略)与此形参相对应的实参,但在过程中需要用函数IsMissing()来处理。当在过程的某个形参前加上关键字Optional后,其后所有的形参都成为可选的参数,因此,可选的参数一般放在形参表的

15、后面,而且数据类型为Variant(默认数据类型)。,【例7-10】编写一个Function过程,调用该过程计算两个数的和、三个数的和、四个数的和并输出,如图7-11所示。,加上关键字Optional的可选参数,还可以设置默认值(缺省值),当一个可选的形参设置了默认值后,调用过程时如果为该形参传递实参则接受实参的值,否则,将使用默认值。,【例7-11】将例7-10中Function过程的形参c、d的默认值设为0,调用该过程计算两个数的和、三个数的和、四个数的和并输出。,7.5.4 可变参数在过程形参的前面加上关键字ParamArray可以传递任意个数的参数,但其后的形参必须是Variant类型

16、(默认数据类型)的数组,而且只能用于形参表的最后一个参数,ParamArray不能与ByVal、ByRef或Optional关键字一起使用。,【例7-12】将例7-10中Function过程的形参设为可变参数,调用该过程计算两个数的和、三个数的和、四个数的和并输出。,7.5.5 数组参数在通用过程或函数过程中,可以将数组或数组元素作为参数进行传递,当传递整个数组,即将数组作为过程的形参和实参时,必须写成数组名和空的圆括号“()”的形式;数组参数只能按地址传递,不能按值传递,即不能在数组形参前加关键字ByVal。,【例7-13】数组作为过程的参数。分别定义有10个、15个、20个元素的三个一维数组,并给这三个数组的元素赋随机的两位正整数并输出,编写一个用比较排序法按从大到小的顺序排列数组元素的Sub过程,调用该过程分别对这三个数组排序并输出,如图7-12所示。,7.5.6 对象参数在Visual Basic中,既可以用变量或数组作为过程的参数,也可以用对象,即窗体或控件作为过程的参数。对象参数只能按地址传递,不能按值传递,即不能在对象形参前加关键字ByVal。 1使用窗体参数使用窗体作为过程的参数时,形参的数据类型为Form,实参为窗体名。,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 经营企划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号