第6章 过程 ppt课件

上传人:bin****86 文档编号:57580117 上传时间:2018-10-23 格式:PPT 页数:37 大小:806KB
返回 下载 相关 举报
第6章 过程 ppt课件_第1页
第1页 / 共37页
第6章 过程 ppt课件_第2页
第2页 / 共37页
第6章 过程 ppt课件_第3页
第3页 / 共37页
第6章 过程 ppt课件_第4页
第4页 / 共37页
第6章 过程 ppt课件_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《第6章 过程 ppt课件》由会员分享,可在线阅读,更多相关《第6章 过程 ppt课件(37页珍藏版)》请在金锄头文库上搜索。

1、Visual Basic 程序设计,主讲教师:杜云-西南大学计算机与信息科学学院E-mail:Dyun_jx163.Com,第 6 章,过程,过程概述将程序分割成较小的逻辑部件就可以简化程序设计任务。称这些部件为过程。过程可用于压缩重复任务,例如,压缩频繁的计算。例如:求1!+2!+n!,求1!+2!+3!+N!,Dim i As Integer Dim j As Integer sum = 0 n = InputBox(请输入一个数N) For i = 1 To nk = 1For j = 1 To ik = k * jNext jsum = sum + kNext iPrint “1!+2

2、!+3!+.“ & n & “!“ & “=“ & sum,一般的方法,Public k As Long Public Sub fact(ByRef n As Integer) k = 1 For j = 1 To nk = k * i Next End Sub,求阶乘的过程,n = InputBox(“请输入一个数n“) sum = 0 For i = 1 To nCall fact(i)sum = sum + k NextPrint “1!+2!+3!+.“ & n & “!“ & “=“ & sum,调用过程求 1!+2!+n!,Dim n As Integer Dim sum As L

