vb过程

合集下载

第7章VB过程和参数传递

第7章VB过程和参数传递

VB程序设计教程
沈美莉 马银晓 陈孟建 编著
10
Function过程 第二节 Function过程
二、调用Function过程 调用 过程
Function过程的调用比较简单,可以象一个函数一样调用,其调用格式为: <过程名> = ([<实参表列>]) 【例题5.16】 编写一个求最大公约数(GCD)的函数过程,并调用该函数。 【程序代码】 (1)创建GCD函数 Function gcd(ByVal x As Integer, ByVal y As Integer) As Integer Dim reminder As Integer Do While y <> 0 reminder = x Mod y x = y y = reminder Loop gcd = x End Function
VB程序设计教程
沈美莉 马银晓 陈孟建 编著
5
Sub过程 第一节 Sub过程
二、调用sub过程 调用 过程 调用Sub过程有两种方法,一种方法是使用Call调用过程语句来调 用过程,另一种方法是将过程名作为一个语句来使用。 call调用语句 1.用call调用语句 (1)格式 Call 过程名 [(<实参表>)] (2)功能 Call语句把程序控制传递到一个Visual Basic语言的Sub过程。 Call语句调用一个过程时,如果过程本身没有参数,则<实参表> 和括号可以省略;否则,应给出相应的实际参数,并把参数放在 括号中。实际参数是传递给sub过程的变量或常数的。 例如: Call ppa(a,b)
VB程序设计教程
沈美莉 马银晓 陈孟建 编著
18
第三节 参数的传递
例如: Function fac(a,b) …… …… fac = fa End Function 调用fac函数时,可以使用以下语句来完成: Private Sub Command1_Click() …… …… Call fac(x,y) End sub 以上程序中的a和b是两个形式参数,而 x和y是两个实际参数。这样就完成了形参 与实参的结合,其关系如下图所示。

VB教程 第六章 过程、模块与类

VB教程 第六章 过程、模块与类

2.按地址传递参数 按地址传递参数使过程用变量的内存地址去访问实际变量 的内容。结果,将变量传递给过程时,通过过程可永远改 变变量值。按地址传递参数在 Visual Basic 中是缺省的。 例如: Sub PostAccounts (intAcctNum as Integer) . '这里放语句。 End Sub 3.使用可选的参数 4.提供可选参数的缺省值 5.使用不定数量的参数
下面分别对被调用过程在窗体模块、类模块和标准模块三种 情况说明: ① 窗体中的过程 ② 类模块中的过程 ③ 标准模块中的过程
一个很好的例子: 交通信号灯控制的例子
一个重要的思想(递归 一个重要的思想 递归) 递归
递归就是一个过程调用自己来完成某个特定的 任务。在递归过程中,一个过程的某一步要用 到其自身的上一步或几步的结果。递归分为两 种类型:直接递归和间接递归。Visual Basic的 过程具有递归调用功能。 递归可能会导致堆栈上溢。通常 Static 关键字 和递归过程不在一起使用。使用递归过程要特 别小心,不加控制的递归通常会引起溢出堆栈 空间错误信息。如下例:
作用域不同([Private | Public | Friend]) 生命期不同([Static]) 但是arglist语法较简单:可选的。代表在调用时要传递给 Function 过程的参数变量列表。多个变量应用逗号隔开。 一点注意:若 Function 过程会改变某个数学表达式中变 量的值,则应避免在此表达式中使用该函数。例如: I=2 J=3 X=(Sum (I,J)+1)/Sum(I,J) Function Sum (A As Integer, B As Integer) As String A=A+2 Sum=A+B End Function 结果如何?怎么修改?

VB教程之 “过程”

VB教程之  “过程”
31
5.4 过程递归调用
说明:
递归处理分递推和回归两个过程,如下图所示。
使用递归算法必须要满足以下的递归条件: (1)存在递归结束条件及结束时的值;
(2)能用递归形式表示,且递归向终止条件发展。
32
5.4 过程的递归调用
例2:编求菲波纳契数列f(n)的递归函数。
F(1) = 1 F(2) = 1 F(n) = F(n-1) + F(n-2)
17
一、判断正确与错误 1、在定义了一个函数后,可以象调用任何一个VB 内部函数一样使用它,即可以在任何表达式、 语句或函数中引用它。 ( ) 2、以下两个语句都调了名为Year(Now)的函 数 Call Year(Now) ( ) Year Now ( ) 二、Sub过程与Function 过程最根本的区别是 ___. A. Sub过程可以使用Call语句或直接使用过程名 调用,而Function过程不可以。 B. Function过程可以有参数,Sub过程不可以。 C. 两种过程参数的传递方式不同。 D. Sub过程不能返回值,而Function 过程能返回 值。 18
调用形式: 函数名(实参列表)
说明:调用函数不能独立成为一条语句,它必须是
语句的一部分。 如果不需要函数的返回值,则:
Call 函数名([参数列表]) 或 函数名 [参数列表]
注意:有Call关键字时,函数名后面必须有括号。
14
例5.3 设计一个由三角形的3条边长,计算其 面积的函数,如果3条边不能构成三角形,则弹 出消息框,提示出错。
21

