Visual Basic程序设计简明教程 第7章

合集下载

Visual Basic 程序设计教程第7章

Visual  Basic 程序设计教程第7章

也就是说子程序过程比函数过程适用 面更广。但当过程只有一个返回值时,函 数过程比较直观;当过程要实现某种操作 或者要返回多个值时,必须用子程序过程, 通过多个形参传递多个值到主调程序中。
(2)函数过程有返回值,则函数过 程名也就有类型,同时在函数过程 体内必须对函数名赋值。子程序过 程名没有值,则子程序过程名也没 有类型,不能在过程体内对子程序 过程名进行赋值。
二.函数过程
1.函数的定义
(1).建立函数过程(Function过 程)
建立函数过程的方法同建立子程序过 程的方法相同,只是在图7.1中的“类型” 选项组中选取“函数”,则定义一个函数 过程。
(2).函数过程(Function过程)的 定义 函数过程的定义形式如下:
[Static][Public][Private]Sub 函数过程名( [参数列 表])] [As 类型] 局部变量或常数定义 <语句块> [Exit Function] 函数过程体 <语句块> 函数名=返回值 End Function
【说明】 (1)过程以Sub开头,以End Sub结束, 在Sub和End Sub之间的部分是过程体。格 式中各参数的含义如下。 ① Static:指定过程内的局部变量是 静态变量。 ② Private:表示Sub过程是私有的, 只能被本模块中的其他过程访问,不能被 其他模块中的过程访问。
③ Public:表示Sub过程是公有的, 可以在程序的任何地方调用它。各窗体的 通用过程一般在标准模块中用Public定义。 在窗体层定义的通用过程通常在本窗体模 块中调用,如果在其他窗体模块中调用, 则应加上窗体名作为前缀,即窗体名.模块 名(参数表)。
3.子过程的调用
子程序过程的调用是一条独立的语句, 有两种调用形式:

VisualBasic 程序设计第7章

VisualBasic 程序设计第7章

【例7-3】参数传递比较
具体操作步骤见教材
知识链接
按值传递时,形参值的改变不影响到主程序中 实参值的改变。如例7-3中,变量j是按值传递 的,因此虽然在过程中j的值减1,但不影响主 程序中j的值,仍为1000。按址传递时,主程序 中实参值会随着形参值的改变而改变。如例7-3 中,变量i是按址传递的,在过程中i的值加1, 主程序中i的值也加1,为1001。
调用函数过程时,传给形参的数据个数要和形 参的个数一致,并且位置要对应,数据类型也要匹 配。在输入函数过程名时,系统会提示形参的个数、 位置及数据类型。如例7-2中,在输入函数过程名 Rect时,会弹出如图7-7所示的提示框,提示需要数 据的个数及类型。
图7-7 形参提示框
7.1.4内部函数
与函数过程相对应,Visual Basic 6.0还提供了内 置的或内部的函数,这些函数所包括的语句块已经 被编译后,不需要用户去编写,用户可按调用函数 过程的方法调用内部函数。在表7-1中,列出了 Visual Basic 6.0中部分常用的函数。
【例7-2】矩形面积计算
具体操作步骤见教材
知识链接
函数过程名不仅是供调用的标识符,而且还可用于存放返 回值的变量名。在定义函数过程时,需指明数据类型,语法结 构如下: Delare Function 函数过程名(形参1, 形参1,……) As 数据类型 语句块 End Sub 若数据类型为默认,则返回变体类型值。在“语句块”中至少 对函数过程名赋值一次。如例7-2中,Rect既是函数过程名, 还是存放返回值的变量名,其值为两个形参rlen、rwid的乘积。 函数过程名Rect既可以供主程序直接使用,还可以直接赋给主 程序的变量area。
在Visual Basic 6.0中,实参和形参之间数据的传 递有两种方式,即传址(ByRef)方式和传值 (ByVal)方式,其中传址又称为引用,是默认的方 式。 用“ByVal”关键字指出参数是按值来传递的。 按值传递时,传递的只是变量的副本。当调用一个 子过程时,系统会将实参的值直接复制给形参,然 后实参与形参之间便断开了联系,对形参的任何操 作都不会影响到实参。 用“ByRef”关键字指出参数是按址来传递的, 按址传递是Visual Basic 6.0默认的参数传递方式。按 址传递时,形参将与原变量使用内存中的同一地址。 也就是说,如果在过程中改变了这个形参的值,实 参的值也会随之而改变。

