打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
第三章 VB语言基础_Visual Basic基础_
userphoto

2011.01.21

关注
3.1数据类型
确定数据类型的作用有两个:一、在生成数据时,它指出应为数据分配多大的存储空间;二、它规定了数据所能进行的操作
VB的标准数据类型   表1.3.1
background-color: transparent"> 数据类型
background-color: transparent"> 关键字
类型符
前缀
存储字节
取值范围
字节型
Byte
byt
1
0~255
逻辑型
Boolean
bln
2
True与False
整型
Integer
%
int
2
-32768~32767
长整型
Long
&
lng
4
单精度型
Single
!
sng
4
双精度型
Double
#
dbl
8
货币型
Currency
@
cur
8
日期型
Date
dtm
8
01,01,100~12,31,9999
字符型
String
$
str
字符串
0~65535
对象型
Object
obj
4
任何对象引用
1.数值数据类型 numeric
1)         Integer(2个字节)和Long(4个字节)   运算速度快
定义变量类型时应考虑取值范围,否则程序运行时会产生“溢出”中断;
VB中用+n[%]来表示整数,其中%为整数的类型符,可以省略,n为0~9数字;
长整数用4字节二进制存储,VB中用+n&来表示长整数,其中&为长整数的类型符
2)         Single和DoubleClick
浮点数也称实数,由符号、指数和尾数组成,分单精度和双精度浮点数,其指数部分分别用E(e)和D(d)表示。浮点数表示数的范围很大,但有误差,且运算速度慢。VB中规定单精度浮点数精度为7位,双精度浮点数精度为16位。
单精度浮点数表示形式:+n.n, +n!, +nE+m, +n.nE+m
要表示双精度浮点数,对小数形式只要在数字后加“#”或用“#”代替“!”;对指数形式用“D”代替“E”或指数形式后加“#”;
3)         Currency
货币型用8位字节存储,最多保留小数点左边15位,小数点右边4位,其余的数字被舍去,用于货币计算。表示形式为在数字后加上“@”
4)         Byte
字节型用1个字节的无符号二进制数存储。
2.日期数据类型
日期型表示日期和时间,8字节的浮点数来存储,表示的范围从公元100年1月1日~9999年12月31日,而时间范围从0:00:00~23:59:59。
表示方式:
1.日期文字必须用两个“#”符号括起来,如#january 15,202#,#1985-10-1 9:45:00 PM#
2.以数字序列表示
当以数字序列表示时,小数点左边的数字代表日期,而小数点右边的数字代表时间;0为午夜,0.5为中午12点;负数代表的是1899年12月31日之前的日期和时间。
3.逻辑数据类型
逻辑判断True或False,用2字节二进制存储。当把其他数据类型转换为逻辑型数据时,0会转换为False,其他非0值转换为True。反之,当把逻辑型数据转换为数值型时,False转换为0,True转换为-1。
4.字符数据类型
字符string型数据是指一切可打印的字符和字符串,它是用双引号括起来的一串字符。VB中规定一个西文字符和一个汉字均占两个字节。在VB中有两种类型的字符串:变长字符串和定长字符串。空字符串用””表示,而” ”表示有一个空格的字符串;另外,在字符串中必须用两个连续的双引号来表示字符串中有一个双引号,如:字符串abc“计算机”abc,在VB中表示为”abc””计算机””abc”
5.对象数据类型
Object变量4个字节,该地址可引用应用程序中的对象。可以用Set语句指定一个被声明为object的变量,去引用应用程序所识别的任何实际对象。
6.变体数据类型
Variant为VB的数据处理增加了智能性,是所有未定义的变量的默认数据类型,它对数据的处理完全取决于程序上下文的需要。
要检测变体型变量中保存的数值究竟是什么类型,可以用Vartype进行检测,根据它的返回值可确定是何数据类型。
3.2 变量与常量
被命名的内存单元就是变量或常量
3.2.1 变量或常量的命名规则
1)         必须以字母或汉字开头,后可跟汉字、字母、数字或下划线,长度小于或等于255个字符
2)         不要使用VB中的关键字
3)         VB不区分变量名大小写。为了区别,变量首字母用大写字母,其余用小写字母表示。常量全部用大写字母表示
4)         为了增加程序的可读性,可在变量名前加一个缩写的前缀(一般3个小写字母)来表明该变量的数据类型,如cmdExit、cmdEnter等,参见表1.3.1
5)         变量名在同一作用域中必须是唯一的
6)         使用缩进来反映代码的逻辑结构和嵌套关系
3.2.2 变量声明
1.用Dim语句显式声明变量
Dim 变量名 [as 类型]
默认是变体类型,可在变量名后加类型符来代替“as类型”,此时变量名与类型符之间不能有空格。类型符见表1.3.1。一条Dim语句可以同时定义多个变量,但每个变量必须有自己的类型声明,类型声明不能共用。
对于字符串变量类型,根据其存放的字符串长度是否固定,其定义方法两种:
Dim 字符串变量名 AS String        不定长
Dim 字符串变量名AS String*字符数 定长,存放的最多字数由字符数决定(不足补空,超出截取)。
2.隐式声明
VB中允许对使用的变量未进行声明而直接使用,所有隐式声明的变量都是Variant型
使用Option Explicit强制声明所有变量。或者工具---选项—编辑器选项卡下—勾选要求变量声明。
3.2.3 常量
1.直接常量
十六进制数由数字0~9,A~F或a~f组成,并以&H引导,其后面的数据位数≤4位,其范围为&H0~&HFFFF.
八进制数由数字0~7组成,并以&O(&符号后是字母O,并可以省略)引导,其后面的数据位数≤6位,其范围为&O0~&O177777
2.用户声明的符号常量
用户定义的符号常量:Const 符号常量名 [As 类型]=表达式
常量一旦声明,其后只能引用,不能改变。
3.系统提供的常量(好处是。。。)
为避免不同对象中同名常量的混淆,可用两个小写字母前缀来限定在那个对象库中:
1)    Vb    表示VB和VBA中的常量
2)    xl    表示EXCEL中的常量
3)    db    表示Data Access Object库中的常量
命名的规则也体现了学好英语的作用o(∩_∩)o…哈哈
3.3 运算符和表达式
3.3.1 运算符
VB中运算符可分为算术运算符、字符串运算符、关系运算符和逻辑运算符4类。
1.算术运算符
算术运算符(8个)减号与取负运算符形式相同
运算符
含义
优先级
备注
^
幂运算
1
2^3=8
-
负号
2
取负是单目运算符
*
3
/
3
\
整除
4
10\3=3
Mod
求余数
5
10 mod 3=1
+
6
-
6
算术运算符两边的操作数应是数值型,若是数字字符或逻辑型,则自动转换成数值型数据后再参与运算。
2.字符串运算符
字符串运算符“&”“+”,都是将两个字符串连接起来。在字符串变量后用运算符“&”时应注意,变量与运算符“&”间应加一个空格,因为符号&还是长整型的类型定义符(VB会先把它当作类型定义符处理)。
运算符+和&区别:
+连接符两侧的操作数均应为字符型。若均为数值型则进行算术加运算;若一个为数字字符型,另一个为数值型,则自动将数字字符转换为数值,然后进行算术加运算;若一个为非数字字符型,一个为数值型则出错;两个均为数字字符型,则进行连接;一个数字字符型,一个为逻辑型,则将True转换为-1,False转换为0进行加运算;
&连接符两侧的操作数不管是字符型还是数值型,进行连接操作前,系统先将操作数转换成字符型,然后连接。
3.关系运算符
用来对两个表达式的值进行比较,比较的结果为逻辑值,即若关系成立则返回True,否则返回False;在VB中,分别用-1和0表示True和False。
在比较时注意以下规则:
1)         如果两个操作数是数值型,则按其大小比较
2)         若进行字符串比较,则按字符的ASCII码值从左到右一一比较,即首先比较两个字符串的第一个字符,其ASCII码值大的字符串大,如果第一个字符相同,则比较第二个字符,以此类推,直到出现不同的字符为止。
3)         汉字字符大于西文字符
4)         所有关系运算符的优先级别均相同
5)         “Like”运算符与通配符“?”、“*”、“#”、[字符列表]、[!字符列表]结合使用,在数据库的SQL语句中经常使用,用于模糊查询。?表任何单一字符、*表示零个或多个字符、#表示任何一个数字(0~9)、[字符列表]表示字符列表中的任何单一字符、[!字符列表]表示不在字符列表中的任何单一字符;
6)         Is用于两个对象变量引用比较
4.逻辑运算符
将操作数进行逻辑运算,结果是逻辑值True和False。除NOT为单目运算符外,其他都为双目运算符。
逻辑运算符中NOT最高,但它低于关系运算,Imp最低;VB中常用的逻辑运算符是Not,And,Or。
And与Or的区别:若有多个条件,And必须条件全部为真才为真,Or只要有一个条件为真就真。
参与逻辑运算的量一般都应是逻辑型数据,但如果参与逻辑运算的两操作数是数值量,则以数值的二进制逐位进行逻辑运算(0当False,1当True)。利用逻辑运算符对数值进行运算常用于屏蔽某些位。用于在键盘事件中判定是否按了Shift、Ctrl、Alt等键,也可用于分离颜色码。
日期时间运算   借用已有的+-算术运算符和比较运算符。VB中用8个字节存放日期时间型数据,它的整数部分表示日期,小数部分表示时间。如果将日期时间数据加上一个数值型数据,则VB会以实数表示的前者日期和时间加上数值型数据,其结果的整数部分表示新的日期,而用小数部分表示新的时间,减法的结果相反。
若两个日期时间型数据进行减法运算时的结果为一个数值,表示两个日期间隔天数或时间差。
当两个日期时间型数据进行比较运算时,较晚的日期时间大于较早的日期时间。
3.3.2   表达式
1.表达式的组成
用运算符将变量、常量、函数和圆括号连接起来的符合VB语法规则的式子称为表达式。
2.表达式的书写规则
1)         乘号不能省略。
2)         只能使用圆括号,可以多重使用,但必须成对出现。括号改变优先顺序,强令表达式的某些部分优先运行。括号内的运算总是优先于括号外的运算。对于多重括号,总是由内到外。
3)    不能出现非法的字符;如∏
4)    运算符不能相邻;如a+-b
5)    表达式从左到右在同一基准上书写,无高低、大小之分。要注意各种运算符的优先级别,为保持运算顺序,在写VB表达式时需要适当添加括号,若用到库函数必须按库函数要求书写。
3.不同数据类型的转换
如果表达式中操作数具有不同的数据精度,则将较低精度转换为操作数中精度最高的数据精度,即按Interger,Long,Single,Double,Currency的顺序转换,且Long型数据和Single型数据进行运算时,结果总是Double型数据,即Interger<Long<Single<Double<Currency。
4.优先级
算术运算符>字符运算符>关系运算符>逻辑运算符
3.4   常用内部函数
以下N表示数值表达式,C表示字符表达式,D表示日期表达式。函数名后有$符号的,表示函数返回值为字符串。装有MSDN的系统可以通过帮助菜单获取使用方法。
3.4.1 数学函数    表1.3.6 常用的数学函数
函数名
含义
说明
Abs(N)
取绝对值
Sqr(N)
平方根
自变量不能是负数
Fix(N)
取整
区分取整函数之间的区别
Int(N)
取小于或等于N的最大整数
Round(N)
四舍五入取整数
Rnd[(N)]
产生随机数
函数返回的范围 [0,1] Randomize(number)每次运行时产生不同序列的随机数。要产生某段范围的数的公式:Int(Rnd*范围+基数)
Exp(N)
e为底的指数函数
互为反函数 log[Exp(N)]\Exp(log(N))结果还是原来各自变量N的值
Log(N)
以e为底的自然对数
Sin(N)
正玄函数
在三角函数中,以弧度表示。
Cos(N)
余玄函数
Tan(N)
正切函数
Sgn(N)
符号函数
3.4.2 转换函数  表1.3.7常用的转换函数
函数名
功能
说明
Str(N)
数值转换为字符串
对于非负数值转换成字符类型后,会在转换后的字符串左边增加符号位;正数为空格,负数为”-”号。
Val(C)
数字字符串转换为数值
当字符串中出现数值类型规定的字符外的字符,则停止转换,函数返回的是停止转换前的结果。(可以转换指数符号E)
Lcase$(C)
大写字母转为小写字母
Ucase(C)
小写字母转为大写字母
Chr(N)
ASCII码转换成字符
Chr和Asc函数互为反函数,Chr(Asc(C))\Asc(Chr(N))的结果为原来各自自变量的值
Asc(C)
字符转换成ASCII
A--65 a--97 大小写ASCII差32
CDate
转换成日期型
Oct(N)
十进制转换成八进制
Hex(N)
十进制转换成十六进制
其它类型转换函数:CInt\CBool\CSng\CStr
3.4.3字符串函数
1)    字符串编码
VB中字符串长度是以字为单位,西文字符和汉字都占用两个字节。Unicode是全部用两个字节表示一个字符的字符集,保留ASCII,仅将其字节数变为两个,增加的字节以零填入。Unicode与ASCII之间相互转换的函数是Strconv。
2)    字符串函数   表1.3.8字符串函数(需要记忆)
函数名
说明
InStr([N1,]C1,C2[,M])
在C1中从N1开始找C2,省略N1从头开始找,找不到为0
返回值是数值型
Join(A,[D])
将数组A各元素按D(或空格)分隔符连接成字符串变量
Left(C,N)
取出字符串左边N个字符
Right(C,N)
取出字符串右边N个字符
Len(C)
字符串长度
LenB(C)
字符串所占的字节数
Mid(C,N1[,N2])
取字符子串,在C中从N1位开始向右取N2个字符,默认N2到结束
Replace(C,C1,C2)
在C字符串中将C2替代C1
LTrim(C)
去掉字符串左边空格
RTrim(C)
去掉字符串右边空格
Trim(C)
去掉字符串两边的空格
Space(N)
产生N个空格的字符串
Splite(C[,D])
将字符串C按分隔符D(或空格)分隔成字符数组。与Join作用相反
String(N,C)
返回有C中首字符组成的N个字符串
StrReverse(C)
将字符串反序
3.4.4日期函数 表1.3.9
C|N表示可以是数值表达式,也可以是字符串表达式,其中N表示相对于1899年12月31日前后的天数
函数名
说明
Now
返回系统日期和时间
Date与time函数的合成是Now函数的结果
Time[()]
返回系统时间
Date[()]
返回系统日期
Day(C|N)
返回日期代号(1--31)
Hour(C|N)
返回小时(0—24)
Minute(C|N)
返回分钟(0---59)
Month(C|N)
返回月份代号(1--12)
Second(C|N)
返回秒(0--59)
WeekDay(C|N)
返回星期代号(1--7),星期日为1,星期一为2
Year(C|N)
返回年代号(1753--2078)
DateAdd(要增减日期形式,增减量,要增减的日期变量)
函数作用:对要增减的日期变量按日期形式做增减。表1.3.10
DateDiff(要间隔日期形式,日期1,日期2)
函数作用:两个指定的日期按日期形式求相差的日期表1.3.10
日期形式
yyyy
q
m
y
d
W
ww
h
n
s
意义
一年的天数
一周的天数
星期
3.4.5 Shell函数
Shell(命令字符串[,窗口类型])
1)    命令字符串:包括路径的程序名,必须是可执行文件( .exe .com .bat)
2)    窗口类型:表示执行应用程序的窗口大小,0—4,6的整型数值。一般为1---正常窗口状态
函数成功调用的返回值为一个任务标示ID,它是运行程序的唯一标识。App.path表示当前该VB程序的路径。
3.5   综合应用
1.编码规则:
1)         VB代码不区分字母的大小写
但关键字将会自动转换为大写字母开头(可以据此判断输入是否正确),后续字母为小写字母
若关键字由多个英文单词组成,则每个单词首字母转换成大写
用户自定义的变量、过程名等,VB以第一次定义为准,其后的输入自动向首次定义的转换
2)         语句书写自由:
1.          一行可以书写多条语句,各语句之间用“:”分隔
2.          一行书写不完的语句,可以在该行后加上续行符(由空格+下划线_组成),然后换行书写
3.          一行最多为255个字符,一条语句最多包含1023个字符
3)         注释(有利于程序的维护和调试):
1.          注释以Rem或单引号’开头,但是只有用单引号引导的注释可以出现在其他语句之后
2.          可以使用“编辑”工具栏中的“设置注释块”命令将选定的若干行语句或文字设置为注释项,也可以使用“解除注释块”命令将选定的若干行解除注释( 右击标准工具栏,选编辑)
在VB中使用的分号、引号、括号等符号都是英文状态下的半角符号,而不能使用中文状态下的全角符号。
习 题3
一、问答题
1略 2 单精度型   3.Val   Mid   Lcase Ucase   4、5主要考察变量命名规则
二、选择题
1.D 123%  2.A 3.A 4.C 5.C 6.A 7.B   8.B
三、填空题
1.Option Explicit  2.变体数据类型 3.* 4.F  5.注意弧度 15*3.14159、180  6.不能省的不要省却
7.略Sqr函数 8.(X mod 5=0)or(x mod 9=0) 9.Chr(Int(Rnd*10+67)) C--67 L--77 10.mid(s,5,6)
11.(X>=10)and(X<20)   12.优先级问题188 13.876554 14.#2/29/2000# 注意是闰年
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
第三章 VB的程序设计基础
《Visual Basic程序设计(第4版)》第3章 VB语言基础
VB基础知识整理
第04讲-vf表达式与函数
欢迎光临 VBScript 语言参考
第三章 VB语言基础
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服