VisualBasic语言的基本成分.ppt_第1页
VisualBasic语言的基本成分.ppt_第2页
VisualBasic语言的基本成分.ppt_第3页
VisualBasic语言的基本成分.ppt_第4页
VisualBasic语言的基本成分.ppt_第5页
已阅读5页,还剩96页未读 继续免费阅读

下载本文档

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

文档简介

本章主要内容 基本数据类型 直接常量 变量 符号常量 运算符 表达式 常用内部函数,第3章 VB 语言的基本成分,3.1 基本数据类型,数据是程序处理的对象。为了更好地处理各种各 样的数据,VB定义了多种数据类型 数值型 数据类型 字符型 逻辑型 日期型 对象型 变体型,整数: 整型/长整型 字节型 浮点型: 单/双精度 货币型,数值型 数值型数据一般分为整型数和浮点数两类。整型数分为整数(Integer)和长整数(Long),浮点数分为单精度浮点数(Single)和双精度浮点数(Double)。有时也把货币型数据(Currency)和字节型数据(Byte)划归数值型数据。,整型(Integer) 整数是不带小数点和指数符号的数; 存储:2字节; 取值范围: -3276832767。 长整数(Long) 存储:4字节; 取值范围:-21474836482147483647。 浮点数 浮点数也称为实型数或实数。由符号、指数和尾数组成,分单精度浮点数(Single)和双精度浮点数(Double),其指数部分分别用“E”(或“e”)和“D”(或“d”)表示。,单精度浮点数: 存储:4个字节(32个二进制位) 范围:-3.4028*1038 3.4028*1038 双精度浮点数: 存储:用8个字节(64个二进制位); 范围:-1.79769*103081.79769*10308。,货币型(Currency) 专门为处理货币而设计的数据类型,小数点前有15位,小数点后有4位,其余的数字被舍去。 存储:用8位字节存储; 取值范围:-922337203685477.5808 922337203685477.5807。 字节型(Byte) 存储:用1个字节的无符号二进制数存储; 取值范围:0 255。,String 类型 字符串是用双引号括起来的一串字符序列,两种类型字符串:变长字符串和定长字符串。 例如,“Canton”、”1+2=?”、”GoodMorning” 在VB中,把汉字作为一个字符来处理。 注意: 零字符串用“”表示,而“ ”则表示有一个空格的字符串; 另外在字符串中必须用两个连续的双引号来表示字符串有一个双引号。如字符串:”abc”计算机”abc”; 变长字符串存储需多10个字节。,Boolean 类型 逻辑型数据只有两个值:真(True)和假(False),用2字节二进制数存储,经常用来表示逻辑判断的结果。 当把数值型数据转换为逻辑型数据时,0会转换为Flase,其它非0值转换为 True。反之,当把逻辑型数据转换为数值型时,Flase转换为0,True转换为-1。,Date 类型 日期型数据按64位浮点数值存储,表示的日期从公元100年1月1日9999年12月31日,时间范围为0:00:0023:59:59。 任何在字面上可以被认作日期的文本都可以赋值给日期变量,且日期文字必须用符号“#”括起来, 如 #January 15,2002# #1985-10-1 9:45:00 PM#,Object 类型 对象类型的数据主要是以变量形式存在的,Object变量通过32位(4字节)来存储,该地址可以引用应用程序中的对象。利用Set语句,声明为Object的变量可以被赋值并被任何对象所引用。 Set 对象变量名=对象名,Variant数据类型 变体型数据是一种可变的数据类型,可以存放任何类型的数据。 存储: N:16字节 C:串+22 未声明的变量系统默认为Variant型。 例:Temp=“22” 字符串 Temp=Temp-1 数值 Temp=#01/01/2002# 日期,常量是指在程序运行过程中,其值保持不变的量。包括直接常量和符号常量。 直接常量:在程序代码中直接给出的数据。 例如:123,-263, “Visual Basic“ , “12.57 “等 符号常量:符号常量是在程序中用符号表示的常量。用户定义、系统常量。 例如: Const PI=3.14159 As Single S=PI*R*R,3.2直接常量,整型和长整型常量 整型:十进制、八进制和和长整型 例如: 888 &O555 &H888 长整型:在整型常量之后加上后缀& 例如:999 999& &O555 &O555 & &H888 &H888 &,浮点型常量 有两种表示方法: 日常记数法 一般书写方法。 如果整数或小数部分为零时,可以省略零,但是小数点不能省略。 在浮点型常量后面可加上类型声明符“!”、“#”来指明该浮点型常量是单精度浮点型常量还是双精度浮点型常量。 例如:0.123!,.123,12.#,0.0,科学记数法 用指数形式来表示浮点型常量,用mEn表示m10n。其中,m称为尾数,它可以是一个带有正负号的小数;n称为指数,它只能是一个带有正负号的整数。 标准科学记数法:尾数的小数点前有且仅有一位非零数字。也可用mDn表示m10n。 例如:0.123E-4,-12.34e8,1.23D-3,-1.23d3,字符串型常量 字符串型常量是指用双引号括起来的一串字符。 例如:“大家好!”、“abD123”、“ ”、“” “ ”是含有三个空格的字符串,长度为3。 “”是一个空字符串,长度为0。 “大家好!”,长度为8。,逻辑型常量 逻辑型常量只有两个值:True和False,分别表示逻辑真和逻辑假。,日期时间型常量 日期时间型常量:用“#”括起来的一串日期和时间,它可以表示一个日期,也可以表示一个时间,还可以同时表示日期和时间。 例如:#1/31/2003# #2003.3.8# #May 1,2003# #11:30:22 AM# #3/1/2003 12:22:09#,变量是指在程序运行过程中,其值可以改变的量。,3.3 变量,变量的命名规则 变量名必须是以字母开始的,由字母(AZ和az)、数字(09)或下划线(_)组成。 长度不能超过255个字符。 自定义的标识符不能和Visual Basic 中的运算符、语句以及系统已有的函数、过程名等关键字同名,同时也不能与系统已有的方法和属性同名。 最好做到“见名知意”。 可使用下划线改变长变量名的可读性。 用默认前缀。,变量的存取 语法格式如下: 一般: Let变量名或属性名 = 表达式 对象型: Set 对象变量名=对象名,变量的声明 声明变量就是事先将变量通知给程序,由此使变量的使用合法。 声明变量时需要指明:变量名、变量类型、变量的作用域和生存期。 变量声明后,系统为该变量分配内存空间,确定其数值范围、作用范围和生存周期。,声明变量的语句所放的位置不同,其作用范围不同。 过程级变量 过程级变量:在某个过程中定义的变量。其特点是只在其定义变量的过程中有效,当过程代码执行完时,变量立即从内存中释放掉。,1),过程级变量、模块级变量和应用程序级变量,声明过程级变量的语句格式: Dim | Static 变量名 As 类型名 说明: 用Dim声明的变量的生存周期短,进入此过程时,系统为变量分配存储单元,退出此过程时,系统释放存储单元,变量消失。 用Static声明的变量叫静态变量,第一次进入此过程时,系统为变量分配存储单元,退出此过程时,存储单元保留,变量失效。重新进入此过程时,该变量被激活,变量值仍存在,可以继续使用。 例:,模块级变量 在模块通用声明段中声明的变量,在模块中的所有过程有效,模块的运行结束后被释放。 语句格式: Dim | Private 变量名 As 类型名 说明:Dim和Private是等效的。,应用程序级变量 应用程序级变量是指在整个工程的任何模块中都有效的变量。又叫全局变量。在标准模块的声明段中声明。 语句格式: Public 变量名 As 类型名 例如:Dim a1 As Integer Static a2 As Integer Private a3 As Integer Public a 4 As Integer,定长字符串变量与变长字符串变量的声明 变长字符串变量: Dim|Private 变量名 As String 变长字符串变量包含字符的个数是可变的,所占用的存储空间是该字符串的长度加上10个字节。,例:Private Stra1 As String Stra1=“abc”,2)几种特殊变量的声明,定长字符串变量: Dim|Private 变量名 As String*字符串长度 定长字符串变量包含字符的个数是固定的,所占用的存储空间是就是声明语句中指定的字符串长度。多出的截掉,不够的补空格。 注意:不能在窗体模块或类模块中声明全局定长字符串变量。,对象型变量 语句格式: Dim 变量名 As Object | Control | 对象类型名 使用Object声明的变量可以引用任何一种类型的对象。使用Control声明的变量可以引用所有的控件对象。使用“对象类型名”声明的变量只能引用这种类型的对象。 例如: Dim obj1 As Object Dim obj1 As Control Dim obj1 As CommandButton,变体类型变量 声明变体类型变量的语句格式: Dim|Private|Public 变量名 As Variant 变体类型变量可以存储除了定长字符串和自定义类型外的所有变量。 例如: Dim Vnta1 As Variant Dim a,声明变量的注意事项 一条语句中声明多个变量,例如: Dim a As Integer,b As String,c As Date Private a ,b ,c As Date 变量被声明时,VB自动设定默认值。P45 数据的类型可在数据之后加上一个类型符来表示, 例如: a% ,413&,86!,104.67#等。 P46,变量类型的转换 不同数据类型的数据参加运算、赋值时,VB通过类型转换的方法先把不同类型的数据转换成相同类型的数据,然后再进行运算、赋值。 类型转换有两种方式: 隐式转换 显式转换,隐式转换 当不同数据类型的数据参加运算、赋值时,VB自动将不同类型的数据转换成相同的类型。 在表达式中,不同的数据类型总是朝着表示范围大,精度高的数据类型转换。 在赋值语句中,右边的数据以左边的变量为基准,朝着左边变量的数据类型转换。,数值型数据之间的转换 整型 实型:将整型数值转换成实型数值,然后再赋值给实型变量。 实型 整型:将实型数值转换成整型数值,然后再赋值给整型变量。 方法:小数部分四舍五入取整,如果小数部分正好是0.5,则向最近的偶数靠拢取整。,字符串型数据的隐式转换: 数值 字符串: 直接将数值转换成字符串。 字符串 数值:直接转换。 如果字符串中含有非数字字符,则VB不能转换,显示“类型不匹配”错误。,逻辑型数据的隐式转换: 逻辑 数值:False转换成0,True转换成-1。 数值 逻辑:0转换成False ,非零转换成True 。 逻辑 字符串:False转换成“ False”,True转换成“True”。 字符串 逻辑:“False”转换成False,“True”转换成True。其它字符串不能转换,否则显示错误信息。,日期时间型数据的隐式转换: 日期时间 数值 :日期部分转换为数值的整数部分,它的值为该日期距1899年12月30日的天数;时间部分转换为数值的小数部分,它的值为从午夜零点到该时刻占一整天24小时的比例。 数值 日期:规则与上面刚好相反。,显式转换 使用转换函数进行数值类型的转换。 Cbool( ) 转换为Boolean类型 Cdate( ) 转换为Date类型 Clng( ) 转换为Long类型 Cdbl( ) 转换为Double类型 Csng( ) 转换为Single类型 Ccur( ) 转换为Currency类型 Cvar( ) 转换为Variant类型 Cbyte( ) 转换为Byte类型 Cint( ) 转换为Integer类型 Cstr( ) 转换为String类型,VB有两种办法强制变量声明: 在模块开始的声明段中加上一条语句: Option Explicit 表示该模块中的变量必须声明了才能使用,否则会引起“变量未定义”的错误。,强制变量声明,6.自定义数据类型 定义数据类型 定义格式如下: Public | Private Type 数据类型名 成员名1 As 已定义的数据类型名 成员名2 As 已定义的数据类型名 成员名n As 已定义的数据类型名 End Type,例如:自定义学生基本情况数据类型 Private Type Student Strname As String IntSex As Integer DtmBirthday As Date StrTel As String StrAdd As String End Type,声明变量 只有声明了自定义数据类型变量后,VB才为该变量分配相应的内存单元,此变量才能使用。例如: Dim UdtZhang As Student,变量引用 引用格式如下: 变量名.成员名=表达式 例如: UdtZhang.StrName=“张三” UdtZhang.IntSex=1 UdtZhang.StrTel=“87654321” UdtZhang.StrAdd=“学生3楼506室” UdtZhang.DtmBirthday=#1984-8-26#,浮点数的精度 浮点数在机器内部表示是不精确的,一个单精度浮点数在机器内部占用四个字节,它小数点后有7位小数;一个双精度浮点数在机器内部占用八个字节,它小数点后有15位小数。 例如: SngVar0=12.1234567 SngVar1=12.123456789 SngVar2=12.123456781 SngVar3=SngVar1-SngVar2,符号常量也称为用户自定义常量。 过程级符号常量 声明格式: Const 常量名 As 类型名 = 表达式,3.4 符号常量,模块级符号常量 声明格式: Private Const 常量名 As 类型名 = 表达式,全局符号常量 声明格式: Public Const 常量名 As 类型名 = 表达式 说明:声明语句要放在标准模块的声明段中声明。,声明符号常量时应注意的地方: 当省略了 As 类型名 时,默认为Variant常量。 不能在窗体模块和类模块中声明全局常量。 表达式中不能使用函数和Is运算符。 可以使用一条语句声明多个常量,方法与声明变量类似。 常量取名时建议加上Con前缀。,算术运算符 - * / Mod + - 加运算符(X + Y) 功能:用来求 X和Y 两个数值表达式之和。 减运算符(X Y) 功能:用来求 X、Y 两个数值表达式之差。 乘运算符(X * Y) 功能:用来求 X、Y 两个数值表达式的乘积。 除运算符(X / Y) 功能:用来进行X 除以 Y 的运算并返回一个浮点数。,运算符:算术、关系、字符、逻辑,3.5 运算符,整除运算符(X Y) 功能:用来进行X 除以 Y 的运算并返回一个整数。 求模运算符(X Mod Y) 功能:用来进行X 除以 Y 的运算并且只返回余数。 乘方运算符(X Y) 功能:乘方运算,用来求X的Y次方。,注意: 日期时间数值型: 将日期时间型数据的日期部分加上(减去)数值型数据的整数部分以形成新的日期。 将日期时间型数据的时间部分加上(减去)数值型数据的小数部分以形成新的时间。,日期型日期型: 两个日期时间型数据进行减法运算时,结果是一 个数值,表示两个日期之间的天数;进行加法运算 时,将后一个转换成数值再加。,日期型逻辑型:,例如: #5/1/2003# + 31 结果是#6/1/2003# #5/1/2003 6:00:00 PM# - 1.25 结果是# 4/30/2003 12:00:00 AM # #6/1/2003# - # 5/1/2003 # 结果是31 #5/1/2002# + #1/1/2002# 相当于 #5/1/2002# + 37257 #5/1/2002# + True相当于#5/1/2002# + -1,整除运算符“”:运算前先将两个运算量按四舍五入的方法转换成整型数值,如果小数部分正好是0.5,则向最近的偶数靠拢,然后再参加运算,运算结果只截取整数部分。,例如: 17 2 结果是8 17.3 2 结果是8 17.5 2 结果是9 17.8 2 结果是9 16.5 2 结果是8,求模运算符:“A Mod B”的结果是取A除以B的余数,运算结果的符号与A保持一致;在运算前先将两个运算量按四舍五入的方法转换成整型数值,如果小数部分正好是0.5,则向最近的偶数靠拢,然后再参加运算。绝对值小于或等于0.5的数不能作为被除数。,例如: 17 mod 3 结果是2 -17 mod 3 结果是-2 17 mod -3 结果是2 17.5 mod 3 结果是0 18.5 mod 3 结果是0,字符串运算符& 和 + & 、+ 运算符都能用于两个字符串的连接。 & 运算符:强制两个表达式按字符串连接,尽管被连接的表达式不是字符串也是如此。 + 运算符:当两个表达式都是字符串时按字符串连接,否则视具体情况会有不同结果。 一般使用 & 运算符。 例如: “西安”&“财院” “西安财院”,& 和 + 运算符的比较,关系运算符 = = Is Like 关系运算符包括:(大于)、 =(大于或等于)、(不等于)和 =(等于) ,用来反映两个数值或字符串表达式之间的关系。关系成立,返回True(真);关系不成立,返回False(假);两个表达式中若有Null,则返回Null。 关系运算符使用说明,如表5-4所示。,注意: 关系运算符的运算结果只有True和False两个。 注意“等于”和“赋值号”的区别。 在模块的声明部分添加一行代码: Option Compare Text 则英文字母的比较运算就不区分大小写。 日期时间型数据做关系运算时,较晚的日期时间大于较早的日期时间。,Is 运算符 也称为对象比较运算符,它用来比较两个对象变量。如果它们引用的是同一个对象,则运算结果为True,否则为False。 例如:Dim Objvar1 As Object Dim Objvar2 As Object Dim Blnvar3 As Boolean Blnvar3= Objvar1 Is Nothing Set Objvar1=Cmd1 Set Objvar2=Cmd2 Blnvar3= Objvar1 Is Objvar2,Like 运算符 字符串匹配运算符,它将字符串与给定的“模板”进行匹配,若匹配成功,结果为True,否则为False。 格式: Strvar1 Like Strvar2 其中: Strvar1是被比较的字符串, Strvar2是“模板”。 例如:P54 “xyz” Like “x*” “xyz” Like “x?z”,“xyz” Like “xyz” “xyz” Like “x?z” “xyz” Like “x*z” “xyz1” Like “xyz#” “c” Like abcd “c” Like !abcd “c” Like a-d “c” Like !a-d “e” Like abcd “e” Like !a-d,逻辑运算符 Not And Or Xor Equ Imp 双目运算符:And(与)、Or(或)、Xor(异或)、Equ(逻辑等于)和Imp(逻辑蕴涵)。单目运算符:Not(非),只有一个操作数。 说明:逻辑运算时,只要参与运算的表达式中有一个为 Null,则将返回 Null。,逻辑运算符运算结果比较,按位逻辑运算 逻辑运算符的操作数若是整型量,则VB采用的是“按位逻辑运算”。 方法:先把操作数转换为补码表示的二进制数,然后,对该数的每一个数值位进行逻辑运算,运算规则与逻辑运算符相同。 说明:按位逻辑运算的结果也是一个整型值。,表达式是表示某种运算的式子,是指用运算符和括号将属性、常量、变量和函数连接起来的有意义的式子。,3.6 表达式,表达式的书写规则 水平书写,表达式中无上下角标,无上分子下分母,所有的符号都写在一行上;大括号、中括号、小括号都用圆括号代替;符号用英文字母、汉语拼音;运算符采用VB标准表示方法。 例:P57,运算符的优先级与结合性 在一个表达式中,优先级高的运算符先计算,优先级低的运算符后计算; 优先级相同的运算符按从左到右的顺序计算。 优先级从高到底的顺序: 算术运算符 字符串运算符(&)关系运算符逻辑运算符 算术运算符优先级由高至低是: 、(负数)、* / 、 (整数除法)、Mod、+和 、 &(字符串连接)。 逻辑运算符优先级由高至低是: Not、And、Or、Xor、Eqv、Imp。,求表达式的值 一个复杂的表达式可能由不同类型的运算符,不同类型的常量和变量组成。 一个简单的表达式可以是单个的常量、变量、属性和函数调用等而没有运算符。,例:设a=1,b=2,c=3,d=4,求下面表达式的值。 Not a+b+c-1 And d+9/2 ca Xor Not “Vbasic” Like “V*B*” b/2+1-1+d Or b*2=6 321,为了免去重复编写常用函数程序的麻烦,系统开发者们预先编好了大量的常用函数程序,集成在对应的语言环境中,供用户直接调用,这些函数通常称为系统内部函数。 分为: 数学函数 转换函数 字符串函数 数组函数 日期与时间函数 其它函数与语句 与用户交互函数 常用内部函数,3.7 常用内部函数,3.7.1 数学函数,3.7.1 数学函数,3.7.2 转换函数,Str (x) Str 函数的作用是将一个数值表达式转换为一个字符串,且表达式的类型不变。其语法格式为:Str(number) 参数number为一 Long型数值表达式,其中可包含任何有效的数值表达式。 当一数字转成字符串时,总会在前头保留一空位来表示正负。如果 number 为正,返回的字符串包含一前导空格暗示有一正号。,3.7.2 转换函数,Val(str) Val 函数的作用是返回包含于字符串内的数字,字符串中是一个适当类型的数值。 其语法格式为:Val(string) Chr(x) Chr函数求一个ASC码值所对应的ASC码字符 。其语法格式为:Chr(charcode)。 参数charcode是一个用来识别某字符的 Long型数。charcode 的正常范围为 0 255。 0 到 31 之间的数字与标准的非打印 ASCII 代码相同。例如,Chr(10) 可以返回换行字符。,3.7.2 转换函数,Asc(string) Asc 函数用来求一个字符串首字符的ASC码值,其语法格式为:Asc(string) 参数string可以是任何有效的字符串表达式。如果 string 中没有包含任何字符,则会产生运行时错误。 Hex(number) Hex 函数返回代表十六进制数值的 String。Oct 函数返回 Variant (String),代表一数值的八进制值。它们的语法格式为:Hex(number) Oct(number) 参数number为任何有效的数值表达式或字符串表达式。如果 number 不是一个整数,那么在执行前会先被四舍五入成最接近的整数。,3.7.2 转换函数,Format(Exp ,format) 使用 Format 函数首先将Exp表达式变成字符串类型,然后将Exp表达式的值转成format指定的格式,如日期、时间、货币或其他用户自定义格式。与 Str 不同的是,Format 函数不包含前导空格来放置 number 的正负号。,3.7.2 转换函数,3.7.2 转换函数,常用的数值型格式说明字符,常用的数值型格式说明字符,常用的时间日期型格式说明字符,常用的时间日期型格式说明字符,常用的字符型格式说明字符,常用的字符型格式说明字符,3.7.3 字符串函数,下表为字符串函数,参数为字符型,函数值大多为字符型,也可能为其他类型。字符串函数常以符号“$”标识,如Left()函数可写为Left$()。,常用字符串函数,常用字符串函数,常用字符串函数,3.7.4 数组函数,LBound( ArrayName , Dimension) LBound( ArrayName , Dimension)函数返回数组名为ArrayName的第Dimension维下标的下界,如果省略Dimension参数,则返回第一维下标的下界。 UBound( ArrayName , Dimension) UBound( ArrayName , Dimension)函数返回数组名为ArrayName的第Dimension维下标的上界,如果省略Dimension参数,则返回第一维下标的上界。,3.7.4 数组函数,Array(ArgList) Array(ArgList)函数定义一个一维变体类型的数组,其参数列表ArgList中逗号分隔的多个值就是该数组各元素的值。如果ArgList省略,则定义一个无元素的数组。,3.7.5 日期与时间函数,3.7.5 日期与时间函数,3.7.5 日期与时间函数,3.7.6 其它函数与语句,IIF(bln,TruePart,FalsePart)函数 bln是逻辑表达式,IIF函数的功能:bln的值为True时,函数返回值取TruePart的值; bln的值为False时,函数返回值取FalsePart的值。 Choose(expn,exp1,exp2,exp3)函数 expn为整形表达式。Choose为多项选择函数,当表达式expn

温馨提示

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

评论

0/150

提交评论