第4章 VB程序设计基础ppt课件_第1页
第4章 VB程序设计基础ppt课件_第2页
第4章 VB程序设计基础ppt课件_第3页
第4章 VB程序设计基础ppt课件_第4页
第4章 VB程序设计基础ppt课件_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第4 4章章 VB VB程序设计基础程序设计基础本章内容及要求:本章内容及要求:4.1数据类型数据类型4.2常量和变量常量和变量4.3变量的作用域变量的作用域4.4常用内部函数常用内部函数4.5字符处理与字符串函数字符处理与字符串函数4.6运算符与表达式运算符与表达式4.1 4.1 数据类型数据类型数据是信息在计算机内的表现形式,也是程序处数据是信息在计算机内的表现形式,也是程序处理的对象。理的对象。VB提供了系统定义的基本数据类型,还提供了系统定义的基本数据类型,还允许用户定义自己的数据类型。允许用户定义自己的数据类型。4.1 4.1 数据类型数据类型一、基本数据类型一、基本数据类型1.字

2、符串型字符串型String字符串是一个字符序列,由字符串是一个字符序列,由ASCII字符组成。字符字符组成。字符串通常要用双引号括起来。串通常要用双引号括起来。例如:例如:“Hello!”湖南省衡阳市湖南省衡阳市“8888” *”“” 空字符串空字符串“ “ 有一个空格的字符串有一个空格的字符串若字符串中有双引号,例如若字符串中有双引号,例如ABD“XYZ,则用连续,则用连续两个双引号表示,即:两个双引号表示,即:ABDXYZ“4.1 4.1 数据类型数据类型VB中的字符串分为两种:变长字符串和定长字符中的字符串分为两种:变长字符串和定长字符串。串。变长字符串的长度是不确定的,可以从变长字符串

3、的长度是不确定的,可以从0231约约21亿个字符。亿个字符。定长字符串含有确定个数的字符,最大长度不超定长字符串含有确定个数的字符,最大长度不超过过21665535个字符。个字符。4.1 4.1 数据类型数据类型2.数值型数值型数值型数据分为整型数和浮点数两类。数值型数据分为整型数和浮点数两类。(1整型数整型数整型数是不带小数点和指数符号的数,在机器整型数是不带小数点和指数符号的数,在机器内部以二进制补码形式表示。正数的补码和它内部以二进制补码形式表示。正数的补码和它的二进制形式的二进制形式(即源码即源码)一样;负数的补码为该一样;负数的补码为该数的绝对值的二进制形式取反加数的绝对值的二进制形

4、式取反加1。例如,整型数例如,整型数4,-4分别以下面的形式存放:分别以下面的形式存放:(最高位为符号位,其中(最高位为符号位,其中0为正,为正,1为负)为负)4 0000000000000100-41111111111111100整数的运算速度快,而且比其他数据类型占据整数的运算速度快,而且比其他数据类型占据的内存少。的内存少。4.1 4.1 数据类型数据类型整型数又分为整数和长整数:整型数又分为整数和长整数:整数整数Integer以以2个字节个字节(16位位)的二进制数存储,取值范围为的二进制数存储,取值范围为-32,76832,767。长整数长整数Long以以4个字节个字节(32位位)的

5、二进制数存储,取值范围为的二进制数存储,取值范围为-2,147,483,6482,147,483,647。4.1 4.1 数据类型数据类型二进制二进制十进制十进制00000000000000000000000000000000110000000000000010200000000000000113 0111111111111111327671000000000000000-327681000000000000001-327671000000000000010-32766 1111111111111110-21111111111111111-1思索:为什么思索:为什么16位整数位整数Intege

6、r的取值范围为的取值范围为-32,76832,767?4.1 4.1 数据类型数据类型留意:留意:16位整数位整数Integer如果超出了这个取值范围如果超出了这个取值范围(-32,76832,767),数据便会溢出。请看下面的代),数据便会溢出。请看下面的代码:码:Private Sub Form_Load()Dim a As Integera = 32767a = a + 1MsgBox aEnd Sub4.1 4.1 数据类型数据类型(2浮点数浮点数浮点数也称实数,是带有小数部分的数值。分为单精浮点数也称实数,是带有小数部分的数值。分为单精度浮点数和双精度浮点数。度浮点数和双精度浮点数。

7、单精度单精度Single以以4个字节个字节(32位位)存储,可以精确到存储,可以精确到7位十进制数。其位十进制数。其中符号占中符号占1位,指数占位,指数占8位,其余位,其余23位表示尾数,还有位表示尾数,还有一个附加的隐含位。其负数的取值范围为一个附加的隐含位。其负数的取值范围为-3.402823E+38 -1.401298E-45,正数的取值范围,正数的取值范围为为1.401298E-45 3.402823E+38。表示形式为:表示形式为: n.nEm 其中其中n.n是尾数,是尾数,m是指是指数以数以10为底的幂)为底的幂)例:例:-123.4E-3或或-123.4e-3,相当于,相当于-0