例5.4:编写一个子过程,实现两个数据的交 换。
Sub Exchange(ByRef a As Double, ByRef b As Double) Dim t As Double t=a a=b b=t End Sub

VB第8章 过程

VB第8章 过程

教案讲稿第八章过程[旧课复习]:复习内容:1.常用控件的使用,个人信息2.计时器Interval属性,Timer事件复习目的:加强控件和计时器的使用复习时长:大约5分钟[新课导入]:导入方式:通过调用函数引入函数的概念导入目的:增强学生的学习主动性导入时长:大约5分钟[新课讲授]:重点:掌握函数过程的概念,掌握sub过程的概念难点:变量的作用域和生产周期方法:运用多媒体辅助教学,采用案例教学和任务驱动等教学法。

8.1 过程概述VB应用程序是由各种过程组成的,但在为一个实际问题编写代码的过程中,会遇到一些比较复杂的问题,而利用简单的内部函数过程和事件过程往往不能解决此类问题。

此时根据应用的复杂程度,往往需要将应用程序按功能或目的划分为若干个模块,而根据具体情况又可将各个模块继续划分为子模块,直到一个适当的难度为止,即将问题自上而下逐步细化,分层管理。

将模块划分为子模块主要有如下优点:(1)便于调试和维护。

将一个复杂的问题分解为若干个子问题,降低每一个子问题的复杂程度,使每一个子问题的功能相当稳定,便于程序的调试和维护。

(2)提高了代码的利用率。

当多个事件过程都需要使用一段相同的程序代码时,可将这段代码独立出来,作为一个独立的过程。

它可以单独建立,也可以被其他事件过程调用,成为一个可重复使用的独立的过程,提高代码的使用率。

一个VB工程包括工程文件(.Vbp)、窗体文件(.Frm)、窗体的二进制数据文件(.Frx)、标准模块(.Bas)、类模块(.Cls)、资源文件(.Res)、ActiveX 控件文件(.Ocx)、用户控件(.Ctl)和属性页模块(.Pag)、其他ActiveX 控件文件、设计器可插入对象等部件和引用。

VB大致的应用程序模块结构如图8-1 所示图8-1VB应用程序模块结构8.2 函数过程8.2.1函数过程的定义Function函数过程的定义与Sub子过程的定义类似,但不同的是Function 函数过程的定义语句中需要有返回函数值的语句。

vb过程

vb过程

9.3.4
数组参数的传送
Visual Basic允许把数组作为实参传送到过程中。如定义: Sub S(a(),b()) …… End Sub 可以用下面的语句调用该过程: Call S(a(),b())
数组参数一般通过传地址方式传送。在传送数组时,除遵 守参数传送的一般规则外,还应注意以下几点: (1)为了把一个数组的全部元素传送给一个过程,应将 数组名分别放入实参表和形参表中,并略去数组的上下界, 但括号不能省略。 (2)如果不需要把整个数组传给通用过程,可以只传送 指定的单个元素,这需要在数组名后面的括号中写上指定 元素的下标。例如:
全国计算机等级考试二级教程
主讲教师
潘大胜
结构化程序设计思想的要点之一就是对一个 复杂的问题采用模块化,把一个较大的程序划 分为若干个模块,每个模块只完成一个或若干 个功能。这些模块通过执行一系列的语句来完 成一个特定的操作过程,因此被称为“过程”。
9.1 9.3 9.4 9.5 9.7
Sub过程 参数传送
9.2.1
建立Function过程
1.定义Sub过程
Static|Private|Public Function <过程名>[ (参数列表) ] [As 类型]
[<语句组>]
[过程名=表达式] [Exit Function] [<语句组>] End Function
说明: (1)Function过程以Function开头,以End Function结束, 在两者之间是描述过程操作的语句块,即“过程体”或 “函数体”。格式中的“过程名”、“参数表列”、 “Static”、“Private”、“Public”、“Exit Function”的 含义与Sub过程相同。“As 类型”是Function过程返回 值的数据类型,可以是Integer、Long、Single、Double、 Currency或String,如果省略,则为Variant。

