Visual Basic程序设计实用教程 教学课件 ppt 作者 于秀敏 第6章 过程

上传人:E**** 文档编号:89183955 上传时间:2019-05-20 格式:PPT 页数:68 大小:187.50KB
返回 下载 相关 举报
Visual Basic程序设计实用教程 教学课件 ppt 作者 于秀敏 第6章 过程_第1页
第1页 / 共68页
Visual Basic程序设计实用教程 教学课件 ppt 作者 于秀敏 第6章 过程_第2页
第2页 / 共68页
Visual Basic程序设计实用教程 教学课件 ppt 作者 于秀敏 第6章 过程_第3页
第3页 / 共68页
Visual Basic程序设计实用教程 教学课件 ppt 作者 于秀敏 第6章 过程_第4页
第4页 / 共68页
Visual Basic程序设计实用教程 教学课件 ppt 作者 于秀敏 第6章 过程_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《Visual Basic程序设计实用教程 教学课件 ppt 作者 于秀敏 第6章 过程》由会员分享,可在线阅读,更多相关《Visual Basic程序设计实用教程 教学课件 ppt 作者 于秀敏 第6章 过程(68页珍藏版)》请在金锄头文库上搜索。

1、第6章 过程,第6章 过程,VB采用的是事件驱动的工作方式,VB的每一个窗体和控件都有一个预定义的事件集,如果某事件发生且在相关的事件过程中存在代码,则VB执行该代码,从而实现相应的功能。 但是如果把功能都集中在事件过程中实现,则会导致过程过于冗长,且不便阅读和调试。另外,若在多个事件过程中需要实现相同或相似的功能,则造成相同或相似代码的重复编写。在实际应用中,常常将实现某个特定功能的代码段或重复次数较多的代码段独立出来作为通用过程单独编写,在使用该代码段的位置使用语句调用通用过程并指定参数来实现相应的功能。过程使程序结构更加清晰,更便于阅读和调试;减少了代码的重复编写。 在VB中,通用过程被

2、分为两种类型:子过程(又称Sub过程)和函数过程(又称Function过程)。,61 函数过程的定义和调用,6.1.1 引例 例6.1 编写一个程序,根据三角形的三条边的长度,求三角形的面积,程序界面如图,61 函数过程的定义和调用,分析: 根据三角形三条边的长度计算三角形的面积,可以使用如下的公式计算三角形的面积: 其中,x、y、z代表三角形的三条边长,c是三角形周长的一半。,61 函数过程的定义和调用,该程序运行时根据输入的边长求三角形的面积,所使用的公式是相同的,不同的是每次输入的边长。用户可以自己定义一个计算三角形面积的函数过程,这样,在程序中就可以像调用内部函数一样调用自定义的函数过

3、程。,61 函数过程的定义和调用,6.1.2函数过程的定义 定义函数过程有两种方法。 1利用【工具】菜单中的【添加过程】命令 具体步骤如下: (1)在VB的设计工作模式下,激活代码窗口。 (2)在【工具】菜单中选择【添加过程】命令,系统会弹出如图6-2所示的【添加过程】对话框。,61 函数过程的定义和调用,61 函数过程的定义和调用,(3)在【名称】文本框中输入函数过程的名称。 (4)在【类型】选项组中选择【函数】。 (5)在【范围】选项组中选择【公有的】或【私有的】。 (6)若需在调用期间保留函数过程中的局部变量的值,则选中【所有本地变量为静态变量】复选框。,61 函数过程的定义和调用,(7

4、)输入函数过程名并完成以上所有选择后,单击【确定】按钮。 例如,若在对话框中给函数过程输入名称“MyFunction”,在【类型】选项组中选择【函数】,在【范围】选项组中选择【公有的】,则单击【确定】按钮后,在代码窗口中将出现函数过程的结构语句,接下来,用户只需在两行结构语句之间编写函数过程体所包含的语句即可。,61 函数过程的定义和调用,2在代码窗口中直接定义 打开代码窗口,把光标移到现存所有过程之外,即可直接输入函数过程定义所对应的结构语句。 定义函数过程的语法格式如下: StaticPublic|Private Function ()As 常数和局部变量定义 函数过程体 语句块 函数名=