8、.12341.2345E3或或1.2345e3,相当于,相当于1234.54.1 4.1 数据类型数据类型u双精度双精度Doubleu以以8个字节个字节(64位位)存储,可以精确到存储,可以精确到15到到16位十进制数。位十进制数。其中符号占其中符号占1位,指数占位,指数占11位,其余位,其余52位表示尾数,还有一位表示尾数,还有一个附加的隐含位。个附加的隐含位。u表示形式为:表示形式为: n.nDm 其中其中n.n是尾数,是尾数,m是指数是指数以以10为底的幂)为底的幂)uu例:例:123.4567D3或或123.4567d+3,相当于,相当于123456.74.1 4.1 数据类型数据类型

9、(3货币型货币型Currency货币数据类型通常用于表示钱款。以货币数据类型通常用于表示钱款。以8个字节个字节(64位位)存储,精确到小数点后面存储,精确到小数点后面4位小数点前面有位小数点前面有15位)。位)。在小数点后在小数点后4位以后的数字将被舍去。其取值范围为位以后的数字将被舍去。其取值范围为-922,337,203,685,477.5808 -922,337,203,685,477.5807浮点数中的小数点是浮点数中的小数点是“浮动的,小数点可以出现浮动的,小数点可以出现在数的任何位置,而货币型数据的小数点是固定的,在数的任何位置,而货币型数据的小数点是固定的,因此称为定点数据类型。

10、因此称为定点数据类型。4.1 4.1 数据类型数据类型(4字节型字节型Byte以以1个字节个字节(8位位)的无符号二进制数存储,其取值的无符号二进制数存储,其取值范围为范围为0255。注:在实际应用中,应根据需要使用数据类型。注:在实际应用中,应根据需要使用数据类型。能用整型就不要用浮点型或货币型;如果要求的精度能用整型就不要用浮点型或货币型;如果要求的精度不高,则应使用单精度变量。这样不仅节省内存空间,不高,则应使用单精度变量。这样不仅节省内存空间,而且可以提高处理速度。而且可以提高处理速度。4.1 4.1 数据类型数据类型3.布尔型布尔型Boolean布尔型数据是一个逻辑值,用布尔型数据是

11、一个逻辑值,用2个字节存个字节存储,它只取两个值:储,它只取两个值:True/False。布尔型变量。布尔型变量的默认值为的默认值为False。将逻辑数据转换成整型时:将逻辑数据转换成整型时:True为为-1,False为为0;其它数据转换成逻辑数据时:非;其它数据转换成逻辑数据时:非0为为True, 0为为False。例如,下面的代码定义一个布尔型变量,例如,下面的代码定义一个布尔型变量,并输出该变量:并输出该变量:Dim mybln As Booleanmybln=3MsgBox mybln4.1 4.1 数据类型数据类型4.日期型日期型Date 日期型数据占用日期型数据占用8个字节,以浮

12、点数形式个字节,以浮点数形式存储。小数点左边的数值表示日期存储。小数点左边的数值表示日期(距离距离1899-12-30的天数的天数),小数点右边的数值表示时间。,小数点右边的数值表示时间。日期型数据的日期表示范围:日期型数据的日期表示范围:100年年1月月1日日9999年年12月月31日,时间表示范围:日,时间表示范围:0:00:0023:59:59。日期常数必须用。日期常数必须用“#”符号符号括起来。括起来。 例如:下面的几种日期型数据的格式都是合法例如:下面的几种日期型数据的格式都是合法的:的:#9/1/2021#或或#2021-09-01#September 1,2021#08:30:0

13、0 AM# #2019-5-4 14:30:00 PM#4.1 4.1 数据类型数据类型5.变体型变体型Variant变体数据类型是一种可变的数据类型,可以表示变体数据类型是一种可变的数据类型,可以表示任何值,包括数值、字符串、日期任何值,包括数值、字符串、日期/时间等。时间等。当变体数据为数值时,以当变体数据为数值时,以16个字节存储,最大可个字节存储,最大可达达Double的取值范围;当变体数据为字符时,以的取值范围;当变体数据为字符时,以22字字节节+字符串长,与变长字符串长,与变长String有相同的取值范围有相同的取值范围 。6.对象型对象型Object对象型数据作为对象型数据作为3

14、2位位4个字节地址来存储,个字节地址来存储,该地址可以引用程序中的任何对象。该地址可以引用程序中的任何对象。4.1 4.1 数据类型数据类型7.Decimal数据类型数据类型Decimal数据以数据以12个字节存储,最多支持个字节存储,最多支持29个有个有效数位,在内存中的表示形式比浮点数更精确。适用效数位,在内存中的表示形式比浮点数更精确。适用于要求使用大量有效的整数及小数位数,并且不能容于要求使用大量有效的整数及小数位数,并且不能容忍舍入误差的财务计算。忍舍入误差的财务计算。Decimal数据类型只能在变体类型数据类型只能在变体类型(Variant)中使中使用,不能把一个变量声明为用,不能

15、把一个变量声明为Decimal类型。类型。4.1 4.1 数据类型数据类型二、用户定义的数据类型二、用户定义的数据类型用户自定义类型,也称为记录类型,通过用户自定义类型,也称为记录类型,通过Type语句来实现,其语法格式如下:语句来实现,其语法格式如下:Type 数据类型名数据类型名元素名元素名As 类型名类型名元素名元素名As 类型名类型名 End Type4.1 4.1 数据类型数据类型例如例如: 对于一个学生的对于一个学生的“学号学号”、“姓名姓名”、“性别性别”、“年龄年龄”、“入学成绩等数据,为了处理数据的方便,常入学成绩等数据,为了处理数据的方便,常常需要把这些数据定义成一个新的数

16、据类型如常需要把这些数据定义成一个新的数据类型如Student类类型)型) Type Student Xh As String Xm As String Xb As String Nl As Integer Score As Single End Type二、用户定义的数据类型二、用户定义的数据类型4.1 4.1 数据类型数据类型使用使用Type语句,应注意以下几点:语句,应注意以下几点:1.记录类型的定义必须放在模块包括标准模块记录类型的定义必须放在模块包括标准模块和窗体模块的声明部分,在使用记录类型之前,和窗体模块的声明部分,在使用记录类型之前,必须用必须用Type语句加以定义。语句加以定