VB过程专业知识讲座

VB过程专业知识讲座

7.2.3 函数过程旳调用
Private Sub Form_Click()
Dim x As Integer, mj as single
x = Val(InputBox("请输入半径x"))
mj = circle_area(x)
‘此语句是函数过程旳调用
print mj
End Sub
Public Function Circle_area (ByVal r As single) As single
End Sub
局部变量
Private Sub Command1_Click() dim n As Integer n=n+1 Print "command1被按下了" & n & "次"
End Sub
静态变量 。
静态变量是指:
✓ 用Static 申明旳变量
✓ 或过程名前加关键字Static旳过程内用Dim申明 旳局部变量
CONST Pi=3.14159
'定义一圆周率常量Pi
Circle_area = Pi*r*r
'把成果赋给函数名
End Function
函数过程旳定义
[Static][Private][Public] Function 函数过程名([参数列表]) [As 类型] 局部变量或常数定义 语句块 [函数名 = 返回值(函数值)]
Private Sub swap1(ByVal x%, ByVal y%) Dim t% t = x: x = y: y = t
End Sub
Private Sub swap2(ByRef x%, ByRef y%) Dim t% t = x: x = y: y = t

VB应用程序的开发过程

VB应用程序的开发过程
1第六章第12讲可视化编程2程序设计语言与程序设计?人们想用计算机解决一个问题必须事先设计好计算机处理信息的步骤把这些步骤用计算机能够识别的指令编写出来并送入计算机执行计算机才能按照人的意图完成指定的工作
第六章第1、2讲
可视化编程
程序设计语言与程序设计
人们想用计算机解决一个问题,必须事先设计 好计算机处理信息的步骤,把这些步骤用计算 机能够识别的指令编写出来并送入计算机执行, 计算机才能按照人的意图完成指定的工作。我 们把计算机能执行的指令序列称为程序,而编 写程序的过程称为程序设计。
学习版<专业版<企业版
三、启动 Visual Basic
步骤:
1. 单击任务条上的“启动”。 2. 选择“程序”,接着选取“Microsoft Visual Basic 6.0 中文版”。 3. 双击 Visual Basic 6.0的 快捷键图标。 4. 使用“Windows 资源管理器”寻找 Visual Basic 可执行文件。
在设计模式中,通过双击窗体或窗体上任何对象或通过 “工程资源管理器”窗口中的“查看代码”按钮来打开代码编 辑器窗口。代码编辑器是输入应用程序代码的编辑器。
4. 属性(properties)窗 口 属性是指对象的特征,如大小、标题或颜色等
数据。在Visual Basic6.0设计模式中,属性窗口列出 了当前选定窗体或控件的属性的值,用户可以对这
Visual Basic的功能与特点
面向对象的可视化程序设计。 事件驱动的程序设计和运行机制。 易学易用的应用程序集成开发环境。 结构化的程序设计语言。 强大的数据库访问功能。 支持DDE、DLL、OLE等技术。 完备的联机帮助功能。
9
3.VB中的类和对象

VB程序设计-过程和函数

VB程序设计-过程和函数

Private Sub Command1_Click()
Print sum(5, 3)
调用函数
End Sub
Function sum(x, y)
s=x+y sum = s
定义函数
End Function
函数和过程的相互转换
Private Sub Command1_Click()
Call sum(5, 3, s) 调用过程
function title(tit,n)
if len(tit)>n then
title=left(tit,n)&"…"
'返回函数值
else
title=tit
'返回函数值
end if
end function
5.7 参数传递
5.7.1 形参与实参
• 形参:置于过程定义时,参数列表中的变 量或数组;在过程被调用前,系统不对其 分配空间;
6.3 子过程与函数的参数传递
1.参数传递方式
过程的参数有两种传递方式:
传值(ByVal)
传地址(ByRef)(默认方式)。
按值传递参数:在形式参数前加上关键字ByVal 表示指定按值传递参数。调用时实际参数仅将值
传递给形式参数,形式参数的任何改变不会影响 实际参数。
按地址传递参数:
在形式参数前加上关键字ByRef表示指定按地址传递参 数。
调用函数 –变量= Function 函数名(参数1,参数2,…) –函数可以向变量一样引用和参与运算
6.2 定义Function过程
定义Function过程说明: 1)Function过程以Function语句开头,以End Function结束;中间代码部分为函数体; 2)函数名有返回值,其值类型由As 数据类型指定; 3)函数体内一般都会至少为函数名赋值一次;如果 不赋值,函数返回值默认为0或空; 4)函数中途可以利用Exit Function退出。

