《VB语言基本知识解析课件.ppt》由会员分享,可在线阅读,更多相关《VB语言基本知识解析课件.ppt(67页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第3 3章章 VBVB语言基本知识语言基本知识1难点:变量的类型定义 运算符的优先级重点:常量与变量 运算符与表达式 常用标准函数23.1 VB语言的编码规则一、字符集一、字符集n在VB的代码中,有两种字符:系统关键字和用户自定义标识符 n常用的系统关键字有:If、Else、End、Sub、Private、Function、Public、Form、Me、Unload、Do、While、Loop、Until、MessageBox、InputBox等 n用户自定义标识符时,应遵循以下规则:只能由字母、数字、下划线组成;第一个字符必须是英文字母;有效长度为255个字符;不可以包含标点符号和类型说明
2、符%、&、!、#、$;不可以是系统关键字。关键字:又称保留字,在语法上有固定含义,是语言的组成部分,用于表示系统提供的标准过程、函数、运算符、常量等;VB中约定关键字的首写字母为大写。3二、代码书写规则 在VB代码窗口中编写程序代码,除了要了解和使用控件、基本的数据表示外,为提高编程的效率,还必须了解VB的编码规则:1一般情况下,一行上书写一条语句,一行上最多可以书写255个字符。若需要在同一行上书写多条语句,语句间用冒号“:”隔开;若需要将一条语句分多行写,则必须在行末加续行符“_”(空格和下划线)。2VB代码不区分大小写,且自动转换代码,使代码规范。对系统的关键字,总是转换成首字母为大写的
3、格式。43、对用户自定义标识符(变量名、过程名、函数 名),以第一次定义的格式为准,以后的表示均被自动转换为第一次定义的格式。4、使用缩进以区分程序的不同部分,突出程序结构。5、添加注释使程序容易被理解。5数据类型是程序设计的必要组成部分,也是程序处理的对象。在不同语言中,数据类型的规定和处理方法不同。VB提供系统定义的数据类型标准数据类型 用户自己定义数据类型标准数据类型主要有:数值型 字符串型(String)布尔型(Boolean)逻辑型 日期型(Date)变体型(Variant)对象型(Object)3.2 数据类型6用来表达整数和实数整型(Integer)长整型(Long)单精度浮点型
4、(Single)双精度浮点型(Double)货币型(Currency)字节型(Byte)一、标准数据类型(一)数值型数据7整型(Integer):以2个字节的二进制码存储。十进制:由0-9数字和正负号组成,取值范围-32768-32767八进制:由0-7数字组成,前面冠以&或&O,取值范围&0-&177777例:&123,或&O123十六进制:由0-9数字及A-F组成,前面冠以&H(或&h),取值范围&H0-&HFFFF例:&H56,&H7F1整数类型 定义:是不带小数点和指数符号的数 根据表示数的范围的不同,可分为整型、长整型,且都有三种表示形式,即十进制、八进制、十六进制。8长整型(Lon
5、g):以4个字节的二进制码存储。十进制:由0-9数字和正负号组成,取值范围-21474836482147483647八进制:由0-7数字组成,前面冠以&或&O,以&结束,取值范围&0&-&37777777777&例:&123&,或&O123&十六进制:由0-9数字及A-F组成,前面冠以&H(或&h),以&结尾,取值范围&H0&-&HFFFFFFFF&例:&H56&,&H7F&9是带小数部分的数。按存储格式,又分为浮点型和定点型浮点型实数由符号、尾数及指数三部分组成。2实数类型单精度浮点数的指数用E(e)表示;双精度浮点的指数用D(或d)表示。+|-XX.XXE|D+|-XXX指数部分尾数部分1
6、0单精度浮点型(Single)占4个字节存储空间,可以精确到7位十进制,取值范围1.4010-453.401038货币型(Currency)占8个字节的存储空间,用于表达定点数,小数左边有15位,右边有4位,取值分围:-922337203685477.5808922337203685477.5807主要用于要求精度特别重要的场合,如货币计算和定点计算.双精度浮点型(Double)占8个字节的存储空间,可以精确到15位或16位十进制数,取值范围4.9410-3241.791030811是一种无符号整型数,占1个字节用于存储二进制数据,取值范围:02553.字节型(Byte)12 字符串是一个用双
7、引号(英文)括起来的字符序列,由一切可打印的西文字符和汉字组成(二)字符串型数据(String)例:“Hello”“123456”“程序设计”“”(空字符串)13注意:(1)VB字符串有两种:可变长度字符串和固定长度字符串。前者指程序执行过程中字符串长度不固定,最多可包含231个字符;后者指在程序执行过程中字符串长度保持不变的字符串,最大长度为216。(2)双引号在程序代码中起字符串的定界作用。(3)在字符串中,字母的大小写是有区别的。例如“AB123”与“ab123”代表两个不同的字符串。(4)若字符串本身包含双引号,可用连续的两个双引号表示.例:“Youmuststudyhard”,hes
8、aid.写成:“Youmuststudyhard”,hesaid.”14注意:当将数值型数据转换为布尔型时,0转换为False,非0值转换为True。当将布尔型数据转换为数值型数据类型时,False转换为0,True转换为-1。(三)布尔型数据(Boolean)占2个字节的存储空间,用于逻辑判断,只有True 和False两个值。15 按8个字节的浮点形式存储,可以表示的日期范围从100年1月1日9999年12月31日,而时间可以从0:00:0023:59:59(四)日期型数据(Date)日期型数据有两种表示方法:用#号括起来表示,例#January1,2001#;另一种以数字序列表示,小数点
9、左边的值表示日期,而小数点右边的值则表示时间。16是随时可以改变数据类型的数据。没有用Dim等语句显示说明其类型,在VB中对所有未定义的变量都默认为是变体型的。可以包含数值等任何类型的数据还可以包含Empty、Error、Null等特殊值Empty用来标记未初始化的变体型变量:数值计算时为0,字符运算时为空串Null一般用于数据库应用程序:如表达式中包含Null值则其值总为空Error用来表示在过程中出错时的特殊值(五)变体型数据(Variant)17存储32位(4字节)的地址信息,利用中的Set语句为其指定值(六)对象型数据(Object)18二、用户自定义数据类型用户可以使用Type语句定
10、义自己的数据类型格式如下:Type自定义数据类型名元素名As类型名元素名As类型名EndTypeType studentsName AS String*12Num AS IntegerAge AS IntegerEnd Type19常量是指在程序运行期间其值不发生变化的量。在VisualBasic中,有两种形式的常量直接常量符号常量用户自定义符号常量系统定义符号常量3.3 常 量20根据数据类型常量分为:字符串常量数值常量布尔常量日期常量一.直接常量直接常量就是在程序代码中,以直接明显的形式给出的数。例如:”欢迎使用visualBasic”字符串常量12345数值型常量True布尔型常量#11
11、102001#日期型常量21在程序设计中,常用常量命名的方法来取代程序代码中出现的数,这种常量称为符号常量。符号常量在使用前需要使用Const语句进行声明。声明的格式如下:Public|PrivateConstAs=二.符号常量1.用户自定义符号常量说明::按变量名的命名规则命名。As:可选项,用以说明符号常量的数据类型。可以是Byte、Boolean、Integer、Long、Currency、Single、Double、Date、String或Variant。一个As子句只能说明一个符号常量。若省略该项,则系统根据表达式的求值结果,确定最合适的数据类型。:由数值常量或字符串常量以及运算符组
12、成。在中不能使用函数调用。22用先前定义过的符号常量定义新符号常量例如:ConstPi=3.14159声明符号常量Pi代表3.14159,单精度类型ConstMaxAsInteger=9声明符号常量Max代表9,整型ConstBirthDate=#1/1/01#声明符号常量BirthDate代表2001年1月1日,日期型ConstPi=3.14,Max=9,MyStr=“Hello”用逗号分隔多个符号常量声明ConstPi2=Pi*2231)如果要使创建的符号常量只作用于某个过程中,则应在该过程内部声明该符号常量。注意:2)如果要使创建的符号常量对模块中所有过程都有效,但对模块之外任何代码都无
13、效,则应在模块的声明段中声明符号常量。3)如果要使创建的符号常量在整个应用程序中有效,则应在标准模块的声明段中进行声明,并在Const前面放置Public关键字。在窗体模块或类模块中不能声明Public符号常量。24例如:Constpi=3.14159PrivateSubCommandl_Click()Constr=100s=pi*r2Print“圆面积=”;s,rEndSubPrivateSubCommand2_C1ick()angle=Sin(20*pi180)Printangle,rEndSub符号常量pi在整个窗体模块中有效,符号常量r只在本事件过程中有效254)由于符号常量可以用其他
14、符号常量定义,因此在两个以上符号常量之间不要出现循环或循环引用。例如:在标准模块Modulel中定义:PublicConstconA=conB*2在整个应用程序中有效在标准模块Module2中定义:PublicConstconB=conA/2在整个应用程序中有效当程序中有两个以上的公共符号常量,而且每个公共符号常量都用另一个去定义时就会出现循环。出现循环引用,在运行此应用程序时,VB就会产生错误信息。为了避免出现循环引用,可以将公共符号常量限制在单一模块内,或最多只存在于少数几个模块内。265)符号常量是有意义的名字,它用于取代永远不变的数值或字符串。尽管符号常量有点像变量,但不能像对变量那样
15、修改符号常量,也不能对符号常量赋以新值。272.系统定义的符号常量系统符号常量的定义可以从“对象浏览器”中获得。使用对象浏览器可以显示包括当前工程及对象库在内的过程、模块、类、属性和方法等的描述信息。选择对象库在“类”列表中选择所需要的符号常量组用鼠标单击某一个符号常量描述框中显示有关该符号常量的定义及描述信息。例:vbBlue所表示的颜色值为&HFF0000从菜单栏视图中选择“对象浏览器”或(F2)28每个变量都有名字和数据类型,通过名字来引用一个变量,而通过数据类型来确定该变量的存储方式。变量是指在程序运行时其值可以改变的量,是一个有名称的内存单元。3.4 变 量29VB变量的命名规则:变
16、量名必须以字母开头,长度不超过255个字符。变量名只能由字母、数字和下划线组成,不可以包含小数点、空格或者内嵌的类型声明字符。不能使用关键字,不能与过程名或符号常量同名。变量名不区分大小写。一.变量的命名规则例如:合法变量名:strMyString、intCount、MyForm等非法变量名:1x、a+b、LiLin、Sin等30二.变量的声明变量使用之前,一般必须先声明变量名和类型,以便系统为其分配存储单元。固定格式声明隐式声明强制显式声明VB变量及其类型声明方式31格式:说明::可以是VB提供的各种数据类型或用户自定义类型。As:方括号部分表示该部分可以缺省。缺省时,变量默认为变体类型.D
17、im:在窗体模块、标准模块或过程中声明变量。Private:变量仅在该模块或过程中有效。Static:在过程中定义静态变量,即使该过程结束,也仍然保留变量的值。Public:标准模块中声明全局变量,使变量在整个应用程序中有效。Dim|Private|Static|PublicAs1、固定格式声明32变量名后加一特定符号来表明数据类型:%整型&长整型!单精度型#双精度型货币型$字符串型X!=4.56Num%=88Name$=“李红李红”33若变量未经定义而直接使用,VB会自动建立一个变量。可存放任何类型的数据,如数值、字符串、日期和时间。2、隐式声明可见,随着所赋值的不同,变量的类型在不断变化.
18、这种方法很方便,但是常常会因为转换过程难以预料,而导致一个难以查找的错误。因此,应该在应用程序中声明所使用的变量的类型。例如:SomeValue=100SomeValue=“ABC”34(1)可 在 窗 体 模 块 或 标 准 模 块 的 声 明 段 中 加 入 语 句:OptionExplicit3、强制显式声明VB可采用强制声明功能,使所有变量都必须先声明后使用,这样,若运行时遇到一个未经明确声明的变量名,VB就会发出错误警告。声明方式:(2)在“工具”菜单中打开“选项”对话框,单击“编辑器”选择“要求变量声明”选项,即可自动插入OptionExplicit语句。注:OptionExpli
19、cit语句的作用范围仅限于语句所在模块.对于需要强制式变量声明的窗体模块、标准模块及类模块,必须将OptionExplicit语句放在这些模块的声明段中。35VB中有以下6类运算符和表达式:算术运算符与算术表达式字符串运算符与字符串表达式关系运算符与关系表达式逻辑运算符与逻辑表达式日期运算符与日期表达式对象运算符与对象表达式用运算符将运算对象(或操作数)连接起来即构成表达式。表达式表示了某种求值规则。操作数可以是常量、变量、函数、对象等,而运算符也有各种类型。3.5 运算符与表达式36一、算术运算符与算术表达式算术运算符用于对数值型数据执行各种算术运算。VB提供了7个算术运算符,优先级次序如表
20、所列:优先级运算符运算1乘方2-取负3*乘法/浮点除法4整数除法5Mod取模6+加法-减法其中,取负()运算符是单目运算符,其余运算符均为双目运算符(需要两个操作数)。37乘方运算用来计算乘方和方根。例:10210的平方,结果为10010(-2)10的平方的倒数,即1100,结果为0.01250.525的平方根,结果为58(1/3)8的立方根,结果为2223运算顺序从左到右,结果为以64(-8)(-1/3)错误,当底数为负数时,指数必须是整数1乘方运算382整数除法()例:104结果为225.686.99先四舍五入再整除,结果为3执行整除运算,结果为整型值。参加运算的操作数一般为整型数。当操作
21、数带有小数点时,先被四舍五入为整型数,后整除。39例:10Mod4结果为225.68Mod6.99先四舍五入再求余数,结果为511Mod-4结果为3-11Mod5结果为-1-11Mod3结果为-23.取模运算(Mod)取模运算符Mod用于求余数,为第一操作数整除第二操作数所得的余数.操作数带小数,先四舍五入取整型数,后求余;运算结果符号取决于第一个操作数。40注意:“&”和“+”这两个运算符的区别:“+”运算符两边的操作数应均为字符串。如果都为数值型,则进行算术运算;如果有一个为非数字字符串,另一个为数值型,则出错。“&运算符两边的操作数不论是数值型的还是字符串型的,都进行字符串的连接运算,系
22、统先将数值型操作数转换为字符串,然后再进行连接运算。二、字符串运算符与字符串表达式 字符串运算符有两个:“&”、“+”,是将两个字符串连接起来,合并成一个新的字符串。例如:“Hello”&“World”结果为“HelloWorld”18+“25”结果为43“Check”&123结果为“Checkl23”18&25结果为1825“Check”+123错误41VB提供的关系运算符:=等于2=3False不等于23True223False=2=3False=2=3TrueLike字符串匹配“aBBa”Like“a*a”TrueIs对象引用比较object1Isobject2三、关系运算符与关系表达式
23、关系运算符又称为比较运算符,用于对两个表达式的值进行比较,比较的结果为布尔值True(真)或False(假)。42有关说明:若两个操作数是数值型,按其大小比较。若两个操作数是字符串,则按字符的ASCII码值从左到右逐一比较。对单精度或双精度进行比较时,应避免直接判断两个浮点数是否相等,而改成对其误差的判断。例如:Abs(A-B)1E-5关系运算符的优先级相同。“Like”运算符与通配符“?”、“*”等结合使用,常用于数据库模糊查询。“Is”运算符用于两个对象变量的引用比较。*isNull43例:数学上判断x是否在区间a,b内如写成:a=x=b则不能完成指定功能假设a=1,b=3,x=4VB在计
24、算:1=x=3时由左向右计算先计算1=4成立,值为-1接着计算-18)And(58)Or(58)例子或非运算OrNot运算符Not运算符为单目运算符,其它为双目运算符.31优先级45XorEqv6Imp异或同或蕴含当两个操作数不等价时,结果为真当两个操作数值等价时,结果为真如果A则B(38)Xor(58)Eqr(58)Imp(5c+dAnda=5OrNotc0Ord0True86FalseTrueFalseFalseTrueFalseTrue48VB提供系统内部函数,允许用户自定义函数过程。内部函数分5类:数学函数字符串函数随机函数、格式输出函数转换函数日期和时间函数 这些函数都带有一个或几个
25、自变量,在程序设计中称为参数。函数运算后返回一个值。3.6 常用内部函数49函数一般调用格式:()函数的参数可以是常量、变量或表达式,若有多个参数时,参数之间以逗号分隔50一、数学函数数学函数用于各种数学运算,主要包括 三角函数 平方根函数 绝对值函数 对数函数 指数函数绝对值函数绝对值函数 Abs(x)返回返回x的绝对值的绝对值例例:Abs(3.4)结果为结果为3.4 Abs(-3.4)结果为结果为3.4 51平方根函数平方根函数 Sqr(x)返回返回x的的平方根平方根,x=0例例:Sqr(9)结果为结果为3三角函数三角函数 Sin(x)正玄函数正玄函数 Cos(x)余玄函数余玄函数 Tan
26、(x)正切函数正切函数 Atn(x)反正切函数反正切函数 参数单位为弧度参数单位为弧度52指数和对数函数指数和对数函数Exp(x)返回以返回以e为底的指数函数,即数学中的为底的指数函数,即数学中的exLog(x)返回以返回以e为底的自然对数,即数学中的为底的自然对数,即数学中的lnx。VB没有提供常用对数函数,要想计算常用对数可没有提供常用对数函数,要想计算常用对数可以换算以换算:例如:例如:Exp(1)、Exp(2*X)、Log(10)。53取整函数取整函数 Int(x)返回不大于返回不大于x的最的最大值大值 Fix(x)返回返回x的整数部分的整数部分 例例:Int(3.6)=3 Int(-
27、2.3)=-3 Fix(6.5)=6 Fix(-5.6)=-5四舍五入函数四舍五入函数 CInt(x)CLng(x)例例:CInt(3.6)=4 54随机函数Rnd(x)产生01之间的单精度随机数。说明:若x0,则以上一个随机数作为种子,产生序列中的下一个随机数;若x=0,则产生与最近生成的随机数相同的数;若省略参数x,则以上一个随机数作为种子,产生序列中的下一个随机数产生N1,N2间随机整数,可使用公式:Int(N2-N1+1)*Rnd)+N255二、字符串函数VisualBasic提供了大量的字符串函数,具有很强的字符串处理能力。1删除空白字符函数LTrim(s)去掉字符串s左边的空白字符
28、(即前导空格)。RTrim(s)去掉字符串s右边的空白字符(即后置空格)。Trim(s)去掉字符串s左右两边的空白字符。例如:LTrim(”ABC”)结果为“ABC”RTrim(”ABC”)结果为“ABC”Trim(”ABC”)结果为“ABC”562取子串函数 Left(s,n)取字符串s左边的n个字符 Right(s,n)取字符串s右边的n个字符 Mid(s,p,n)从字字符串s的第p个字符开始取n个字符例:Left(“ABCDE”,2)结果为“AB”Right(“ABCDE”,2)结果为“DE”Mid(“ABCDE”,2,3)结果为“BCD”Mid(“ABCDE”,2,6)结果为“BCDE
29、”3.字符串长度函数 Len(s)返回字符串s的长度 例:Len(“ABCDE”)结果为5575生成空格函数 Space(n)返回n个空格例:Space(3)的结果为“”4生成字符串函数 String(n,s)取字符串s的第一个字符构成长度为n的新字符串。例:String(3,”ABC”)结果 “AAA”String(3,65)结果 “AAA”(字符”A”的ASCII码为65)587字母大小写转换函数 UCase(s)把小写字母转换为大写字母。LCase(s)把大写字母转换为小写字母。例:UCase(”Abc”)结果为ABC”LCase(”ABc”)结果为abc”6搜索子字符串函数 InStr
30、(n,s1,s2)在字符串s1中第n个位置开始查找字符串s2出现的起始位置例:InStr(”ABCDE”,”BC”)结果为2 1nStr(”ABCDECDE”,”DE”)结果为459日期和时间函数可以显示系统的日期和时间,提供某个事件何时发生及持续时间长短等信息。常用的日期时间函数有:Now 返回系统日期和时间Date 返回系统日期Time 返回系统时间Day(d)返回参数d中指定月份的第几天WeekDay(d)返回参数d中指定的星期几Month(d)返回参数d中指定的月份Year(d)返回年份Hour(d)返回小时(023)Minute(d)返回分钟(059)Second(d)返回秒(059
31、)Timer 返回从午夜开始到现在经过的秒数三、日期和时间函数60转换函数用于数据类型或形式的转换,包括整型、实型、字符串型之间以及与ASCII码字符之间的转换。下面介绍常用的转换函数。1将字符转换成ASCII码 Asc(s)返回字符串s中第一个字符的ASCII码。例:Asc(“A”)结果为65 Asc(“ABC”)结果为65四、数据类型转换函数2将ASCII码转换成字符 Chr(x)把x的值转换为对应的ASCII字符例:Chr(65)的结果为”A”。613将数值转换成字符串 Str(x)把x的值转换为一个字符串。如果x为正,则返回的字符串前有一前导空格。例:Str(123)的结果为“123”
32、。4将字符串转换成数值 Val(s)把数字字符串s转换为数值。例:Val(“123”)结果为123 Val(“123AB”)结果为123 Val(“.123AB”)结果为.123 Val(“a123AB”)结果为0 625数值型转换成逻辑型数据 Cbool(x)非0为True 0为False。例:Cbool(123)的结果为True。6字符串转换成日期型数据 Cdate(x)把字符串转换为日期数据。例:Cdate(“February 20,1999”)结果为99-2-20 Cdate(“4:30:40 PM”)结果为16:30:4063 格式输出函数可以使数值、日期或字符串按指定的格式输出。其格式为 Format(,)五、格式输出函数:要格式化的数值、日期或字符串表达式。:指定表达式的值的输出格式。格式字符有三类:数值格式、日期格式和字符串格式。格式字符要加引号。646566作业:P57 3、7、8、9课后分析:本节需掌握知识点较多,不需要一下子都记住,以后用到时逐渐记忆。67