17、义。2.一般情况下,记录类型在标准模块中定义,其一般情况下,记录类型在标准模块中定义,其变量可以出现在工程的任何地方。当在标准模块中变量可以出现在工程的任何地方。当在标准模块中定义时,关键字定义时,关键字Type前可以有前可以有Public默许或默许或Private;而如果在窗体模块中定义,则必须在前面;而如果在窗体模块中定义,则必须在前面加上关键字加上关键字Private。3.在记录类型中不能使用动态数组。在记录类型中不能使用动态数组。4.1 4.1 数据类型数据类型下面的代码声明了一个下面的代码声明了一个Student类型变量类型变量st,然后为,然后为其各个元素赋初值,最后输出:其各个元

18、素赋初值,最后输出:Private Sub Form_Load() Dim st As Student st.Xh = 20190001 st.Xm = 王一王一 st.Xb = 男男 st.Nl = 17 st.Score = 92.5 MsgBox 学号:学号: & st.Xh & Chr(10) & 姓名:姓名: & st.Xm & Chr(10) & 性别:性别: & _ st.Xb & Chr(10) & 年龄:年龄: & st.Nl & Chr(10) & 入入学成绩:学成绩: &

19、; st.Score End Sub4.2 4.2 常量和变量常量和变量一、常量一、常量在在VB中有三类常量:普通常量中有三类常量:普通常量 、符号常量和系统常量、符号常量和系统常量1.普通常量普通常量 普通常量指的是具体的常数,其类型有字符串型、整型、普通常量指的是具体的常数,其类型有字符串型、整型、浮点型、布尔型、日期型等。浮点型、布尔型、日期型等。不同类型的数据可以常量的形式出现,也可以变量的形式不同类型的数据可以常量的形式出现,也可以变量的形式出现。常量在程序运行过程中其值不会发生变化。而变量的值出现。常量在程序运行过程中其值不会发生变化。而变量的值是可变的,它代表内存中指定的存储单元

20、。是可变的,它代表内存中指定的存储单元。4.2 4.2 常量和变量常量和变量整型常数有整型常数有3种形式:种形式:十进制:由八进制数字十进制:由八进制数字(09)组成。如组成。如125,0,-89。八进制:由八进制数字八进制:由八进制数字(07)组成。以组成。以&或或&O字母字母O开头,以开头,以&结尾。结尾。例如:例如:&O25&表示八进制整数表示八进制整数25,即,即(25)8 ,等于十进制数等于十进制数21。十六进制:由十六进制数字十六进制:由十六进制数字(09及及AF)组成。组成。以以&H开头,以开头,以&结尾。结尾。例如:例如:

21、&H25表示十六进制整数表示十六进制整数25,即,即(25)16 ,等于十进制数,等于十进制数37。VB中的颜色数据常常中的颜色数据常常用十六进制整数表示。用十六进制整数表示。 4.2 4.2 常量和变量常量和变量VB在判断常量类型时存在多义性。例如,值在判断常量类型时存在多义性。例如,值3.01可能是可能是单精度类型,也可能是双精度类型或货币类型。为了显式地单精度类型,也可能是双精度类型或货币类型。为了显式地指明常数的类型,可以在常数后面加上类型说明符。指明常数的类型,可以在常数后面加上类型说明符。%整型整型&长整型长整型!单精度浮点数单精度浮点数#双精度浮点数双精度浮点数货

22、币型货币型$字符串型字符串型字节、布尔、日期、对象及变体类型没有类型说明符。字节、布尔、日期、对象及变体类型没有类型说明符。4.2 4.2 常量和变量常量和变量2.符号常量符号常量 在程序中,某个常量多次被使用,则可以使用在程序中,某个常量多次被使用,则可以使用一个符号来代替该常量,这样不仅在书写上方便,而一个符号来代替该常量,这样不仅在书写上方便,而且有效地改进了程序的可读性和可维护性。且有效地改进了程序的可读性和可维护性。 VB中使用关键字中使用关键字Const 声明符号常量。其格式如声明符号常量。其格式如下:下:Const 常量名常量名 As 类型类型|类型符号类型符号=表达式表达式 ,