Visual Basic(第七章)

Visual Basic(第七章)

第7章过程“过程”体现了“自顶向下、逐步细化”的结构化程序设计思想,是实现结构化程序设计思想的重要方法。

使用过程编程的优点:(1)可以将一个大的程序分解为若干个模块,每个模块只完成一个功能,便于程序的调试。

(2)便于多人协作共同开发一个程序(3)模块具有一定的通用性,可以当前程序或其他程序调用。

在VB中具有两种类型的过程:Sub(子程序)过程和 Function(函数)过程。

7.1 Sub过程Sub过程分为:事件过程和通用过程。

7.1.1 事件过程与通用过程一、事件过程事件过程由VB自行声明,是附属于窗体和控件的。

用户不能增加或删除事件过程。

二、通用过程通用过程由用户建立,它不与任何特定的事件相联系,只能由别的过程来调用。

通用过程存储在窗体的通用段或标准模块中。

7.1.2 通用过程的创建建立通用过程有两种方法。

一、在“代码”编辑窗口中输入1.建立Sub过程在“代码”编辑窗口现有过程的外面,按如下格式输入:[ Private | Public ] [ Static ] Sub 过程名( [形参表] )系统将自动添加过程尾代码:End Sub2.Sub过程的格式:[ Private | Public ] [ Static ] Sub 过程名( [形参表] )[语句列][ Exit Sub ][语句列]End Sub说明:(1)通用过程可放入标准模块和窗体模块中。

缺省时所有模块中的子过程为Public。

当选用Private参数时,只有该过程所在模块中的过程才能调用。

(2)如果使用Static关键字,则该过程中所有局部变量的值在整个程序运行期间都存在。

(后面介绍)在过程内部,Static类型的变量存在且可见;在过程外部,Static类型的变量存在但不可见。

(3)过程名:与变量名的命名规则相同。

(4)语句列:过程中的程序段。

可以用一个或多个Exit Sub语句从过程中退出。

(5)形参表:指明从调用过程传递给被调用过程的变量个数和类型(各变量名之间用逗号分隔)。

visual basic (vb)第7章 过程

visual basic (vb)第7章 过程

Visual Basin 程序设计
4.Visual Basic应用程序结构
VB应用程序由三种模块组成:
窗体模块(Form) (文件扩展名.frm) 标准模块(Module) (文件扩展名.bas) 类模块(Class) (文件扩展名.cls)
Visual Basin 程序设计
2-1. Function过程(过程函数)
3.Function过程的调用 (1)调用位置:表达式中调用 (2)调用格式:
变量名=函数名(实参列表)
实参列表:可以是常量、变量或表达式,各参 数用逗号隔开。
Visual Basin 程序设计
2-1. Function过程(过程函数)
Visual Basin 程序设计
2-1. Function过程(过程函数)
1.定义格式为:
[ 说明符 ] Function 函数名 (形参表)As 类型 局部变量或常量声明 语句序列 函数名=表达式 End Function
Visual Basin 程序设计
2-1. Function过程(过程函数)
Visual Basin 程序设计
过程的执行:
过程A:
子过程: Sprg1
调用Sprg1
调用Sprg1
调用Sprg2
子过程: Sprg2
Visual Basin 程序设计
2. 使用通用过程
在VB中,通用过程分为两类: ■ Function过程(函数) ■ Sub过程(子程序) 当我们在程序设计中需要重复使用一段代码时,可以 编写通用过程。那么到底是选用Function过程,还是选 用Sub过程呢? (1)若想通过过程得到一个值则选用Function过程, 并通过该过程的名字将计算的值传递给调用过程。 (2)如果该过程仅仅进行一些操作无须计算一个 值,或需要得到多个值,则需要选用Sub过程,并通过该 过程的参数将多个值传递给调用过程。

VisualBasic程序设计综合教程第7章过程

VisualBasic程序设计综合教程第7章过程

