1、1第2章 Visual Basic语言基础2本章主要内容n2.1 编码的书写规则n2.2 Visual Basic的数据类型n2.3 常量和变量n2.4 运算符和表达式n2.5 常用内部函数32.1 编码的书写规则nVB代码不区分字母的大小写。VB对用户程序代码自动进行转换,关键字的首字母被转换成大写字母。42.1 编码的书写规则n语句书写自由灵活在同一行上可以写多句语句,语句间用“:”冒号隔开。例如:x=3:y=5:z=12单行语句分为若干行写,在本行后加续行符“_”(空格和下划线)。一行允许多达255个字符。52.1 编码的书写规则n注释有利于程序的维护和调试用Rem或“”撇号开头。n使用
2、不同进制的数字默认计数制是十进制十六进制:例如:&H9A,&H58八进制:例如:&O36,&O17例如:print&H9A 显示结果为:15462.1 编码的书写规则nVB中标识符的命名规则:合法的:a2、sum%、my_form等。不合法的:2a、x+y、a,b、a$b等。n关键字:又称保留字,在语法上有固定的含义,是语言的组成部分,系统能够识别其含义。例如:circle、abs、end、and 等。72.2 Visual Basic的数据类型nVB的数据类型:标准数据类型n是系统预定义的数据类型。用户自定义类型n是用户自己定义的数据类型,由若干个标准数据类型组成。81.Visual Bas
3、ic 标准数据类型数据类型数据类型关键字关键字类型类型声明符声明符推荐前缀推荐前缀占用占用字节数字节数取值范围取值范围整型Integer%int2-32 768 32 767长整型Long&lng4-2 147 483 648 2 147 483 647单精度Single!sng4负数:-3.402823E38 -1.401298E-45正数:1.401298E-45 3.402823E389数据类型数据类型 关键字关键字类型类型声明声明符符推荐前缀推荐前缀占用占用字节数字节数取值范围取值范围双精度Double#dbl8负数:-1.79769313486232D308-4.9406564584
4、1247D-324正数:4.94065645841247D-3241.79769313486232D308货币型Currency cur8-922 337 203 685 477.580 8922 337 203 685 477.580 7字节型Bytebyt10 255的无符号数字符型String$str字符串长度0 65535个字符日期型Datedtm81/1/100 12/31/9999逻辑型Booleanbln2True或False(真或假)对象型Objectobj4任何对象引用变体型Variantvnt按需要分配102.自定义类型n通过Type语句定义,例如:定义:Type stud
5、 定义stud类型 sno as integer 考号 sname as string*20 姓名 ssex as string*1 性别 stotal as single 总成绩 End Type使用:Dim s1 as stud112.3 常量和变量n2.3.1 常量n2.3.2 变量122.3.1 常量n常量:在程序运行过程中,其值始终保持不变的量称为常量常量。n常量有两类:用户声明的常量用户声明的常量系统提供的常量系统提供的常量132.3.2 变量n变量:是指在程序运行过程其值可以变化的量。变量用来临时存储数据。n变量的声明:Dim 变量名 as 类型142.4 运算符和表达式n算术运
6、算符与算术表达式n关系运算符与关系表达式n逻辑运算符与逻辑表达式n字符串运算符与字符串表达式151.算术运算符与算术表达式n用来进行简单的算术运算,运算结果是一个数值。优先级运算符含 义示 例运算结果1 乘方24162-取负-2-23*乘2*484/浮点除1/20.55整数除1206mod求余的模运算 5 Mod 327+,-加,减2+44-262162.字符串运算符与字符串表达式n字符串只有连接运算,在VB中可以用“+”或“&”。建议尽量使用“&”,使程序看起来更明了。n“+”和“&”的区别:当两个被连接的数据都是字符型时,它们的作用相同。当字符型和数字型连接时n“&”把数据都转化成字符型然
7、后连接;n“+”如果字符串为纯数值数据,则转化成数字型然后加运算;如果字符串不是纯数值数据,则显示类型不匹配错误。173.关系运算符与关系表达式n关系运算符是双目运算符,也称比较运算符,用来对两个表达式的值进行比较,比较的结果是一个逻辑值,即真(True,用-1表示)或假(False,用0表示)。VB提供了8个关系运算符,优先级相同。关系运算符含 义示 例运算结果=等于2+4=6True大于2*34True小于D=大于或等于2.5+3=6False=小于或等于8-3=2*3True不等于222*2FalseLike字符串匹配ABCDEF like DEFalseIs比较对象引用变量(略)184
8、.逻辑运算符与逻辑表达式n逻辑运算也称布尔(Boolean)运算,是将操作数进行逻辑运算,结果为逻辑值True或False,VB中的逻辑运算符有6个。优先级逻辑运算符含 义示 例运算结果1Not逻辑非Not 45True2And逻辑与4=5 And 9=8False3Or逻辑或4=5 Or 9=8True4Xor异或4=5 Xor 9=8True5Eqv等价4=5 Eqv 9=8False6Imp蕴含4=5 Imp 9=8False192.4.5 数据类型的转换n表达式通过运算后得到一个结果,其类型由数据和运算符共同决定。n对于算术运算,如果操作数具有不同的数据精度,则系统规定运算结果的数据类
9、型以精度高的数据类型为准。即:integerlongsingledoublecurrency 20 表达式的书写规则n表达式的书写规则表达式的书写规则每个符号占1格,所有符号都必须并排写在同一横线上。例如:24写成24,A1+A2在数学表达式中省略的内容必须重新写上。例如:3xy要写成3*x*y。在表达式中所有的括号都用圆括号表式,括号必须配对。表达式中不能使用非法的字符,如。212.4.6 运算符的优先级别n一个表达式中可能有多种运算,计算机将按一定的顺序对一个表达式中可能有多种运算,计算机将按一定的顺序对表达式求值。表达式求值。n第一级:函数运算n第二级:算术运算 -(取负)*,/Mod
10、+,-n第三级:字符串运算+,&n第四级:关系运算 ,=,n第五级:逻辑运算 Not And Or Xor Eqv Imp 说明:说明:n当乘法和除法同时出现在表达式中时,将按照它们从左到右出现的顺序进行计算。用括号可以改变表达式的优先顺序。n字符串连接运算符(&)不是算术运算符,就其优先顺序,它在所有算术运算符之后,而在所有关系运算符之前。n当幂和负号相邻时,负号优先。例如:2-2的运算结果是0.2522例:求表达式 NOT 2=4 OR 4NOT 2=4 OR 4*4=32 AND 32+34=32 AND 32+3的值。n本例按下面的步骤步骤进行计算:(1)算术运算 NOT 2=4 OR
11、 16=9 AND 35(2)关系运算 NOT True OR False AND False(3)逻辑非运算 False OR False AND False(4)结果 False232.5 常用内部函数n数学函数n转换函数n字符函数n日期和时间函数n测试函数nShell函数242.5 常用内部函数nVB提供了大量的内部函数供用户调用。n本节将分类介绍一些常用的内部函数。n函数的一般调用格式:格式:函数名(参数表)说明:参数表可以有一个参数或用逗号隔开的多个参数,多数参数都可以使用表达式。函数一般作为表达式的组成部分调用。252.5.1 常用的数学函数函数名函数名功能说明功能说明示示 例例结
12、结 果果Abs(N)求绝对值Abs(-15.8)15.8Exp(N)求以e为底的指数Exp(2)7.389Fix(N)返回N的整数部分Fix(-15.8)-15Int(N)返回不大于N的最大整数Int(-15.8)-16Log(N)求N的自然对数Log(10)2.3Sgn(N)返回N的符号值Sgn(-15.8)-1Sqr(N)平方根函数Sqr(64)8Sin(N)正弦函数Sin(0)0Cos(N)余弦函数Cos(0)0Tan(N)正切函数Tan(0)0Atn(N)反正切函数Atn(0)0Rnd(N)产生随机数10*Rnd产生0,10)之间的随机数Round(N1,N2)四舍五入(N2省略则取整
13、)Round(15.848,2)Round(15.848)15.851626n 在三角函数中的自变量是以弧度为单位。如:sin(30*3.14159/180)的值是0.5n Rnd函数:返回0,1)区间的随机数的双精度随机数。当一个应用程序不断地重复使用随机数时,同一序列的随机数会返复出现,用Randomize语句可以消除这种情况。其格式为:Randomize(N)n 如果希望产生A,B之间的随机整数,可通过下列语句实现:Int(B-A+1)*Rnd+A)例如:要产生1,100的随机整数:Int(Rnd*100)+1说明:说明:272.5.2 常用的转换函数函数名函数名功能说明功能说明示示 例
14、例结结 果果Str(N)将数字转换成字符Str(123)123Val(C)将字符转换成数字Val(123)123LCase(C)将大写字母转换成小写字母LCase(Visual)visualUCase(C)将小写字母转换成大写字母UCase(Visual)VISUALCBool(C|N)任何有效的数字字符串或数值转换成逻辑型CBool(5)CBool(0)TrueFalseCByte(N)将0255之间的数值转换成字节型CByte(8)8CCur(N)数值型转换成货币型CCur(3.1415926)3.1416CDate(D)有效的日期字符串转换成日期型CDate(#2005-12-28#)2
15、005-12-28CDbl(N)数值型数据转换成双精度CDbl(3.1415926)3.1415926CInt(N)数值型数据转换成整型,小数部分四舍五入CInt(3.1415926)3CSng(N)数值型数据转换成单精度CSng(3.1415926)3.141593CVar(N)转换成变体类型CVar(123)+V123V282.5.3 常用的字符函数函数名功能说明示 例结 果Asc(C)返回字符串首字符的ASCII码值Asc(Visual)86Chr(N)返回ASCII码值所代表的字符Chr(86)VSpace(N)产生N个空格Visual&Space(2)&BasicVisual Bas
16、icLen(C)返回字符串的长度Len(VB程序设计)6Left(C,N)取字符串C左边N个字符Left(VB程序设计,2)VBRight(C,N)取字符串C右边N个字符Right(VB程序设计,2)设计Mid(C,N1,N2)从字符串C的N1位置开始取长度为N2的字符Mid(VB程序设计,3,2)程序String(N,C)返回字符串C中由N个首字符组成的字符串String(4,Visual)VVVVLtrim(C)去掉字符串左边的空格Ltrim(Visual)VisualRtrim(C)去掉字符串右边的空格Rtrim(Visual )VisualTrim(C)去掉字符串左边和右过的空格 Tr
17、im(Visual )VisualInStr(N1,C1,C2)在C1中从N1位置开始查找C2,并返回C2第一次出现的位置值InStr(2,Visual,al)529说明:n如果函数返回值是字符型,则函数后有“$”字符。当然一般也可以不写,习惯都写上。n例如:len(This is a book!)15Left$(ABCDEFG,3)ABC Mid$(ABCDEFG,2,3)BCDInStr(2,“ABCDEFGEF”,“EF”)5(第一次出现的位置)Asc(“Abcd”)值为:65 (只取首字母的ASCII值)Val(abc123)值为:0Val(1.2sa10)值为1.2n注意:Val()
18、函数只将最前面的数字字符转换为数值。302.5.4 常用的日期和时间函数函数名功能说明示例结果Now返回当前系统日期和时间Now2006-2-17 12:39:54Date()返回当前系统日期Date()或Date2006-2-17Year(C|N)返回年代号(17532078)Year(2011-2-17)2006Month(C|N)返回月份值(112)Month(2011-2-17)2Day(C|N)返回日期值(131)Day(2011-2-17)17MonthName(N)返回月份中文名MonthName(2)二月Time()返回当前系统时间Time()或Time12:39:54Week
19、Day(C|N)返回星期代号(17)WeekDay(2011-2-17)5(即星期四)WeekDayName(N)返回数值N对应的星期名称WeekDayName(1)星期日312.5.5 测试函数函数名功能说明示例结 果TypeName()测试表达式的数据类型TypeName(3.14)StringIsArray测试变量是否为数组IsArray(变量名)返回Boolean型数据IsDate测试表达式是否为日期型 IsDate(#2006-2-17#)TrueIsNumericIs测试表达式是否为数值型 IsNumeric(3.1415)FalseEmpty测试变量是否已被初始化 IsEmpty
20、(变量名)返回Boolean型数据IIf测试条件表达式,返回相应表达式的值322.5.6 格式输出函数Format()n数值型数据格式化对于符号:0与#,当数值的实际位数比格式控制给定的位数多时,系统将按四舍五入返回给定的位数。例如:Format(3.14159,“#.#”),其值为 3.142n2、日期和时间型数据格式化缺省日期格式为:“mm/dd/yy”时间格式:“hh:mm:ss”n 3、字符串类型数据格式化format(“HELLO,)以小写显示Format(“hello”,“”)以大写显示332.5.7 Shell函数n在VB中不但提供了可调用的内部函数,还可以利用Shell函数,可
21、调用外部可执行程序。Shell函数的语法格式如下:Shell(命令字符串,窗口类型)n说明如果Shell函数成功地执行了所要执行的文件,则它会返回程序的任务 ID。任务 ID 是一个惟一的数值,用来指明正在运行的程序。如果 Shell函数不能打开命名的程序,则会产生错误。n命令字符串:用于指示要执行可执行程序的路径及文件名,要写在两个双引号中。n窗口类型:是一个可选参数,表示在程序运行时窗口的样式。如果此参数省略,则程序以具有焦点的的最小化窗口来运行。n例如:程序执行下面的语句,则显示Windows中的计算机器界面。X=Shell(c:windowssystem32calc.exe,vbNormalFocus)如果不知道应用程序的路径名,可用Strat命令启动程序。X=Shell(start&calc.exe,vbNormalFocus)启动计算器窗口