1、第第3章章 常量与变量常量与变量第3章 常量与变量 1.1.理解变量与常量的概念、掌握其定义和使用;理解变量与常量的概念、掌握其定义和使用;2.2.掌握各种常用数据类型的数据定义和使用掌握各种常用数据类型的数据定义和使用3.3.掌握各种运算符、表达式的使用方法掌握各种运算符、表达式的使用方法4.4.掌握常用内部函数的使用掌握常用内部函数的使用 教学目的和要求:教学目的和要求:3.1 数据类型3.1.1 标准数据类型标准数据类型类 型名 称存储空间表数范围 整型Integer2B2B-3276832767-3276832767 长整型 Long4B4B小数部分四舍小数部分四舍五入五入 单精度浮点
2、型 Single4B4B 双精度浮点型 Double8B8B 字节型 Byte1B1B02550255 货币型 Currency8B8B3.1 数据类型类 型名 称存储空间表数范围变长字符串String字符串长度0约20亿定长字符串String*sizesizesize165535B布尔型Boolean2B2BTrue False日期型 Data8B8B1001.1.19999.12.31对象型Object4B4B 可变类型Variant16B16B3.1.2 自定义类型自定义类型 在模块级别中使用,用于定义包含一个或多个在模块级别中使用,用于定义包含一个或多个元素的用户自定义的数据类型。元素
3、的用户自定义的数据类型。使用形式:使用形式:Type 自定义类型名自定义类型名 元素名元素名(下标下标)As 类型名类型名 元素名元素名(下标下标)As 类型名类型名 .End Type说明说明:放到文件一章讲放到文件一章讲 3.1 数据类型 Type Student Xh As String Xm As String Xb As String Nl As Integer Score As Single End Type 例如例如:对于一个学生的对于一个学生的“学号学号”、“姓名姓名”、“性性别别”、“年龄年龄”、“入学成绩入学成绩”等数据,为了处理数据等数据,为了处理数据的方便,常常需要把这
4、些数据定义成一个新的数据类型的方便,常常需要把这些数据定义成一个新的数据类型(如(如Student类型)。类型)。3.1 数据类型3.2 3.2 常常 量量 在程序运行过程中,其值不能被改变的量称为常量。在在程序运行过程中,其值不能被改变的量称为常量。在VB中有三类常量:中有三类常量:普通常量普通常量 符号常量符号常量 系统常量系统常量。3.2.1 普通常量普通常量 1 整型常量整型常量 (1)整型()整型(Integer):表示):表示-32768至至32767之间的整数之间的整数 例如:例如:10 110%20 (2)长整型()长整型(Long):):表示表示-2,147,483,648至
5、至2,147,483,647之间的整数之间的整数 例如:长整型常数的书写:例如:长整型常数的书写:23&整型常数有如下三种形式:整型常数有如下三种形式:1)十进制整数。)十进制整数。如如125,0,-89,202)八进制整数)八进制整数。以以&或或&O(字母(字母O)开头)开头如如&O25 (25)8,等于十进制数,等于十进制数21。3)十六进制。)十六进制。以以&H开头开头,如,如&H25,即,即(25)16,等于,等于十进制数十进制数37。VB中的颜色数据常常用十六进制整数表示。中的颜色数据常常用十六进制整数表示。3.2 3.2 常量常量 下列属于Visual Basic的合法常量的是()
6、(A)-&Haabb&(B)&O-577 (C)&h-9AF (D)-&O973&A2.实数实数1)单精度实型()单精度实型(Single):有效数为:有效数为7位位2)双精度实型()双精度实型(Double):有效数为:有效数为15位位常量的表示:常量的表示:1)十进制小数形式。)十进制小数形式。它是由正负号(它是由正负号(+,-)、数字)、数字(09)和小数点()和小数点(.)或类型符号(!、)或类型符号(!、#)组成,即)组成,即n.n,n!或!或n#,其中,其中n是是09的数字。的数字。例如例如0.123、.123、123.0、123!、!、123#等等2)指数形式。)指数形式。nEm
7、 或或 n.nEm,nDm 或或 n.nDm 例:例:1.25E+3 和和 1.25D+3相当于相当于1250.0 或者或者1.25103。3.2 3.2 常量常量 下列不属于Visual Basic的合法常量的是()(A)1234&(B)98!(C)34 (D)11.12%D下列属于Visual Basic的合法常量的是()(A)10E-2 (B)E-2 (C)10e (D)10*E-2A3.字符串常量字符串常量在在VB中字符串常量是用双引号中字符串常量是用双引号“”括起的一串字符,可以括起的一串字符,可以是所有西文字符和汉字、标点符号等;是所有西文字符和汉字、标点符号等;例如例如ABC,a
8、bcdefg,123,0,VB程序设计程序设计等。等。说明:说明:(1)表示空字符串,而表示空字符串,而 表示有一个空格的字符串;表示有一个空格的字符串;(2)若字符串中有双引号,例如)若字符串中有双引号,例如ABDXYZ,则用连续两,则用连续两个双引号表示,即:个双引号表示,即:ABDXYZ4.逻辑(逻辑(Boolean)数据类型)数据类型 只有两个值只有两个值True,或,或False。将逻辑数据转换成整型时:。将逻辑数据转换成整型时:True为为-1,False为为0;其它数据转换成逻辑数据时:;其它数据转换成逻辑数据时:非非0为为True,0为为False。3.2 3.2 常量常量 5
9、.日期常量日期常量 日期(日期(Date)型数据按)型数据按8字节的浮点数来存储,表示日期范字节的浮点数来存储,表示日期范围从公元围从公元100年年1月月1日日9999年年12月月31日,而时间范围从日,而时间范围从0:00:0023:59:59。一种在字面上可被认作日期和时间的字符,只要用号码符一种在字面上可被认作日期和时间的字符,只要用号码符“#”括起来,都可以作为日期型数值常量。括起来,都可以作为日期型数值常量。例:例:#09/02/99#、#January 4,1989#,#2002-5-4 14:30:00 PM#都都是合法的日期型常量。是合法的日期型常量。3.2 3.2 常量常量
10、3.2.2 3.2.2 符号常量符号常量 在程序中,某个常量多次被使用,则可以使用一个符号在程序中,某个常量多次被使用,则可以使用一个符号来代替该常量,这样不仅在书写上方便,而且有效地改进了来代替该常量,这样不仅在书写上方便,而且有效地改进了程序的可读性和可维护性。程序的可读性和可维护性。VB中使用关键字中使用关键字Const 声明符号常量。其格式如下:声明符号常量。其格式如下:Const 常量名常量名 As 类型类型=常数表达式常数表达式 或:或:Const 类型符号类型符号=常数表达式常数表达式例如:例如:Const PI As Double=3.1415926535 等价于:等价于:Co
11、nst PI#=3.14159265353.2 3.2 常量常量 例如,要将文本框例如,要将文本框Text1的前景颜色设置为红色,可以的前景颜色设置为红色,可以使用下面的语句:使用下面的语句:Text1.ForeColor=vbRed 这里的这里的vbRed就是系统常量。这比直接使用就是系统常量。这比直接使用16进制数来进制数来设置要直观得多。设置要直观得多。3.2.3 3.2.3 系统常量系统常量 VB系统提供的应用程序和控件的系统定义常数。系统提供的应用程序和控件的系统定义常数。它们它们存放于系统的对象库中,在存放于系统的对象库中,在“对象浏览器对象浏览器”中的中的 Visual Basi
12、c(VB)和和 Visual Basic for applications(VBA)对象)对象库中列举了库中列举了 Visual Basic 的常数的常数 3.2 3.2 常量常量 3.3.1 变量的命名规则变量的命名规则 1.以字母或汉字开头以字母或汉字开头,后可跟字母、数字或下划线组成,后可跟字母、数字或下划线组成.2.变量名最长为变量名最长为255个字符;个字符;3.VB中不区分变量名的大小写,不能使用中不区分变量名的大小写,不能使用VB的关键字;的关键字;4.字符之间必须并排书写,不能出现上下标字符之间必须并排书写,不能出现上下标以下以下标识标识符是合法的变量名:符是合法的变量名:a,
13、x,x3,BOOK_1,sum5 以下标识符是非法的:以下标识符是非法的:3s 以数字开头以数字开头 s*T 出现非法字符出现非法字符*-3x 以减号开头以减号开头 bowy-1 出现非法字符出现非法字符-(减号减号)if 使用了使用了VB的关键字的关键字 3.3 3.3 变变 量量 下列符号中能作为Visual Basic变量名的是()(A)姓名 Name1 (B)123_Abc (C)Dept_Name (D)Stu.ClassC3.3.2 变量声明变量声明 1.用用Dim语句显式声明变量语句显式声明变量 形式:形式:Dim 变量名变量名 AS 类型类型 Dim 变量名变量名类型符类型符
14、例:例:Dim ab As integer,sum As single 等价于等价于 Dim ab%,sum!3.3 3.3 变量变量设有语句Dim x,y As Single,z%则变量x,y和z的数据类型分别为:、变体类型单精度类型整型例例3.1 下面是一个很简单的程序,其使用的变量下面是一个很简单的程序,其使用的变量a,b,a,b,TotalTotal都没有事先定义。都没有事先定义。Private Sub Form_Click()Total=0 a=10:b=20 Total=a+b Print Total=;TotalEnd Sub2.隐式声明隐式声明 Visual Basic允许用户
15、在编写应用程序时,不声明变量而允许用户在编写应用程序时,不声明变量而直接使用,系统临时为新变量分配存储空间并使用,这就是隐直接使用,系统临时为新变量分配存储空间并使用,这就是隐式声明。所有隐式声明的变量都是式声明。所有隐式声明的变量都是Variant数据类型数据类型。Visual Basic根据程序中赋予变量的值来自动调整变量的类型。根据程序中赋予变量的值来自动调整变量的类型。例如:例如:3.3 3.3 变量变量3强制显式声明强制显式声明Option Explicit语句语句 良好的编程习惯都应该是良好的编程习惯都应该是“先声明变量,后使用变量先声明变量,后使用变量”,这样做可以提高程序的效率
16、,同时也使程序易于调试。这样做可以提高程序的效率,同时也使程序易于调试。Visual Basic 中可以强制显式声明,可以在窗体模块、标准中可以强制显式声明,可以在窗体模块、标准模块和类模块的通用声明段中加入语句模块和类模块的通用声明段中加入语句:Option Explicit3.3 3.3 变量变量4变量的默认值变量的默认值 当执行变量的声明语句后,当执行变量的声明语句后,Visual Basic系统就给变量赋系统就给变量赋值一个默认值,在变量首次赋值之前,一直保持这个默认值。值一个默认值,在变量首次赋值之前,一直保持这个默认值。对于不同类型的变量对于不同类型的变量 3.3 3.3 变量变量
17、设有语句Dim a As Double,b As Boolean,d As Date,s1 As String,s2 As String*3 则未给这些变量赋值前,它们的值分别是:、0False0:00:00 3.4 3.4 运算符和表达式运算符和表达式3.4.1 算术运算符与算术表达式算术运算符与算术表达式样 例:5+10 mod 10 9/3+2 2 结果:103.4 3.4 运算符和表达式运算符和表达式例:输入一个例:输入一个3位整数,分别输出其百位数字,十位数字,位整数,分别输出其百位数字,十位数字,个位数字。(个位数字。(bct3-1)Private Sub Command1_Cli
18、ck()Dim x As Integer,one%,ten%,hundread%x=Val(Text1)one=x Mod 10 个位数个位数 ten=(x 10)Mod 10 十位数十位数 hundread=x 100 百位数百位数 Print 百位数百位数:&hundread&十位数十位数:&ten&个位数个位数:&oneEnd Sub3.4.2 字符串运算符与字符串表达式字符串运算符与字符串表达式 字符串运算符有:字符串运算符有:、+。功能是字符串连接功能是字符串连接例如:例如:ABCD+EFGHI 结果为:结果为:ABCDEFGHI“VB”&“程序设计教程程序设计教程”结果为:结果为:
19、VB程序设计教程序设计教程程说明:当连接符两旁的操作量都为字符串时,上述两个连接说明:当连接符两旁的操作量都为字符串时,上述两个连接符等价。它们区别是:符等价。它们区别是:+(连接运算)(连接运算):两个操作数均应为字符串类型;:两个操作数均应为字符串类型;&(连接运算)(连接运算):两个操作数既可为字符型也可为数值型,:两个操作数既可为字符型也可为数值型,当是数值型时,系统自动先将其转换为数字字符,然后进当是数值型时,系统自动先将其转换为数字字符,然后进行连接操作。行连接操作。3.4 运算符和表达式运算符和表达式例:例:“100”+123 “100”+123 结果为结果为 223 223“1
20、00”+“123”“100”+“123”结果为结果为 100123 100123 Abc +123 Abc +123 出错出错100&123 100&123 结果为结果为 100123 100123 100&123 100&123 结果为结果为 100123 100123 Abc&123 Abc&123 结果为结果为 Abc123 Abc123 Abc“&123 Abc“&123 结果为结果为 Abc123 Abc123 注意:使用运算符注意:使用运算符“&”时,时,变量与运算符变量与运算符“&”之间应之间应加一个空格加一个空格。这是因为符号。这是因为符号“&”还是长整型的类型定义符,还是长整
21、型的类型定义符,如果变量与符号如果变量与符号“&”接在一起,接在一起,VB系统先把它作为类型定系统先把它作为类型定义符处理,因而就会出现语法错误。义符处理,因而就会出现语法错误。3.4 运算符和表达式运算符和表达式3.4.3 关系运算符与关系表达式关系运算符与关系表达式 比较两个运算量之间的关系,关系表达式的运算结果为逻辑量。比较两个运算量之间的关系,关系表达式的运算结果为逻辑量。若若关系成立,结果为关系成立,结果为True,若关系不成立,结果为若关系不成立,结果为False。VB中的关系运算符如下表所示。中的关系运算符如下表所示。运算符运算符含义含义优先级实例结果小于小于所有关系运算所有关系
22、运算优先级相同。优先级相同。低于算术运算低于算术运算的加的加“+”,减减“-”运算,运算,高于逻辑非高于逻辑非“Not”运算。运算。15+1020False=小于或等于小于或等于10大于大于1020False=大于或等于大于或等于This=ThatTrue=等于等于This=ThatFalse不等于不等于This ThatTrueLike字符串匹配字符串匹配This Like*isTrueIs对象比较对象比较 3.4 运算符和表达式运算符和表达式关系运算的规则如下:关系运算的规则如下:(1 1)当两个操作式均为数值型,按数值大小比较。)当两个操作式均为数值型,按数值大小比较。(2)字符串比较)
23、字符串比较,则按字符的则按字符的ASCII码值从左到右一一比较码值从左到右一一比较,直到出现不同的字符为止直到出现不同的字符为止.。例:例:ABCDE ABRA 结果为结果为 False (3)数值型与可转换为数值型的数据比较,)数值型与可转换为数值型的数据比较,如:如:29189,按数值比较,结果为,按数值比较,结果为False。(4)数值型与不能转换成数值型的字符型比较,)数值型与不能转换成数值型的字符型比较,如:如:77 sdcd,不能比较,系统出错。,不能比较,系统出错。3.4 运算符和表达式运算符和表达式常见的字符值的大小比较关系:“空格”“0”“9”“A”“Z”“a”“z”“所有汉
24、字”3.4.4 逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式 逻辑运算符:逻辑运算符:Not,And,Or Xor Eqv Imp 3.4 运算符和表达式运算符和表达式说说 明明:(1)Not,And,Or Xor Eqv Imp优先级优先级从高到低从高到低,且都且都低于关系运算符低于关系运算符(2)VB中常用的逻辑运算符是中常用的逻辑运算符是Not、And和和Or。它们用于将。它们用于将多个关系表达式进行逻辑判断。多个关系表达式进行逻辑判断。例如:例如:数学上表示某个数在某个区域时用表达式:数学上表示某个数在某个区域时用表达式:10X=10 And X20 如果写成如下形式将是错误的:如果写
25、成如下形式将是错误的:10=x20 或或 10=x Or x20 3.4 运算符和表达式运算符和表达式例:用人单位招聘秘书:年龄小于例:用人单位招聘秘书:年龄小于40岁,女性,学历专科或本岁,女性,学历专科或本科科 写成条件写成条件VB的表达式:的表达式:年龄年龄=字符运算符字符运算符关系运算符关系运算符逻辑运算逻辑运算 说明:说明:1当一个表达式中出现多种运算符时,首先进行算术运当一个表达式中出现多种运算符时,首先进行算术运算符,接着处理字符串连接运算符,然后处理比较运算符,算符,接着处理字符串连接运算符,然后处理比较运算符,最后处理逻辑运算符最后处理逻辑运算符.2可以用括号改变优先顺序,强
26、令表达式的某些部分优可以用括号改变优先顺序,强令表达式的某些部分优先运行。括号内的运算总是优先于括号外的运算。对于多重先运行。括号内的运算总是优先于括号外的运算。对于多重括号,总是由内到外。括号,总是由内到外。3.4 运算符和表达式运算符和表达式 3.表达式表达式组成组成 变量、常量、函数、运算符和圆括号变量、常量、函数、运算符和圆括号 4.表达式表达式书写规则书写规则 (1)乘号不能省略。例)乘号不能省略。例x 乘以乘以y 应写成:应写成:x*y (2)括号必须成对出现,均使用圆括号。)括号必须成对出现,均使用圆括号。(3)表达式从左到右在同一基准上书写,无高低、大小。)表达式从左到右在同一
27、基准上书写,无高低、大小。例如例如:3x+5 x2+1 /2 (x+5)3+1/(x-1)-12ba 3.4 运算符和表达式运算符和表达式 5.不同数据类型的转换不同数据类型的转换 运算结果的数据类型向精度高的数据类型靠运算结果的数据类型向精度高的数据类型靠.IntegerLongSingleDouble字符运算符字符运算符关系运算符关系运算符逻辑运算逻辑运算 例:设例:设 a=1,b=3,c=3.5,求:,求:1)1+b c And b 2=a 2)b&5-a3)-c b)-4 Or True=a And True True 34 False3.4 运算符和表达式运算符和表达式326265x
28、xxSqr(x*x-y*y)+Cos(3.14/180*30)/(2*3.14)(x2+5*x+26)/(x+6)3例子:例子:3.4 运算符和表达式运算符和表达式02230cos21yx 条件条件“x 能被能被 m 整除、但不能被整除、但不能被 n 整除整除”写作写作 VB 的的表达式为表达式为 。A、x Mod m=0&x Mod n0.B、xm*m=x And xn*nxC、(xm)*m=x And(xn)*nxD、x Mod m=0 And x Mod n!=03.4 运算符和表达式运算符和表达式例例:例例:表示算术表达式:表示算术表达式:3x7 正确的正确的VB表达式:表达式:3=x
29、 And x=7 错误的错误的VB表达式:表达式:3=x=7 或或 3=x Or x=0 (3)要注意函数的值域。要注意函数的值域。如:如:exp(23773)的值就超出实数在计算机中的表示的值就超出实数在计算机中的表示 范围。范围。3.4 运算符和表达式运算符和表达式 1.数学函数数学函数 Abs(N)Cos(N)Sin(N)Exp(N)Log(N)Sqr(N)Rnd(N)Sgn(N)(1)在三角函数中的自变量是以在三角函数中的自变量是以弧度弧度为单位。为单位。如:如:sin30 sin(3.14159/180*30)(2)Rnd函数返回函数返回0 1之间的双精度随机数。之间的双精度随机数。
30、若要产生若要产生1-100的随机整数:的随机整数:Int(Rnd*100)+1 提问:怎样产生提问:怎样产生N,M区间的随机整数?区间的随机整数?每次运行时,要产生不同序列的随机数,每次运行时,要产生不同序列的随机数,执行执行Randomize 语句。语句。使用使用形式:形式:Randomize number number 是随机数生成器的种子值,如是随机数生成器的种子值,如果省略,系统将计时器返回的值作为新的种子值。果省略,系统将计时器返回的值作为新的种子值。3.4 运算符和表达式运算符和表达式2.转换函数转换函数(1)要区别两个取整函数)要区别两个取整函数int()和和fix()Fix(N
31、)为截断取整,即去掉小数后的数。为截断取整,即去掉小数后的数。Int(N)不大于不大于N的最大整数。的最大整数。N0与与int(N)相同,当相同,当Nb AND cc (2)32*b OR a=c AND bc OR cd (3)NOT a=c OR 4*c=b2 AND ba+c4 把下列各条件写成把下列各条件写成Visual Basic关系或逻辑表达式关系或逻辑表达式 (1)a和和b都为正数或同为负数都为正数或同为负数 (2)x大于大于5小于小于10 (3)a+b大于等于大于等于c或或a-c小于等于小于等于b (4)a和和b中有且只有一个为中有且只有一个为0FalseTrueFalse a
32、*b0 x5 and x=c or a-c=ba*b=0 and a+b0例题分析例题分析3.5.1 VB程序语句程序语句 一个程序是由一条条语句构成。每条语句都规定了系统应该执行的某些操作。语句的一般形式为:语句定义符 语句体语句定义符一般是英语单词,说明要干什么,如:Let、Print、End语句体是说明怎么干,也可省略,如:Print 123 x=5673.5 语句语句3.5.2 书写规则1 1VBVB语句中不区分字母的大小写。语句中不区分字母的大小写。2 2同一行上可以书写多条语句,但语句间要用冒号同一行上可以书写多条语句,但语句间要用冒号“:”“:”分隔。分隔。例:例:x1=3x1=
33、3:x2=4x2=4:x3=5x3=53 3若一个语句行不能写下全部语句,或在特别需要时,若一个语句行不能写下全部语句,或在特别需要时,可以换行。换行时需在本行后加入续行符,可以换行。换行时需在本行后加入续行符,1 1个空格加个空格加下划线下划线“_”“_”。例:例:x1=x2+x3+_x1=x2+x3+_ x4+x5 x4+x54.4.一个语句的长度不得超过一个语句的长度不得超过1023B1023B。1.熟练地掌握变量的概念及其使用。熟练地掌握变量的概念及其使用。2.严格区别常量和变量,尤其是符号常量和变量。严格区别常量和变量,尤其是符号常量和变量。3.熟练掌握算术运算符、关系运算符和布乐运算符熟练掌握算术运算符、关系运算符和布乐运算符的概念,记住它们的优先级,能够利用它们组成的概念,记住它们的优先级,能够利用它们组成各种类型的表达式。各种类型的表达式。4.熟练掌握熟练掌握VB程序语句的书写规则。程序语句的书写规则。本章小结本章小结
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。