[理学]vb课件fil

上传人:tia****nde 文档编号:70131631 上传时间:2019-01-16 格式:PPT 页数:61 大小:6.22MB
返回 下载 相关 举报
[理学]vb课件fil_第1页
第1页 / 共61页
[理学]vb课件fil_第2页
第2页 / 共61页
[理学]vb课件fil_第3页
第3页 / 共61页
[理学]vb课件fil_第4页
第4页 / 共61页
[理学]vb课件fil_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《[理学]vb课件fil》由会员分享,可在线阅读,更多相关《[理学]vb课件fil(61页珍藏版)》请在金锄头文库上搜索。

1、1,第9章,过 程,本章要点: Function过程 Sub过程 过程的嵌套 参数的传递 代码模块 变量的作用域与生存期,2,过程的引入: 使同类的操作不重复 (操作方法相同、参数不同) 过程: 完成一段独立功能,可供其他过程使用(调用)。 过程又称为子程序 调用过程: 调用其他过程的过程,3,过程分类:,Sub过程,Function过程,*内部过程(方法) 事件过程 自定义过程,内部函数 自定义函数,4,9.1 Function过程,9.1.1 Function过程的定义 1. Function过程的格式 Public|PrivateStatic Function () As = Exit

2、Function = End Function,5,2. 说明 (1) Public: 缺省值。使用Public时表示所有模块的所 有其他过程都可以调用该Function过程。 (2) Private: 使用Private时表示只有本模块中的其他 过程才可以调用该Function过程。 (3) Static: 使用Static时表示将过程中的所有局部变 量说明为静态变量。 (4) : Function过程的名称,遵循变量 的命名规则。 (5) : 表示在调用时要传递给Function过程的参数变量列表。多个变量之间用逗号隔开。,6,格式: ByVal|ByRef( ) As ByVal: 表示

3、该参数按值传递。 ByRef: 缺省值。表示该参数按地址传递。 : 遵循变量命名规则的任何变量名 或数组名。 ( ): 当参数为数组时使用。 (7) Exit Function语句: 从Function过程中退出。 (8) Function过程通过赋值语句 = 将函数的返回值赋给。 (9) Function过程的定义不能嵌套。,7,Function过程的建立: 直接在代码窗口中输入。 在代码窗口: 工具 添加过程。 【例9-1】编写一个计算n!的Function过程。 Function Fact(N As Integer) As Long Dim I As Integer, F As Long

4、 F = 1 F用于保存阶乘值 For I = 1 To N F = F * I Next I Fact = F 给函数过程名赋值 End Function,8,9.1.2 Function过程的调用 直接在表达式中调用。 格式: () : 常量、变量或表达式,各参数之间用逗号分隔。如果是数组,在数组名之后必须跟一对空括号。,9,【例9-3】从键盘上任意输入一个整数,然后调用例9-1编写的函数过程计算其阶乘数。,10, 自定义求阶乘的函数过程Fact Functin Fact(N As Integer) As Long Dim I As Integer, F As Long F = 1 For

