江苏省高校计算机等级考试命题研究院 江苏省高校计算机等级考试辅导
第三章 VB的程序设计基础(重点概述1)

第三章  VB的程序设计基础

2.1  VB编码规则

1.  语言元素

   VB的语言基础是BASIC语言,VB程序的语言元素主要由:

  关键字(如: DimPrintCls

  函数(如:Sin()、Cos()Sqr())

  表达式(如:Abs(-23.5)+45*20/3

  语句(如:X=X+5 IF……ELSE……END IF)等组成。

2.  VB代码书写规则

 (1) 程序中不区分字母的大小写,Ab AB等效;
 (2) 系统对用户程序代码进行自动转换:

   1)  对于VB中的关键字,首字母被转换成大写,其余转换成小写
    2)  若关键字由多个英文单词组成,则将每个单词的首字母转换成大写
    3)  对于用户定义的变量、过程名,以第一次定义的为准,以后输入的自动转换成首次定义的形式

3.  语句书写规则

 (1)在同一行上可以书写多行语句,语句间用冒号()分隔
 (2)单行语句可以分多行书写,在本行后加续行符:空格和下划线  _
 (3) 一行允许多达255个字符

4.  程序的注释方式

 (1)整行注释一般以 Rem开头,也可以用撇号 '
 (2)用撇号 ' 引导的注释,既可以是整行的,也可以直接放在语句的后面,最方便;
 (3)可以利用“编辑”工具栏的“设置注释块”、“解除注释块”来将设置多行注释。

5. 保留行号和标号

  VB源程序接受行号与标号,但不是必须的(早期的BASIC语言中必须用行号)。
  标号是以字母开始以冒号结束的字符串,一般用在GOTO语句(现在很少用)中。


 

2.2  VB的语言基础

1.数据类型

 VB的标准数据类型

数据类型

关键字

类型符

前缀

存储空间

范围

数值数据类型

字节型

Byte

 

Byt

1 个字节

0 255

整型

Integer

%

Int

2 个字节

-32,768 32,767

长整型

Long

&

Lng

4 个字节

-2,147,483,648 2,147,483,647

单精度型

Single

Sng

4 个字节

负数:-3.402823E38 -1.401298E-45;正数:1.401298E-45 3.402823E38

双精度型

Double

#

Dbl

8 个字节

负数: -1.79769313486232E308

       - 4.94065645841247E-324

正数:4.94065645841247E-324

      1.79769313486232E308

货币型

Currency

@

Cur

8 个字节

-922,337,203,685,477.5808

922,337,203,685,477.5807

逻辑型

Boolean

 

Bln

2 个字节

True False

日期型

Date

 

Dtm

8 个字节

100 1 1 9999 12 31

对象型

Object

 

Obj

4 个字节

 任何 Object 引用

变长字符型

String

$

Str

10 字节加字符串长度

0 到大约 20 亿

定长字符型

String

$

Str

字符串长度

1 到大约 65,400

变体数字型

Variant

 

Vnt

16 个字节

任何数字值,最大可达 Double 的范围

变体字符型

Variant

 

Vnt

22 个字节加字符串长度

与变长 String 有相同的范围

注意

  1VB中对没有声明的变量其缺省的数据类型是变体型,可以用来存储各种数据,但所占用的内存比其它类型都多。为提高运行效率(整型效率较高),或达到一定的运算精确度(浮点型精度较高,但运行较慢),应合理的定义数据类型。
  2 逻辑型数据只有True False两个值,转换成整型时,True=-1 False=0,将其它类型转换成逻辑型时,非0数转换为True 0转换为False
  3 字符型可以包括所有的西文字符和汉字,字符必须用双引号括" "起来, 如:"abc123"
  4)日期型数据按8字节的浮点数来存储,日期型数表示方式有两种:可以用号码符#括起来,也可以用数字序列表示(小数点左边的数字代表日期,右边代表时间,0为午夜,05为中午12点,负数表示是18991231日前的日期和时间)。

 如:#3/22/2002#    #2002-3-22 14:30:20#
  
Dim T As Date
  
T=-2.5
  
Print T    ' 打印出来的结果是1899-12-28 120000

 )任何数据类型的数组都需要 20 个字节的内存空间,加上每一数组维数占 4 个字节,再加上数据本身所占用的空间。数据所占用的内存空间可以用数据元数目乘上每个元素的大小加以计算。例如,以 4 2 字节之 Integer 数据元所组成的一维数组中的数据,占 8 个字节。这 8 个字节加上额外的 24 个字节,使得这个数组所需总内存空间为 32 个字节。

2. 变量与常量

 (1)变量或常量的命名规则

   1) 必须以字母或汉字开头,由字母、汉字、数字或下划线组成,长度≤255个字符;
   2) 不能使用VB中的关键字,并尽量不与VB中标准函数名同名;如:Dim Sin
   3)VB中不区分变量的大小写,一般变量首字母用大写,其余用小写;常量全部用大写字母表示
   4)为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型。

 (2)变量声明

   1Dim语句进行显式声明

      语句形式  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)直接常量

    指在程序中直接给出值的数据,如:123123&123.451.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 BasicVB)和Visual Basic for AplicationVBA)等对象库中列出了VB的常量。这些常量可以与应用程序的对象、方法、属性一起使用。

    如:Form1.WindowsState=vbMaximized 表示将窗口极大化。

3.    运算符

(1)     算术运算符

运算符

含义

优先级

示例

结果

^

乘方

1

Ia^2