7.2 过程 7.2.1 过程的概念 1 过程 过程是构成程序的一个模块,往往用来完成一个相对独立的功能。过程可以使程序更清晰,更具有结构性,所以把程序分割成较小的逻辑部件就可以简化程序设计的任务,这些部件称为过程。 2 用过程编程有两大好处
(1) 过程可以把程序划分成离散的,较小的逻辑单元,每个单元都比无过程的整个程序容易调试,而且过程可用于压缩重复任务或共享任务。 (2) 一个程序中的过程,往往不必修改或只需稍作改动,便可以成为另一个程序的构件。 3 Visual Basic中过程的分类 (1) 通用过程 通用过程包括子程序过程(或称作Sub过程)和函数过程(或称作Function 过程)。 (2) 事件过程
'编写求平均成绩过程st_sum Public Sub st_sum() For i = 1 To 10 Sum = Sum + stscore(i) Next i Text3 = Sum / 10 '在文本框中输出 End Sub '编写求最高,最低成绩过程Max_min Public Sub Max_min() Max = stscore(1) Min = stscore(1) For i = 1 To 10 If Max < stscore(i) Then Max = stscore(i) If Min > stscore(i) Then Min = stscore(i) Next i Text1 = Max '在文本框中输出 Text2 = Min '在文本框中输出 End Sub
Label3
Caption
平均成绩
Label4
Caption
从高到底排序
Text1
Text
Text1

《Visual Basic程序设计实用教程》 第7章

《Visual Basic程序设计实用教程》  第7章
2020/1/11
1.Sub过程
子过程是在响应事件时执行的代码块。将模块中的代码分成子过 程后,在应用程序中查找和修改代码变得更容易了。子过程的 语法是:
[Private|Public][Static]Sub procedurename (arguments) statements End Sub
Sub PostAccounts (ByVal intAcctNum as Integer)
. .
'这里放语句。 .
End Sub
2020/1/11
按地址传递参数。 按地址传递参数使过程用变量的内存 地址去访问实际变量的内容。结果,将 变量传递给过程时,通过过程可永远改 变变量值。按地址传递参数在Visual Basic中是缺省的。
多文档界面(MDI)应用程序
多文档界面(MDI)允许创建在单个容器窗体 中包含多个窗体的应用程序。像Microsoft Excel与Microsoft Word for Windows 这样的应 用程序就具有多文档界面。
2020/1/11
多文档界面(MDI)应用程序
MDI窗体与具有一个限制条件的普通 窗体相似。除非控件具有Align属性 (如PictureBox 控件)或者具有不可见 界面(如Timer控件),否则不能将控 件直接放置在MDI窗体上。
或 Chr。 此 外 , 还 可 用 Function 语 句 编 写 自 己 的 Function过程。函数过程的语法
[Private|Public][Static]Function procedurename (arguments) [As type] Statements
End Function
2020/1/11
1.关键字 Function 代替了关键字 Sub。 2.函数过程有返回值。 3.在函数过程体中至少应该有一个给

Visual Basic程序设计课件(第七章)

Visual Basic程序设计课件(第七章)

程序如下: Private Sub Command1_Click() Dim a(4,3)As Single,xm(4)As String * 10, i%,j%,aver! Print Tab(25);"成绩表" Print Print "姓名";Tab(15);"英语";Tab(25); "数学"; Print Tab(35);"法律";Tab(45);"平均分" Print
3.Unload语句 格式:Unload 窗体名称 该语句与Load语句的功能相反,它清除内存中指 定的窗体。
4.Hide方法
格式:[窗体名称.]Hide Hide方法使窗体隐藏起来,不在屏幕上显示,但 此时窗体仍在内存中。因此,它与Unload语句的作用 是不一样的。
从存储角度看,前面使用的变量都是相互独 立的、无关的,通常称它们为简单变量。但如果 处理将200个学生的成绩按大小顺序排序这类问 题,只使用简单变量将会非常麻烦,而利用数组
利用多窗体,重新设计此程序!如下图所示
具体程序如下:
Private Sub Command1_Click() Form2.Show Dim a!, b!, c!, p!, s! a = Text1.Text b = Text2.Text c = Text3.Text p = (a + b + c) / 2 s = Sqr(p * (p - a) * (p - b) * (p - c)) Form2.Text1.Text = s End Sub
【例7.6】设计一个简易计算器,能进行整数的加、 减、乘、除运算。其运行界面如图7-8所示。 界面设计: 一个标签用于计算器输出;

Visual Basic程序设计教程 (7)

Visual Basic程序设计教程 (7)