23、 常量名常量名=表达式表达式 注:表达式由普通常量、算术和逻辑运算符组成,但注:表达式由普通常量、算术和逻辑运算符组成,但不能使用变量及函数。例如:不能使用变量及函数。例如:Const Maxchars = 254, Maxbue = Maxchars + 1 注意顺序注意顺序Const PI#=3.1415926 等价于:等价于:Const PI As Double=3.14159264.2 4.2 常量和变量常量和变量3.系统常量系统常量VB系统提供了应用程序和控件的系统定义常数。系统提供了应用程序和控件的系统定义常数。 例如,要将文本框例如,要将文本框Text1的前景颜色设置为红色,的前

24、景颜色设置为红色,可以使用下面的语句:可以使用下面的语句: Text1.ForeColor=vbRed这里的这里的vbRed就是系统常量,这比直接使用就是系统常量,这比直接使用16进制数来设置要直观得多。进制数来设置要直观得多。 又如,窗口状态属性又如,窗口状态属性WindowsState可取可取0,1,2三个值,对应三种不同状态。在程序中使用语句三个值,对应三种不同状态。在程序中使用语句 :Myform.WindowsState=vbMaxmized,将窗口最大,将窗口最大化,显然要比使用语句化,显然要比使用语句Myform.WindowsState=2 易易于阅读和理解。于阅读和理解。 4

25、.2 4.2 常量和变量常量和变量二、变量二、变量变量是在程序运行时,其值不断发生改变的量。一个变变量是在程序运行时,其值不断发生改变的量。一个变量对应着计算机内存中的一块存储单元。量对应着计算机内存中的一块存储单元。例如,有两个存储单元,名称分别为例如,有两个存储单元,名称分别为UserUser和和PasswordPassword,存,存放的值分别为放的值分别为“管理员和管理员和“111”,“111”,如下图:如下图:也可以将这两个存储单元的值改为也可以将这两个存储单元的值改为“普通用户和普通用户和“222” “222” :管理员管理员UserUser111PasswordPassword普

26、通用户普通用户UserUser222PasswordPassword4.2 4.2 常量和变量常量和变量1. 1.变量命名规则变量命名规则只能由英文字母、汉字、数字和下划线组成,中间只能由英文字母、汉字、数字和下划线组成,中间不能出现空格或小数点等;不能出现空格或小数点等;例如:变量名例如:变量名file_namefile_name是合法的,而是合法的,而file namefile name是非法是非法的。的。必须以字母或汉字开头,最后一个符号可以是类型必须以字母或汉字开头,最后一个符号可以是类型说明符;说明符;例如:例如:book3book3、a%a%这两个变量名是合法的;而这两个变量名是合

27、法的;而3book3book是非法的。是非法的。VBVB中不区分变量名的大小写;中不区分变量名的大小写;例如,例如,HelloHello、HELLO HELLO 、hellohello指的是同一个名字。指的是同一个名字。4.2 4.2 常量和变量常量和变量变量名长度可达变量名长度可达255个字符;个字符;VB中的关键字不能单独作为变量名;中的关键字不能单独作为变量名;VB关键字包括预定关键字包括预定义语句义语句If,For,Loop等)、操作符等)、操作符And,Mod等等和函数和函数Int,Sqr等)。等)。例如,例如,Print是非法变量名,但是非法变量名,但Print_3或或Print3