5、 I = 1 To N F = F * I Next I Fact = F 给函数过程名赋值 End Function 在按钮的Click事件过程中调用函数过程 Private Sub Command1_Click() Dim X As Integer X = Val(Text1.Text) Label2.Caption = Trim(Str(X) & “的阶乘数为: “ Label3.Caption = Trim(Str(Fact(X) End Sub,11,9.1.3 Function过程举例 【例9-4】利用Function过程计算阶乘,求组合数。设计界面如下图所示。运行时,在文本框Te

6、xt1和Text2中输入n和m值,或通过文本框旁的滚动条调整n和m的值,单击“=”按钮计算组合数,结果显示于文本框Text3中。,12,主要属性设置如下:,13, 定义求阶乘的函数Fact Function Fact(N As Integer) As Double Dim F As Double, i As Integer F = 1 For i = 1 To N F = F * i Next i Fact = F End Function,14, 调整滚动条VScroll1的值(m)时,在文本框中显 示该值,并清除已有的计算结果 Private Sub VScroll1_Change() T

7、ext1.Text = VScroll1.Value Text3.Text = “ End Sub 调整滚动条VScroll2的值(n)时,在文本框中显示该值, 并清除已有的计算结果 Private Sub VScroll2_Change() Text2.Text = VScroll2.Value 限制n的最小值为m的值 VScroll1.Min = VScroll2.Value Text3.Text = “ End Sub,15, “=”按钮的Click事件过程 Private Sub Command1_Click() Dim m As Integer, n As Integer, c As

8、 Double m = Val(Text2.Text): n = Val(Text1.Text) 调用Fact函数求各阶乘值 c = Fact(m) / (Fact(n) * (Fact(m - n) Text3.Text = Trim(Str(c) End Sub,16, 定义求最大公约数的函数过程hcf Function hcf(m As Integer, n As Integer) As Integer Dim r As Integer r = m Mod n Do While r 0 m = n n = r r = m Mod n Loop hcf = n End Function,【

9、例9-5】编写Function过程求最大公约数,并通过命令按钮的单击事件过程调用该函数过程。,17, 在Command1的单击事件过程中调用自定义函数 Private Sub Command1_Click() Dim m As Integer, n As Integer m = Val(Text1.Text): n = Val(Text2.Text) Label3.Caption = Str(hcf(m, n) End Sub 在Text1获得焦点时选中其中的文本 Private Sub Text1_GotFocus() Text1.SelStart = 0 Text1.SelLength =

10、 Len(Text1.Text) End Sub,18, 在Text2获得焦点时选中其中的文本 Private Sub Text2_GotFocus() Text2.SelStart = 0 Text2.SelLength = Len(Text2.Text) End Sub,19,9.2 Sub过程,9.2.1 Sub过程的定义 1. Sub过程的格式 Private|PublicStatic Sub () Exit Sub End Sub 2. 说明 (1) Exit Sub用于退出Sub过程。 (2) 不具有值的意义,在Sub过程中不能给赋值,也不能给定义类型。,20,(3) Sub过程通

11、过中的参数返回值。 (4) Sub过程的建立方法与Function过程的建立方法相同。 【例9-7】编写计算n!的Sub过程。 分析: 参数表中应有一个参数n,还应有另一个参数F用来返回阶乘值。 Sub Fact(N As Integer, F As Long) Dim I As Integer F = 1 For I = 1 To N F = F * I Next I End Sub,21,【例9-8】编写Sub过程,打印以下图形。 分析: 打印以上图形,不需要返回值,因此无需引入参数。,* * * * *,Sub a() For i = 1 To 6 Print Tab(7 - i); F

12、or j = 1 To 2 * i - 1 Print “*“; Next j Print Next i End Sub,22,【例9-9】编写Sub过程,求三个数中的最大数和最小数。 分析: 首先要设置三个参数,如x、y、z,用于接收三个原始数据,另外引入两个参数max和min,用于返回最大和最小数。 Sub s(x, y, z, max, min) max = x min = x If y max Then max = y If y max Then max = z If z min Then min = z End Sub,23,9.2.2 Sub过程的调用 格式一: Call () 格

13、式二: 说明: (1) : 要调用的Sub过程名; (2) : 可以是常量、变量或表达式,各参数之间用逗号分隔。如果是数组参数,则要在数组名之后跟一对空括号。 (3) 用Call语句调用一个Sub过程时,如果过程本身没有参数,则省略和括号。 (4) 格式二省略了Call关键字,同时两边也不能带括号。,24,【例9-10】将例9-3改成用Sub过程实现求n!。 Option Explicit Sub Fact(N As Integer, F As Long) Dim I As Integer F = 1 For I = 1 To N F = F * I Next I End Sub,25,Pri

14、vate Sub Command1_Click() Dim x As Integer, Ff As Long x = Val(Text1.Text) Label2.Caption = Trim(Str(x) & “的阶乘数为: “ 调用Fact过程求x阶乘,阶乘值存于实参Ff中 Call Fact(x, Ff) Label3.Caption = Trim(Str(Ff) End Sub,26,9.2.3 Sub过程举例 【例9-11】编写一个Sub过程,计算N个数的和,即1+2+N,并通过命令按钮的单击事件调用该过程计算S=1+(1+2)+(1+2+3)+ +(1+2+K)。 分析: 编写一个

15、Sub过程计算1+2+N, 设参数N、S,参数S用于返回该和值。 Public Sub A1(N As Integer, S As Integer) S = 0 For J = 1 To N S = S + J Next J End Sub,27,Private Sub Command1_Click() Dim K As Integer, S1 As Integer, I As Integer K = Val(Text1.Text) For I = 1 To K 调用过程A1求1+2+I,和值返回到S1中 Call A1(I, S1) Sum = Sum + S1 Next I Text2.T

16、ext = Sum End Sub,28,【例9-12】编写一个Sub过程,实现将三个数由大到小排序。程序运行时单击“排序前”按钮产生0,99之间的三个随机整数,并将文本框Text2的内容清空,单击“排序后”按钮,调用该Sub过程完成排序。,分析: 在Sub过程中引入三个参数A、B、C用于接收数据,在过程中对它们进行排序,执行完过程后还通过A、B、C返回排序后的结果。,29,Dim X As Integer, Y As Integer, Z As Integer 定义排序过程Sort3 Public Sub Sort3(A As Integer, B As Integer, C As Integer) Dim T As Integer If A

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

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

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