《Visual_Basic程序设计基础_第5章__数_据课件》由会员分享,可在线阅读,更多相关《Visual_Basic程序设计基础_第5章__数_据课件(63页珍藏版)》请在金锄头文库上搜索。
1、第5章 数 据,5.1 数据的类型 5.2 变量与常量 5.3 运算符和表达式 5.4 常用内部函数,5.1 数据的类型,5.1.1 数据的基本类型 1字符串型 字符串由一连串的字符组成,一个字符串的前后必须用 括起来,且必须是英文状态的双引号,如深圳职业技术学院、Hellow、306。,2数值型 Visual Basic在表示数值型数据方面,以不违背数学的习惯为原则,大部分的表示跟数学的惯例相同,只是根据精度、存储空间的不同要求划分成以下几种不同的类型。 (1)整数类型 (2)长整类型 (3)单精度类型 (4)双精度类型,3日期型 用来表示某一天的日期值。日期型数必须写在两个“#”号之间,如
2、#03/08/23#,#December25,2001 10:25AM#。 4布尔型 5货币型 6字节型 7变体(Variant)型,5.1.2 用户定义的数据类型 以上介绍的各种数据类型由系统设定,包括数据类型的名称(如Integer、String等)、声明符、所占内存等不允许用户更改,称之为基本数据类型,是Visual Basic 6.0中数据结构的基本单元。,1记录类型的定义 使用关键字“Type”定义记录类型,方法如下: Private|PublicType 数据类型名 As As As End Type,其中的为基本数据类型,如Integer、String,定义记录类型其实质就是定义
3、一组简单变量集,再用一个名称表示(数据类型名),这种方法在某些语言中(如C语言)被称为结构定义。其中域名的引用与控件对象的属性一样,表示为:,. 实际中使用记录类型数据时须分步进行。 第一步:定义数据类型, 第二步:定义变量, 第三步:引用变量的域名。,2枚举类型 使用关键字Enum来定义枚举类型,方法如下: Enum 数据类型名 = = End Enum,其中的整型常数表达式可缺省,缺省时,第一个域名取值从0开始,其余域名依次取1,2,3,枚举类型其实质就是定义一组符号常量集,并用一个名称表示该集合。,5.2 变量与常量,程序中处理的数据必须首先存放在存储介质中,即占据一定的存储单位。给每一
4、个存储单位指定特定的名字,通过引用存储单位的名字来操作其中的数据,这些存储单位及其名字通常称为变量或者常量。,5.2.1 变量 变量是指存储器中有着特定名称的存储单位,其特点就是存放在其中的数据值可任意改变。 变量的作用其实类似于日常生活中使用的各种储值卡,如电话IC卡、银行卡等,在程序中调用变量名时就是引用变量中存储的值。,5.2.2 变量的命名规则 所谓变量名,就是存储单位的名称,由用户任意指定。用户给变量取名时必须遵循一定的规则,这就是变量的命名规则,有以下几条。,(1)变量名只能由西文字母、汉字、数字及下划线组成。 (2)变量名必须以西文字母或汉字开头,最后一个符号可以是类型说明符。
5、(3)变量名长度可达255个字符,有效字符为40个。 (4)变量名不能为Visual Basic中的保留字。,5.2.3 变量的声明 变量的声明是指在使用变量之前对变量的名称及其类型加以定义。 1基本类型的变量声明语句 在Visual Basic中,变量的声明语句有Dim 、Static、Redim、Private以及Public。不同的声明语句用于声明不同作用范围的变量。,要点提示: (1)Dim语句一般放在程序的最前面,也可放在程序的其他位置。不能在Dim语句中给变量赋值,如 Dim var1 = 123 是错误的。,(2)在Dim语句中可使用类型声明符,各类型的声明符见表5-1,列举如下
6、: 整型 & 长整型 ! 单精度浮点型 # 双精度浮点型 货币型 $ 字符串型 其他类型无类型声明符。,(2)Static语句:Static也是用于在过程中定义变量,但其定义的变量称为静态变量。与Dim语句的主要区别在于:当重复运行包含Dim 或Static语句的程序时,每次执行Dim语句,其所定义的变量都被重新设置(清空或置零),而每次执行static语句时,其所定义的变量保留上次的结果。下面以实例来说明二者的区别。,(3)DefType语句:DefType语句用来指定一定字母范围内的变量,其中Def为保留字,Type为类型标志,各种类型标志为: Int整型 Lng长整型 Sng单精度型,D
7、bl双精度型 Cur货币型 Str字符串型 Byte字节型 Bool布尔型 Date日期型 Obj对象型 Var变体型,具体用法如下: DefInt b-h 定义凡以字母b,c,d,e,f,g,h开头的变量名均为整型 DefDbl t-x 定义凡以字母t,u,v,w,x开头的变量名均为双精度型 2记录类型变量的声明,例5.3 记录型数据的定义和使用。 操作步骤如下。 (1)首先在通用对象的声明区内用TypeEnd Type定义类型名,定义了名为Student的类型。 (2)在窗体的单击事件中用Dim语句声明变量someone,类型为Student。 (3)最后引用变量的域名,someone.n
8、ame、someone.age等。,3强制变量声明设置 关于变量的声明需要说明:是否所有的变量都需要声明;何时不需声明,何时必须声明。在Visual Basic中集中了编译型语言和解释型语言两种对变量声明的限制,编程者可通过设置来选择是否要求强制检查变量类型。,在简单的程序中,为了方便起见,编程者一般习惯于选择不强制要求声明变量,即变量不声明直接使用,在这种情况下变量的类型取决于所赋值的类型,如下代码中,在没有声明变量x的情况下,x的类型会发生变化。 Private Sub Form_Click() x = 3 x的类型为整型 x = a x的类型为字符型 End Sub,虽然不声明变量而直接
9、使用似乎很方便,但是在较复杂的程序里,这样做是危险的。有时给同一个变量赋予了不同的类型,会导致程序出现错误的结果,所以在复杂的程序中最好是选择强制要求变量声明。,例5.4 如图5-6、图5-7所示均为Form_Click()事件,代码完全一样,但运行后结果却不一样。这表明:在图5-6所示的环境下(在窗体声明部分内有Option Explicit语句),变量必须声明才可使用,而在图5-7所示的环境下变量不须声明也可使用。,4变量的作用域 变量的作用域是以程序代码范围来划分的,在弄清变量作用域之前首先须弄清代码范围的划分。 (1)代码范围:按由小到大的顺序可将代码范围分为: 过程范围、模块范围及全
10、局范围。,全局范围指整个工程,一个工程可包含多个模块(有窗体模块、标准模块和类模块),一个模块可包含多个过程。 结论:一个工程可包含多个模块,任一个模块可包含多个过程。,(2)变量的作用域:依据代码的范围将变量的作用域分为过程级变量、模块级变量和全局变量 过程级变量:在某个过程中定义的变量。其特点是只在其定义变量的过程中有效,当过程代码执行完时,变量立即从内存中释放掉。,结论:在某个过程中定义的变量只在该过程中有效。过程变量的意义在于使整个工程在运行过程中不致于有过多的变量占据在内存中而导致一些不必要的麻烦与混乱。, 模块级变量:在模块的通用对象声明区中声明的变量。其特点是在所定义的模块的各个
11、过程中有效,当结束模块的运行后被释放。由Dim和Private在模块的窗体声明部分进行声明。 结论:在窗体声明部分中声明的变量,在模块中的所有过程有效。模块变量的意义在于使模块中的不同过程共享变量值来满足一些实际应用的需要。, 全局变量:全局变量是指在整个工程的任何模块中都有效的变量。只能在标准模块文件(.bas)的声明部分由Public或Global语句进行声明,一般在较大的工程项目中采用,本书不作详述。,5.2.4 变量的赋值 1赋值语句 赋值语句格式: = 赋值语句的作用是将表达式的值存入到变量中。 表达式:指由运算符(如“+、*、/”等)连接各种运算元素(常量、变量及函数等)组成的有意
12、义的式子。表达式一定有确切值,如3+5、I+1为有意义表达式,而5 / 0、2* sqr(4) 等则是无意义表达式。,下列为各种赋值语句: TestDate = #1/1/2002# 日期型数的赋值 A = Visual Basic 字符型数的赋值 Ib_chang = true 逻辑型数的赋值 x = 25& 长整型数的赋值,要点提示: 赋值语句在形式上与数学中的等式相似,但本质上却完全不同,这一点往往给初学者带来一定的麻烦,符号“=”在这里不是“等号”,而是赋值符。在数学中,类似y = y + 5 这样的式子是错误的,而在计算机程序中是一种被广泛使用的赋值形式。,2变量的当前值 程序开始执
13、行后,程序中的语句按流程的规定被逐句执行,各变量中的值将随着语句的执行发生变化,即在流程的不同点上各变量中的值不同,在某一点上变量中的值称为变量的当前值。,5.2.5 常量 常量是指在程序的执行过程中不变的量,分为文字常量和符号常量。 (1)文字常量:如123、“Visual Basic”、True、#02/03/2004#等,是一种直接用数来表示的常量。符号常量则是用某种符号间接表示的常量。,(2)符号常量:与变量类似,符号常量也是在存储器中定义存储单位,用来存储数值,所不同的是其值在程序执行过程中不允许改变。符号常量又分为系统常量和用户定义常量。, 用户自定义常量。用户定义常量由Const
14、语句来定义,如: Const pi = 3.14159 语句功能:在存储器中指定一个存储单位,命名为pi,其中存储的值为3.14159,如图5-15所示。, 系统预定义常量。Visual Basic中提供了数以百计的系统常量,这些常量的值由系统设置,用户可直接使用。,5.3 运算符和表达式,5.3.1 运算符 所谓运算符是指能够对运算数发生某种作用并得到另一结果数的符号,如上述的“+”、“=”等均为运算符。在Visual Basic中运算符分为4种:算术运算符、字符运算符、关系运算符和逻辑运算符。,1算术运算符 表5-2为算术运算符,算术运算符连接的数为数值型数,运算结果也为数值型数。,要点提
15、示: 算术运算符的操作数一般为数值型数,如果包含用数字表示的字符型数,则系统自动将其转换为数值型再计算,如“4”+5结果为9,如果包含非数字字符,如“a”+5,则是错误的表达式。,2字符运算符 表5-3为字符运算符。字符运算符连接的数为字符型数,运算结果也为字符型数。,要点提示: & 和 + 均为字符串连接符,在实际使用时,字符串的连接多用&,主要是因为 + 有两种功能,而且Visual Basic对表达式中不同类型的数据有自动转换功能,为了避免出错,最好用&作字符串连接运算。如果用&连接的数据中有数值型数,则自动转换为字符型。如4&5结果为4 5。,3关系运算符 表5-4为关系运算符。关系运
16、算符连接的数可为数值型、字符型及日期型等多种类型的数,但运算的结果只能是逻辑型。,4逻辑运算符 逻辑运算的对象和结果都是逻辑量 。 逻辑运算符有Not、And、Or、Xor、Equ和Imp几种,除Not为一个运算对象外,其余的都必须有两个运算对象。,5.3.2 表达式 (1)数值表达式:由数值型数和算术运算符组成的式子,表达式的值为数值型数,如100 10 Mod (3*2),结果为:4。 (2)字符表达式:由字符连接符和字符型数组成的式子,表达式的值为字符型数,如Visual & BASIC &6.0 结果为Visual BASIC 6.0。,(3)布尔表达式:包含关系运算符和逻辑运算符的式子,表达式的值为逻辑型数,如Not (2030) And (ABC 488) 结果为 True。 布尔表达式是一种综合型表达式,可包含算术运算符、字符连接符、关系运算符及逻辑运算符,运算元素可以为数值型、字符型、日期型和逻辑型,各种运算符的运算顺序是:,5.4 常用内部函数,在计算机程序语言中,为了免去人们重复编写常用函数程序的麻烦,