28、是合法是合法的。的。为了增加程序的可读性,可在变量名前加一个缩写的前为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型。变量名一般大小写混合使缀来表明该变量的数据类型。变量名一般大小写混合使用。用。 例如:例如:strAbc字符串变量)字符串变量) intCount整型变整型变量)量) 思考与练习思考与练习 1.1.下列哪个符号不能作为下列哪个符号不能作为VBVB中的变量名?中的变量名?(1 1ABCabc (2) b1234 (3) 28wed (4) ABCabc (2) b1234 (3) 28wed (4) cmdcmd2. 2. 下列符号哪一个是下列符号哪一个是

29、VBVB中的合法变量名?中的合法变量名?(1) x23 (2) 8xy (3) END (4) x8B(1) x23 (2) 8xy (3) END (4) x8B变量命名规则变量命名规则4.2 4.2 常量和变量常量和变量2. 2.变量的声明变量的声明在在VBVB程序中,使用变量前,一般要先声明变量程序中,使用变量前,一般要先声明变量的名称和数据类型。的名称和数据类型。VBVB中可以强制显式声明变量,方法是在窗体模中可以强制显式声明变量,方法是在窗体模块、标准模块和类模块的通用声明段中添加语句:块、标准模块和类模块的通用声明段中添加语句: Option ExplicitOption Expl

30、icit也可以设置为自动添加,方法是:选择也可以设置为自动添加,方法是:选择“工工具具”“选项选项” “ “要求变量声明要求变量声明”。建议在。建议在程序设计的开始就设置。程序设计的开始就设置。4.2 4.2 常量和变量常量和变量变量的声明可以采用三种方式:变量的声明可以采用三种方式:用声明语句显式声明变量用声明语句显式声明变量用用DefTypeDefType语句声明变量语句声明变量隐式声明变量隐式声明变量(1)(1)用声明语句显式声明变量用声明语句显式声明变量格式:格式:Dim|Static|Public|Private Dim|Static|Public|Private 变量名变量名 As

31、 As 数据类数据类型型4.2 4.2 常量和变量常量和变量Dim 用于在标准模块、窗体模块中定义模块级变用于在标准模块、窗体模块中定义模块级变量或在过程中定义局部变量。例如:量或在过程中定义局部变量。例如:Dim Str As StringDim Total As IntegerDim Var1 As String, Var2 As Double 定义定义多个变量多个变量Dim Var1, Var2 As Integer留意:该语句并留意:该语句并不能把两个变量同时定义为整型不能把两个变量同时定义为整型4.2 4.2 常量和变量常量和变量可以使用类型说明符来替代可以使用类型说明符来替代As语

32、句:语句:Dim Str$Dim Total%Dim Var1$, Var2#则在引用该变量时可以省略类型说明符。例如,则在引用该变量时可以省略类型说明符。例如,下面两个语句都是正确的:下面两个语句都是正确的:Var1 = This is a stringVar1$ = This is a string“4.1 4.1 数据类型数据类型用用As String 可以定义变长字符串变量,也可以定义为定长可以定义变长字符串变量,也可以定义为定长字符串变量。字符串变量。变长字符串变量:其长度取决于赋给它的字符串常量的长度。变长字符串变量:其长度取决于赋给它的字符串常量的长度。例如:例如:Dim Nam

33、evar As String 定义为变长字符串变量定义为变长字符串变量 Namevar = “湖南省衡阳市湖南省衡阳市”定长字符串变量:事先定义字符串的长度,在程序运行过程定长字符串变量:事先定义字符串的长度,在程序运行过程中,始终保持其长度不变。当给它赋值时,不足的部分用空格中,始终保持其长度不变。当给它赋值时,不足的部分用空格填满;多出的字符被截去。填满;多出的字符被截去。例如:例如:Dim MyName As String * 4 定义为定长字符串变定义为定长字符串变量量MyName = “湖南省衡阳市湖南省衡阳市4.2 4.2 常量和变量常量和变量StaticStatic用于在过程中定

34、义静态变量,每次引用用于在过程中定义静态变量,每次引用该变量定义时,其值会继续保留。由该变量定义时,其值会继续保留。由Dim定义的定义的变量称为自动变量,每次引用该变量定义时,变变量称为自动变量,每次引用该变量定义时,变量值会被重新设置数值变量设置为量值会被重新设置数值变量设置为0,字符串变量字符串变量设置为空)。设置为空)。例如:下面的程序中变量例如:下面的程序中变量Var1和和Var2的值会的值会相同吗?相同吗?Private Sub Form_Click()Dim Var1 As IntegerStatic Var2 As IntegerVar1 = Var1 + 1Var2 = Var

35、2 + 1Print Var1, Var2End Sub每单击一次窗体,静态变量每单击一次窗体,静态变量Var2累加累加1,而自动而自动变量变量Var1会被置会被置04.2 4.2 常量和变量常量和变量Public用来在标准模块中定义全局变量。用来在标准模块中定义全局变量。Private用来在标准模块、窗体模块的声明部分定义用来在标准模块、窗体模块的声明部分定义模块级变量。模块级变量。4.2 4.2 常量和变量常量和变量(2) (2) 用用DefTypeDefType语句声明变量语句声明变量用用DefTypeDefType语句可以在标准模块、窗体模块的声语句可以在标准模块、窗体模块的声明部分定

36、义变量,且只对它所在的模块起作用明部分定义变量,且只对它所在的模块起作用 。一般格式:一般格式:Def Type Def Type 字母范围字母范围TypeType可以是可以是IntInt、LngLng、SngSng、DblDbl、CurCur、StrStr、ByteByte、BoolBool、DateDate、ObjObj、VarVar。DefTypeDefType语句中说明的字母、语句中说明的字母、以及以该字母开头的变量名都是那种类型的变量名。以及以该字母开头的变量名都是那种类型的变量名。例如:例如:DefDbl L-PDefDbl L-P凡是变量名以字母凡是变量名以字母L L到到P P开

