本讲主要内容
? 数据与数据组( 数据, 用户定义的数据类
型, 常量, 变量( Variable), 内部函数,
算术运算符, 字符串连接符, 关系运算符,
逻辑运算符, 表达式的执行顺序, 数组 )
? 语句
? 过程 ( 过程的定义, 过程的调用 )
? 函数 ( 函数的定义, 函数的调用 )
? 控制结构( 选择结构, 分支结构, For循环
结构, 当循环控制结构, Do循环结构,
Goto型控制 )
? 控件 ( 标签( label), 文本框( text), 命
令钮 (Command Button),图片框( Picture
Box), 计时器( Timer) )
第五章
Vi
su
al
B
as
ic



具(




数据 (第 5章第 2讲)
Visual Basic6.0 提供的基本数据类型有 字符串、数据
值、字节、货币、对象、日期 和 变体数据类型。
具体类型有,Byte(字节型),Boolean(布尔型)、
Integer(整型),Long(长整型),Single(单精度型)、
Double(双精度型),Currency(货币型),Decimal、
Date(日期型),Object(对象型),String(字符串型,
变长),String(字符串型,定长),Variant(变体型,
数字),Variant(变体型,字符)
用户定义的数据类型 (第 5章第 2讲)
用户可以利用 Type语句定义自己的数据类型。
其格式如下,
Type数据类型名
数据类型元素名 As 类型名
??
End Type
其中:, 数据类型名, 是要定义的数据类型的名
字,其命名规则与变量的命名规则相同。, 类型名,
可以是任何基本数据类型,也可以是用户定义的类型。
常量 (第 5章第 2讲)
Visual Basic中的常量分为 文字常量 和 符号常量
两种。
文字常量有字符串常量和数据常量。符号常量是
用来代替数值或字符串,一般格式为,
Const 常量名 =表达式 [,常量名 =表达式 ]?
其中:, 常量名, 是一个名字,,表达式, 由文字变
量、算术运算符、逻辑运算符组成。
变量( Variable) (第 5章第 2讲)
? Visual Basic 变量的命令规则是,
① 名字只能由字母、数字和下划线组成;
② 名字的第一个字符必须是英文字母,最后一个字符可以是类型说明符;
③ 名字的有效字符为 255个;
④ 不能用 Visual Basic的保留字作变量名,但可以把保留字嵌入变量中;同
时,变量名也不能是末尾带有类型说明符的保留字。
? 变量的声明格式,
Declare 变量名 As 类型
其中:, Declare” 可以是 Dim,Static,Private,Global,Public;, As”
是关键字;, 类型, 可以是基本数据类型或用户定义的类型。
? 变量的作用域,
Visual Basic中的变量分为三类,即 局部变量( Local)、窗体和模块变量
( Form and Module) 及 全局变量( Public)。 名种变量位于不同的层次,
局部变量( Local)适用于一个过程或一个函数中,窗体和模块变量适用 于
其窗体和模块的所有过程和函数中,全局变量适用于整个工程。
内部函数 (第 5章第 2讲)
Visual Basic提供了大量的内部函数,常用的 Visual Basic函数有,
( 1)用于数据类型转换 的有 INT (x),FIX(x),HEX$ (x),OCT$ (x)、
ASC (x$),CHR$ (x),STR$ (x),CINT (x),CCUR (x),CDBL (x)、
CLNG (x),CSNG (x),CVAR (x)。
( 2)用于数学运算 的有 SIN (x),COS (x),TAN (x),ATN (x),ABS (x)、
SGN (x),SQR (x),EXP (x)。
( 3)用于字符串运算 的有 TRIM$(字符串 ),LTRIM$(字符串 )、
RTRIM$(字符串 ),LEFT$(字符串,N)
RIGHT$(字符串,N),MID$(字符串,P,N),LEN(字符串 ),STRING$(N,字
符串 ),SPACE$(N),INSTR$(字符串 1,字符串 2,),UCASE$(字符串 )、
LCASE$(字符串 )。
( 4)用于日期运算 的有 DAY(NOW),WEEK(NOW),MONTH(NOW)、
YEAR(NOW)。
( 5)用于时间运算 的有 YEAR(NOW),HOUR (NOW),MINUTE(NOW)
( 6)随机函数 RND[(X)]
算术运算符 (第 5章第 2讲)
Visual Basic提供了 9个算术运算符,下表中按优先级列
出了这些算术运算符。
运算 运算符 表达式例子
指数 ^ X ^ Y
取负 - -X
乘法 * X * Y
浮点除法 / X / Y
整数除法 \ X \ Y
取模 MOD X MOD Y
加法 + X + Y
减法 - X - Y
连接 & X$ & Y$
字符串连接符 (第 5章第 2讲)
字符串连接符 有两种,即, +” 和, &”,作用是
将两个字符串连在一起,生成一个字符串。
例如,Dim AA,BB,CC,DD as string
AA=,Mouse”
BB=" Over"
DD=AA + BB
CC=AA & BB
上述代码执行后,CC,DD的值均为, Mouse
Over” 。
关系运算符 (第 5章第 2讲)
关系运算符也称比较运算符,用来对两个表达式的值进行比较,
比较的结果是一个 逻辑值,即 True或 False。 Visual Basic提供了八个
关系运算符,如表所示。
运算符 测试关系 表达式例子
= 相等 X = Y
<> 或 >< 不相等 X <> Y 或 X >< Y
< 小于 X < Y
> 大于 X > Y
<= 小于或等于 X <= Y
>= 大于或等于 X >= Y
Like 比较样式
Is 比较对象变量
逻辑运算符 (第 5章第 2讲)
逻辑运算 也称布尔运算。 Visual Basic 提供了六种逻
辑运算符,如表所示。
运算 运算符 表达式例子
非 Not Not X
与 And X And Y
或 Or X or Y
异或 Xor X Xor Y
等价 Eqv X Eqv Y
蕴含 Imp X Imp Y
表达式的执行顺序 (第 5章第 2讲)
表达式执行的一般顺序如下,
函数运算 —— 算术运算 —— 关系运算 —— 逻辑运算
数组 (第 5章第 2讲)
第一种格式 只定义下标上界,其下标的下界只能是 0
或 1。如下,
Dim 数组名(下标上界) As 类型
Dim 数组名(第一维下标上界,第二维下标上界) As 类型名
第二种格式 如下,
Dim 数组名( [下界 ] to [上界 ],[下界 ] to [上界 ]?? ) As 类型
比如,Dim ABB ( -2 to 3) as Integer
这里定义了一个 ABB数组,其下标下界为 -2,上界为 3。
语句 (第 5章第 2讲)
Visual Basic是在 BASIC语言的基础上发展起来的,它保留了
原来的 Basic版本中的基本格式,但也有所扩展。
( 1)赋值语句
目标操作符 =源操作符
其中:源操作符可以是变量,表达式,常量及对象;目标操作符
是变量及对象。
( 2)注释语句
‘ 注释内容 或 Rem 注释内容
( 3)暂停语句
stop
stop语句 只能用于编辑调试状态 。在 Visual Basic 应用程序生成可执
行文件之前,应删去代码中的所有 stop语句。
( 4)结束语句
End
过程的定义 (第 5章第 2讲)
Visual Basic 的过程分为二大类,其一为 事件过程,其二为 自
定义过程 。这里介绍自定义过程。
过程的定义,格式如下,
[Static][Private][Public] Sub 过程名 [(参数) ]
语句块
[Exit sub]
[语句块 ]
End sub
下面是一个带有参数的过程的例子。
Private Sub PrintOut(x As Integer,y As Integer)
x = x + 100
y = y * 6
Print x,y
End Sub
过程的调用 (第 5章第 2讲)
过程的调用方法是把过程的名字放在一个 Call 语句
中。 Call 语句格式为,
Call 过程名 [(实际参数) ]
事件过程与自定义过程的调用形式是一样的。比如,
Sub Clear1()
Me.text1.text =,”
Me.text2.text =,”
Me,Label1.caption=””
End sub
Sub Form_Click()
Call clear1 ‘ 清除界面中的内容
End sub
Function函数的定义 (第 5章第 2讲)
Visual Basic 除自身提供了大量函数外,还提供了自定义函数功能,
即 Function函数。 Function函数的格式如下,
[Static][Private][Public] Function 函数 [(参数) ] [As类型 ]
[语句块 ]
函数名 =表达式
[Exit Function]
[语句块 ]
End Function
下面是一个求最大公约数( GCD)的函数
Function GCD( x as integer, y as
integer) as integer
Dim GG
Do while y <> 0
GG = x Mod y
x = y
y = GG
Loop
GCD=x
End Function
Function 函数的调用 (第 5章第 2讲)
Function函数的调用 与 Visual Basic内部函数
调用方法一样。
下面的事件过程调用了上面定义的 GCD函数,该
事件过程运行后,程序的输出结果为 32。
Sub Form_Click()
Dim A as integer, B as integer
A = 96
B = 64
x = GCD(A, B)
Print, GCD=” ; x
End Sub
选择结构 (第 5章第 2讲)
Visual Basic 的选择结构有两种格式。
? 第一种选择结构( IF Then Else)格式为,
If 条件 then
执行语句
[else] [执行语句 ]
End If
? 第二种选择结构格式:( IIF函数)
result = IIF(条件,true部分,False部分 )
其中:, result” 是 IIF的函数的返回值,,条件,
是一个逻辑表达式。当, 条件, 为 true时 IIF 函数
返回, true部分,,而当, 条件, 为 False时,返回
,false部分, 。
分支结构 (第 5章第 2讲)
分支结构的格式为,
Select case 测试表达式
case 表达式表列 1
语句块 1
case 表达式表列 2
语句块 2
??
case Else
语句块 n
End Select
说明:分支结构以 Select case开头,以 End Case结
束。其功能是根据, 测试表达式, 的值以多个语句
块中选择符合条件的一个语句块执行。
For循环结构 (第 5章第 2讲)
For循环结构的格式为,
For循环变量 = 初始变量 to 终值 [step 步长 ]
循环体
[Exit For]
next [循环变量 ]
比如,Dim Sum,x
Sum=0
For x = 0 to 100 step 1
Sum = Sum + x
Next x
For-next 可以 嵌套的基本要求 是:每个循环必须有一个唯一的
变量名称为循环变量。内层循环的 NEXT 语句必须放在外层循
环的 NEXT 语句之前,内外循环不得互相骑跨。
当循环控制结构 (第 5章第 2讲)
当循环控制结构
是用, 当循环语句, 来
描述的,其格式如下,
While条件
[语句块 ]
Wend
这里, 条件, 为
布尔表达式。 While循
环语句的执行过程如图
所示。
Do循环结构 (第 5章第 2讲)
Do循环不仅可以不按照限定的次数执行循环体
内的语言块,而且可以根据循环条件是 true或 false
决定是否结束循环。 Do循环有四种格式,
? Do循环格式一
? Do循环格式二
? Do循环格式三
? Do循环格式四
? 例
Do循环格式一 (第 5章第 2讲)
Do
语句块
[Exit Do]
Loop while
格式一的执行过程如图
所示。
Do循环格式二 (第 5章第 2讲)
Do
语句块
[Exit Do]
Loop Until
格式二的执行过程如图
所示。
Do循环格式三 (第 5章第 2讲)
Do while
语句块
[Exit Do]
Loop
格式三的执行过程如图
所示。
Do循环格式四 (第 5章第 2讲)
Do Until
语句块
[Exit Do]
Loop
格式四的执行过程如图
所示。
用 Do循环编写的程序 (第 5章第 2讲)
程序要求,目前世界人口为 60亿, 如果以每年 1.4%的速度增长, 多少年
后世界人口达到或超过 70亿 。
程序如下,
Sub Form_Click()
Dim p as Double
Dim r as Single
Dim n as Integer
p=6000000000 #
r=0.014
n=0
Do
p=p * (1+r)
n=n+1
Loop until p >=7000000000 #
Print n;, 年, ;, 世界人口达, ; p
End sub
Do Until p>=7000000000 #
p=p*(1+r)
n=n+1
Loop
可以替换
Goto型控制 (第 5章第 2讲)
Visual Basic的 Goto 型控制有二种格式 。
? 格式一
? 格式二
Goto型控制格式一 (第 5章第 2讲)
Goto {标号 | 行号 }
其中:, 标号, 是一个以冒号结尾的标识符;, 行号, 是一
个整形数, 它不以冒号结尾 。
下面计算存款利息的程序就使用了 Goto型控制 。
Sub Form_Click()
Dim p As Currency
p = 10000
r = 0.125
t = 1
Again,
If t > 10 Then Goto 100
i = p * r
p = p + i
t = t + 1
Goto Again
100
Print
End Sub
Goto型控制格式二 (第 5章第 2讲)
On 数据表达式 Goto {行号 | 标号 }
格式二的功能是:根据, 数据表达式, 的值, 把控制转移到
n 个指定的语句中的一个语句行 。, 行号表列, 或, 标号
表列, 可以是程序中存在的多个行号或标号, 相互之间用
逗号隔开 。 比如,
On x Goto 30,40,50,70
此程序的执行情况如图所示 。
控件 (第 5章第 2讲)
控件 是构成用户界面的基本元素, 只有掌握了控件的 属性,
事件 和 方法, 才能编写具有实用价值的应用程序 。
Visual Basic中的控件分为两类, 一类是 标准控件, 另一类是
Active控件 。 这里介绍最常用的几个标准控件 。
标签( label)
文本框( text)
命令钮 (Command Button)
标签( label) (第 5章第 2讲)
标签 ( label) 控件主要是用做 数据的显示 。
标签常用的 属性 有,Alignncent, Caption 和 Autosize等 。
标签的常用 事件 有 Click,Dbclick和 Change等 。
下面是用标签的 Click和 Dbclick事件编写的程序 。
Private Sub Label1_click()
Label2.Caption = Label1.Caption + "--唐代人 "
Label3.Caption = Label1.Caption + "--诗人 "
End Sub
Private Sub Label1_Dbclick()
Label4.Caption = "欲穷千里目 "
End Sub
Sub Form_load()
Label1.Caption = "李白 "
Label2.Caption = ""
Label3.Caption = ""
Label4.Caption = ""
End Sub
程序运行后,用鼠标单击
Label 1(其内容为, 李白, ),
Label2的内容为, 李白 — 唐
朝人,, Label3的内容则为
,李白 — 诗人, 。鼠标双击
Label 1时,Label3的内容则
为, 欲穷千里目, 。
文本框( text) (第 5章第 2讲)
文本框可作为 数据的输入, 密码输入框, 也可作为 数据的输
出框 。
文本框常用 属性 有 text,PasswordChar,Locked等 。
文本框的常用 事件 有,Change,Got Focus和 Key Down等 。
下面是一个用文件框 change事件编写的程序 。
Private Sub Command1_click()
Text1.Text = "Hello!"
End Sub
Private Sub Text1_change()
Text2.Text = LCase(Text1.Text)
Text3.Text = UCase(Text2.Text)
End Sub
Sub Form_load()
Text1.Text = " "
End Sub
程序运行,单击命令按钮
( command),在文本框中显
示的是, Hello”由于 Text1的
属性发生变化,引发了 Text1
的 change事件过程,从而使文
本框2和文本框3中分别用小
写字母和大写字母显示文本框
1中的内容。
命令钮 (Command Button)(第 5章第 2讲)
命令钮通常用来在 单击时执行指定的操作 。
命令钮常用 属性 有 Caption和 Enabled等 。
命令钮最常用的 事件 是 Click事件, 这是由鼠标点击后引发的
事件 。
下面一段程序就会有命令钮的 click事件 。
Private Sub command1_click()
Me.Label1.Caption = Me.Text1.Text + Me.Text2.Text
End Sub
Private Sub command2_click()
End
End Sub
Private Sub Form_Load()
Me.Text1.Text = ""
Me.Label1.Caption = ""
Me.Text2.Text = ""
Me.Command1.Caption = "合并 "
Me.Command2.Caption = "结束 "
End Sub
该段程序包括了三个事件:窗体加载事
件、按钮 1单击事件、按钮 2单击事件。
程序运行后,窗体的两个按钮的标签分
别为, 合并,,, 结束, 。单击, 合并,
按钮时,标签 1的内容则是文本框 1与文
本框 2内容的合并内容。单击, 结束,
按钮时,程序就退出运行。
图片框( Picture Box) (第 5章第 2讲)
? 图片框的作用是 显示图形信息 。
? 图片框常用 属性 有 Picture,AutoSize,AutoRedraw。
? 图片框常用 函数 有 LoadPicture,Print,Cls。
? 图片框的常用 事件 有 Click( 单击 ) 和 Dbclick( 双击 )
等事件 。
? 图片框 ( Picture Box) 如图 。
? 计时器用于提供 定制时间间隔 ( interval) 。 用户可设置每
个计时器事件的时间间隔 。
? 计时器实际运行时是不可见的, 其常用 属性 功能有 Enabled、
Interval。
? 计时器的 事件 只有一个, 为 Timer事件 。
? 下面就是一个采用 Timer事件的程序, 该程序的功能就是每 2秒显示一
次时间 。
Private Sub Form_Load()
Me.Timer1.Interval = 2000
Me.Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Me.Label1.Caption = Time$
Me.Timer1.Enabled = True
End Sub
计时器( Timer) (第 5章第 2讲)