9

-

负号

2

-iA

-3

*

3

IA* iA* iA

27

/

3

10/iA

3.33333333333333

\

整除

4

10\iA

3

Mod

取模

5

10 Mod iA

1

+

6

10+iA

13

-

7

IA-10

-7

     说明:设表中的变量iA=3, 为整型。

   算术运算符两边的操作数应该是数值型,若是数字字符或逻辑型,则自动转换为数值类型后再运算。

(2)     字符串运算符

运算符

作用

区别

示例

结果

&

将两个字符串拼接起来

 连接符两旁的操作数不管是字符型还是数值型,系统先将操作数转换成字符,然后再连接。

"123"&55

"abc"+12

"12355"

"abc12"

+

连接符两旁的操作数均为字符型;若均为数值型则进行算术加法运算;若一个为数字字符型,一个数值型,则自动将数字字符转换为数值,然后进行算术加;若一个为非数字字符型,一个数值型,则出错。

"123"+55

"abc"+12

178

出错

(3)     关系运算符

运算符

含义

示例

结果

=

等于

"ABCDE"="ABR"

False

>

大于

"ABCDE">"ABR"

False

>=

大于等于

"bc">="大小"

False

<

小于

23<3

False

<=

小于等于

"23"<="3"

True

<>

不等于

"abc"<>"ABC"

True

Like

字符串匹配

"ABCDEFG" Like "*DE*"

True

Is

对象引用比较

   

 注意:

  1)   如果两个操作数都是数值型,则按其大小比较

  2)    如果两个操作数都是字符型,则按字符的ASCII码值从左到右一一比较

  3)    汉字字符大于西文字符

  4)   关系运算符的优先级相同

  5)   VB6.0Like运算符与通配符的使用:

  ?——表示任何单一字符
  
*——表示0个或多个字符
  
#——表示任何一个数字(0 - 9

  [字符列表]——表示字符列表中的任何单一字符
  
[!字符列表]—— 表示不在字符列表中的任何单一字符

(4) 逻辑运算符

运算符

含义

优先级

说明

示例

结果

Not

取反

1

当操作数为假时,结果为真

Not  F

Not  T

 T

 F

And

2

两个操作数均为真时,结果才为真

T  And  T

F  And  F

T  And  F

F  And  T

 T

F

F

F

Or

3

两个操作数中有一个为真时,结果为真

T  Or  T

F  Or  F

T  Or  F

F  Or  T

T

F

T

T

Xor

异或

3

两个操作数不相同,结果才为真,否则为假

T  Xor  F

T  Xor  T

T

F

Eqv

等价

4

两个操作数相同时,结果才为真

T  Eqv  F

T  Eqv  T

F

T

Imp

蕴含

5

第一个操作数为真,第二个操作数为假时,结果才为假,其余都为真

T  Imp  F

T  Imp  T

F

T

 说明:

   1)若有多个条件时,And必须全部条件为真才为真;Or只要有一个条件为真就为真。

   2)如果逻辑运算符对数值进行运算,则以数字的二进制值逐位进行逻辑运算。And运算常用于屏蔽某些位;Or运算常用于把某些位置1
   
如:12 And 7  表示对11000111进行And运算,得到二进制值100,结果为十进制4

   3)对一个数连续进行两次Xor操作,可恢复原值。在动画设计中,用Xor可恢复原来的背景。

4.表达式

 (1)表达式的组成

     表达式由常量、变量、运算符、函数和圆括号按一定的规则组成,通过运算后有一个结果,运算结果的类型由数据和运算符共同决定。

 (2表达式的书写规则

   1)乘号不能省略
   2)括号必须成对出现,均使用圆括号,可以嵌套,但必须配对。
   3)表达式从左到右在同一基准上书写,无高低、大小之分。
    
例:sqr((3*x+y)-z)/(x*y)^4

 (3)不同数据类型的转换

    操作数的数据类型应该符合要求,不同的数据应该转换成同一类型。在算术运算中,如果操作数的数据精度不同,VB规定运算结果采用精度较高的数据类型。

 (4)优先级

     同一表达式中,不同运算符的优先级是:算术运算符 > 字符运算符 > 关系运算符 > 逻辑运算符

  注意:对于存在多种运算符的表达式,可增加圆括号改变优先级或使表达式更清晰。

2.3  VB的公共函数

1.  数学函数

  VB中常用的数学函数

函数名

功能

示例

结果

Sqrx

求平方根

Sqr9

3

Logx

求自然对数,x>0

Log10

2.3

Expx

求以e为底的幂值,即求ex

Exp3

20.086

Absx

x的绝对值

Abs-2.5

2.5

Hex[$]x

x的十六进制数,返回的是字符型值

Hex[$]28

"1C"

Oct[$]x

x的八进制数,返回的是字符型值

Oct[$]10

"12"

Sgn(x)

x的符号, x>0, 返回1 x=0, 返回0 x<0, 返回-1

Sgn(15)

1

Rnd(x)

产生一个在(01)区间均匀分布的随机数,每次的值都不同;若x=0,则给出的是上一次本函数产生的随机数

Rnd(x)

0-1之间的数

Sin(x)

x的正弦值,x的单位是弧度

Sin(0)

0

Cos(x)

x的余弦值,x的单位是弧度

Cos(1)

0.54

Tan(x)

x的正切值,x的单位是弧度

Tan(1)

1.56

Atn(x)

x的反正切值,x的单位是弧度,函数返回的是弧度值

Atn(1)

0.79