第四讲 数据表达式与简单程序设计
本讲内容及要求:
1 熟悉VB程序中代码和语句书写规则; 2 掌握VB的数据类型;
3 掌握VB的 运算符和表达式的使用; 4 掌握常用内部函数的使用; 本章重点:
变量和常量的定义及使用、运算符和表达式的使用及常用内部函数的使用。 本章难点:
数据类型、内部函数。
4.1 程序代码的组织方式
一个VB程序由窗体界面和程序代码两部组成,通过程序代码把窗口界面的各个对象以及应用中的其它元素联系在一起。程序代码部分则由若干被称为―过程‖的代码行及向系统提供某些信息的说明组成。过程及说明又被组织在―模块‖之中。将设计的过程代码及相关说明合理地组织到不同的模块之中,也就是设计代码的结构,在创建VB应用程序时是最为重要的一个步骤。 一 过程
所谓―过程‖,就是具有特定书写格式、包含若干可被作为一个整体执行的代码的组合。根据执行方式,可把―过程‖分为―事件过程‖和―通用过程‖两类。 二 模块
模块是VB用于将不同类型过程代码组织到一起而提供的一种结构。在VB中具有三种类型的模块: 窗体模块 标准模块
类模块。
4.2. VB代码书写规则
(1) 程序中不区分字母的大小写,Ab 与AB等效; (2) 系统对用户程序代码进行自动转换:
1) 对于VB中的关键字,首字母被转换成大写,其余转换成小写
2) 若关键字由多个英文单词组成,则将每个单词的首字母转换成大写
3) 对于用户定义的变量、过程名,以第一次定义的为准,以后输入的自动转换成首次定义的形式 (1)在同一行上可以书写多行语句,语句间用冒号(:)分隔
(2)单行语句可以分多行书写,在本行后加续行符:空格和下划线 _ (3) 一行允许多达255个字符
4.3 VB的数据类型 4.3.1.数据类型
1 VB的标准数据类型
类型数据类型 数值数关键字 符 字节型 Byte 整型 Integer % & Byt Int Lng 1 个字节 0 到 255 2 个字节 -32,768 到 32,767 4 个字节 -2,147,483,648 到 2,147,483,647 前缀 存储空间 范围 长整型 L ong
据类型 单精度Single 型 ! Sng 负数:-3.402823E38 到 -1.401298E-45;正4 个字节 数:1.401298E-45 到 3.402823E38 负数: -1.79769313486232E308 双精度Double 型 # Dbl - 4.94065645841247E-324; 8 个字节 正数:4.94065645841247E-324 1.79769313486232E308 从 -922,337,203,685,477.5808 货币型 Currency @ Cur 8 个字节 到 922,337,203,685,477.5807 逻辑型 日期型 对象型 Boolean Date Object Bln Dtm Obj 2 个字节 True 或 False 8 个字节 100 年1月 1日 到 9999 年 12 月 31 日 4 个字节 任何 Object 引用 10 字节变长字符型 String $ Str 加字符串0 到大约 20 亿 长度 字符串长定长字符型 String $ Str 度 16 个字变体数字型 Variant Vnt 节 22 个字变体字符型 Variant Vnt 节加字符与变长 String 有相同的范围 串长度 任何数字值,最大可达 Double 的范围 1 到大约 65,400 注意:
1)VB中对没有声明的变量其缺省的数据类型是变体型,可以用来存储各种数据,但所占用的内存比其它类型都多。为提高运行效率(整型效率较高),或达到一定的运算精确度(浮点型精度较高,但运行较慢),应合理的定义数据类型。
2) 逻辑型数据只有True 和False两个值,转换成整型时,True=-1 ,False=0,将其它类型转换成逻辑型时,非0数转换为True ,0转换为False。
3) 字符型可以包括所有的西文字符和汉字,字符必须用双引号括\ \起来, 如:\bc123\ 4)日期型数据按8字节的浮点数来存储,日期型数表示方式有两种:可以用号码符#括起来,也可以用数字序列表示(小数点左边的数字代表日期,右边代表时间,0为午夜,0。5为中午12点,负数表示是1899年12月31日前的日期和时间)。
如:#3/22/2002# #2002-3-22 14:30:20# Dim T As Date T=-2.5
Print T ' 打印出来的结果是1899-12-28 12:00:00
5)任何数据类型的数组都需要 20 个字节的内存空间,加上每一数组维数占 4 个字节,再加上数据本身所占用的空间。数据所占用的内存空间可以用数据元数目乘上每个元素的大小加以计算。例如,以 4 个 2 字节之 Integer 数据元所组成的一维数组中的数据,占 8 个字节。这 8 个字节加上额外的 24 个字节,使得这个数组所需总内存空间为 32 个字节。 2. 变量与常量
(1)变量或常量的命名规则
1) 必须以字母或汉字开头,由字母、汉字、数字或下划线组成,长度≤255个字符; 2) 不能使用VB中的关键字,并尽量不与VB中标准函数名同名;如:Dim 、Sin
3)VB中不区分变量的大小写,一般变量首字母用大写,其余用小写;常量全部用大写字母表示
4)为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型。 (2)变量声明
1)用Dim语句进行显式声明
语句形式: Dim 变量名 [As 类型] 如: Dim intX As integer
说明:·如果没有As 类型,则默认为变体类型。
·可在变量名后加类型符来代替As 类型 如: Dim intX%
·一条语句可以同时定义多个变量,但每个变量必须有自己的类型声明,类型声明不能共用;
·字符串变量根据其存放的长度是否固定,定义方法不同: 定长字符串: Dim strA As String*10
表示最多存放10个字符,如果赋值不足10个,则右补空;若多于10个,则多余部分截去。
不定长字符串:Dim strA As String
最多可存放2MB个字符
2) 隐式声明
VB中允许变量不经过声明就直接使用,这种称为隐式声明,所有隐式声明的变量都是变体型的。
隐式声明容易造成错误,为了调试程序方便,一般对使用的变量都进行声明,可以在通用声明段使用Option Explicit 语句来强制显式声明所有变量。 (3)常量 1)直接常量
指在程序中直接给出值的数据,如:123、123&、123.45、1.234E2 、123D3分别表示整型、长整型、单精度浮点型(小数形式)、单精度浮点型(指数形式)、双精度浮点型。 八进制常数: 在数值前加&O ,如 &O123 十六进制常数:在数值前加&H ,如&H123 2)用户声明的符号常量
用Const来声明: Const 符号常量名 [As 类型] = 表达式
如:Const PI=3.14159 '声明了常量PI,代表3.14159,单精度型
Const MAX As Integer=&O144 ''声明了常量MAX,代表八进制数144,整型 Const COUNT#=45.67 '声明了常量COUNT,代表45.67,双精度型
3)系统提供的常量
系统定义的常量位于对象库中,在对象浏览器中的Visual Basic(VB)和Visual Basic for Aplication(VBA)等对象库中列出了VB的常量。这些常量可以与应用程序的对象、方法、属性一起使用。
如:Form1.WindowsState=vbMaximized 表示将窗口极大化。
3. 变量作用域与变量说明语句 1)变量作用域
变量的有效作用范围称为变量作用域。 VB有以下三个作用域等级,见表3:
等级 范围 局部 运算符的功能及优先级 表达式的书写及运算规则 在过程中说明,仅在说明它的过程有效 窗体/模块 在窗体或模块中说明,在定义该变量的模块或窗体的所有过程内均有4.4 运算符与表达式 全局(公有) 效 在模块或窗体中说明,在工程内的所有过程中都有效 VB中的运算符和表达式可分为:算术运算符与算术表达式、关系运算符与关系表达式、逻辑运算符与逻辑表达式
4.4.1 算术运算符
VB的算术运算符有以下几种:
* 乘
\\ 整除 Mod 取余 + 加 +:加法运算,也适合于字符串的之间的合并运算。
^ 乘方
— 负号
? ? ? ? ? ?
-:加法运算。 *:乘法运算。 /:除法运算。 \\:整除运算。
Mod:求余运算。例如:a Mod b表示a被b整除以后的余数。 ^:幂运算。A^B表示以A为底的B次方。
/ 除 — 减
把常量、变量等运算元素用算术运算符连接起来的式子称为―算术表达式‖。例如: a*b/(c*d) 3.14159265*r^2 等
带有括号的算术表达式在运算时将优先进行括号内的运算 注 意:
(1)/和\的区别:1/2=0.5,1\2=0 (2) Mod运算中,结果与被除数同号 例如:-9 Mod 7 结果为 -2 字符串运算符与字符串表达式
字符串运算符有:& 、+ 。 功能是字符串连接 例如:
\?结果为: \\程序设计教程\结果为: \程序设计教程\
说明:当连接符两旁的操作量都为字符串时,上述两个连接符等价。它们区别是: +(连接运算):两个操作数均应为字符串类型;
&(连接运算):两个操作数既可为字符型也可为数值型,当是数值型时,系统自动先将其转换为数字字符,然后进行连接操作。
4.4.2 关系运算符与关系表达式
关系运算符都是双目运算,是用来比较两个运算量之间的关系,关系表达式的运算结果为逻辑量。若关系成立,结果为True,若关系不成立,结果为False。
关系运算也称比较运算,它表示不等式的真或假,VB共提供六种运算符,分别是=(等于),>(大于),<(小于),>=(大于等于),<=(小于等于)和<>(不等于)。
关系表达式就是用关系运算把两个比较对象连接起来的式子。 ● 比较对象可以是变量、常量和算术表达式。例如:
a<32 x+y>=z/2 b$<> \
● 关系表达式的运算是采用―按值比较‖的方法,即先求出运算符两边的―值‖,若是变量,则取其当前值,如果两端的值满足条件,则结果为―True‖,否则为―False‖。 4.4.3 逻辑运算符与逻辑表达式
逻辑运算是对逻辑值进行的运算,Not 逻辑非为单目运算符(要求一个操作数),其它为双目运算符。
运算符 Not
说明
取反
说明
操作数为假,结果为真,操作数为真,结果为假 操作数均为真时,结果才
为真
操作数中有一个为真时,
结果为真
操作数相反时,结果才为
真
例
结果T
Not F
And
与 T And F T And T T Or F F Or F T Xor F T Xor T
F T T F
Or
或
Xor
逻辑运算的优先次序是: Not→And→Or→Xor 2. 逻辑表达式
异或
T F
逻辑表达式是用逻辑运算符把逻辑变量连接起来的式子。例如: a>=2*3.141159*r And (x<>5 Or Not b) x>2 Or Text1.text=‖Microsoft‖ 表达式的书写:
(1)运算符不能相邻。例a+*b是错误的。 (2)乘号不能省略。例x 乘以y 应写成:x*y
(3)括号必须成对出现,均使用圆括号,可以嵌套使用。 (4)表达式从左到右在同一基准并排书写,不能出现上下标
(5)要注意各种运算符的优先级别,为保持运算顺序,在写VB表达式时需要适当添加括号()