(VB二级)第4章 VB语言基础

(VB二级)第4章 VB语言基础

(5)求余运算a Mod b,a、b一般为整数, 若a或b带有小数点时,VB首先对其四舍五入 (按照“奇进偶不进”原则处理)。a Mod b的 符号由a的符号确定,当a为正数时a Mod b 为正数;当a为负数时,a Mod b为负数。 例如:-13 Mod 6=-1,而13 Mod –6=1。如 果a、b都是Integer型,运算结果是Integer 型,否则运算结果为Long型。 (6)参加算术运算的操作数都应是数值型, 若是字符型或逻辑型,则系统自动将其转换 成数值型后再运算。
4.4.1 算术运算符
算术运算符
运算符 ^ * / \ Mod + 名称 乘方 取负 乘 除 整除 取余 加 减
设a=3
优先级 例 结果 1 a^2 9 2 -a -3 3 a*a 9 3 10/a 3.333 4 10\a 3 5 10 mod a 1 6 10+a 13 6 10 - a 7
4.1.7 使用缩进格式
Private Sub Form_Click( ) x = Val(InputBox("请输入x的值")) If x > 0 Then Print "x > 0" Else Print "x < 0" End If End Sub

4.2 使用适当的数据类型来自(2) 乘方运算a^b,若a为负数则b必须是整数, 例如(-8)^(1/3)是错误的。乘方运算的结果是 Double型。
(3)除法运算a/b,无论a、b是整型还是实型, VB都将a、b转换为Double型数据再进行运算, 其结果是Double型。 (4)整除运算a\b,a、b一般为整数,若a或 b带有小数点时,VB首先将其四舍五入为整数 (注意,这里的四舍五入按“奇进偶不进”的原 则进行)。 例如:3.5\2=2,而4.51\2=2。),然后进 行整除运算。运算结果简单地截取整数部分,小 数部分不作四舍五入处理。如果a、b都是 Integer型,运算结果是Integer型,否则运算结 果为Long型。

VB课件-第14讲 过程定义

VB课件-第14讲 过程定义
7
【例6.2】字符图形的输出
8
四、两种过程的差异 【例6.3】子过程与函数过程比较
通 • 函数过程通过函数名返回一个结果 常 • 子过程通过形参返回若干个结果9来自【练习】 编写过程求n!
那么
Cnm
m! n!(m n)!
10
内容小结
1. Sub 和 Function 过程的定义 2. 二者执行流程与返回方式的区别
老师:汗!!!
主要内容: 定义Function、Sub过程
2
看那程序“开小差”的地方吧。。。
任务:输出 10、100、1000以内正整数和
Sub Button1_Click: Label1.Text = sum(10)
End Sub
Function sum(N%) For i = 0 to N sum = sum + i Next i
思考:为什么可以传递成功呢?
11
编程小贴士
1. 设置属性确定事件; 2. 构思算法草拟代码; 3. 多写注释调整思路; 4. 全面检查就这一招!
编程思路:“初始化->输入->处理->输出”
引例: 中学语文课堂。。。
学生:(开小差中~ ~)
老师:<鲁提辖拳打镇关西>用的什么(修辞)手法
学生:
手法~ ~???
这三拳是少林长拳、七伤拳和通臂拳
调用:函数名[(实参列表)] 调用完带值返回到调用处
如:Function gcd(n%) As Integer
5
【例6.1】最大公约数
• 实参与形参个数、位置、类型应匹配
6
三、Sub子过程的定义和调用 • 定义: Sub 过程名([形参列表])
[ 语句块 ] End Sub 调用: • 子过程名 ([实参列表]) • Call 子过程名([实参列表])

vb练习题,电子版 第9章 过程

vb练习题,电子版 第9章 过程

第九章过程教学要求:了解VB 6.0过程的分类,掌握Sub过程和Function过程的建立、定义、调用的不同方法;掌握形参、实参的概念,掌握引用、传值、可选参数、可变参数以及对象参数的概念;掌握数组参数、窗体参数、控件参数的概念和使用,熟练使用Sub过程和Function过程设计应用程序;局部内存分配方法;过程嵌套调用和递归调用;Shell函数的使用。

知识点:Sub过程和Function过程的定义、调用;形参和实参的语法和使用;各种类型的参数传递;局部内存分配方法;过程嵌套调用和递归调用;Shell函数的使用。

内容导航:一、过程(一)Sub过程1.建立Sub过程通用Sub过程的一般格式如下:[Static][Private][Public]Sub 过程名[(参数列表)]语句块[Exit Sub][语句块]End Sub2.调用Sub过程调用引起过程的执行。

