第二章 用 Visual Basic编程
本章内容及要求:
1.熟悉 VB程序中代码和语句书写规则;
2.掌握 VB的数据类型;
3.掌握 VB的 运算符和表达式的使用;
4.熟练掌握赋值语句、输入 /输出消息框函数
的使用;
5.掌握常用内部函数的使用。
本章重点:
变量和常量的定义及使用、运算符和表达式的使用
输入 /输出消息框函数的使用、及常用内部函数的使用。
本章难点:
数据类型、运算符与表达式。
2.1 Visual Basic程序的构成
1、传统流程图中的基本符号
流程线 连接点
止框起 I/O框 判断框
处理框
2.1 Visual Basic程序的构成
2、三种基本结构的表示
( 1)顺序结构
语句 1
语句 2
( 2)选择结构
条件
语句 1 语句 2
Y N
2.1 Visual Basic程序的构成
( 3)循环结构
a) 当型循环 b) 直到循环
条件
( a )
Y
N
语句组
条件
语句组
Y
N
( b )
2.2 Visual Basic的基本语法
2.2.1 数据类型
据数类型 存储空间 范 围
Byte 1 个字节 0 到 255
Integer 2 个字节 –32768到 32767
Long(长整型 ) 4 个字节 –2147483648 到 2147483647
Single (单精度
浮点型 ) 4 个字节
负数从 –3.402823E38 到 –1.401298E–45;正数从 1.401298E–45
到 3.402823E38
Double (双精
度浮点型 ) 8 个字节
负数从 –1.79769313486232E308 到 –4.94065645841247E–324;
正数从 4.94065645841247E–324到 1.79769313486232E308
Currency
(货币型 ) 8 个字节 从 –922337203685477.5808 到 922337203685477.5807
2.2 Visual Basic的基本语法
2.2.1 数据类型
数据类型 存储空间 范 围
String (字符串
类型 )
10 个字
节 1 到 大约 65400
Boolean (布尔
型 ) 2 个字节 True 或 False
Date (日期型 ) 8个字节 1/1/100~ 12/31/9999
Object ( 对象
类型 )
4 个字节 任何对象
Variant (变体
类型 )
根据实际
情况分配 上述有效范围之一
2.2 Visual Basic的基本语法
二、自定义类型
在模块级别中使用,用于定义包含一个或多个元素的用
户自定义的数据类型。
使用形式:
Type 自定义类型名
元素名 [([下标 ])] As 类型名
元素名 [([下标 ])] As 类型名
.,,
End Type
2.2 Visual Basic的基本语法
例如, 对于一个学生的, 学号,,, 姓名,,, 性别,,
,年龄,,, 入学成绩, 等数据,为了处理数据的方便,常
常需要把这些数据定义成一个新的数据类型(如 Student类
型)。 Type Student
Xh As String
Xm As String
Xb As String
Nl As Integer
Score As Single
End Type
2.2 Visual Basic的基本语法
2.2.2 常 量与变量
在程序运行过程中,其值不能被改变的量称为常量。
在 VB中有三类常量:
? 普通常量
? 符号常量
? 系统常量。
一、普通常量
1,整型常量
( 1)整型( Integer):表示 -32768至 32767之间的整数
例如,10 110 20
( 2) 长整型 ( Long),
表示 -2,147,483,648至 2,147,483,647之间的整数
例如:长整型常数的书写,23&
2.2 Visual Basic的基本语法
2,实数
1) 单精度实型 ( Single),有效数为 7位
2) 双精度实型 ( Double),有效数为 15位
常量的表示:
1) 十进制小数形式 。 它是由正负号 ( +,-), 数字
( 0~9) 和小数点 (,) 或类型符号 ( !, #) 组成, 即
± n.n,± n! 或 ± n#,其中 n是 0~9的数字 。
例如 0.123,.123,123.0,123!, 123#等
2) 指数形式 。
± nE± m 或 ± n.nE± m,± nD± m 或
± n.nD± m
例,1.25E+3 和 1.25D+3 相 当 于 1250.0 或者
1.25× 103。
2.2 Visual Basic的基本语法
3,字符串常量
在 VB中字符串常量是用双引号, "‖括起的一串字符, 可以
是所有西文字符和汉字, 标点符号等;
例如 "ABC","abcdefg","123","0","VB程序设计 "等 。
说明:
( 1) ""表示空字符串, 而 " "表示有一个空格的字符串;
( 2) 若字符串中有双引号, 例如 ABD"XYZ,则用连续两个
双引号表示, 即:
"ABD""XYZ―
4,逻辑 ( Boolean) 数据类型
只有两个值 True,或 False。将逻辑数据转换成整型时:
True为 -1,False为 0;其它数据转换成逻辑数据时,非 0为
True,0为 False。
2.2 Visual Basic的基本语法
5,日期常量
日期 ( Date) 型数据按 8字节的浮点数来存储, 表示
日期范围从公元 100年 1月 1日 ~9999年 12月 31日, 而时间范围从
0:00:00~23:59:59。
一种在字面上可被认作日期和时间的字符,只要用号码符
,#‖括起来,都可以作为日期型数值常量。
例,#09/02/99#,#January 4,1989#,#2002-5-4
14:30:00 PM#都是合法的日期型常量。
2.2 Visual Basic的基本语法
二, 符号常量
在程序中,某个常量多次被使用,则可以使用一个
符号来代替该常量,这样不仅在书写上方便,而且有效地改
进了程序的可读性和可维护性。
VB中使用关键字 Const 声明符号常量 。 其格式如下:
Const 常量名 [As 类型 ] =常数表达式
或,Const [类型符号 ]=常数表达式
例如:
Const PI As Double=3.1415926535 等价于:
Const PI#=3.1415926535
2.2 Visual Basic的基本语法
三, 系统常量
VB系统提供的应用程序和控件的系统定义常数。
它们存放于系统的对象库中,在, 对象浏览器, 中的
Visual Basic( VB) 和 Visual Basic for applications
( VBA)对象库中列举了 Visual Basic 的常数
例如,要将文本框 Text1的前景颜色设置为红色,可以
使用下面的语句:
Text1.ForeColor=vbRed
这里的 vbRed就是系统常量。这比直接使用 16进制
数来设置要直观得多。
2.2 Visual Basic的基本语法
一,变量的命名规则
1,以字母或汉字开头,后可跟字母、数字或下划
线组成,
2,变量名最长为 255个字符;
3,VB中不区分变量名的大小写,不能使用 VB中的
关键字;
2.2 Visual Basic的基本语法
4.字符之间必须并排书写,不能出现上下标
以下符是合法的变量名:
a,x,x3,BOOK_1,sum5
以下标识符是非法的:
3s 以数字开头
s*T 出现非法字符 *
-3x 以减号开头
bowy-1 出现非法字符 -(减号 )
if 使用了 VB的关键字
2.2 Visual Basic的基本语法
二,变量声明
1.用 Dim语句显式声明变量
形式,Dim 变量名 [AS 类型 ]
Dim 变量名 [类型符 ]
例:
Dim ab As integer,sum As single
等价于 Dim ab%,sum!
2.2 Visual Basic的基本语法
2.隐式声明
Visual Basic允许用户在编写应用程序时,不声明变量
而直接使用,系统临时为新变量分配存储空间并使用,这就
是隐式声明。所有隐式声明的变量都是 Variant数据类型 。
Visual Basic根据程序中赋予变量的值来自动调整变量
的类型。
例如:
下面是一个很简单的程序, 其使用的变量 a,b,Total都
没有事先定义 。
Private Sub Form_Click()
Total = 0
a = 10,b = 20
2.2 Visual Basic的基本语法
3,强制显式声明 ——Option Explicit语句
良好的编程习惯都应该是, 先声明变量, 后使用变量,,
这样做可以提高程序的效率, 同时也使程序易于调试 。
Visual Basic 中可以强制显式声明, 可以在窗体模块, 标
准模块和类模块的通用声明段中加入语句,
Option Explicit
Total = a + b
Print ―Total="; Total
End Sub
2.2 Visual Basic的基本语法
2.2.4 运算符和表达式
一, 运算符
1,算术运算符
例,5+2*10 mod 10 \ 9 / 3 +2 ^2
2.2 Visual Basic的基本语法
2,字符串运算符与字符串表达式
字符串运算符有:&, + 。 功能是字符串连接
2.2 Visual Basic的基本语法
例如:
"ABCD" + "EFGHI" ' 结果为,ABCDEFGHI
― VB ‖ & ―程序设计教程, ‘ 结果为,VB程序设计教
程
说明:当连接符两旁的操作量都为字符串时, 上述两个连接
符等价 。 它们区别是:
+(连接运算),两个操作数均应为字符串类型;
&(连接运算),两个操作数既可为字符型也可为数值型,
当是数值型时,系统自动先将其转换为数字字符,然后进
行连接操作。
2.2 Visual Basic的基本语法
例:
"100" + 123 ' 结果为 223
"100" + "123" ' 结果为 100123
"Abc" + 123 ' 出错
"100" & 123 ' 结果为 100123
100 & 123 ' 结果为 100123
"Abc" & "123" ' 结果为 Abc123
"Abc" & 123 ' 结果为 Abc123
注意:使用运算符, &‖时,变量与运算符, &‖之间应加
一个空格 。这是因为符号, &‖还是长整型的类型定义符,如果
变量与符号, &‖接在一起,VB系统先把它作为类型定义符处理,
因而就会出现语法错误。
2.2 Visual Basic的基本语法
3,关系运算符与关系表达式
比较两个运算量之间的关系,关系表达式的运算结果为逻辑量。
若 关系成立,结果为 True,若关系不成立,结果为 False。
VB中的关系运算符如下表所示。
运算符 含义 优先级 实例 结果
< 小于 所有关系运算
优先级相同。
低于算术运算
的加, +‖,减
,-‖运算,高
于逻辑非
,Not‖运算。
15+10<20 False
<= 小于或等于 10<=20 True
> 大于 10>20 False
>= 大于或等于 "This">="That" True
= 等于 "This"= "That" False
<> 不等于 "This"<>"That" True
Like 字符串匹配 "This"Like"is" True
Is 对象比较
2.2 Visual Basic的基本语法
关系运算的规则如下:
( 1)当两个操作式均为数值型,按数值大小比较。
( 2)字符串比较,则按字符的 ASCII码值从左到右一一比
较,直到出现不同的字符为止,。
例," ABCDE " > " ABRA " 结果为 False
( 3) 数值型与可转换为数值型的数据比较,
如,29>"189", 按数值比较, 结果为 False。
( 4) 数值型与不能转换成数值型的字符型比较,
如,77>" sdcd", 不能比较, 系统出错 。
( 5), Like‖运算符是 VB6.0新增加的 。
其使用格式为,str1 Like str2
2.2 Visual Basic的基本语法
4 逻辑运算符与逻辑表达式
逻辑运算符,Not,And,Or Xor Eqv
Imp
2.2 Visual Basic的基本语法
说 明:
( 1) 逻辑运算符的优先级不相同, Not( 逻辑非 ) 最高,
但它低于关系运算, Imp( 逻辑蕴含 ) 最低 。
( 2) VB中常用的逻辑运算符是 Not,And和 Or。 它们用
于将多个关系表达式进行逻辑判断 。
例如:
数学上表示某个数在某个区域时用表达式,10≤X< 20
用 VB程序中应写成,X>=10 And X<20
如果写成如下形式将是错误的:
10<=x<20 或 10<=x Or x<20
2.2 Visual Basic的基本语法
例:用人单位招聘秘书:年龄小于 40岁,女性,学历专科或本科
:
写成条件 VB的表达式:
年龄 <=39 and 性别 =―女, and( 学历 =―专科, or学历 =―本科
” )
2.2 Visual Basic的基本语法
5,日期型表达式
日期型数据是一种特殊的数值型数据, 只能有下面 3种情况:
1,一个日期型数据可以相减,DateB-DateA
结果是一个数值型整数 (两个日期相差的天数 )。
例如,#05/08/2002# - #05/01/2002# 其结果为数
值,7
2,一个日期型数据 ( DateA) 与一数值数据 ( N) 可作加法
运算,DateA+N
其结果仍是一个日期型数据 。
3,一个日期型数据 ( DateA) 与一数值数据 ( N) 可作减法
运算,DateA-N
其结果仍是一个日期型数据 。
例如,#05/08/2002# - 7
2.2 Visual Basic的基本语法
6,表达式的书写中需注意的问题
( 1)运算符不能相邻。例 a+*b是错误的。
( 2)乘号不能省略。例 x 乘以 y 应写成,x*y
( 3)括号必须成对出现,均使用圆括号。
( 4)表达式从左到右在同一基准并排书写,不能出现上下标
( 5)要注意各种运算符的优先级别,为保持运算顺序,在写
VB表达式时需要适当添加括号(),若用到库函数必须按库函要
求书写 。 如:
a
acbb
2
42 ??
ba
ba
?
?
(b-sqr(b*b-4*a*c))/(2*a)
(a+b)/(a-b)
2.3 基本语句
2.3.1 赋值语句
形式, 变量名=表达式
对象,属性=表达式
功能,将表达式的值赋值给变量名或指定对象的属性。
一般用于给变量赋值或对控件设定属性值,
例,sRate!=0.1
Text1.Text = "欢迎使用 Visual Basic 6.0‖
说明:
1 执行过程:先求表达式的值,然后将值赋值给左边的变量。
2 右边的表达式可以是变量、常量、函数调用等特殊的表达
式。
3 不要将, =, 理解为数学上的等号:
A=A+1 是表示将 A单元的值加1后以放回到 A单元。
2.3 基本语句
执行过程如右图
4.赋值符号, =‖左边一定只能是变量名或对象的属性引
用,不能是常量、符号常量、表达式。
下面的赋值语句都是错的:
5=X ' 左边是常量 。
Abs(X)=20 ' 左边是函数调用,即是表达式。
5,赋值符号, =‖两边的数据类型一般要求应一致。
2.3 基本语句
2.3.2 输入语句
1,InputBox函数
变量名 =InputBox[$](<提示信息 >[,<标题 >][,<缺省 >]
[,<x坐标 >][,<y坐标 >] )
其中,提示 提示信息,标题 标题区显示,缺省 输入区缺省
值。
例如,要在屏幕上显示如下的对话框,
2.3 基本语句
例如:有下列语句如下,
Dim x%
x= Val(InputBox(―请输入一个数,,―输入框,,
100))
语句执行后打开如下对话框。
缺省值
标题
提示
2.3 基本语句
2,MsgBox函数和 MsgBox过程
函数形式,变量 [%] = MsgBox(提示 [,按钮 [+图标 ]+
[缺省按钮 ]+[模式 ]][,标题 ])
过程形式, MsgBox 提示 [,按钮 [+图标 ] +[缺省按钮 ]+
[模式 ]][,标题 ]
图标
标题
提示信息
命令按钮
2.3 基本语句
说明:
1, 标题, 和, 提示, 与 InputBox函数中对应的参
数相同;
2, 按钮+图标 +缺省按钮 +模式, 是整型表达式,
决定信息框按钮数目、出现在信息框上的图标类型及操作模
式 (见表 4.1)
3 若程序中需要返回值,则使用函数,否则可调用
过程。
2.3 基本语句
按钮及图标值如下, 根据用户所选按钮,函数返 回 1—7的整数值,其含义
如下表,(表 4.2)
2.4 函数
VB提供了上百种内部函数(库函数),要求掌握这些常
用函数的功能及使用。
调用方法:
函数名(参数列表) 有参函数
函 数 名 无参函数
说明:
( 1) 使用库函数要注意参数的个数及其参数的数据类型
( 2) 要注意函数的定义域(自变量或参数的取值范围)
例如,sqr(x) 要求,x>=0
( 3) 要注意函数的值域。
如,exp(23773) 的值就超出实数在计算机中的表示范维
2.4 函数
1、数学函数
常用的数学函数
Abs(N) Cos(N) Sin(N) Exp(N)
Log(N) Sqr(N) Rnd[(N)] Sgn(N)
说明:
( 1) 在三角函数中的自变量是以弧度为单位。
如,sin300
sin(3.14159/180*30)
( 2) Rnd函数返回 0 ~ 1(包括 0和不包括 1)之间的双
精度随机数。
若要产生 1-100的随机整数,Int(Rnd *100)+1
提问:怎样产生 [N,M]区间的随机数?
2.4 函数
2,转换函数
说明:
( 1)要区别两个取整函数 int()和 fix()
Fix(N)为截断取整,即去掉小数后的数。
Int(N)不大于 N的最大整数。
N>0与 int(N) 相同,当 N<0时,int(N) 与 fix(N) -1相等。
例如,Fix(9.59) =9,Int(9.59) =9
Fix(-9.59) =-9,Int(-9.59) =-10
思考:如何实现四舍五入取整?
( 2) Asc("Abcd") 值为,65 (只取首字母的 Ascii值)
( 3) Val("abc123") 值为,0,Val("1.2sa10") 值为 1.2
注意,Val( )函数只将最前面的数字字符转换为数值。
2.4 函数
3,字符串操作函数 (常用的字符串函数见表 2.12)
说明,如果返回是字符型,则函数后有, $‖字符。当然
一般也可以不写,习惯都写上。例如:
len("This is a book!") 15
Left$("ABCDEFG",3) "ABC"
Right ("ABCDEFG",3) ―EFG"
Mid$("ABCDEFG",2,3) "BCD―
Ucase("ABcd") "ABCD"
Lcase("ABcd") " abcd"
Trim(" Abcd ") "ABcd"
String(5,"A " ) "AAAAA"
InStr(2,―ABCDEFGEF‖,―EF‖) 5(第一次出现的位
置 )
2.4 函数
4,日期、时间函数
掌握,Time( ) Date( ) Now( )
Year( ) Month( ) Day( )
5.格式输出函数
使用格式,Format$(表达式 [,,格式字符串, ])
功能:按用户指定格式返回表达式,常常用在 print方法中。
使用形式,print Format$(表达式 [,,格式字符串, ])
表达式:可以是数值、日期或字符串型表达式。
格式字符串:表示输出表达式时采用的输出格式。不同数
据类型所采用的格式字符串是不同的。
2.5 使用基本语句及函数的程序举例
【 例 2.6】 设计两个变量交换值的程序 。
设计步骤如下:
⑴ 建立程序界面 。 如图所示 。
2.5 使用基本语句及函数的程序举例
编写事件代码 。
命令按钮 Command1的 Click事件代码为:
Private Sub Command1_Click()
Dim temp As Single,x As Single,y As Single
x=Text1.Text
y=Text2.Text
temp=x
x=y
y=temp
Text3.Text=x
Text4.Text=y
End Sub
2.5 使用基本语句及函数的程序举例
[例 2.7] 用文本框输入摄氏温度 C,用 MsgBox输出华氏温度 F。 公式为:
F=1.8╳C+ 32
编写程序代码 。
命令按钮 Command1的 Click事件代码为:
Private Sub Command1_Click()
Dim C As Single,F As Single
Dim str1 As String
C=Val(Text1.Text)
F=9/5*C+32
str1="摄氏 "+Str(C)+"度相当于华氏 "+Str(F)+"度 "
Msgbox str1,,"转换温度 "
End Sub
2.5 使用基本语句及函数的程序举例
[例 2.8] 用 InputBox输入球体的半径,然后计算球体的体积。
编写事件代码
命令按钮 Command1的 Click事件代码为:
Private Sub Command1_Click()
Dim r As Single,v As Single
Const PI=3.14
r=Val(InputBox("请输入球体半径 ","球体半径 ",0))
v=4/3*PI*r^3
Label1.Caption=Label1.Caption+Str(v)
End Sub
本章内容及要求:
1.熟悉 VB程序中代码和语句书写规则;
2.掌握 VB的数据类型;
3.掌握 VB的 运算符和表达式的使用;
4.熟练掌握赋值语句、输入 /输出消息框函数
的使用;
5.掌握常用内部函数的使用。
本章重点:
变量和常量的定义及使用、运算符和表达式的使用
输入 /输出消息框函数的使用、及常用内部函数的使用。
本章难点:
数据类型、运算符与表达式。
2.1 Visual Basic程序的构成
1、传统流程图中的基本符号
流程线 连接点
止框起 I/O框 判断框
处理框
2.1 Visual Basic程序的构成
2、三种基本结构的表示
( 1)顺序结构
语句 1
语句 2
( 2)选择结构
条件
语句 1 语句 2
Y N
2.1 Visual Basic程序的构成
( 3)循环结构
a) 当型循环 b) 直到循环
条件
( a )
Y
N
语句组
条件
语句组
Y
N
( b )
2.2 Visual Basic的基本语法
2.2.1 数据类型
据数类型 存储空间 范 围
Byte 1 个字节 0 到 255
Integer 2 个字节 –32768到 32767
Long(长整型 ) 4 个字节 –2147483648 到 2147483647
Single (单精度
浮点型 ) 4 个字节
负数从 –3.402823E38 到 –1.401298E–45;正数从 1.401298E–45
到 3.402823E38
Double (双精
度浮点型 ) 8 个字节
负数从 –1.79769313486232E308 到 –4.94065645841247E–324;
正数从 4.94065645841247E–324到 1.79769313486232E308
Currency
(货币型 ) 8 个字节 从 –922337203685477.5808 到 922337203685477.5807
2.2 Visual Basic的基本语法
2.2.1 数据类型
数据类型 存储空间 范 围
String (字符串
类型 )
10 个字
节 1 到 大约 65400
Boolean (布尔
型 ) 2 个字节 True 或 False
Date (日期型 ) 8个字节 1/1/100~ 12/31/9999
Object ( 对象
类型 )
4 个字节 任何对象
Variant (变体
类型 )
根据实际
情况分配 上述有效范围之一
2.2 Visual Basic的基本语法
二、自定义类型
在模块级别中使用,用于定义包含一个或多个元素的用
户自定义的数据类型。
使用形式:
Type 自定义类型名
元素名 [([下标 ])] As 类型名
元素名 [([下标 ])] As 类型名
.,,
End Type
2.2 Visual Basic的基本语法
例如, 对于一个学生的, 学号,,, 姓名,,, 性别,,
,年龄,,, 入学成绩, 等数据,为了处理数据的方便,常
常需要把这些数据定义成一个新的数据类型(如 Student类
型)。 Type Student
Xh As String
Xm As String
Xb As String
Nl As Integer
Score As Single
End Type
2.2 Visual Basic的基本语法
2.2.2 常 量与变量
在程序运行过程中,其值不能被改变的量称为常量。
在 VB中有三类常量:
? 普通常量
? 符号常量
? 系统常量。
一、普通常量
1,整型常量
( 1)整型( Integer):表示 -32768至 32767之间的整数
例如,10 110 20
( 2) 长整型 ( Long),
表示 -2,147,483,648至 2,147,483,647之间的整数
例如:长整型常数的书写,23&
2.2 Visual Basic的基本语法
2,实数
1) 单精度实型 ( Single),有效数为 7位
2) 双精度实型 ( Double),有效数为 15位
常量的表示:
1) 十进制小数形式 。 它是由正负号 ( +,-), 数字
( 0~9) 和小数点 (,) 或类型符号 ( !, #) 组成, 即
± n.n,± n! 或 ± n#,其中 n是 0~9的数字 。
例如 0.123,.123,123.0,123!, 123#等
2) 指数形式 。
± nE± m 或 ± n.nE± m,± nD± m 或
± n.nD± m
例,1.25E+3 和 1.25D+3 相 当 于 1250.0 或者
1.25× 103。
2.2 Visual Basic的基本语法
3,字符串常量
在 VB中字符串常量是用双引号, "‖括起的一串字符, 可以
是所有西文字符和汉字, 标点符号等;
例如 "ABC","abcdefg","123","0","VB程序设计 "等 。
说明:
( 1) ""表示空字符串, 而 " "表示有一个空格的字符串;
( 2) 若字符串中有双引号, 例如 ABD"XYZ,则用连续两个
双引号表示, 即:
"ABD""XYZ―
4,逻辑 ( Boolean) 数据类型
只有两个值 True,或 False。将逻辑数据转换成整型时:
True为 -1,False为 0;其它数据转换成逻辑数据时,非 0为
True,0为 False。
2.2 Visual Basic的基本语法
5,日期常量
日期 ( Date) 型数据按 8字节的浮点数来存储, 表示
日期范围从公元 100年 1月 1日 ~9999年 12月 31日, 而时间范围从
0:00:00~23:59:59。
一种在字面上可被认作日期和时间的字符,只要用号码符
,#‖括起来,都可以作为日期型数值常量。
例,#09/02/99#,#January 4,1989#,#2002-5-4
14:30:00 PM#都是合法的日期型常量。
2.2 Visual Basic的基本语法
二, 符号常量
在程序中,某个常量多次被使用,则可以使用一个
符号来代替该常量,这样不仅在书写上方便,而且有效地改
进了程序的可读性和可维护性。
VB中使用关键字 Const 声明符号常量 。 其格式如下:
Const 常量名 [As 类型 ] =常数表达式
或,Const [类型符号 ]=常数表达式
例如:
Const PI As Double=3.1415926535 等价于:
Const PI#=3.1415926535
2.2 Visual Basic的基本语法
三, 系统常量
VB系统提供的应用程序和控件的系统定义常数。
它们存放于系统的对象库中,在, 对象浏览器, 中的
Visual Basic( VB) 和 Visual Basic for applications
( VBA)对象库中列举了 Visual Basic 的常数
例如,要将文本框 Text1的前景颜色设置为红色,可以
使用下面的语句:
Text1.ForeColor=vbRed
这里的 vbRed就是系统常量。这比直接使用 16进制
数来设置要直观得多。
2.2 Visual Basic的基本语法
一,变量的命名规则
1,以字母或汉字开头,后可跟字母、数字或下划
线组成,
2,变量名最长为 255个字符;
3,VB中不区分变量名的大小写,不能使用 VB中的
关键字;
2.2 Visual Basic的基本语法
4.字符之间必须并排书写,不能出现上下标
以下符是合法的变量名:
a,x,x3,BOOK_1,sum5
以下标识符是非法的:
3s 以数字开头
s*T 出现非法字符 *
-3x 以减号开头
bowy-1 出现非法字符 -(减号 )
if 使用了 VB的关键字
2.2 Visual Basic的基本语法
二,变量声明
1.用 Dim语句显式声明变量
形式,Dim 变量名 [AS 类型 ]
Dim 变量名 [类型符 ]
例:
Dim ab As integer,sum As single
等价于 Dim ab%,sum!
2.2 Visual Basic的基本语法
2.隐式声明
Visual Basic允许用户在编写应用程序时,不声明变量
而直接使用,系统临时为新变量分配存储空间并使用,这就
是隐式声明。所有隐式声明的变量都是 Variant数据类型 。
Visual Basic根据程序中赋予变量的值来自动调整变量
的类型。
例如:
下面是一个很简单的程序, 其使用的变量 a,b,Total都
没有事先定义 。
Private Sub Form_Click()
Total = 0
a = 10,b = 20
2.2 Visual Basic的基本语法
3,强制显式声明 ——Option Explicit语句
良好的编程习惯都应该是, 先声明变量, 后使用变量,,
这样做可以提高程序的效率, 同时也使程序易于调试 。
Visual Basic 中可以强制显式声明, 可以在窗体模块, 标
准模块和类模块的通用声明段中加入语句,
Option Explicit
Total = a + b
Print ―Total="; Total
End Sub
2.2 Visual Basic的基本语法
2.2.4 运算符和表达式
一, 运算符
1,算术运算符
例,5+2*10 mod 10 \ 9 / 3 +2 ^2
2.2 Visual Basic的基本语法
2,字符串运算符与字符串表达式
字符串运算符有:&, + 。 功能是字符串连接
2.2 Visual Basic的基本语法
例如:
"ABCD" + "EFGHI" ' 结果为,ABCDEFGHI
― VB ‖ & ―程序设计教程, ‘ 结果为,VB程序设计教
程
说明:当连接符两旁的操作量都为字符串时, 上述两个连接
符等价 。 它们区别是:
+(连接运算),两个操作数均应为字符串类型;
&(连接运算),两个操作数既可为字符型也可为数值型,
当是数值型时,系统自动先将其转换为数字字符,然后进
行连接操作。
2.2 Visual Basic的基本语法
例:
"100" + 123 ' 结果为 223
"100" + "123" ' 结果为 100123
"Abc" + 123 ' 出错
"100" & 123 ' 结果为 100123
100 & 123 ' 结果为 100123
"Abc" & "123" ' 结果为 Abc123
"Abc" & 123 ' 结果为 Abc123
注意:使用运算符, &‖时,变量与运算符, &‖之间应加
一个空格 。这是因为符号, &‖还是长整型的类型定义符,如果
变量与符号, &‖接在一起,VB系统先把它作为类型定义符处理,
因而就会出现语法错误。
2.2 Visual Basic的基本语法
3,关系运算符与关系表达式
比较两个运算量之间的关系,关系表达式的运算结果为逻辑量。
若 关系成立,结果为 True,若关系不成立,结果为 False。
VB中的关系运算符如下表所示。
运算符 含义 优先级 实例 结果
< 小于 所有关系运算
优先级相同。
低于算术运算
的加, +‖,减
,-‖运算,高
于逻辑非
,Not‖运算。
15+10<20 False
<= 小于或等于 10<=20 True
> 大于 10>20 False
>= 大于或等于 "This">="That" True
= 等于 "This"= "That" False
<> 不等于 "This"<>"That" True
Like 字符串匹配 "This"Like"is" True
Is 对象比较
2.2 Visual Basic的基本语法
关系运算的规则如下:
( 1)当两个操作式均为数值型,按数值大小比较。
( 2)字符串比较,则按字符的 ASCII码值从左到右一一比
较,直到出现不同的字符为止,。
例," ABCDE " > " ABRA " 结果为 False
( 3) 数值型与可转换为数值型的数据比较,
如,29>"189", 按数值比较, 结果为 False。
( 4) 数值型与不能转换成数值型的字符型比较,
如,77>" sdcd", 不能比较, 系统出错 。
( 5), Like‖运算符是 VB6.0新增加的 。
其使用格式为,str1 Like str2
2.2 Visual Basic的基本语法
4 逻辑运算符与逻辑表达式
逻辑运算符,Not,And,Or Xor Eqv
Imp
2.2 Visual Basic的基本语法
说 明:
( 1) 逻辑运算符的优先级不相同, Not( 逻辑非 ) 最高,
但它低于关系运算, Imp( 逻辑蕴含 ) 最低 。
( 2) VB中常用的逻辑运算符是 Not,And和 Or。 它们用
于将多个关系表达式进行逻辑判断 。
例如:
数学上表示某个数在某个区域时用表达式,10≤X< 20
用 VB程序中应写成,X>=10 And X<20
如果写成如下形式将是错误的:
10<=x<20 或 10<=x Or x<20
2.2 Visual Basic的基本语法
例:用人单位招聘秘书:年龄小于 40岁,女性,学历专科或本科
:
写成条件 VB的表达式:
年龄 <=39 and 性别 =―女, and( 学历 =―专科, or学历 =―本科
” )
2.2 Visual Basic的基本语法
5,日期型表达式
日期型数据是一种特殊的数值型数据, 只能有下面 3种情况:
1,一个日期型数据可以相减,DateB-DateA
结果是一个数值型整数 (两个日期相差的天数 )。
例如,#05/08/2002# - #05/01/2002# 其结果为数
值,7
2,一个日期型数据 ( DateA) 与一数值数据 ( N) 可作加法
运算,DateA+N
其结果仍是一个日期型数据 。
3,一个日期型数据 ( DateA) 与一数值数据 ( N) 可作减法
运算,DateA-N
其结果仍是一个日期型数据 。
例如,#05/08/2002# - 7
2.2 Visual Basic的基本语法
6,表达式的书写中需注意的问题
( 1)运算符不能相邻。例 a+*b是错误的。
( 2)乘号不能省略。例 x 乘以 y 应写成,x*y
( 3)括号必须成对出现,均使用圆括号。
( 4)表达式从左到右在同一基准并排书写,不能出现上下标
( 5)要注意各种运算符的优先级别,为保持运算顺序,在写
VB表达式时需要适当添加括号(),若用到库函数必须按库函要
求书写 。 如:
a
acbb
2
42 ??
ba
ba
?
?
(b-sqr(b*b-4*a*c))/(2*a)
(a+b)/(a-b)
2.3 基本语句
2.3.1 赋值语句
形式, 变量名=表达式
对象,属性=表达式
功能,将表达式的值赋值给变量名或指定对象的属性。
一般用于给变量赋值或对控件设定属性值,
例,sRate!=0.1
Text1.Text = "欢迎使用 Visual Basic 6.0‖
说明:
1 执行过程:先求表达式的值,然后将值赋值给左边的变量。
2 右边的表达式可以是变量、常量、函数调用等特殊的表达
式。
3 不要将, =, 理解为数学上的等号:
A=A+1 是表示将 A单元的值加1后以放回到 A单元。
2.3 基本语句
执行过程如右图
4.赋值符号, =‖左边一定只能是变量名或对象的属性引
用,不能是常量、符号常量、表达式。
下面的赋值语句都是错的:
5=X ' 左边是常量 。
Abs(X)=20 ' 左边是函数调用,即是表达式。
5,赋值符号, =‖两边的数据类型一般要求应一致。
2.3 基本语句
2.3.2 输入语句
1,InputBox函数
变量名 =InputBox[$](<提示信息 >[,<标题 >][,<缺省 >]
[,<x坐标 >][,<y坐标 >] )
其中,提示 提示信息,标题 标题区显示,缺省 输入区缺省
值。
例如,要在屏幕上显示如下的对话框,
2.3 基本语句
例如:有下列语句如下,
Dim x%
x= Val(InputBox(―请输入一个数,,―输入框,,
100))
语句执行后打开如下对话框。
缺省值
标题
提示
2.3 基本语句
2,MsgBox函数和 MsgBox过程
函数形式,变量 [%] = MsgBox(提示 [,按钮 [+图标 ]+
[缺省按钮 ]+[模式 ]][,标题 ])
过程形式, MsgBox 提示 [,按钮 [+图标 ] +[缺省按钮 ]+
[模式 ]][,标题 ]
图标
标题
提示信息
命令按钮
2.3 基本语句
说明:
1, 标题, 和, 提示, 与 InputBox函数中对应的参
数相同;
2, 按钮+图标 +缺省按钮 +模式, 是整型表达式,
决定信息框按钮数目、出现在信息框上的图标类型及操作模
式 (见表 4.1)
3 若程序中需要返回值,则使用函数,否则可调用
过程。
2.3 基本语句
按钮及图标值如下, 根据用户所选按钮,函数返 回 1—7的整数值,其含义
如下表,(表 4.2)
2.4 函数
VB提供了上百种内部函数(库函数),要求掌握这些常
用函数的功能及使用。
调用方法:
函数名(参数列表) 有参函数
函 数 名 无参函数
说明:
( 1) 使用库函数要注意参数的个数及其参数的数据类型
( 2) 要注意函数的定义域(自变量或参数的取值范围)
例如,sqr(x) 要求,x>=0
( 3) 要注意函数的值域。
如,exp(23773) 的值就超出实数在计算机中的表示范维
2.4 函数
1、数学函数
常用的数学函数
Abs(N) Cos(N) Sin(N) Exp(N)
Log(N) Sqr(N) Rnd[(N)] Sgn(N)
说明:
( 1) 在三角函数中的自变量是以弧度为单位。
如,sin300
sin(3.14159/180*30)
( 2) Rnd函数返回 0 ~ 1(包括 0和不包括 1)之间的双
精度随机数。
若要产生 1-100的随机整数,Int(Rnd *100)+1
提问:怎样产生 [N,M]区间的随机数?
2.4 函数
2,转换函数
说明:
( 1)要区别两个取整函数 int()和 fix()
Fix(N)为截断取整,即去掉小数后的数。
Int(N)不大于 N的最大整数。
N>0与 int(N) 相同,当 N<0时,int(N) 与 fix(N) -1相等。
例如,Fix(9.59) =9,Int(9.59) =9
Fix(-9.59) =-9,Int(-9.59) =-10
思考:如何实现四舍五入取整?
( 2) Asc("Abcd") 值为,65 (只取首字母的 Ascii值)
( 3) Val("abc123") 值为,0,Val("1.2sa10") 值为 1.2
注意,Val( )函数只将最前面的数字字符转换为数值。
2.4 函数
3,字符串操作函数 (常用的字符串函数见表 2.12)
说明,如果返回是字符型,则函数后有, $‖字符。当然
一般也可以不写,习惯都写上。例如:
len("This is a book!") 15
Left$("ABCDEFG",3) "ABC"
Right ("ABCDEFG",3) ―EFG"
Mid$("ABCDEFG",2,3) "BCD―
Ucase("ABcd") "ABCD"
Lcase("ABcd") " abcd"
Trim(" Abcd ") "ABcd"
String(5,"A " ) "AAAAA"
InStr(2,―ABCDEFGEF‖,―EF‖) 5(第一次出现的位
置 )
2.4 函数
4,日期、时间函数
掌握,Time( ) Date( ) Now( )
Year( ) Month( ) Day( )
5.格式输出函数
使用格式,Format$(表达式 [,,格式字符串, ])
功能:按用户指定格式返回表达式,常常用在 print方法中。
使用形式,print Format$(表达式 [,,格式字符串, ])
表达式:可以是数值、日期或字符串型表达式。
格式字符串:表示输出表达式时采用的输出格式。不同数
据类型所采用的格式字符串是不同的。
2.5 使用基本语句及函数的程序举例
【 例 2.6】 设计两个变量交换值的程序 。
设计步骤如下:
⑴ 建立程序界面 。 如图所示 。
2.5 使用基本语句及函数的程序举例
编写事件代码 。
命令按钮 Command1的 Click事件代码为:
Private Sub Command1_Click()
Dim temp As Single,x As Single,y As Single
x=Text1.Text
y=Text2.Text
temp=x
x=y
y=temp
Text3.Text=x
Text4.Text=y
End Sub
2.5 使用基本语句及函数的程序举例
[例 2.7] 用文本框输入摄氏温度 C,用 MsgBox输出华氏温度 F。 公式为:
F=1.8╳C+ 32
编写程序代码 。
命令按钮 Command1的 Click事件代码为:
Private Sub Command1_Click()
Dim C As Single,F As Single
Dim str1 As String
C=Val(Text1.Text)
F=9/5*C+32
str1="摄氏 "+Str(C)+"度相当于华氏 "+Str(F)+"度 "
Msgbox str1,,"转换温度 "
End Sub
2.5 使用基本语句及函数的程序举例
[例 2.8] 用 InputBox输入球体的半径,然后计算球体的体积。
编写事件代码
命令按钮 Command1的 Click事件代码为:
Private Sub Command1_Click()
Dim r As Single,v As Single
Const PI=3.14
r=Val(InputBox("请输入球体半径 ","球体半径 ",0))
v=4/3*PI*r^3
Label1.Caption=Label1.Caption+Str(v)
End Sub