3、ong Dim i As Integer,1/1!+2/2!+N/N!,Private Sub Command2_Click() n = Val(InputBox(“请输入一个数n“) sum = 0 For i = 1 To nCall fact(i)sum = sum + i / k NextPrint “1/1!+2/2!+.“ & n & “/“ & n & “!“ & “=“ & sum End Sub,用过程编程有两大好处:1:过程可使程序划分成离散的逻辑单元,每个单元都比无过程的整个程序容易调试。2:一个程序中的过程,往往不必修改或只需稍作改动,便可以成为另一个程序的构件。VB中

4、有两类过程,一类是事件过程,另类是通用过程。事件过程是由系统提供的、不需要用户创建。通用过程是由用户根据自己的需要定义和编写的、可供事件过程多次调用的程序段。通用过程又可分为:Sub子过程 Function过程(函数过程),6.2 SUB子过程的定义与调用,Sub子过程格式: Private | Public Static Sub 过程名 (参数表) 语句组Exit Sub语句组 End Sub,其创建方法有两种:一是在代码窗口中直接按规定的格式编写;二是利用VB的过程添加工具生成过程框架,然后编写过程体。,可以将子过程放入标准模块、类模块和窗体模块中。按照缺省规定,所有模块中的子过程为 Pu

5、blic(公用的),这意味着在应用程序中可随处调用它们。,2:使用添加过程对话框创建过程:,打开代码窗口,工具菜单,添加过程,事例:编写求N的累加和的SUB过程,Private Sub Command2_Click() Text1.Text = “ Text2.Text = “ Text1.SetFocus End Sub,Public s As Integer Public Sub sumzr(n As Integer)Dim i As Integers = 0For i = 1 To ns = s + iNext End Sub,Private Sub Command1_Click()Ca

6、ll sumzr(Val(Text1.Text)Text2.Text = s End Sub,Public Sub sumzr(n As Integer, s As Integer)Dim i As Integers = 0For i = 1 To ns = s + iNext End Sub,Private Sub Command1_Click()Dim n As Integer, s As IntegerCall sumzr(Val(Text1.Text), s)Text2.Text = s End Sub,3:过程的调用,使用Call语句格式:CALL (实际参数) 直接使用过程名 格式

7、: 实际参数,过程 编写事例:该过程的功能是让计算机发出”梆梆梆”的声音,发声次数由调用过程时传递的参数控制.该过程带有一个形式参数.,Sub beepsound(n As Integer)Dim i As IntegerDim j As DoubleFor i = 1 To nBeepFor j = 1 To 100000Next jNext i End Sub,分析该过程的作用范围? 注意过程创建的方法、创建的位置、参数的使用,调用beepsound过程,Private Sub Command1_Click()Call beepsound(Val(Text1.Text) End Sub,注

8、意调用格式,Private Sub Command1_Click()beepsound Val(Text1.Text) End Sub,例6.4,Sub MyMove(ByVal Tag%)Label1.Left = Label1.Left + Tag * 100Label1.Top = Label1.Top + Tag * 100 End Sub, 事件过程调用MyMove: Private Sub Command1_Click()Dim k%If Rnd 0.5 Then k = 1 Else k = -1MyMove (k) End Sub,事例:编写求N!的SUB过程,Public S

9、ub fact(n As Integer, s As Long)Dim i As Integers = 1For i = 1 To ns = s * iNext End Sub,事例:编程计算1!+2!+n!,Private Sub Command1_Click()Dim i As Integer, s As Long, sum As LongFor i = 1 To Val(Text1.Text)Call fact(i, s)sum = sum + sNextText2.Text = sum End Sub,Visual Basic 包含内部的函数,如 Sqr、Cos 或 Chr。此外,还可

10、用 Function 语句编写自己的 Function 过程。 1:函数过程的语法是 Public|PrivateStatic Function 函数名 (形参表)As 数据类型语句组函数名 = 表达式Exit Function 语句组函数名 = 表达式End Function 与 Sub 过程一样,Function 过程也是一个独立的过程,可读取参数、执行一系列语句并改变其参数的值。 与子过程不同,Function 过程可返回一个值到调用的过程。,6.1 Function 过程,事例:编写求N!的FUNCTION过程,Public K As Long Function FACT(N As I

11、nteger) As Long K = 1 For I = 1 To N K = K * I Next I FACT = K End Function,Private Sub Command1_Click()Dim N As IntegerDim S As LongN = Val(Text1.Text)S = FACT(N)Text2.Text = S End Sub,2 Function过程的调用,格式:变量名=Function过程名(参数列表),Private Sub Command1_Click()Dim PR As Boolean, M As LongM = Val(Text1.Tex

12、t)PR = Prime(M)If PR = True Then Picture1.Print Str(M) + “是素数“If PR = False Then Picture1.Print Str(M) + “不是素数“ End Sub,Option Explicit Private Function Prime(M As Long) As BooleanDim i As IntegerPrime = True 向函数名赋值 If M 2 ThenFor i = 2 To Sqr(M)If M Mod i = 0 Then Prime = False: Exit ForNext End If

13、 End Function,注意调用格式,分析函数返回值的传递,例编写求1+2+3+N 的函数过程,Public m As Long Function funcsum(n As Integer) As Long m = 0 For i = 1 To n m = m + i Next funcsum = m End Function,Private Sub Command2_Click() Dim n As Integer Dim sum As Long n = Val(Text1.Text) sum = funcsum(n) Text2.Text = sum End Sub,分别用SUB过程和

14、FUNCTION过程计算 S=1!+2!+N!,Private Sub Form_Load() Label1.Caption = “输入一个数 N“ Label2.Caption = “1!+2!+.+N!=“ Text1.Text = “ Text2.Text = “ Command1.Caption = “计算“ End SubOption Explicit Public Sub FACT(n As Integer, s As Long)Dim i As Integers = 1For i = 1 To ns = s * iNext End Sub,该过程可以放在标准模块中,Private

15、 Sub Command1_Click()Dim n As Integer, s As LongDim i As Integer, sum As Longn = Val(Text1.Text)For i = 1 To nCall FACT(i, s)sum = sum + sNextText2.Text = sum End Sub,调用过程计算阶乘累加和,分别用SUB过程和FUNCTION过程计算 S=1!+2!+N!,Public Function fact1(n As Integer) As Long Dim i As Integer, s As Long s = 1 For i = 1

16、To ns = s * i Next fact1 = s End Function,注意函数过程如何才能实现返回值到调用过程,Private Sub Command1_Click() Dim n As Integer, i As Integer Dim x As Long Dim sum As Long n = Val(Text1.Text) For i = 1 To n x = fact1(i) sum = sum + x Next Text2.Text = sumEnd Sub,Function Area(x!, y!, z!) As SingleDim c!c = (x + y + z)

17、 / 2Area = Sqrt(c * (c - x) * (c - y) * (c - z) End Function,例6.1, 在事件过程中输入数据,分别调用计算三角形面积的函数过程,然后显示总面积 Sub Form_Click()Dim a!, b!, c!, d!, e!, f!, g!, s1!, s2!, s3!a = InputBox(“输入a“): b = InputBox(“输入b“): c = InputBox(“输入c“)d = InputBox(“输入d“): e = InputBox(“输入e“): f = InputBox(“输入f“)g = InputBox(“输入g“)s1 = Area(a, b, c)s2 = Area(c, d, e)s3 = Area(e, f, g)MsgBox (“多边形面积=“ & s1 + s2 + s3) End Sub,

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

当前位置:首页 > 医学/心理学 > 基础医学

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