《程序设计VisualBasic语言基本成分.pptx》由会员分享,可在线阅读,更多相关《程序设计VisualBasic语言基本成分.pptx(66页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章 Visual Basic语言 的基本成分 3.1 基本数据类型3.2 直接常量 3.3 变量3.4 符号常量 3.5 运算符 3.6 表达式 3.7 常用内部函数 3.8 习题 第1页/共66页3.1 基本数据类型 3.1.1 数值型3.1.2 String类型3.1.3 Boolean类型3.1.4 Date类型3.1.5 Object类型3.1.6 Variant类型 第2页/共66页3.1.1 数值型1.Integer(整型)每个Integer类型的数据占用2个字节(16个二进制位)的存储空间,可以存储-3276832767之间的整数。2.Long(长整型)每个Long类型的数据
2、占用4个字节(32个二进制位)的存储空间,可以存储-2147483648 2147483647之间的整数。3.Single(单精度浮点型)每个Single类型的数据占用4个字节(32个二进制位)的存储空间,可以存储-3.40282310383.4028231038范围之间的实型数。第3页/共66页3.1.1 数值型4.Double(双精度浮点型)每个Double类型的数据占用8个字节(64个二进制位)的存储空间,可以存储-1.79769313486232103081.7976931348623210308范 围之间的实型数。5.Currency(货币型)每个Currency类型的数据占用8个字
3、节(64个二进制位)的存储空间,Currency是一种固定小数点位置的数据类型,在小数点左边可以存储15位整数,在小数点右边可以存储4位小数,取值范围为-922337203685477.5808922337203685477.5807。对于精度要求比较高的数据,可以使用Currency类型。6.Byte(字节型)每个Byte类型的数据占用1个字节(8个二进制位)的存储空间,可以存储0255之间的无符号整数。它通常用来存储二进制数据。第4页/共66页3.1.2 String类型 String类型(字符串型)的数据可以用来存储文字信息,中文的一个字在计算机内部用两个字节存放,占用两个字符位;英文字
4、母及其他符号在计算机内部用一个字节存放,占用一个字符位。这样,任何文字信息都可以用字符位来衡量它的大小,也称字符串的长度。字符串型数据分为两大类:一类是定长字符串,定长字符串能够包含字符的最大个数是一定的,每个字符占用1个字节(8个二进制位)的存储空间,因此,定长字符串所占用的存储空间就是该字符串的长度;另一类是变长字符串,变长字符串能够包含字符的个数是可变的,所占用的存储空间就是该字符串的长度加上10个字节。第5页/共66页3.1.3 Boolean类型 每个Boolean类型(布尔型、逻辑型)的数据占用2个字节(16个二进制位)的存储空间,只能存储两个逻辑值,True(逻辑真,-1)或Fa
5、lse(逻辑假,0),用来表示真与假、是与否、开与关等信息。第6页/共66页3.1.4 Date类型 每个Date类型(日期时间型)的数据占用8个字节(64个二进制位)的存储空间,可以存放日期信息、时间信息或同时存放日期、时间信息。可以表示的日期范围为:100年1月1日到9999年12月31日。可以表示的时间范围为:0:00:00到23:59:59。第7页/共66页3.1.5 Object类型 每个Object类型(对象型)的数据占用4个字节(32个二进制位)的存储空间,用来存储任何类型的对象。第8页/共66页3.1.6 Variant类型 除 了 定 长 字 符 串 和 自 定 义 类 型
6、外,Variant类型(变体类型)几乎可以存储任何类型的数据。每个Variant类型的数据存放数值时占用16个字节的存储空间,存放字符串时占用的存储空间为22个字节再加上字符串的长度。第9页/共66页3.2 直接常量 3.2.1 整型和长整型常量3.2.2 浮点型常量3.2.3 字符串型常量3.2.4 逻辑型常量3.2.5 日期时间型常量 第10页/共66页3.2.1 整型和长整型常量第11页/共66页3.2.2 浮点型常量下面是用日常记数法表示的浮点型常量:0.123 .99 -12345.-0.9870.0-0.01230.123!.99#-12345.678#-0.987!0.0#下面是
7、用科学记数法表示的浮点型常量:0.123E-4(表示0.12310-4)-1234.567e8(表示-1234.567108)1.23D-3(表示1.2310-3,标准科学记数法)-1.234567d11(表示-1.2345671011,标准科学记数法)第12页/共66页3.2.3 字符串型常量所谓的字符串型常量是指用双引号扩起来的一串字符。双引号中可以包含Visual Basic字符集中任何字符,也可以包含中文汉字。下面是几个字符串型常量的例子:Visual Basic“1.234 abc123 True 大家好!1/2/2002“空格也是合法的字符,要注意含有空格的字符串和空串的区别。第1
8、3页/共66页3.2.4 逻辑型常量 逻辑型常量很简单,只有两个值:True 和 False 分别表示逻辑真和逻辑假。第14页/共66页3.2.5 日期时间型常量所谓的日期时间型常量是指用#号扩起来的一串日期和时间,它可以表示一个日期,也可以表示一个时间,还可以同时表示日期和时间。下面是几个日期时间型常量的例子:#1/31/2003#2003.3.8#May 1,2003#October 1,2003#11:50:00 AM#5:30:00 PM#8:30:00 AM#3/10/2003 12:00:00 AM#8/26/2003 5:00:00 PM#第15页/共66页3.3 变量 3.3.
9、1 变量的命名规则3.3.2 变量的存取3.3.3 变量的声明3.3.4 变量类型的转换3.3.5 强制变量声明3.3.6 自定义数据类型3.3.7 浮点数的精度 第16页/共66页3.3.1 变量的命名规则 Visual Basic规定,变量取名必须是以字母开始的字母、数字和下划线串。也就是说,变量名必须以字母开头,后面可以跟字母、数字和下划线,总长度不能超过255个字符,并且,变量名不能与系统保留字同名。下面是一些正确的变量名:SumTelCircleXA1My_name下面是一些非法的变量名:11aaa,bcIntegera1Y$1第17页/共66页3.3.1 变量的命名规则 数据类型前
10、 缀数据类型前 缀BooleanBlnIntegerIntByteBytLongLngCollectionColObjectObjCurrencyCurSingleSngDate/TimeDtmStringStrDoubleDblUser-Define TypeUdtErrorErrvariantVnt表3.1 变量命名前缀约定第18页/共66页3.3.2 变量的存取变量的值是可以改变的,那么,如何给变量提供值、如何对变量进行存取呢?一种最常用的方法是使用赋值语句,赋值语句的格式为:Let 变量名或属性名=表达式例如:Let x=8 将8赋给左边的变量x。n=n+1 取变量n的值加1以后再送给
11、n。Dblymj=3.14159*r*r 计算赋值号右边表达式3.14159*r*r的值,然后将值赋给左边的变量Dblymj。第19页/共66页3.3.3 变量的声明1.过程级变量2.模块级变量3.应用程序级变量4.定长字符串与变长字符串变量5.对象型变量(Object)6.变体类型变量(Variant)第20页/共66页3.3.4 变量类型的转换1.隐式转换(1)数值型数据的隐式转换Intvar1=12.8 Intvar1的值为13Intvar2=12.3 Intvar2的值为12Intvar3=12.5 Intvar3的值为12Intvar4=13.5 Intvar4的值为14Intvar
12、5=-12.8 Intvar5的值为-13Intvar6=-12.5 Intvar6的值为-12Intvar7=-13.5 Intvar7的值为-14Sngvar8=12 Sngvar8的值为12.0Intvar9=1234567 超出整型数表示范围,溢出Bytvar10=-12 超出字节型表示范围,溢出第21页/共66页3.3.4 变量类型的转换(2)字符串型数据的隐式转换Strvar1=1234 Strvar1的值为 1234 Strvar2=12.34 Strvar2的值为 12 Strvar3=1.234e3 Strvar3的值为 1234 Intvar4=1234 Intvar4的值
13、为 1234 Intvar5=xyz111 类型不匹配Intvar6=类型不匹配(空串不能赋值给数值型变量)Intvar7=Empty Intvar7的值为0Strvar8=Empty Strvar8的值为(空串)第22页/共66页3.3.4 变量类型的转换(3)逻辑型数据的隐式转换逻辑型转换成数值型的规则是:False转换成0,True转换成-1。数值型转换成逻辑型的规则是:0转换成False,非零转换成True。逻辑型转换成字符串的规则是:False转换成 False,True转换成True。字符串转换成逻辑型的规则是:“False”转换成False,“True”转换成True,其他字符串
14、不能转换,否则会显示“类型不匹配”错误。第23页/共66页3.3.4 变量类型的转换(4)日期时间型数据的隐式转换Sngvar1=#1/1/2002 12:00:00PM#Sngvar1的值为37257.5Dtmvar2=36526.75 Dtmvar2的值为#1/1/2000 18:00:00#第24页/共66页3.3.4 变量类型的转换转换函数功 能转换函数功 能Cbool()转换为Boolean类型Cdbl()转换为Double类型Cdate()转换为Date类型Csng()转换为Single类型Clng()转换为Long类型Ccur()转换为Currency类型Cvar()转换为Var
15、iant类型Cint()转换为Integer类型Cbyte()转换为Byte类型Cstr()转换为String类型表3.3 类型转换函数第25页/共66页3.3.5 强制变量声明Visual Basic有两种方法强制变量声明:方法一:在模块开始的声明段中加上一条语句:Option Explicit表示该模块中的变量必须声明了才能使用,否则会引起“变量未定义”错误。该语句局限于模块,其他不包含此语句的模块仍然允许使用隐含变量,所以,最好在每一个模块开始的声明段中都加上这一条语句。方法二:在【选项】对话框中找开【编辑器】选项卡,并选中【要求变量声明】复选框。这样,Visual Basic会在以后创
16、建每一个模块时,自动在模块开始的声明段中加上语句:OptionExplicit。第26页/共66页3.3.6 自定义数据类型1.定义数据类型在标准模块的声明部分,或者在窗体模块和类模块的声明部分可以使用Type语句定义一个用户自定义类型,定义格式如下:Public|Private Type 数据类型名成员名1 As 已定义的数据类型名成员名2 As 已定义的数据类型名成员名n As 已定义的数据类型名EndType第27页/共66页3.3.6 自定义数据类型2.声明变量例如:Dim UdtZhang As Student3.变量引用例如:UdtZhang.Strname=张三UdtZhang.
17、IntSex=1UdtZhang.DtmBirthday=#1984/8/26#UdtZhang.StrTel=87654321UdtZhang.StrAdd=学生3栋506室第28页/共66页3.3.7 浮点数的精度浮点数在机器内部表示是不精确的,一个单精度浮点数在机器内部占用4个字节,它有7位有效数字,一个双精度浮点数在机器内部占用8个字节,它有15位有效数字。用户在编程中要注意浮点数的不精确性。下面是关于浮点数精度的例子:Sngvar1=1/3 Sngvar1的值为0.3333333Sngvar2=0.123456789Sngvar3=0.123456788Sngvar4=Sngvar2
18、-Sngvar3 Sngvar4的值为0,单精度浮点数只有7位有效数字第29页/共66页3.4 符号常量 3.4.1 声明过程级符号常量3.4.2 声明模块级符号常量3.4.3 声明全局符号常量 第30页/共66页3.4.1 声明过程级符号常量声明过程级常量的格式为:Const 常量名 AS 类型名 =表达式 表达式的值就是被声明的常量的值。AS 类型名用来定义常量的类型,可以省略。这个声明语句如果放在某个过程的内部,则称它为过程级常量,过程级常量使用范围局限于该过程的内部。第31页/共66页3.4.2 声明模块级符号常量声明模块级常量的格式为:Private Const 常量名 AS 类型名
19、 =表达式 表达式的值就是被声明的常量的值。Private可以省略,这个声明语句放在模块的声明段中声明,本模块中所有过程都可以使用该常量。第32页/共66页3.4.3 声明全局符号常量声明全局常量的格式为:Public Const 常量名 AS 类型名 =表达式 在标准模块的声明段中声明,应用程序中所有模块的所有过程都可以使用该常量。当省略了AS 类型名 时,Visual Basic默认为Variant(变体类型)常量。例如:Const ConPi As Single=3.1415926 声明ConPi是单精度浮点常量Const ConNull As String=声明ConNull是字符串常
20、量Private Const Connum As Integer=100 声明Connum是模块级整型常量第33页/共66页3.5 运算符 3.5.1 算术运算符3.5.2 字符串运算符3.5.3 关系运算符3.5.4 逻辑运算符3.5.5 按位逻辑运算 第34页/共66页3.5.1 算术运算符表3.4 算术运算符运算符含 义例 子运算结果指数运算329-取负数-88-88*乘法运算5*630/除法运算15/27.5整除运算1527Mod求余(求模)运算8 Mod 32+加法运算10+818-减法运算10-82第35页/共66页3.5.2 字符串运算符 字符串运算符主要是指“&”和“+”字符串
21、的连接运算符,“&”和“+”的功能相同,都是将两个字符串首尾连接成一个字符串,但是,“+”运算符还有算术运算符做加法的含义,容易造成混乱,所以做字符串连接运算时最好使用运算符“&”。下面是字符串连接运算的例子:Visual&Basic 结果为 Visual Basic12345 +67890 结 果 为 1234567890第36页/共66页表3.5 关系运算符运算符含 义例 子结 果小于8888Flaseaa abTrue=小于等于88=88Trueaa 大于8887Trueaa abFalse=大于等于88=87Trueaa =abFalse=等于88=89Falseaa =abFalse
22、不等于8889Trueaa abTrue3.5.3 关系运算符第37页/共66页3.5.4 逻辑运算符 运算符含 义例 子结 果Not逻辑非运算符Not AFalseNot BTrueAnd逻辑与运算符A And ATrueA And BFalseOr逻辑或运算符A Or BTrueB Or BFalseXor逻辑异或运算符A Xor BTrueA Xor AFalseEqv逻辑等价运算符A Eqv ATrueA Eqv BFalseImp逻辑蕴涵运算符A Imp ATrueA Imp BFalse第38页/共66页3.5.5 按位逻辑运算第39页/共66页3.5.5 按位逻辑运算第40页/共
23、66页3.6 表达式 3.6.1 表达式的书写规则3.6.2 运算符的优先级与结合性3.6.3 编写表达式与求表达式的值 第41页/共66页3.6.1 表达式的书写规则第42页/共66页3.6.2 运算符的优先级与结合性 第43页/共66页3.6.3 编写表达式与求表达式的值第44页/共66页3.7 常用内部函数 3.7.1 数学函数3.7.2 转换函数3.7.3 字符串函数3.7.4 数组函数3.7.5 日期与时间函数3.7.6 其他函数与语句3.7.7 与用户交互函数 第45页/共66页3.7.1 数学函数1.Abs(x)x为数值型表达式,Abs(x)的功能为求x的绝对值。例如:Abs(8
24、)的返回值等于8;Abs(-8)的返回值也等于8。2.Sqr(x)x为大于或等于0的数值型表达式,Sqr(x)的功能为求x的平方根,函数返回值的类型为Double型。例如:Sqr(25)的返回值等于5。3.Exp(x)x为数值型表达式,Exp(x)的功能为求ex,函数返回值的类型为Double型,当Exp(x)709.8时,会产生溢出。例如:Exp(2)的返回值约等于7.38905609893056。第46页/共66页3.7.1 数学函数4.Log(x)x为大于0的数值型表达式,Log(x)的功能为求x的自然对数(以e为底的对数),函数返回值的类型为Double型。例如:Log(3)的返回值约
25、等于1.09861228866811。5.Sgn(x)x为数值型表达式,Sgn(x)的功能为求x的符号。当x为正数时,函数的返回值等于1;当x为负数时,函数的返回值等于-1;当x为零时,函数的返回值等于0。例如:Sgn(2)的返回值等于1。Sgn(-2)的返回值等于-1。Sgn(0)的返回值等于0。6.Int(x)x为数值型表达式,Int(x)的返回值为不大于x的最大整数。例如:Int(5.8)的返回值等于5。Int(-5.8)的返回值等于-6。Int(0)的返回值等于0。第47页/共66页3.7.1 数学函数7.Fix(x)x为数值型表达式,Fix(x)的功能为截取x的整数。例如:Fix(5
26、.8)的返回值等于5。Fix(-5.8)的返回值等于-5。Int(0)的返回值等于0。8.Round(x,n)x为数值型表达式,n为正整数。Round(x,n)的功能是对x四舍五入保留n位小数。如果n省略,就四舍五入保留x的整数部分。9.三角函数Sin(x)、Cos(x)、Tan(x)、Atn(x)x为数值型表达式,这4个函数分别返回x的正弦、余弦、正切和反正切函数值,函数返回值的类型为Double型。注意:Sin(x)、Cos(x)、Tan(x)的x为弧度;Atn(x)的返回值为弧度。10.Rnd(x)x为数值型表达式。Rnd(x)返回一个大于等于0而小于1之间的随机数。它的返回类型是Sin
27、gle类型。第48页/共66页3.7.2 转换函数1.Str(x)x为数值表达式。Str(x)函数的功能为把数值表达式x转换为相应的字符串。Str函数与CStr函数的区别是:当x0时,Str的返回值有前导空格(符号位),而CStr无前导空格。2.Val(str)str为字符串表达式,Val(str)函数的功能为将字符串str转换为数值型数据,从左到右转换,直到遇到字符串中的非数字字符为止。3.Chr(x)x为数值表达式。Chr(x)函数的功能是把数值表达式x作为字符编码,转换为仅含一个符号的字符串。若x的值在0255之间,则按ASCII码转换为单字节字符(如:字母、数字、西文符号);若x的值在
28、-3276832767之间,则转换为双字节字符(如汉字、中文符号)。第49页/共66页3.7.2 转换函数5.Hex(x)和Qct(x)x为整型数值表达式。Hex(x)函数的功能是把整型数值表达式x转换为十六进制字符串形式。Qct(x)函数的功能是把整型数值表达式x转换为八进制字符串形式。格式控制符含 义字符占位符,显示字符或空格&字符占位符,显示字符或不显示转换所有字符为大写格式第50页/共66页3.7.3 字符串函数1.Len(str)2.LCase(str)、UCase(str)3.StrReverse(str)4.LTrim(str)、RTrim(str)、Trim(str)5.Lef
29、t(str,n)、Right(str,n)6.Mid(str,m,n)7.Space(n)8.String(n,str)9.StrComp(str1,str2,CompMode)10.InStr(n,str1,str2,CompMode)第51页/共66页3.7.4 数组函数1.LBound(ArrayName,Dimension)和 UBound(ArrayName,Dimension)2.IsArray(VarName)IsArry函数是一个判断函数,它判断VarName变量名是不是一个数组名,如果是,则函数返回True;如果不是,则函数返回False。3.Array(ArgList)Ar
30、ray函数定义一个一维变体类型的数组,其参数列表ArgList中逗号分隔的多个值就是该数组各元素的值。数组下界从0开始,不受Option Base 1|0的影响。如果ArgList省略,则定义一个无元素的数组。第52页/共66页3.7.5 日期与时间函数1.Date和Time2.Now3.Year(dtm)、Month(dtm)、Day(dtm)、WeekDay(dtm)4.Hour(dtm)、Minute(dtm)、Second(dtm)5.DateAdd(str,n,dtm)6.DateDiff(str,dtm1,dtm2)7.DatePart(str,dtm)8.DateSerial(y
31、ear,month,day)9.TimeSerial(hour,minute,second)10.TimeValue(dtm)11.FormatDateTime(dtm,DateTimeFormat)第53页/共66页3.7.6 其他函数与语句1.IIF(bln,TruePart,FalsePart)函数2.Choose(expn,exp1,exp2,exp3,)函数3.Switch(exp1,value1,exp2,value2,expn,valuen)函数4.Shell()函数5.Beep语句第54页/共66页3.7.7 与用户交互函数1.输入框函数InputBox()2.消息框函数MsgBox()第55页/共66页3.7.7 与用户交互函数1.输入框函数InputBox()2.消息框函数MsgBox()第56页/共66页3.8 习 题第57页/共66页3.8 习 题_选择题第58页/共66页3.8 习 题_选择题第59页/共66页3.8 习 题_选择题第60页/共66页3.8 习 题_填空题第61页/共66页3.8 习 题_填空题第62页/共66页3.8 习 题_判断题第63页/共66页3.8 习 题_简答题第64页/共66页Q&A?Thanks!第65页/共66页感谢您的观看!第66页/共66页
限制150内