admin 管理员组文章数量: 887021
2023年12月16日发(作者:配置java)
第三章数据类型、常量、变量及表达式
本章内容及要求:
1 熟悉VB程序中代码和语句书写规则;
2 掌握VB的数据类型;
3 掌握VB的运算符和表达式的使用;
4 掌握常用内部函数的使用;
本章重点:
变量和常量的定义及使用、运算符和表达式的
使用及常用内部函数的使用。
本章难点:
数据类型、内部函数。
3.1VB语言字符集及编码规则
一、VB的字符集
l 字母:大写英文字母A—Z;小写英文字母a—z。
l 数字:0一9;
l 专用字符:共27个,
二、编码规则与约定
(一)、编码规则
1.VB代码中不区分字母的大小写。
2.在同一行上可以书写多条语句,但语句间要用冒号“:”分
隔。
3.若一个语句行不能写下全部语句,或在特别需要时,可
以换行。换行时需在本行后加入续行符,1个空格加下划线
“_”。
4.一行最多允许255个字符。
5.注释以Rem开头,也可以使用单引号“'”,注释内容可直
接出现在语句的后面。
6.在程序转向时需用到标号,标号是以字母开始而以冒号
结束的字符串。
(二)、约定
1.为了提高程序的可读性,对于VB中的关键字其首字
母大写,其余字母小写
2.注释有利于程序的维护和调试
Rem开始或单撇‘。
例如:’ThisisaVB
REMThisisaVB
在6.0中新增了“块注释/取消块注释”
3.通常不使用行号
4.对象名命名约定:每个对象的名字由3个小写字母组
(指明对象的类型)和表示该对象作用的缩写字
母组成。
3.2 数据类型
一.标准数据类型 (课本P11)
二、自定义类型
在模块级别中使用,用于定义包含一个或多个元素的用
户自定义的数据类型。
使用形式:
Type自定义类型名
元素名[([下标])]As 类型名
元素名[([下标])]As 类型名
...
EndType
说明
----------------------- Page 7-----------------------
例如: 对于一个学生的“学号”、“姓名”、“性别”、“年
龄”、“入学成绩”等数据,为了处理数据的方便,常常需要
把这些数据定义成一个新的数据类型 (如Student类型)。
TypeStudent
XhAsSting
XmAsString
XbAsString
NlAsInteger
ScoreAsSingle
EndType
----------------------- Page 8-----------------------
3.3 常量和变量
3.3.1常量
在程序运行过程中,其值不能被改变的量称为常量。在
VB中有三类常量:
* 普通常量
* 符号常量
* 系统常量。
一、普通常量
1.整型常量
(1)整型 (Integer):表示-32768至32767之间的整数
例如:10 110 20
(2)长整型 (Long):
表示-2,147,483,648至2,147,483,647之间的整数
例如:长整型常数的书写: 23&
----------------------- Page 9-----------------------
通常我们说的整型常量指的是十进制整数,但VB中可
以使用八进制和十六进制形式的整型常数,因此整型常数
有如下三种形式:
1)十进制整数。如125,0,-89。20
2)八进制整数。以&或&O(字母O)开头的整数是八
进制整数,如&O25表示八进制整数25,即(25) ,等于十
进制数21。
3)十六进制。以&H开头的整数是十六进制整数,如
&H25表示十六进制整数25,即(25) ,等于十进制数37。
16
VB中的颜色数据常常用十六进制整数表示。
----------------------- Page 10-----------------------
2、实数
1)单精度实型 (Single):有效数为7位
表示-3.37E+38至3.37E+38之间的实数
2)双精度实型 (Double):有效数为15位
常量的表示:
8
1)十进制小数形式。它是由正负号 (+,-)、数字
(0~9)和小数点 (.)或类型符号 (!、#)组成,即
±n.n,±n!或±n#,其中n是0~9的数字。
例如0.123、.123、123.0、123!、123#等都是十进制小
数形式。
2)指数形式。
±nE±m 或±±m, ±nD±m 或±±m
例:1.25E+3和1.25D+3相当于1250.0或者1.25×10。
----------------------- Page 11-----------------------
3、字符串常量
在VB中字符串常量是用双引号“"”括起的一串字符,例
如"ABC","abcdefg","123","0","VB程序设计"等。
说明:
(1)字符串中的字符可以是所有西文字符和汉字、标点
符号等;
(2)""表示空字符串,而""表示有一个空格的字符串;
(3)若字符串中有双引号,例如ABD"XYZ,则用连续
两个双引号表示,即:
"ABD""XYZ“
4、逻辑 (Boolean)数据类型
3
只有两个值True,或False。将逻辑数据转换成整型时:
True为-1,False为0;其它数据转换成逻辑数据时:非0为
True, 0为False。
----------------------- Page 12-----------------------
5、日期常量
日期 (Date)型数据按8字节的浮点数来存储,表示日期
范围从公元100年1月1日~9999年12月31日,而时间范围从
0:00:00~23:59:59。
一种在字面上可被认作日期和时间的字符,只要用号码符
“#”括起来,都可以作为日期型数值常量。
例:#09/02/99#、#January4,1989#,#2002-5-414:30:00
PM#都是合法的日期型常量。
说明:当以数值表示日期数据时,整数部分代表日期,
而小数部分代表时间;例如1表示1899年12月31日。大于1的
整数表示该日期以后的日期,0和小于0的整数表示该日期以
前的日期。
----------------------- Page 13-----------------------
二、符号常量
在程序中,某个常量多次被使用,则可以使用一个符号
来代替该常量,这样不仅在书写上方便,而且有效地改进了
程序的可读性和可维护性。
VB中使用关键字Const声明符号常量。其格式如下:
Const常量名[As类型|类型符号] 常数表达式
例如:
Const PI# 3.1415926535 等价于:
ConstPIAsDouble 3.1415926535
三、系统常量
VB系统提供了应用程序和控件的系统定义常数。它们
存放于系统的对象库中,在“对象浏览器”中的VisualBasic
(VB)和VisualBasicforapplications (VBA)对象库中列
举了VisualBasic的常数
----------------------- Page 14-----------------------
例如,要将文本框Text1的前景颜色设置为红色,可以
使用下面的语句:
Text1.ForeColorvbRed
这里的vbRed就是系统常量。这比直接使用16进制数来
设置要直观得多。
又如,窗口状态属性WindowsState可取0,1,2三个值,对应
三种不同状态 (参见第二章表2-2所示)。
在程序中使用语句MywsState vbMaxmized,
将窗口极大化,显然要比使用语句MywsState 2
易于阅读和理解。
----------------------- Page 15-----------------------
3.3.2 变量
一.变量和常量的命名规则
1.以字母或汉字开头,后可跟字母、数字或下划线组成,
长度小于等于40个字符;
2.不能使用VB中的关键字;
中不区分变量名的大小写.
4.为了增加程序的可读性,可在变量名前加一个缩写的前
缀来表明该变量的数据类型。
例如:strAbc, (字符串变量) iCount, (整型变
量)
dblx, (双精度变量) sYz (单精度变量)
----------------------- Page 16-----------------------
二.变量声明
1.用Dim语句显式声明变量
形式:Dim变量名[AS类型]
Dim变量名[类型符]
例DimiCountAsinteger,sumAs single
等价于 DimiCount%,sum!
2.隐式声明
VisualBasic允许用户在编写应用程序时,不声明变量
而直接使用,系统临时为新变量分配存储空间并使用,
这就是隐式声明。所有隐式声明的变量都是Variant数据
类型。VisualBasic根据程序中赋予变量的值来自动调整
变量的类型。
例如:
----------------------- Page 17-----------------------
下面是一个很简单的程序,其使用的变量a,b,Sum都
没有事先定义。
Private Sub Form_Click()
Sum 0
a 10:b 20
Sum a + b
Print "Sum "; Sum
End Sub
3.强制显式声明——OptionExplicit语句
良好的编程习惯都应该是“先声明变量,后使用变量”,
这样做可以提高程序的效率,同时也使程序易于调试。
VisualBasic中可以强制显式声明,可以在窗体模块、标准
模块和类模块的通用声明段中加入语句:OptionExplicit
----------------------- Page 18-----------------------
3.4运算符和表达式
一.运算符
1.算术运算符(均是双目运算,ia 3)
例:5+10mod10 9/3+2^2 结果是:10
----------------------- Page 19-----------------------
2.字符串运算符与字符串表达式
字符串运算符有:&、+ 。功能是字符串连接
例如:
"ABCD"+"EFGHI" '结果为:ABCDEFGHI
“VB”&“程序设计教程” '结果为:VB程序设计教程
说明:当连接符两旁的操作量都为字符串时,上述两个连接
符等价。它们区别是:
+ (连接运算):两个操作数均应为字符串类型;
&(连接运算):两个操作数既可为字符型也可为数值
型,当是数值型时,系统自动先将其转换为数字字符,然
后进行连接操作。
----------------------- Page 20-----------------------
例:
"100" + 123 ' 结果为223
"100" + "123" ' 结果为 100123
"Abc"+ "123" ' 出错
" 100"& 123 ' 结果为 100123
100& 123 ' 结果为 100123
"Abc"& "123" ' 结果为Abc123
"Abc"& 123 ' 结果为Abc123
注意:使用运算符“&”时,变量与运算符“&”之间应加
一个空格。这是因为符号“&”还是长整型的类型定义符,如
果变量与符号“&”接在一起,VB系统先把它作为类型定义符
处理,因而就会出现语法错误。
----------------------- Page 21-----------------------
3.4.3 关系运算符与关系表达式
关系运算符都是双目运算,是用来比较两个运算量之间
的关系,关系表达式的运算结果为逻辑量。若关系成立,结
果为True,若关系不成立,结果为False。
VB中的关系运算符如下表所示。
运算符 含义 优先级
结果
< 小于 所有关系运算
False
< 小于或等于 优先级相同。
True
实例
10< 20
15+10<20
低于算术运算
> 大于 的加“+”,减 10>20
False
> 大于或等于 “-”运算,高于 "This"> "That"
True
逻辑非“Not”
等于 "This" "That" False
运算。
<> 不等于 "This"<>"That" True
Like 字符串匹配 "This"Like"*is"
True
Is 对象比较
----------------------- Page 22-----------------------
关系运算的规则如下:
(1)当两个操作式均为数值型,按数值大小比较。
(2)字符串比较,则按字符的ASCII码值从左到右一一比较,
直到出现不同的字符为止.。
例:"ABCDE">"ABRA" 结果为False
(3)数值型与可转换为数值型的数据比较,
如:29>"189",按数值比较,结果为False。
(4)数值型与不能转换成数值型的字符型比较,
如:77>"sdcd",不能比较,系统出错。
(5)“Like”运算符是VB6.0新增加的。
其使用格式为:str1Likestr2
----------------------- Page 23-----------------------
3.4.4 逻辑运算符与逻辑表达式
Not逻辑非为单目运算符 (要求一个操作数),其它为双
目运算符。
条件表达式1 And 条件表达式2 条件表达式均为T结果为T
条件表达式1 Or条件表达式2 条件表达式有一个T结果为T
----------------------- Page 24-----------------------
说明:
(1)逻辑运算符的优先级不相同,Not(逻辑非)最高,
但它低于关系运算,Imp(逻辑蕴含)最低。
(2)VB中常用的逻辑运算符是Not、And和Or。它们用于
将多个关系表达式进行逻辑判断。
例如,数学上表示某个数在某个区域时用表达式: 10≤
X<20,用VB程序中应写成:
X> 10AndX<20
(3)参与逻辑运算的量一般都应是逻辑型数据,如果参与
逻辑运算的两操作数是数值量,则以数值的二进制值逐位
进行逻辑运算 (0当False,1当True)。
关系表达式与逻辑表达式常常用在条件语句与循环语
句中,作为条件控制程序的流程走向。
----------------------- Page 25-----------------------
4.4.5日期型表达式
日期型数据是一种特殊的数值型数据,只能有下面3种情况:
1.一个日期型数据可以相减:DateB-DateA
结果是一个数值型整数(两个日期相差的天数)。
例如:#05/08/2002#-#05/01/2002# 其结果为数值:7
2.一个日期型数据 (DateA)与一数值数据 (N)可作加法
运算:DateA+N
其结果仍是一个日期型数据。
例如:#05/01/2002#+7 其结果为日期型数据:#05/08/2002#
3.一个日期型数据 (DateA)与一数值数据 (N)可作减法
运算:DateA-N
其结果仍是一个日期型数据。
例如:#05/08/2002#-7
其结果为日期型数据:#05/01/2002#
----------------------- Page 26-----------------------
3.4.6运算符的执行顺序
表达式中出现了多种不同类型的运算符时,其运算符优先
级如下:
算术运算符> 字符运算符>关系运算符>逻辑运算
说明:
1.当一个表达式中出现多种运算符时,首先进行算术运
算符,接着处理字符串连接运算符,然后处理比较运算
符,最后处理逻辑运算符,在各类运算中再按照相应的优
先次序进行。
2.可以用括号改变优先顺序,强令表达式的某些部分
优先运行。括号内的运算总是优先于括号外的运算。对于
多重括号,总是由内到外。
----------------------- Page 27-----------------------
3.表达式的书写中需注意的问题
(1)运算符不能相邻。例a+-b是错误的。
(2)乘号不能省略。例x乘以y应写成:x*y
(3)括号必须成对出现,均使用圆括号。
(4)表达式从左到右在同一基准并排书写,不能出现上下
标
(5)要注意各种运算符的优先级别,为保持运算顺序,在
写VB表达式时需要适当添加括号 (),若用到库函数必须按
库函要求书写。 如:
(b-sqr(b*b-4*a*c))/(2*a)
(a+b)/(a-b)
----------------------- Page 28-----------------------
3.5 常用内部函数
VB提供了上百种内部函数 (库函数),要求掌握这些常用
函数的功能及使用。
调用方法:
函数名 (参数列表) 有参函数
函数名 无参函数
说明:
(1)使用库函数要注意参数的个数及其参数的数据类型
(2)要注意函数的定义域 (自变量或参数的取值范围)
例如: sqr(x) 要求:x> 0
(3)要注意函数的值域。
如:exp(23773)的值就超出实数在计算机中的表示范围。
----------------------- Page 29-----------------------
1.数学函数
常用的数学函数见表3-8所示
Abs(N) Cos(N) Sin(N)
Log(N) Sqr(N) Rnd[(N)]
说明:
(1)在三角函数中的自变量是以弧度为单位。
如:sin300 sin(3.14159/180*30)
(2) Rnd函数返回0~1 (包括0和不包括1)之间的双精度随
机数。
Exp(N)
Sgn(N)
若要产生1-100的随机整数: Int(Rnd*100)+1
提问:怎样产生[N,M]区间的随机数?
----------------------- Page 30-----------------------
2.转换函数
常用的转换函数见表3-9所示
说明:
(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()函数只将最前面的数字字符转换为数值。
----------------------- Page 31-----------------------
3.字符串操作函数
常用的字符串函数见表3-10
说明:
如果返回是字符型,则函数后有“$”字符。当然一般也可
以不写,习惯都写上。
例如:
len("Thisisabook!")
Left$("ABCDEFG",3)
Mid$("ABCDEFG",2,3)
InStr(2,“ABCDEFGEF”,“EF”)
的位置)
----------------------- Page 32-----------------------
4.日期、时间函数
常用的日期时间函数见表3-11
掌握:Time() Date()
Yrar() Month()
5.格式输出函数
"ABC"
"BCD"
Now
Day()
5 (第一次出现 15
使用格式
Format$ (表达式[,“格式字符串”])
功能:按用户指定格式返回表达式,常常用在print方
法中。
使用形式:printFormat$ (表达式[,“格式字符串”
])
表达式:可以是数值、日期或字符串型表达式。
格式字符串:表示输出表达式时采用的输出格式。不
同数据类型所采用的格式字符串是不同的。
----------------------- Page 33-----------------------
(1)数值型数据格式化(见表3-12)
注意:对于符号:0与#,当数值的实际位数比格
式控制给定的位数多时,系统将按四舍五入返回给定的位
数。
如:Format(3.14159,“###.###”), 其值为 3.142
(2)日期和时间型数据格式化(见表3-13)
缺省日期格式为:“mm/dd/yy”, 时间格式:
“hh:mm:ss”
(3)字符串类型数据格式化(见表3-14)
----------------------- Page 34-----------------------
3.5.6其它函数
除上面常用的四类函数,VB中还有测试函数 (见表
3-15)、与文件操作有关的函数 (见表3-16)及其它函数
(见表3-17)
本章小结:
作业:
----------------------- Page 35-----------------------
版权声明:本文标题:vb6.0数据类型、常量、变量及表达式 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1702700045h427305.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论