37、开头的变量都定义为双精度型。头的变量都定义为双精度型。类型说明符(类型说明符(%&#!$%&#!$)总是比)总是比DefTypeDefType语句优先语句优先起作用。起作用。4.2 4.2 常量和变量常量和变量(3) (3) 隐式声明变量隐式声明变量VBVB允许用户不显式声明变量而直接使用,系统允许用户不显式声明变量而直接使用,系统临时为新变量分配存储空间并使用,这就是隐式声临时为新变量分配存储空间并使用,这就是隐式声明。所有隐式声明的变量都是明。所有隐式声明的变量都是VariantVariant数据类型。数据类型。VBVB根据程序中赋予变量的值来自动调整变量的类型。根据程序中

38、赋予变量的值来自动调整变量的类型。 下面的程序中使用的变量下面的程序中使用的变量a, b, Total都没有事先定义:都没有事先定义:Private Sub Form_Click()Total% = 0a = 10: b = 20Total = a + bPrint “Total=; TotalEnd Sub4.3 4.3 变量的作用域变量的作用域每个变量都有它的作用范围,即作用域。根据变量在每个变量都有它的作用范围,即作用域。根据变量在VB应用程序中的定义位置和所使用的定义语句的不同,可以分为应用程序中的定义位置和所使用的定义语句的不同,可以分为局部变量、模块变量和全局变量。局部变量、模块变

39、量和全局变量。VB应用程序的构成应用程序的构成4.3 4.3 变量的作用域变量的作用域在过程事件过程或通用过程内定义的变量叫在过程事件过程或通用过程内定义的变量叫做局部变量,其作用域是它所在的过程。因此,在不做局部变量,其作用域是它所在的过程。因此,在不同的过程中可以定义相同名字的局部变量。同的过程中可以定义相同名字的局部变量。局部变量在过程内用局部变量在过程内用Dim、Static定义,例如:定义,例如:Sub Command1_Click()Dim Tempnum As IntegerStatic Total As DoubleEnd Sub一、局部变量一、局部变量Local4.3 4.3

40、 变量的作用域变量的作用域模块变量包括窗体变量和标准模块变量。模块变量包括窗体变量和标准模块变量。窗体变量可用于该窗体内的所有过程事件过程窗体变量可用于该窗体内的所有过程事件过程或通用过程)。当同一窗体内的不同过程使用相同的或通用过程)。当同一窗体内的不同过程使用相同的变量时,必须定义窗体层变量。变量时,必须定义窗体层变量。窗体层变量不能隐式声明。方法是:在程序代码窗体层变量不能隐式声明。方法是:在程序代码窗口的窗口的“对象框中选择对象框中选择“通用通用”,并在,并在“过程框过程框中选择中选择“声明声明”。标准模块中模块层变量的声明和使用与窗体层变标准模块中模块层变量的声明和使用与窗体层变量类

41、似。量类似。二、模块变量二、模块变量Module4.3 4.3 变量的作用域变量的作用域默认情况下,模块级变量对该模块中的所有过程默认情况下,模块级变量对该模块中的所有过程都是可见的,但对其他模块不可见。模块级变量在模都是可见的,但对其他模块不可见。模块级变量在模块的声明部分用块的声明部分用Private、Dim声明。例如:声明。例如: Private intTemp As Integer或或 Dim intTemp As Integer4.3 4.3 变量的作用域变量的作用域全局变量的作用域最大,可以在工程的每个模块、全局变量的作用域最大,可以在工程的每个模块、每个过程中使用。全局变量必须在

42、标准模块的声明部每个过程中使用。全局变量必须在标准模块的声明部分中声明,不能在过程或窗体模块中声明;并且,全分中声明,不能在过程或窗体模块中声明;并且,全局变量必须用局变量必须用Public或或Global语句声明,不能用语句声明,不能用Dim语句声明。例如:语句声明。例如:Public intNumber As Integer三、全局变量三、全局变量Public4.3 4.3 变量的作用域变量的作用域对于局部变量来说,可以不用对于局部变量来说,可以不用Dim或或Static定定义,而是在需要时直接给出变量名不建议)。义,而是在需要时直接给出变量名不建议)。默认声明只适用于局部变量,模块级变量

43、和默认声明只适用于局部变量,模块级变量和全局变量必须用全局变量必须用Dim或或Public语句显式声明。语句显式声明。默认声明局部变量,有可能使程序出现无法默认声明局部变量,有可能使程序出现无法预料的结果,而且较难查出错误。为了安全起见,最好能显式预料的结果,而且较难查出错误。为了安全起见,最好能显式地声明程序中使用的所有变量。地声明程序中使用的所有变量。下面通过实例说明。下面通过实例说明。四、默认声明隐式声明)四、默认声明隐式声明)4.4 4.4 常用内部函数常用内部函数VB提供了上百种内部函数,要求掌握表提供了上百种内部函数,要求掌握表4.4中常用函中常用函数的功能及使用:数学函数、转换函