5、返回值 End Function,61 函数过程的定义和调用,其中: (1)Static:可选项。表示在调用期间保留函数过程中局部变量的值。其含义将6.5.4在节详细介绍。 (2)Public和Private:可选项,任选其一。其含义将6.5.3在节详细介绍。 (3):函数过程名与变量的命名规则相同,注意不能与同一级别的变量重名。,61 函数过程的定义和调用,(4):可选项。根据函数需要而定,包含调用函数需提供的参数,当有多个参数时,各个参数之间用逗号分隔,每个参数的形式如下: ByVal|ByRef()As , ByVal|ByRef()As 参数列表中的参数可以是变量或数组,若是数组,则其

6、后必须加一对空括号。As 表示参数的类型。该选项也可以使用代替。ByVal|ByRef用来说明参数的传递方式,其含义将在6.3节详细介绍。,61 函数过程的定义和调用,(5)As:可选项,表示函数返回值的的类型,若缺省,则默认为变体类型。 该选项也可以使用代替,但是要直接写在函数过程名的后面。 (6)在函数体内,至少使用对函数名赋值一次。即: 函数名=表达式 (7)Exit Function:表示退出函数过程。,61 函数过程的定义和调用,6.1.3函数过程的调用 Function过程的调用形式与Visual Basic提供的内部函数的调用形式相同,由于函数过程名返回一个值,故函数过程不能作为

7、单独的语句加以调用,必须作为表达式中的一部分,再配以其他的语法成分构成语句。,61 函数过程的定义和调用,形式如下: () 其中,是传递给过程的变量或表达式。它必须与形参保持个数相同,位置与类型一一对应。实参可以是同类型的常数、变量、数组元素、表达式。,61 函数过程的定义和调用,例6.2 编写用于实现计算两个整数的最大公约数的函数过程,程序界面如图6-4所示。,6.2 子过程的定义和调用,函数过程给编程带来很多优点,但也有缺陷。若编写过程不是为了获得某个返回值,而是为了某种功能的处理,例如,使用过程打印一个图形;或者需要过程返回多个值,例如对一组数的排序、求一组数的最大和最小值等,在这些情况

8、下,就需要使用子过程。子过程比函数过程更灵活。,6.2 子过程的定义和调用,6.2.1引例 例6.3 编写程序,产生10个0100之间的随机整数,打印随机数并根据随机数的大小打印一行星号“”。一个“”表示数字里包含1个10。例如:产生的随机数为54,则打印5个“”。程序的运行界面如图6-5所示。,6.2 子过程的定义和调用,6.2.1引例 例6.3 编写程序,产生10个0100之间的随机整数,打印随机数并根据随机数的大小打印一行星号“”。一个“”表示数字里包含1个10。例如:产生的随机数为54,则打印5个“”。程序的运行界面如图6-5所示。 图6-5 例6.3程序运行界面,6.2 子过程的定义

9、和调用,6.2 子过程的定义和调用,6.2.2子过程的定义 定义子过程也有两种方法。 1利用【工具菜单】中的【添加过程】命令 除了在【添加过程】对话框中的【类型】选项组中选择【子过程】之外,与添加函数过程的操作基本相同。,6.2 子过程的定义和调用,2在代码窗口中直接定义 StaticPublicPrivateSub () 局部变量或常数定义 语句块 Exit Sub End Sub 说明: (1)格式中的大部分选项与函数过程相同。若没有参数列表时,括号也应省略不写。 (2)Exit Sub:表示退出子过程。,6.2 子过程的定义和调用,6.2.3子过程的调用 子过程的调用是通过一条独立的调用

10、语句加以实现的,子过程的调用语句有两种语法形式。 格式1: Call () 格式2: (),6.2 子过程的定义和调用,说明: (1)用Call关键字时,若有实参,则实参必须加括号,若无实参,则圆括号可以省略。 (2)无Call关键字时,圆括号可以有,也可以省略。 (3)实参要获得子过程的返回值,则实参只能是变量,不能常量、表达式,也不能是控件名。,6.2 子过程的定义和调用,例6.4 编写一个子过程,将字符串 s1中出现的子字符串s2删除,结果仍保存在s1中。例如:s1=“123abc1234defg123ABC“,s2=“23“,删除后的结果为:s1=“1abc14defg1ABC“。程序

