Visual Basic 语 言 程 序 设 计第 3章 VB程序设计的基础.docx
《Visual Basic 语 言 程 序 设 计第 3章 VB程序设计的基础.docx》由会员分享,可在线阅读,更多相关《Visual Basic 语 言 程 序 设 计第 3章 VB程序设计的基础.docx(9页珍藏版)》请在冰豆网上搜索。
VisualBasic语言程序设计第3章VB程序设计的基础
VisualBasic语言程序设计第3章VB程序设计的基础
3.1.1命名规则
–1.命名可以使用的字符
VB6.0中文版使用的字符集包括ASCII码字符:
英文字母、
数字符号、标点符号、空格符、其他可从键盘输入的字符和汉字等。
使用这些字符时,不区分大小写,也不区分字符的全角和半角。
–2.命名不能使用的字符
(1)“+”,,/,,,=”字符不能使用,,+”表示加法运算;
/,表示除法运算;,=”表示赋值等。
(2)关键字不能使用,如Private,Sub,End,Val等。
VisualBasic语言程序设计
3.1.1命名规则
3.命名规则
–VB的代码编写中,离不开对数据、函数、过程、对象等的引用,在引用这些编程元素时,就要给他们起一个名字。
在命名一个编程元素时,要遵循下列命名规则:
(1)名称的第一个字符必须是字母或汉字。
(2)不能在名称中使用空格、句点(.)、感叹号(!
),@,&,$,#等符号已有特殊含义的字符。
(3)不能超过255个字符,控件、窗体、类和模块的名字,不能超过40个字符。
(4)不要与已有的关键字同名,否则,在编程中会出现很多麻烦。
(5)在自定义名称时,除了必须遵循VB的命名规则外,还要使一个名字能反映它所代表的编程元素的意义。
例如,在给命令按钮命名时,在开头用cmd表示它是命令按钮,然后用一个单词来表示它的作用或其他意义。
如,cmdAdd表示加运算,cmdExit表示退出等,在编写程序代码时避免混淆,详细内容可参考MSDNVisualBasic编码约定。
VisualBasic语言程序设计
3.1.2语句及语法规则
一个语句是程序中的语法完整、语义明确的最小单元。
一个语句可以表达一种动作、声明或定义一个类型、变量、常量、过程、函数等。
书写语句时,要遵循以下规则:
–
(1)一个语句常用一个关键字、过程名称或一个变量名开头。
–
(2)空格在语句中起分隔符的作用。
–(3)通常一行写一个语句,也可以在一行中写多个语句,但必须用冒号(,)分开。
语句前可以有空格,左边有空格的语句称为缩进语句,以增加程序的可读性。
如果一行语句的内容很长,表示结束的语句行的最后两个字符必须是续行符(空格加下划线),但总的字符数不能超过255个。
VisualBasic语言程序设计
3.2数据类型
数据是程序的组成部分,也是程序处理的对象,
数据类型体现了数据结构的特点。
VB的数据类型比较丰富,主要可以分为两类:
基本数据类型和用户自定义数据类型。
VisualBasic语言程序设计
3.2.1基本数据类型
VB6.0提供的基本数据类型主要有:
字符型数据、数值型数据、货币类型、字节类型、布尔类型、日期类型、通用类型、无符号类型、对象类型等九种数据类型。
表3.1列出VisualBasic所允许使用的基本数据类型,以及存储空间大小与范围。
VisualBasic语言程序设计
3.2.1基本数据类型
1.字符型数据
–字符型数据(String)用以定义一个字符序列。
在内存中一个字符用一个字节来存放。
2.数值型数据
–数值型数据包括:
整型、长整型、浮点型(单精度和双精度)
四种。
(1)整型数
–整数(Integer):
是不带小数点、范围-32768到32767之间数,在内存中用2个字节(16位)来存储一个整数。
在-32678~32767之间的一个数字在尾部加一个,%”符号也表示一种整型数据,如1345%,-
67%。
VisualBasic语言程序设计
2.数值型数据
(2)长整型数
–长整型数(Long):
是超过-32768~32767范围,而在-
2147483648~2147483647之间的不带小数点的数,一个长整数在内存中占4个字节(32位)。
在-2147483648~2147483647之间的数字在尾部带一个,&”符号,也表示为一个长整数。
(3)浮点数
–单精度数(Single):
是带小数点的实数,有效值为7位。
在内存中用4个字节(32位)存放一个单精度数。
通常以指数形式(科学记数法)来表示,以,E”或,e”表示指数部分。
–双精度数据(Double):
也是带小数点的实数,有效值为15位。
在内存中用8个字节(64位)存放一个双精度数。
双精度数通常以指数形式(科学记数法)来表示,以,D”或,d”表示指数部分。
VisualBasic语言程序设计
3.货币类型
货币类型(Currency):
是为计算货币而设置的定点数据类型,它的精度要求高,规定精确到小数点后4位。
在内存中占8个字节(64位)。
一般的数值型数据在计算机内是通过二进制方式进行运算的,因而有误差,而货币型数据是用十进制方式进行运算的,所以具有比较高的精度,取值范围在-92237203685477.5805到
922337203685477.5807之间。
VisualBasic语言程序设计
4.字节(Byte)类型
字节(Byte)类型:
是一种数值类型,以1个字节的无符号二进制数存储,取值范围为0~255。
VisualBasic语言程序设计
5.布尔类型
布尔类型(Boolean):
布尔型数据是一个逻辑值,也称逻辑类型,用两个字节存储,它只取两种值,即True(真)或False(假)。
VisualBasic语言程序设计
6.日期类型
日期类型(Date):
用以表示日期,在内存中一个日期型数据用8个字节来存放。
VisualBasic语言程序设计
7.通用类型
通用类型(Variant),也称变体类型,是一种通用的、可变的数据类型,它可以表示上述任何一种数据类型。
假设定义a为通用型变量。
–DimaAsVariant
–在变量a中可以存放任何类型的数据,例如:
a=“BASIC”'存放一个字符串
a=10'存放一个整数
a=20.5'存放一个实数
a=“08/15/2003”'存放一个日期型数据
–根据赋给a的值的类型不同,变量a的类型不断变化,这就是称之为变体类型的由来。
当一个变量未定义类型时,VB自动将变量定义为Variant类型。
不同类型的数据在Variant变量中是按其实际类型存放的(例如将一个整数赋给a,在内存区中按整型数方式存放),用户不必作任何转换的工作由VB自动完成。
VisualBasic语言程序设计
8.无符号类型
–无符号类型(Decimal):
变量存储96位(12个字节)无符号的整数形式,并除以一个10的幂数,称为变比因子。
这个变比因子决定了小数点右面的数字位数,其范围从0~28。
当变比因子为0(没有小数位)时,最大的可能值为+/-79228162514
264337593543950335。
而在有28个小数位的情况下,最大值为+/-7.9228162514264337593543950335,而最小的非零值为+/-0.0000000000000000000000001。
–说明:
目前Decimal数据类型只能在变体类型(Variant)中使用,也就是说,不能把一个变量声明为Decimal类型。
VisualBasic语言程序设计
9.对象类型
对象类型(Object):
用来表示图形,OLE对象或其他对象,用4个字节存储。
VisualBasic语言程序设计
3.2.2测试数据类型函数
VB提供一种VarType函数,用来测定一个Varinat变量的实际数据类型。
VarType函数的值是一个数值,其含义如下:
–VarType函数值数值类型
–0空
–1Null
–2整型
–3长整型
–4单精度浮点数
–5双精度浮点数
–6货币型
–7日期型
–8字符串
VisualBasic语言程序设计测试数据类型函数例子:
DimVarlAsVariant
Int1=123456
Long1=9000&
Single1=89.5!
Double1=3.14159
Str1=“abcdefg”
Cur=3000008@
Da=#08/15/2003#
Print
VarType(Var1),VarType(Int1),VarType(Long1),VarType(Single1)
Print
VarType(Strl1),VarType(Cur),VarType(Double1),VarType(Da)
VisualBasic语言程序设计测试数据类型函数例子:
Varl被定义成为Variant型变量,程序中未对它赋值,
其他各变量均未声明为何类型,也一律按Variant型对待。
分别对7个Variant型变量赋值。
然后用VarType函数测试这8个变量的实际类型,可以从输出结果中看到它们的实际数据类型。
运行此段程序,输出结果如下:
–0(未赋值)2(整型)3(长整型)4(单精度型)
–8(字符串型)6(货币型)5(双精度型)7(日期型)
VisualBasic语言程序设计
3.2.3用户自定义类型
有时我们会感到仅有以上基本数据类型是不够的。
我们希望将不同类型的数据组合成一个有机的整体,以便于引用。
这样一个整体是由若干不同类型的、互相有联系的数据项组成。
它类似于C语言中的,结构体,类型的数据。
这种结构我们称为,记录,。
VB提供Type语句,
用户可以自己定义这种数据类型。
VisualBasic语言程序设计
3.2.3用户自定义类型
形式:
–Type数据类型名
–数据类型元素名As类型
–数据类型元素名As类型
–……
–EndType
–功能:
定义一个记录型数据类型。
–例如,我们定义一名为Employee(职工)的类型,其中包括有职工号、姓名、
年龄、电话和住址等信息:
TypeEmployee
EmpNoAsInteger
NameAsString*10
AgeAsInteger
TelAsString*10
AddressAsString*20
EndType
VisualBasic语言程序设计用户自定义类型例子:
这里的Employee是用户定义的类型,它由5个元素组成,EmpNo,Name、
Age,Tel和Addres。
其中EmpNo和Age是整型;Name,Tel和Address定长字符串,Name和Tel由10个字符组成,Address由20个字符组成。
在定义了Employee类型之后,我们就可定义Employee类型的变量了,例如定义一个Emp的变量:
DimEmpAsEmployee
–此语句定义了Employee类型的变量Emp,它包括有5个成员。
在后面的程序中我们可以用,变量,元素,这样的形式来引用各个成员,如下面这样:
–Emp.EmpNo表示Emp变量中的EmpNo成员的值(某一职工的职工号)
–Emp.Name表示Emp变量中的Name成员的值(某一职工的名字)
–Emp.Age表示Emp变量中的Age成员的值(某一职工的年龄)
–Emp.Tel表示Emp变量中的Tel成员的值(某一职工的电话)
–Emp.Address表示Emp变量中的Address成员的值(某一职工的地址)
VisualBasic语言程序设计说明:
(1)记录类型中的元素可以是字符串,但必须是定长字符串。
(2)记录类型的定义必须放标准模块(.BAS)和窗体模块的声明部分,当在标准模块中定义时,关键字Type前可以有Public(默认);而如果在窗体模块中定义,则必须在前面加上关键字Private。
(3)在记录类型中不能含有数组。
(4)在随机文件操作中,记录类型数据有着重要的作用。
VisualBasic语言程序设计
3.3常量与变量
在程序中,不同类型的数据既可以以常量的形式出现,也可以以变量的形式出现。
常量在程序执行期间其值是不能发生变化的,而变量形式的值是可以变化的,它代表内存中指定的存储单元。
VisualBasic语言程序设计
3.3.1常量
常量是指在程序运行过程中始终保持不变的数据。
VB有两种常量:
一种是文字常量,一种是符号常量。
–1.文字常量
文字常量分为:
数值常量、字符串常量、逻辑常量、日期常量。
(1)数值常量
–数值常量有:
字节型数、整型数、长整型数、定点数及浮点数。
–①字节型数、整型数、长整型数都是整型量,可以使用三种整型量:
十进制整数、十六进制整数、八进制整数,只要是在该类型数合法范围之内。
–十进制数按常用的方法来表示,十六进制数前加,&H”,八进制数前加
&O”。
VisualBasic语言程序设计例如:
–1200'十进制数1200
–&H333'十六进制数333&O555'
八进制数555
–②定点数是正数的或负数的带小数点的数,如,323.43,-
456.78。
–③浮点数分为单精度和双精度数。
浮点数由尾数、指数符号和指数三部分组成。
尾数是实数;指数符号是E(单精度)或D(双精度);
指数是整数。
指数符号E和D的含义为:
乘上10的幂次。
例如,12.345E-6和78D3所表示的值分别为0.000012345和78000。
定点数和浮点数可以是单精度的,也可以是双精度的。
单精度数保留7位有效数字,双精度数保留15位或者16位有效数字。
VisualBasic语言程序设计
1.文字常量
(2)字符串常量
–字符串是双引号括起来的一串字符(也可以是汉字)。
其长度不超过32767个字符(一个汉字占两个字节)。
下面是合法的字符串及它的长度:
"abcdef",长度为6个字符。
"VB中文版",长度为5个字符。
(3)逻辑常量
–逻辑常量只有两个:
逻辑真True和逻辑假False。
(4)日期常量
–格式,#mm-dd-yy#
–例如,#09-01-03#'表示2003年9月1日
VisualBasic语言程序设计
2.符号常量
符号常量是用一个符号名来代替数值和字符串。
符号名规定是,40个字符以内,第一个必须是字母,其后可以由字母、数字和下划线组成,
其中不区分大小写。
符号常量要先定义,后使用。
定义符号常量的一般格式为:
–格式:
[Global]Const〈符号常量名〉=〈表达式〉[,〈符号常量名〉=〈表达式〉…]功能:
设置符号常量为表达式的值。
VisualBasic语言程序设计
2.符号常量
说明,Global(全局的)项选择时,表示在整个程序中都可以使用常量。
其中表达式由文字常量、算术运算符(除乘方运算符^以外)、逻辑运算符组成,也可以使用字符串。
表达式不能使用字符串连接运算和用户定义的函数或内部函数。
例如:
–ConstI%=2,J&=3'定义一个整型、一个长整型符号常量
–Conststr="srting"'定义一个串常量
–Constpie=3.1415926'定义一个单精度常量
–Constdupie=2*pie'定义一个单精度常量
–可以在任何用表达式的地方使用符号常量。
有时使用符号常量比使用变量更方便。
符号常量的特点如下:
符号常量在整个模块中只需要定义一次。
符号常量定义后其值能被改变。
在独立的程序中,使用符号常量比使用变量能产生更有效的代码。
使用常量便于程序的修改。
VisualBasic语言程序设计
3.3.2变量
变量是指在程序运行中,其值可以发生改变的数据。
–1.变量名的命名
变量名的命名规则是,255个字符以内,第一个字符是字母,其后可以是字母、数字和下划线的组合,最后一个字符也可以是类型说明符。
通常使用具有一定含义的变量名,
可以帮助说明功能,简化调试过程。
保留字不能作为变量名。
VisualBasic语言程序设计
2.变量类型与定义
VB中变量都属于一定的数据类型,包括基本数据类型和用户定义数据类型。
在VB中,可以用下面几种方式来规定变量的类型:
–
(1)用类型说明符来标识
–把类型说明符放在变量的尾部,来说明变量的不同类型,类型说明如下:
%表示整型
&表示长整型
!
表示单精度型
#表示双精度型
@表示通用型
$表示字符型
VisualBasic语言程序设计
2.变量类型与定义
(2)在定义变量时指定其类型
在使用变量前,可以用下列格式来说明其类型和作用域:
–〈说明关键字〉〈变量〉As〈类型〉
–其中关键字为下列之一:
Dim在模块、窗体的过程(子程序)中,说明变量或数组,但不能在过程中说明数组。
Static在过程中,说明静态变量。
每次调用过程时,用
Static语句说明的变量值将保留。
ReDim在过程、函数中说明动态数组及重新分配数组空间。
用Global或Dim定义动态数组后,再用ReDim语句说明数组的大小。
Global在模块中定义全局变量。
VisualBasic语言程序设计
2.变量类型与定义
类型为前面所讲的数据类型之一(如Integer等)。
例如:
–DimaAsInteger'说明a为整型变量
–DimbAsString'说明b为可变长字符型变量
–DimcAsString*10'说明c为长度是10个字符的固定长字符型变量
–Dimd(10)AsInteger'说明d为一维整型数组
–Dime()AsSingle'说明e为动态单精度变量
–StaticfAsInteger'说明f为静态整型变量
–ReDime(10)AsSingle'说明e为一维单精度数组
–GlobalhAsInteger'说明h为全局整型变量
VisualBasic语言程序设计
2.变量类型与定义
(3)用DefType语句定义
–格式:
Defint字母范围定义整型
DefLnt字母范围定义长整型
DefSng字母范围定义单精度型
DefDbl字母范围定义双清度型
DefCur字母范围定义通用型
DefStr字母范围定义字符型
DefBool字母范围定义布尔型
DefByte字母范围定义字节型
DefDate字母范围定义日期型
DefVar字母范围定义不定型
DefObj字母范围定义对象型
功能:
定义以字母开头的变量类型。
VisualBasic语言程序设计
2.变量类型与定义
例如:
–Definta-d'所有以a,b,c,d字母开头的都是整型变量
–DefStrf-j'所有以f,g,h,i、
j字母开头的都是字符型变量3.记录类型变量
自定义类型允许用户建立结构类型,缺省类型允许用户定义缺省类型。
VisualBasic语言程序设计
2.变量类型与定义
格式:
–[Private]TypeTypeDemo
–成员名1As类型
–成员名2As类型
–…
–EndType
功能:
在全局模块中或在窗体中定义结构类型。
VisualBasic语言程序设计
2.变量类型与定义
说明:
–
(1)结构类型所占存储空间是其中所有成员的长度之和。
–
(2)如果有Private可选项,是在窗体中定义的结构体类型。
–定义结构变量:
–格式,Dim|Static结构变量AsTypeDemo
–引用结构变量的成员:
VisualBasic语言程序设计
2.变量类型与定义
格式,结构变量名,成员名
例如:
–TypeTypeDemo'在全局模块中定义结构类型。
–N1AsDouble
–N2AsInteger
–N3AsString*10
–EndType
–StaticXAsTypeDemo
引用变量的成员:
–X.N1
–X.N2
–X.N3
VisualBasic语言程序设计
3.3.3变量的作用域
变量的作用域,就是变量作用的有效范围。
VB中变量有如下几种有效范围:
局部变量、全局变量、窗体变量和模块变量。
–1.局部变量
在过程或函数中使用的变量是局部变量。
不同的过程或函数使用的局部变量名可以相同,但它们之间互不影响。
–2.全局变量
全局变量是在应用程序中其值不被重新设置的变量。
全局变量只能在全局模块中用Public进行说明。
–3.窗体变量和模块变量
窗体变量是从属于同一窗体的不同过程使用的变量,定义在该窗体代码的前面。
模块变量是模块中所有过程都可以使用的变量,它定义在模块代码的前面。
VisualBasic语言程序设计
3.3.4变量作用域的关系
变量作用域的关系如3.1所示。
–VB应用程序
–窗体模块
–声明部分通用过程事件过程
–标准模块声明部分
–通用过程
VisualBasic语言程序设计
3.4常用函数
函数是任何一种语言必不可少的部分,VB的函数十分丰富,本节只介绍一些常用的函数,及内部函数和字符串函数。
3.4.1内部函数
–VB提供了大量的内部函数。
在这些函数中,有些是通用的,有些与某些操作有关。
大体上可分为5类:
转换函数、数学函数、日期函数、时间函数和随机函数。
表3.2列出了VisualBasic中的部分函数。