也就是说,要执行一个过程,必须调用该过程。

Sub过程的调用有两种方式如下:第一种方式:把过程的名字放在Call语句中,调用格式为:Call 过程名[(实际参数)]第二种方式:把过程名作为语句来使用,在调用Sub过程时,如果省略关键字Call,就成为调用Sub过程的第二种方式。

3.通用过程与事件过程控件事件过程的一般格式为:[Private| Public]Sub 控件名_事件名(参数表)语句组End Sub窗体事件过程的一般格式为:[Private|Public]Sub Form_事件名(参数表)语句组End Sub(二)Function过程1.建立Function过程Function过程定义的格式如下:[Static][Private][Public] Function 过程名[(参数列表)][As 类型][语句块][过程名= 表达式][Exit Function][语句块]End Function2.调用Function过程Function过程的调用比较简单,因为可以像使用Visual Basic内部函数一样来调用Function 过程。

第一章 vb教程

第一章 vb教程

字符串型(String,类型符$)
用于存放字符型数据,字符是由ASCII字符和 汉字组成,字符数据必须用双引号括起来。 如: "Visual Basic" , " VB程序设计" , " 123 " 等都表示字符型数据。 说明: 1.双引号为分界符,输入和输出时并不显示; 2.字符串中包含字符的个数称为字符串长度; 3.长度为零的字符串称为空字符串; 4.字符串中包含的字符区分大小写。 5.若字符串中包含字符“″”,可以将双引号 连写两次,例如应电"601 " 。 "应电""601"""
从对象入手,在应用程序中放入一个个对象,程序员所 要作的工作只是修改对象的一些属性,调用对象的一些方法实 现某些功能,或者在事件中编写少量的代码实现某些特殊的功 能
可视化的含义:控件可视;变成环境可视 事件驱动机制
在事件驱动的程序中,是在响应不同的事件时执行 不同的代码,代码的执行由用户决定
开发应用程序的步骤
1991年,微软推出了Visual Basic1.0版。这在当时 引起了很大的轰动。许多专家把VB的出现当做是软件 开发史上的一个具有划时代意义的事件。其实,以我 们现在的目光来看,VB1.0的功能实在是太弱了。但在 当时,它是第一个“可视”的编程软件。这使得程序 员欣喜之极,都尝试在VB的平台上进行软件创作。微 软也不失时机地在四年内接连推出VB2.0,VB3.0,4.0 三个版本。并且从VB3.0开始,微软将ACCESS的数据库 驱动集成到了VB中,这使得VB的数据库编程能力大大 提高。从VB4.0开始,VB也引入了面向对象的程序设计 思想。VB功能强大,学习简单。而且,VB还引入了 “控件:的概念,使得大量已经编好的VB程序可以被 我们直接拿来使用,如今,VB已经有了6.0版。

vb过程7.1-7.3

vb过程7.1-7.3