第7章 过程及应用
7.4 过程的作用域
1.窗体/模块级 窗体/模块级过程是在定义Sub或Function过程时,选用了 关键字Private、Static,则该过程只能被定义它的窗体模块、 标准模块中的语句、过程调用。 2.全局级 全局级过程是在定义Sub或Function过程时,选用了关键字 Public,则该过程能被定义它的窗体模块、标准模块中的语句、 过程调用,也能被未定义Sub或Function过程的其它窗体模块、 标准模块中的语句、过程调用。
实参是另一个变量的别名。
第7章 过程及应用
7.6 过程调用编程实例
• 7.6.1 查找 • 7.6.2 插入
第7章 过程及应用
7.6.1 查找
例7.7:创建一个窗体,输入任何一个学生的学号,用“二分 法”找到该学生的姓名。 算法: “二分法”就是将“众多”的已有的数据先存放到数组中,并 对数组中数据进行排序,然后根据“查找数据”的大小,判断其在 数组中的上半部还是下半部,取其一半;接下来再拿“查找数据” 与剩余部分的数据比较,取其一半;重复多次,直到找到为止。
第7章 过程及应用
7.4 过程的作用域
例7.5:创建两个窗体,调用同一个标准模块输出不同的图形 。
演示 程序
第7章 过程及应用
7.5 参数传递
• 7.5.1 形式参数与实际参数 • 7.5.2 参数传递方式
第7章 过程及应用
7.5.1 形式参数与实际参数
1.形式参数 形式参数是指在定义过程时,出现在Sub或Function语句中过 程名后面圆括号内的参数。它是用来接收传送给过程的数据,在 定义过程时,形式参数表中的各个变量之间要用逗号分隔,在定 义形式参数的同时还要定义各参数的类型。 2.实际参数 实际参数是指在调用Sub或Function过程时,写入过程名或函 数名后括号内的参数。它是将它们的数据(数值或地址)传送给S ub或Function过程与其对应的形式参数。

Visual Basic程序设计案例教程第7章

Visual Basic程序设计案例教程第7章
“容器”的宽度由Width属性及ScaleWidth 属性确定。 ScaleWidth=右下角坐标的x值-左上角坐标 的 x值
(4)ScaleTop属性
ScaleTop属性表示“容器”左上角坐标的y 值,默认为0。
(5)ScaleLeft 属性
ScaleLeft 属性表示“容器”左上角坐标的 x值,默认为0。
注意:ScaleMode属性值改变后与坐标度 量相关的属性均会随之改变,如 ScaleHeight和ScaleWidth等。
2.自定义坐标系
(1)通过属性定义坐标系。 通过ScaleTop,ScaleLeft,ScaleWidth和 ScaleHeight属性实现。
(ScaleTop,ScaleLeft)
例7.1 通过属性定义坐标系
Private Sub Form_Click() Cls Form1.ScaleLeft = -10: Form1.ScaleTop = 20 Form1.ScaleWidth = 40: Form1.ScaleHeight = -30 Line (-10, 0)-(30, 0) Line (0, 20)-(0, -10) CurrentX = 0: CurrentY = 0: Print 0 CurrentX = 28: CurrentY = -1: Print "X" CurrentX = 1: CurrentY = 17: Print "Y" End Sub
7.3.1 7.3.2 7.3.3 7.3.4 坐标系统 绘图属性 图形控件 图形方法
7.3.1 坐标系统
放置图形的对象被称为“容器”。 坐标系由坐标原点、坐标度量单位、坐标 轴的长度与方向3个要素构成。 1.默认坐标系 2.自定义坐标系

Visual Basic程序设计教程第7章

Visual Basic程序设计教程第7章

10
Do Until…Loop循环
Do Until 循环条件 [语句块] [Exit Do] Loop
11
Do...Loop While循环
Do [语句块] [Exit Do] Loop [While 循环条件]
8
Do...Loop Until循环
Do [语句块] [Exit Do] Loop [Until 循环条件]
9
Do While...Loop循环
Do While 循环条件 [语句块] [Exit Do] Loop
第7章 Visual Basic控制结构
本章讨论Visual Basic中除顺序结构之外的流程控制 语句,包括选择结构、多分支结构及循环结构语句
1
7.1 选择控制结构
7.1.1 条件语句 1. 单行结构条件语句
格式: If 条件 Then
then部分
[Else
else部分]
单行条件语句的功能是:如果“条件”为True,则执
行“then部分”,否则执行“else部分”
2
2. 块结构条件语句
If 条件1 Then 语句块1 [ElseIf 条件2 Then 语句块2] [ElseIf 条件3 Then 语句块3] ...... [Else 语句块n] End If
3
7.1.2 IIf函数
格式:
result = IIf(条件, True部分, False部分)
当“条件”为真时, IIf函数返回“ True部分”,
而当“条件”为假时返回“False部分”
4
7.2 多分支控制结构
Select Case 测试表达式 Case 表达式表列1 [语句块1] [Case 表达式表列2 [语句块2]] ...... [Case Else [语句块n]] End Select