44、数、日期和时间函数的功能及使用:数学函数、转换函数、日期和时间函数、随机数函数。数、随机数函数。函数调用方法:函数调用方法: 函数名参数列表)函数名参数列表) 有参函数有参函数 函数名函数名 无参函数无参函数阐明:阐明: (1) 使用内部函数要注意参数的个数及其参数的数据类使用内部函数要注意参数的个数及其参数的数据类型;型;(2) 要注意函数的定义域自变量或参数的取值范围);要注意函数的定义域自变量或参数的取值范围);(3要注意函数的值域。要注意函数的值域。4.4 4.4 常用内部函数常用内部函数常用的数学函数有常用的数学函数有:Sin(x)Cos(x)Tan(x) Atn(x)Abs(x)

45、Sgn(x) Sqr(x)Exp(x)阐明:阐明:(1)在三角函数中的自变量是以弧度为单位。在三角函数中的自变量是以弧度为单位。 如:如:sin300 sin(3.14159/180*30)(2) sqr(x)函数要求自变量函数要求自变量 x=0(3) Exp(x) 函数要求自变量函数要求自变量x不能超过不能超过709.782712893,否,否则函数的值就会超出实数在计算机中的表示则函数的值就会超出实数在计算机中的表示 范围,导致错误范围,导致错误发生。发生。一、数学函数一、数学函数4.4 4.4 常用内部函数常用内部函数常用转换函数见表常用转换函数见表4.4,相关说明如下:,相关说明如下:

46、(1要区别两个取整函数要区别两个取整函数int()和和fix() Fix(N)为截断取整,即去掉小数后的数。为截断取整,即去掉小数后的数。 Int(N)为不大于为不大于N的最大整数。的最大整数。 例如:例如: Fix(9.59) =9, Int(9.59) =9 Fix(-9.59) =-9, Int(-9.59) =-10(2Asc(Abcd) 值为:值为: 65 (只取首字母的(只取首字母的AscII值)值) (3Val(“abc123”) 值为:值为:0, Val(1.2sa10) 值为值为1.2 留意:留意: Val( )函数只将最前面的数字字符转换为数值。函数只将最前面的数字字符转换

47、为数值。二、转换函数二、转换函数4.4 4.4 常用内部函数常用内部函数1. Date、Now、Time函数函数Date函数:返回当前系统日期。语法:函数:返回当前系统日期。语法: DateNow函数:返回当前系统日期和时间。语法:函数:返回当前系统日期和时间。语法: NowTime函数:返回当前系统时间。语法:函数:返回当前系统时间。语法: Time2. Year、Day、Month函数年、月、日)函数年、月、日)Year函数:返回年份。语法:函数:返回年份。语法:Year(Now)Day函数:返回年份。语法:函数:返回年份。语法: Day(Now) Month函数:返回年份。语法:函数:返

48、回年份。语法: Month(Now) 3. Hour、Minute、Second函数时、分、秒)函数时、分、秒) Hour函数:返回小时。语法:函数:返回小时。语法: Hour(Now) Minute函数:返回分钟。语法:函数:返回分钟。语法: Minute(Now) Second函数:返回秒。语法:函数:返回秒。语法: Second(Now) 三、日期和时间函数三、日期和时间函数4.4 4.4 常用内部函数常用内部函数语法:语法:Rnd(number)Rnd函数可以省略参数和括号。前往函数可以省略参数和括号。前往0 1)(即包括(即包括0,但不包括但不包括1之间的单精度随机数。之间的单精度随

49、机数。四、随机数函数四、随机数函数Rnd如果如果numbernumber的值的值RndRnd生成生成小于小于0每次都使用每次都使用number作为随机数种子得到相同的结果作为随机数种子得到相同的结果大于大于0序列中的下一个随机数序列中的下一个随机数等于等于0最近生成的数最近生成的数默认默认序列中的下一个随机数序列中的下一个随机数4.4 4.4 常用内部函数常用内部函数若要产生若要产生1100的随机整数,则可通过下面的表的随机整数,则可通过下面的表达式来实现:达式来实现:Int(Rnd*100)+1 包括包括1和和100Int(Rnd*99)+1 包括包括1,但不包括,但不包括100思索:怎样产

50、生思索:怎样产生N,M区间的随机数?区间的随机数?Int(Rnd *(M-N+1)+N4.4 4.4 常用内部函数常用内部函数当应用程序不断地重复使用随机数时,同一当应用程序不断地重复使用随机数时,同一序列的随机数会反复出现,用序列的随机数会反复出现,用Randomize语句可以消除这种语句可以消除这种情况,其格式为:情况,其格式为:Randomize ( x ) 功能:初始化随机数生成器。如省略参数,功能:初始化随机数生成器。如省略参数,则用系统计时器返回的值作为新的种子值。则用系统计时器返回的值作为新的种子值。 例如:下段程序每次运行,将产生不同序列例如:下段程序每次运行,将产生不同序列的

51、的20个个10,99之间的随机整数。之间的随机整数。Private Sub Form_click() Randomize For i = 1 To 20 Print Int(Rnd * 90) + 10; Next i PrintEnd Sub4.5 4.5 字符处理与字符串函数字符处理与字符串函数ANSI方式:早前的版本采用。西文字符用一个字节编方式:早前的版本采用。西文字符用一个字节编码,中文字符用两个字节编码。一个中文字符相当于两个西文码,中文字符用两个字节编码。一个中文字符相当于两个西文字符。字符。UniCode方式:方式:4.0以后的版本采用。中西文字符统一以后的版本采用。中西文字符

52、统一编码,一个英文字符或一个汉字都看作一个字符,均用两个字编码,一个英文字符或一个汉字都看作一个字符,均用两个字节编码。节编码。Print Len(BASIC程序设计程序设计) 9Print LenB(“BASIC程序设计程序设计”) 18注:注:VB6.0中,中,LenB 返回的是用于存储字符串的字返回的是用于存储字符串的字节数,而不是返回字符串中字符的数量。节数,而不是返回字符串中字符的数量。一、一、VB的字符处理机制的字符处理机制4.5 4.5 字符处理与字符串函数字符处理与字符串函数为了实现为了实现ANSI与与UniCode之间的转换,之间的转换,VB提供了一个转提供了一个转换函数换函

53、数StrConv,格式如下:,格式如下:新字符串新字符串=StrConv(待转换字符串待转换字符串,转换格式转换格式)其中,其中,“转换格式可以取值为:转换格式可以取值为:vbUnicode值为值为64) 将将ANSI转换为转换为 UniCodevbFromUnicode值为值为128) 将将UniCode转换为转换为 ANSI例例4.1编写程序,测试编写程序,测试StrConv函数功能。函数功能。 一、一、VB的字符处理机制的字符处理机制4.5 4.5 字符处理与字符串函数字符处理与字符串函数1.去空格函数去空格函数Ltrim$(字符串字符串):去除字符串左边的空白字:去除字符串左边的空白字

54、符;符;$可以省略。可以省略。RTrim$(字符串字符串) :去除字符串右边的空白:去除字符串右边的空白字符;字符;Trim$(字符串字符串):去除字符串两边的空白字:去除字符串两边的空白字符。符。例如:例如: a$ = Good Morning b$ = LTrim$(a$) c$ = RTrim$(b$) Print b$; c$; ABC“输出结果:输出结果:Good Morning Good MorningABC二、字符串函数二、字符串函数4.5 4.5 字符处理与字符串函数字符处理与字符串函数2.字符串截取函数字符串截取函数左部截取:左部截取:Left$(字符串字符串,n)返回字符串

55、的前返回字符串的前n个字符。例:个字符。例:Left$(“ABCDEF”,4)中部截取:中部截取:Mid$(字符串字符串, p , n )从第从第p个字符开始,向后截取个字符开始,向后截取n个字符。个字符。n可可以省略,此时,将从第以省略,此时,将从第p个字符开始向后截取个字符开始向后截取到字符串的末尾。到字符串的末尾。例如:例如:Mid$(“ABCDEFGHIJK”,3,4)右部截取:右部截取:Right$(字符串字符串,n)返回字符串的最后返回字符串的最后n个字符。例:个字符。例:Right$(“ABCDEFGHIJK”,4)二、字符串函数二、字符串函数4.5 4.5 字符处理与字符串函数

56、字符处理与字符串函数3.字符串长度测试函数字符串长度测试函数格式:格式:Len(字符串字符串):返回字符串的长:返回字符串的长度长整型值)。度长整型值)。Len(变量名变量名):返回存储变量所:返回存储变量所需的字节数。需的字节数。例如:例如:Len(“ABCDEFGHIJK”)返回返回11Len(testvar%) 返返回回2Len(testvar!) 返回返回4Len(testvar#)返回返回8二、字符串函数二、字符串函数4.5 4.5 字符处理与字符串函数字符处理与字符串函数4. String$函数函数格式:格式:String$(n,ASCII码码) 或或String$(n,字字符串符

57、串) 当为当为ASCII码时,返回由该码时,返回由该ASCII码对应的码对应的n个字符;当为字符串时,返回由第一个字符组个字符;当为字符串时,返回由第一个字符组成的成的n个字符。个字符。例如:例如: a$ = String$(5, 65)b$ = String$(5, -)c$ = String$(5, abcd)Print a$; b$; c$ 输出结果:输出结果: AAAAA-aaaaa二、字符串函数二、字符串函数4.5 4.5 字符处理与字符串函数字符处理与字符串函数5.空格函数空格函数格式:格式:Space$(n)返回返回n个空格。个空格。例如:例如: a$ = a + Space(4

58、) + b“输出结果:输出结果: ab二、字符串函数二、字符串函数4.5 4.5 字符处理与字符串函数字符处理与字符串函数6.字符串匹配函数字符串匹配函数格式:格式:InStr( 首字符位置首字符位置 , 字符串字符串1 , 字符串字符串2 , n )该函数在该函数在“字符串字符串1中查找中查找“字符串字符串2”,如果,如果找到,就返回找到,就返回“字符串字符串2的第一个字符在的第一个字符在“字符串字符串1中的位置。中的位置。“字符串字符串1的第一个字符的位置为的第一个字符的位置为1。例如:例如: a$ = Microsoft Visual Basicx = InStr(a$, Visual)