11、的运行界面如图6-6所示。,6.2 子过程的定义和调用,6.2 子过程的定义和调用,6.2.4函数过程与子过程的区别 (1)把某功能定义为函数过程还是子过程,没有严格的规定,但只要能用函数过程定义的,肯定能用子过程定义,反之不一定。当过程有一个返回值时,函数过程直观;当过程有多个返回值时,习惯用子过程。 (2)函数过程有返回值,过程名也有类型,同时函数过程体内必须对函数过程名赋值。子过程名没有值,过程名也就没有类型,不能在子过程体内对子过程名赋值。,6.2 子过程的定义和调用,例6.5 分别编写函数过程与子过程,计算级数的部分和。公式如下: S=1 + x + x2/2! + xn/n! +,

12、 |xn/n!|exp 其中,exp为精度要求。程序的运行界面如图6-7所示。,6.2 子过程的定义和调用,6.3 参数传递,参数是调用程序与被调用程序之间的接口,在VB中,函数过程和子过程定义中的参数叫做形式参数(简称形参),调用函数过程或子过程时,在过程名后的括号中提供的参数叫做实际参数(简称实参)。 在调用一个过程时,必须把实参传递给形参,完成形参与实参的结合,然后执行被调用的过程。在VB中,形参和实参的结合有两种方式:按值传递(简称传值)和按地址传递(简称传址,又称为引用)。其中,传址是默认的参数传递方式。在过程定义中,若某个形参前加有“ByVal”关键字,则为值传递,若某个形参前加有

13、“ByRef”关键字或没有“ByVal”和“ByRef”关键字,则为地址传递。,6.3 参数传递,例如: Private Sub MySub(ByVal a%, b%, ByRef c%) End Sub 形参a是按值传递,b、c是按地址传递。,6.3 参数传递,6.3.1按值传递 按值传递是指将实参的值传递给形参。在过程被调用时,系统会给形参分配临时存储单元,然后将实参的值复制到临时单元中,完成实参与形参的结合,即实参和形参使用不同的存储单元,当过程调用结束时,这些形参所占用的存储单元被释放,因此被调用过程对形参的操作不会影响到实参。按值传递只能实现数据从调用过程到被调用过程数据的单向传递。

14、,6.3 参数传递,例6.6 按值传递示例程序。 程序代码如下: Private Sub MySub1(ByVal a%, ByVal b%) a = a + 10: b = b + 20 End Sub Private Sub Form_Click() Dim m%, n% m = 5: n = 10 Print “调用前“, m, n Call MySub1(m, n) Print “调用后“, m, n End Sub,6.3 参数传递,程序运行时单击窗体,结果如图6-8所示。 图6-8 按值传递示例程序运行结果 运行结果表明,在按值传递方式中,被调用过程对形参a和b的操作不会影响到实参

15、m和n。 在实际应用中,若不希望过程修改实参的值,则应选用按值传递,这样可以增加程序的可靠性且便于调试,减少各过程间的关联。,6.3 参数传递,6.3.2按地址传递 按地址传递是指将实参的地址传递给形参。在过程被调用时,系统会将实参的地址传递给形参作为形参的地址,完成实参与形参的结合,即实参和形参共用相同的存储单元。被调用过程对形参的任何操作都变成了对实参的操作,实参的值就会随过被调用过程对形参的改变而改变。按地址传递可以实现调用过程和子过程之间数据的双向传递。按地址传递要求实参必须是变量名或数组。,6.3 参数传递,例6.7 按地址传递示例程序。 程序代码如下: Private Sub My

16、Sub2(ByRef a%, ByRef b%) a = a + 10: b = b + 20 End Sub Private Sub Form_Click() Dim m%, n% m = 5: n = 10 Print “调用前“, m, n Call MySub2(m, n) Print “调用后“, m, n End Sub,6.3 参数传递,程序运行时单击窗体,结果如图6-9所示。 图6-9 按地址传递示例程序运行结果 运行结果表明,在按地址传递方式中,实参m、n的值随过被调用过程对形参a、b的改变而改变。,6.3 参数传递,6.3.3数组参数的传递 在函数过程和子过程的定义中,也可以使用数组作为形式参数。数组做参数时,要在数组名后带上一对空括号“()”。并且,数组做参数只能采用按地址传递方式。,6.3 参数传递,例6.8 编写一函数过程,求任意一数组中各元素的积。 程序代码如下: 在事件过程中产生随机数数组,调用

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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