Visual Basic程序设计简明教程 第7章

Visual Basic程序设计简明教程  第7章
第7章 过程
本章内容:

2019/3/6
1
概述 子过程 函数过程 事件过程 参数传递的方式 嵌套调用与递归调用 作用域与生存期 滚动条 直线和形状
7.1 概述
VB的应用程序是由过程(Procedure)组成的, 代码设计阶段的主要工作就是编写过程。 VB通过事件驱动方式执行程序,调用事件过程 完成对事件的响应。 事件过程(Event Procedure)虽然是VB程序 的主体,但是有时也需要在程序中编写通用过程, 供事件过程或者其他通用过程调用。 如果过程A调用了过程B,则约定把A称为主调 过程,B称为被调过程。
返回
2019/3/6 《Visual Basic程序设计简明教程》
Hale Waihona Puke 37.2 子过程——子过程的定义
[Public|Private] Sub 过程名([形参列表]) 变量定义语句 执行语句 [Exit Sub] End Sub
4
2019/3/6
《Visual Basic程序设计简明教程》
说明:
⒈关键字Sub指明了过程的性质,关键字Public和Private则指明 了过程的作用域。 ⒉括号内为形参列表,用于从主调过程接收数据。如果过程不需 要参数,则可以省略形参列表。形参由传递方式、形参名和类型组 成,形参之间用逗号分开。形参定义的格式是: [ByVal] 形参名 [As 数据类型] ByVal是对形参进行传递方式声明,表示所声明的形参是传值 参数。如果ByVal被省略,则默认该形参是引用参数(ByRef)。 ⒊过程头部和End Sub之间的部分称为过程体,可以在过程体中 定义变量,过程完成的工作主要是在过程体中进行的。 ⒋如果在运行子过程时需要提前退出,则可以使用Exit Sub语句。

Visual Basic程序设计实践教程的第7章

Visual Basic程序设计实践教程的第7章

图7.3 计算1! +2! + 3!+ … + n!的 程序界面
(1)用过程实现。 (2)用函数实现。 【例题7.4】 编写一键盘事件过程,实现只能在文本 框里输入数字的功能,并且在文本框中显示为“@”号 。程序运行结果如图7.4所示。
图7.4 键盘事件程序界面
1.分析 2.界面设计 3.代码设计
标签
Label1
Caption
命令按钮
Command1
Caption
3.代码设计
【例题7.2】 编写一个Function过程,实现一个十
进制数转换成2~16任意进制字符串。程序运行结果如 图7.2所示。
图7.2 数制转换程序界面
1.分析 一个十进制正整数m转换成r进制的方法是:将m不 断除r取余数,直到商为0,以反序排列得到结果,即最 后得到的余数在最高位。
2.界面设计 在窗体上添加一个框架Frame1、一个标签Label1、 一个命令按钮Command1、两个文本框Text1和Text2。在 属性窗口中进行相关属性的设定,控件的属性值如表 7.1所示。
表7.1
类型 框架 对象名 Frame1
控件属性列表
属性 Caption 属性值 验证哥德巴赫猜想 1个不小于6的偶数可以表示为 两个素数之和
第7 章 过程
1ቤተ መጻሕፍቲ ባይዱ
1 2
知识要点 实验 过程在程序设计中的应用
2
知识要点
1.过程的概念
2.Sub过程(子过程) 3.Function过程(函数过程)
3
4.参数传递
(1)按地址传递参数 (2)按值传递参数
5.变量的作用域
(1)局部变量(过程级变量) (2)窗体/模块级变量

Visual Basic程序设计 第七章

Visual Basic程序设计 第七章