59、Print x输出结果:输出结果: 11二、字符串函数二、字符串函数格式:格式:InStr( 首字符位置首字符位置 , 字符串字符串1 , 字符串字符串2 , n )阐明:阐明:“字符串字符串2的长度必须小于的长度必须小于65,535个字符;个字符;InStr的返回值是一个长整型数。在不同的条件下,函数的返回的返回值是一个长整型数。在不同的条件下,函数的返回值也不一样见表值也不一样见表4.5)。)。“首字符位置是可选的。如果有,则从该位置开始查找,否首字符位置是可选的。如果有,则从该位置开始查找,否则从起始位置开始查找。则从起始位置开始查找。自变量自变量n是可选的,用来指定字符串比较方式。该自

60、变量的取是可选的,用来指定字符串比较方式。该自变量的取值可以是值可以是0、1或或2。0:进行二进制比较,区分字母的大小写;默认为:进行二进制比较,区分字母的大小写;默认为0。1:比较时忽略大小写;:比较时忽略大小写;2:对数据库中的信息进行比较。:对数据库中的信息进行比较。4.5 4.5 字符处理与字符串函数字符处理与字符串函数也可以通过语句限定:也可以通过语句限定:Option Compare BinaryOption Compare TextOption Compare Database4.5 4.5 字符处理与字符串函数字符处理与字符串函数7.字母大小写转换字母大小写转换格式:格式:Ucase$(字符串字符串):小写字母转换为大:小写字母转换为大写字母写字母Lcase$(字符串字符串) :大写字母转换为小写:大写字母转换为小写字母字母例如:例如:a$ =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论