盐城工学院
Visual Basic 程序设计
7.1.2 通用过程
一般形式 ([参数列表 参数列表]) [ Private | Public ] Sub 过程名 ([参数列表]) 局部变量和常数声明] [局部变量和常数声明] 语句块 [ Exit Sub ] 语句块 End Sub
盐城工学院
Visual Basic 程序设计
盐城工学院
Visual Basic 程序设计
通用Sub Sub过程调用 7.3.2 通用Sub过程调用
Call语句 Call语句 <过程名 过程名> 实在参数表) Call <过程名> (实在参数表) • 实参是传送给被调用的Sub过程的变量、常 实参是传送给被调用的Sub过程的变量、 Sub过程的变量 数或表达式; 数或表达式; • 它的个数、类型和顺序,应与被调过程的形 它的个数、类型和顺序, 参相配; 参相配; • 有多个参数时,用逗号隔开; 有多个参数时,用逗号隔开; • 无参数时,括号可省 无参数时,
盐城工学院
Visual Basic 程序设计
7.1 Sub过程 过程
7.1.1 事件过程 –事件过程是为窗体或控件编写的代码 事件过程是为窗体或控件编写的代码 –由VB中的事件调用而执行 由VB中的事件调用而执行 –保存在窗体模块中 保存在窗体模块中 –分为窗体事件过程和控件事件过程 分为窗体事件过程 分为窗体事件过程和
盐城工学院
Visual Basic 程序设计
7.3 .2过程调用 过程调用
直接用过程名 实参1 [,实参2 过程名 [ 实参1 [,实参2 . . . ] ] • 不需要关键字Call 不需要关键字Call • 实参表不需要加括号

VB经典教程-精心整理(快速入门)

VB经典教程-精心整理(快速入门)
Visual Basic对象可以极大简化重复代码的编写,使开发人员 精力集中在程序内容而不是数量庞大的代码上。Visual Basic后续版本增强了该功能,并添加了许多新的面向对 象的编程功能。
VB从入门到实践
1.1.5 数据访问
在现代信息技术高度发达的今天,数据信息已经成为最重要 资源之一。Visual Basic为开发人员提供了强大的数据访 问技术,能够更快捷、更迅速、更高效地存储和读取数据 信息。Visual Basic提供了更为强大功能来支持大中型数 据库,如Oracle、SQL Server、Sybase等。
VB从入门到实践
1.2 Visual Basic 6安装
本节将介绍如何安装Visual Basic 6开发环境。将Visual Basic 6 的安装光盘放入计算机的光驱内,一般情况下计算机可以自 动运行其中的安装程序。如果计算机没有自动运行安装程序 ,双击光盘盘符下的Setup.exe文件,将显示Visual Basic安装 程序界面,按照安装程序的提示进行相应的操作。
双精度型(Double) D
货币型(Currency) C
在Visual Basic环境下,开发人员利用事件驱动的编程机制、 新颖易用的可视化设计工具,使用Windows内部的应用程 序接口(API)函数、动态链接库(DLL)、对象的链接 与嵌入(OLE)、开放式数据连接(ODBC)等技术,可 以高效、快速地开发Windows环境下功能强大、图形界面 丰富的应用软件系统。
Visual Basic特点 Visual Basic安装 Visual Basic集成开发环境
VB从入门到实践
1.1 Visual Basic简介
Visual Basic是一种可视化的、面向对象和采用事件驱动机制 的结构化高级程序设计语言。它可用于开发Windows环境 下的各类应用程序。它具有简单易学、效率高、功能强大 的特点,可以与Windows专业开发工具SDK相媲美。

vb第7章过程jh

vb第7章过程jh

4. 过程的调用
Private Sub Command1_Click() Dim a As Integer Dim b As Integer a = Val(InputBox("请输入第一个加数")) b = Val(InputBox("请输入第二个加数")) Call Add(a, b) Call Add(100, 200) Add 400, 500 End Sub Private Sub Add(x As Integer, y As Integer) Dim z As Integer z=x+y Print x; "+"; y; "="; z End Sub
7.2 Sub子过程
(2)定义一行输出10个星号的过程:
Private Sub f2()
Dim i% For i=1 To 10 Print "*"; Next i
Print
End Sub 过程可以有参数,也可以不带任何参数。没有参 数的过程称为无参过程。
7.2 Sub子过程
(3)定义一个过程,要完成的功能是:已知两 整型数据x、y,计算这两个数的和并输出。
7.2 Sub子过程
2. 建立Sub过程
(1)在代码窗口中直接定义
(2)利用“工具”菜单下的“添加过程”命令
定义
7.2 Sub子过程
3.过程定义举例
(1)定义一行输出n个星号的过程: Private Sub f1(n As Integer) Dim i% For i=1 To n Print "*"; Next i Print End Sub 该过程的名字是f1,参数只有一个,是一个整型变量n, 它限制了一行输出“*”的个数。

第六 章 vb过程

第六 章 vb过程


例2:
Sub continue query() do response$=inputbox$(“continue(y or n)?) if response$=“N” or response$=“n” then end if response$=“Y” or response$=“y” then exit do loop Ensub 过程可以不带参数,不进行任何数据交换,调用是只写上过程名.
3. 函数过程的调用 127 使用函数时要注意函数过程的特点: ① 数过程一旦定义(系统函数是系统已经定义的),都
可以象系统函数一样调用。 ② 调用出现的位置:程序中凡是表达式可以出现的地方 都可以出现函数调用。(可以出现在赋值号的右端。 可以出现在PRINT 语句中。) ③ 调用方法:写上函数名,后跟括号,括号中填上与形 式参数个数一样、类型一致的实元。 即:函数过程名([参数列表]) ④ 调用过程: 先计算实元,再进行虚实结合,然后转到 函数计算其值,最后由函数名将结果带回到调用点。
public:表示 sub 是一个公用过程,可以在程序的任何地方被调 用。 各个窗体通用的过程都在标准模块中用 public 定义。 在窗体层定义的通用过程,通常在本窗体模块中使用。若要在 其他窗体模块中使用,应加上窗体名做为前缀。


过程名:
过程名不能超过255个字符, 同一模块中过程名必须唯一,过程名不能再做函数名或子 程序名。
function 函数

说明:



以function 开始,以 end function 结束,中 间是完成任务的一组语句。 语句中最少有一个语句为函数名赋值,否则返回 缺省值。 可以用 exit function 转出函数。 过程定义不能嵌套。

vb第7章过程

vb第7章过程
Call fact 子程序 Sub fact
……
Call fact End Sub

Private Sub Command1_Click(Index As Integer) Dim a As Integer, b As Integer, c As Integer, tot As Long n = Index Select Case n Sub fact(m As Integer, Case 0 a=5 total As Long) Call fact(a, tot) Dim i As Integer Label1.Caption = a & "!=" & tot total = 1 Case 1 For i = 1 To m a=6 total = total * i Call fact(a, tot) Next I Label1.Caption = a & "!=" & tot End Sub Case 2 a=8 Call fact(a, tot) Label1.Caption = a & "!=" & tot Case 3 a = 5: b = 6: c = 8 Call fact(a, tot) s = tot Call fact(b, tot) s = s + tot Call fact(c, tot) s = s + tot Label1.Caption = a & "!+" & b & "!+" & c & "!=" & s End Select
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

与子过程一样,可以在“代码编辑器”窗口中直 接输入代码来创建函数过程,也可以使用“添加过 程”对话框来创建函数过程,只是在选择类型时要 选择“函数”。
例如,以下函数RectArea可计算并返回矩形的面 积:
Private Function RectArea(a As Single, _
b As Single) As Single
'求阶乘(N!)的函数过程 Private Function jc(N As Integer) As Long Dim i As Integer, p As Long p = 1 For i = 1 To N p = p * i '累乘 Next jc = p '对函数名赋值,返回函数值 End Function
4.3.2 传址
按地址传送时传送的是实参的地址,在调用时,被调用 过程直接将接受到的地址里的值进行修改,从而实参值被改 变。所以执行完调用语句后,实参的值将会有所改变。 按址传递形参的语法特点: • 形式变量前没有修饰词;
【例4】编写一个计算矩形面积的Sub过程,然后调用该过程计算矩形 面积。 Private Function rectArea(a As Single, b As Single) As Single RectArea = a * b End Function Private Sub Form_Click() Dim a As Single, b As Single, s as single a = Val(InputBox("请输入矩形长度?")) b = Val(InputBox("请输入矩形宽度?"))
第4章
过程
4.1 子过程的定义和调用 4.2 函数过程的定义和调用 4.3 参数传送 4.4 过程的作用域
4.5 递归
【例】1!+2!+3!+……n!
将多次被重复使用的程序段设计成一个 具有一定功能的独立程序段,即为通用过程。
4.1 子过程
4.1.1 子过程的定义
4.1.2 子过程的调用
例7:求1!~n!之和
Public Function fac(n%) As Integer fac = 1 For i = 1 To n fac = fac * i Next i End Function 分析: Private Sub Command1_Click() (1)函数过程: Dim sum as integer,k As integer 完成求任一数n! For k = 1 To 5 (2)Command1_Click中: Sum = Sum + fac(k) 各阶乘值的累加,和 Next 函数调用及输出 print Sum
1. 通用过程的语法格式
通用过程的语法格式如下: [Public | Private] [Static] Sub 过程名([形参表]) [局部变量或常数声明] [语句块] [Exit Sub] [语句块] End Sub Public可选的。表示所有模块的所有其它过程都可访问这个 Sub 过程。 Private可选的。表示只有在包含其声明的模块中的其它过程可以访问该 Sub 过程。 Friend可选的。只能在类模块中使用。表示该 Sub 过程在整个工程中都是可见的, 但对对象实例的控制者是不可见的。 Static可选的。表示在调用之间保留 Sub 过程的局部变量的值。
在VB中,的Sub子过程分为:事件过程和通用 过程 1. 事件过程 (1)窗体事件的语法 Private Sub Form_事件名(参数列表) <语句组> End Sub
(2)控件事件的语法 Private Sub 控件名_事件名(参数列表) <语句组> End Sub
4.1.1 通用过程的定义
2. 通用过程的创建
创建通用过程有两种方法:使用“添加过程”对话 框;直接在代码编辑器窗口中输入过程代码。 (1)使用“添加过程”对话框创建。 (2)直接在代码编辑器窗口中输入。
图 【添加过程】对话框
图 过程模板
【例1】
编一个交换两个整型变量值的子过程。
Private Sub Swap( X As Integer, Y As Integer) Dim temp As Integer Temp=X : X=Y : Y=Temp End Sub Private Sub command1_click() Dim a%,b% a=val(inputbox(“a=“)) b=val(inputbox(“b=“)) print “a=“;a,”b=“,b call swap(a,b) print “a=“;a,”b=“,b End Sub
多边形的的面积
area c(c x)(c y )(c z ) 1 c ( x y z) 2
【例6】计算1~10阶乘之和。运行结果如图所示。 思路:首先编制一个求阶乘(N!)的函数过程,在窗体的 单击事件中调用此过程,依次求出1!、2!…10!的值,并将 其累加。 代码如下:
RectArea = a * b End Function
a
【例3】计算多边形的面积
g
S1 c e
b S2 d
如: Public Function area(x!,y!,z!) As Single c=0.5*(x+y+z) area=sqr(c*(c-x)*(c-y)*(c-z)) End Function 注意: • 函数不能作为独立语句使用调用,必须与其他成分结 合使用 • 实参列表中的参数个数、位置和类型与形参一一对应
Private Sub Form_Click()
'单击窗体
Dim Sum As Long, i As Integer
'在循环中调用函数过程求1~10的阶乘并累加 For i = 1 To 10
Sum = Sum + jc(i)
Next Print " 1!+2!+...+10! ="; Sum End Sub '显示结果
4.1.2 子过程的调用
子过程的Sub与End Sub之间的语句序列称为过程体, 每次调用子过程都会执行过程体中的语句。在程序 中,既可以调用通用过程,也可以调用事件过程。
1. 调用通用过程
调用子过程有两种方法:使用Call语句;直接使用 过程名。语法格式如下: Call 过程名[(实参表)] 或者: 过程名 [实参表]
4.3 参数传送
4.3.1 传值
4.3.2 传址
4.3.1 传值
按值传送时传送的不是实参的值,仅传送实参变量的副 本,执行完调用语句后,调用程序中的实参值不会改变。
按值传递形参的语法特点: • 在相应的形式变量前加“ByVal”关键词 如:Public Sub test(ByVal j As Integer) …… End Sub
4.2.1 函数过程的定义
函数过程的定义与子过程的定义相似。不同的是, 由于函数过程可以返回一个值,因此要在定义中加 入返回值类型说明。语法格式为:
[Private|Public] [Static] Function 函数名([形参表]) [As 类型]
[语句块] [函数名=表达式] [Exit Function] [语句块] [函数名=表达式]
调用事件过程实际上就是执行事件过程中的语句序列, 如同通用过程一样,亦可起到复用和简化代码的作用。
4.2 函数过程
4.2.1 函数过程的定义 4.2.2 函数过程的调用
Function(函数)过程也是独立的过程,可 读取参数、执行一系列语句并改变其参数的值, 这一点与前面介绍的Sub过程相同。Function过程 与子过程不同的是:子过程没有返回值,只能作 为独立的基本语句被调用,不能出现在表达式中; 而Function过程有返回值,既可以出现在表达式 中,也可以作为独立的语句被调用。
说明: (1)[Public | Private]:可选。指定过程的作用范围。若省略,则 默认为Public(全局)。 (2)Static:可选。指定本过程内的所有局部变量均为静态变量。 (3)过程名:命名规则与变量命名规则相同。无参数时,过程名后的 括号不能省略。 (4)形参表:形参表类似于变量声明,指明本过程被调用时传送给本 过程的变量个数和类型。若有多个变量,各变量之间用逗号间隔。形参 表中出现的参数称为形式参数,简称形参。每个形参的格式为: [ByVal | ByRef] 形参名[()][ As 类型] ByVal表示该参数按值传递,ByRef表示该参数按地址传递(默认)。 (5)Exit Sub语句表示立即退出子过程,通常将其置于选择结构中。 (6)在过程内不能再定义过程,但可以调用其他过程。
说明:
(1)实参表是实际参数(简称实参)列表,若有多个参数, 参数之间要用逗号间隔。各实参与形参在参数列表中的位置 相互对应,实参与对应位置的形参必须是同一类型,可以是 常数、变量、数组元素或表达式。
(2)当用Call语句调用子过程时,若有参数,则参数必须 放在圆括号内;若无参数,则省略过程名后的圆括号。 (3)若不使用Call关键字,则过程名后不能加括号。若有 参数,则参数直接跟在过程名之后,参数与过程名之间用空 格间隔,参数与参数之间用逗号间隔。
2. 调用事件过程
在程序中不仅可以调用通用过程,也可以调用事件过程, 二者的语法格式相同。
例如: '执行窗体加载事件过程中的语句 Form_Load '或:Call Form_Load '调用命令按钮cmdAdd的单击事件过程
command1_Click
'或:Call command1_Click
s= rectarea(3, 5)
Call Recarea(A, B) ‘recarea a,b’ End Sub
相关文档
最新文档