4. 读顺序文件 INPUT #文件号,变量列表
把读出的每个数据项分别存放到所对应的变量。
LINE INPUT #文件号,字符串变量
读一行到变量中,主要用来读取文本文件。
INPUT$(读取字符数,#文件号) INPUT$( ,# )
随意读取字符
5. 函数 LOF(文件号):返回文件的长度(总字节数)。 EOF(文件号):返回读写位置。 指针在文件尾时,EOF函数为True,否则为False。
文件的读写
文件:存储在外部介质上数据的集合。 按名存取 1. 记录 由若干个相互关联的数据项组成。 例如,由学生的学习成绩信息组成的记录:
学号
数据项
姓名
数学成绩
语文成绩
物理成绩
总分
2. 文件及其种类 文件是记录的集合。 顺序访问模式:顺序文件,记录可长可短; 随机访问模式:随机文件,记录的长度相同; 二进制访问模式:二进制文件(可认为记录长度为1)。
OPEN "C:\VB\SCORE" FORnt #文件号,[输出列表] 保存文本框
假定文本框的名称为Text1,文件名为TEST.DAT。
方法1:把整个文本框的内容一次性地写入文件。
Open "TEST.DAT" For Output As #1 Print #1, Text1 Close #1
第七章 文 件
7.1 驱动器、目录和文件列表框 驱动器、
Sub drvDrive_Change() dirDirectory.Path = drvDrive.Drive End Sub Sub dirDirectory_Change() filFile.Path = dirDirectory.Path End Sub

Visual Basic程序设计教程第七章

Visual Basic程序设计教程第七章

16
7.4 滚动条
• 滚动条常常用于辅助浏览显示内容、确 定位置。
17
7.4.1 常用属性
• 1. Value属性 • 反映滚动条的当前值,滚动滑块的位置大体能反 映这个值,这个值是一个整数。 • 改变滚动条Value属性的方法有4种: • (1)直接在属性窗口中设定Value值。 • (2)鼠标单击滚动条两端的箭头键可改变滚动滑 块的位置。 • (3)将滚动滑块沿滚动条拖动到某个位置。 • (4)鼠标单击滚动条中滚动滑块与两端箭头键之 间的空白部分,使滚动滑块快速移动。
• 单选按钮和复选框的属性除了Name、 Enable、FontName、FontSize、 FontBold、FontItalic、FontUnderline、 Top、Height、Left、Width、BackColor、 ForeColor、Visible等通用属性外,其他 主要属性如下。
3
第七章 常用控件
7.1 单选按钮 7.2 复选框 7.3框架 7.4 滚动条 7.5 图片框 7.6 图像框 7.7 计时器
1
7.1 单选按钮
• 在程序设计过程中,有时需要从多个选 项中选择一个,各选项间的关系是互斥 的,单选按钮(Option Button)就能完 成这个功能。
2
7.1.1 常用属性
• 4. BorderStyle属性 • 属性值为0:框架不显示边框和标题文 字。 • 属性值为1:正常显示,框架显示边框 和标题文字(默认值)。
15
7.3.3 常用事件
• 事件包括Click事件、DblClick事件。 • 框架控件支持Click事件和DblClick事件, 用法与其他控件一样。但是框架主要是 用于对控件分组,一般情况下是不会对 其编写事件代码。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5
2020/1/19
《Visual Basic程序设计简明教程》
创建子过程
ห้องสมุดไป่ตู้
第一种方法是在代码窗口中直接定义,输 入过程头部之后按下回车键,此时会自动出现 End Sub,从而生成过程的框架。
第二种方法是使用“添加过程”对话框, 在“工具”菜单中选择“添加过程”命令,打 开“添加过程”对话框。
6
2020/1/19
[ByVal] 形参名 [As 数据类型]
ByVal是对形参进行传递方式声明,表示所声明的形参是传值 参数。如果ByVal被省略,则默认该形参是引用参数(ByRef)。
⒊过程头部和End Sub之间的部分称为过程体,可以在过程体中 定义变量,过程完成的工作主要是在过程体中进行的。
⒋如果在运行子过程时需要提前退出,则可以使用Exit Sub语句。
Private Sub fac(ByVal n As Integer) Dim s As Long, i As Integer s=1
For i = 1 To n s=s*i Next i Text2.Text = Str(s) '输出n的阶乘 End Sub
返回
10
2020/1/19
《Visual Basic程序设计简明教程》
《Visual Basic程序设计简明教程》
7.2 子过程——子过程的调用
通用过程不属于任何一个对象,它不由事件驱 动,必须由其他过程调用才会被执行。 子过程调用语句有两种形式:
Call 过程名[(实参列表)] 过程名 [实参列表]
7
2020/1/19
《Visual Basic程序设计简明教程》
完成对事件的响应。
事件过程(Event Procedure)虽然是VB程序
的主体,但是有时也需要在程序中编写通用过程,
供事件过程或者其他通用过程调用。
如果过程A调用了过程B,则约定把A称为主调
过程,B称为被调过程。
2
2020/1/19
《Visual Basic程序设计简明教程》
说明:
根据通用过程是否有返回值,可以分为 Sub过程和Function过程。
End Sub
Private Function fac(ByVal n As Integer) As Long '定义函数过程
Sub过程又称为子过程,它往往用于完 成一些操作,而这些操作不需要有返回 值。
Function过程又称为函数过程,或者简 称为函数。函数过程一般应有一个返回 值。
返回
3
2020/1/19
《Visual Basic程序设计简明教程》
7.2 子过程——子过程的定义
[Public|Private] Sub 过程名([形参列表]) 变量定义语句 执行语句 [Exit Sub] End Sub
说明:
(1)第一种调用形式使用了关键字Call,而第二种调用 形式不仅没有Call,并且也没有括号。
(2)实参即实际参数,表示传递给被调过程的一些必要 数据,实参之间用逗号隔开。如果调用时没有实参,则可 以省略实参列表和括号。 (3)主调过程调用被调过程时,经常需要向被调过程传 递一些数据,这主要是通过实参与形参的结合来完成的。 形参是变量,过程调用时才被分配内存空间,过程调用语 句中的实参会把数据传递给相应的形参。 (4) VB语言要求实参与形参个数相等,类型尽量保持 一致。实参向形参传递数据时,遵循从左向右,一一对应 的规则。
(2)过程头部右端的[As 类型]是指函数过程的类型, 即返回值的类型。
(3)函数过程的返回值通过对函数名赋值来指定,如 下所示:函数名=表达式
这样的赋值语句在函数过程的过程体中一般至少应 出现一次,作用是确定函数过程的返回值。一旦调用结束, 系统就会把返回值带回到主调过程的调用处。
(4)如果在运行函数过程时需要提前退出,则可以使 用Exit Function语句。
第7章 过程
本章内容:
概述
子过程
函数过程
事件过程
参数传递的方式
嵌套调用与递归调用
作用域与生存期
滚动条
直线和形状
1
2020/1/19
7.1 概述
VB的应用程序是由过程(Procedure)组成的, 代码设计阶段的主要工作就是编写过程。
VB通过事件驱动方式执行程序,调用事件过程
8
2020/1/19
《Visual Basic程序设计简明教程》
例7.1 计算n!
Private Sub Command1_Click() Dim n As Integer n = Val(Text1.Text) Call fac(n) '调用子过程 End Sub
9
2020/1/19
《Visual Basic程序设计简明教程》
4
2020/1/19
《Visual Basic程序设计简明教程》
说明:
⒈关键字Sub指明了过程的性质,关键字Public和Private则指明 了过程的作用域。
⒉括号内为形参列表,用于从主调过程接收数据。如果过程不需 要参数,则可以省略形参列表。形参由传递方式、形参名和类型组 成,形参之间用逗号分开。形参定义的格式是:
13
2020/1/19
《Visual Basic程序设计简明教程》
例7.3 计算n!
Private Sub Command1_Click()
Dim s As Long, n As Integer
n = Val(Text1.Text)
s = fac(n) '调用函数过程,得到返回值
Text2.Text = Str(s)
12
2020/1/19
《Visual Basic程序设计简明教程》
7.3 函数过程——函数过程的调用
变量=函数过程名([实参列表])
函数调用作为表达式,出现在赋值语句的右侧。 调用时应给出相应的实参列表,使得实参与形 参相结合。执行这条赋值语句时,先对函数过 程进行调用,然后把过程的返回值带回来并赋 给某个变量,从而使主调过程获得这个返回值。
7.3 函数过程——函数过程的定义
[Public|Private] Function 过程名([形参列表]) [As 类型] 变量定义语句 执行语句 [Exit Function] End Function
11
2020/1/19
《Visual Basic程序设计简明教程》
说明:
(1)函数过程的语法与子过程非常相似,其定义的关 键字是Function。
相关文档
最新文档