第2章VisualBasic基本知识2.1基本数据类型2.2变量2.3数据类型及声明2.4运算符和表达式2.5显示输出—Print语句2.6库函数2.7程序注释第2章VisualBasic基本知识2.1基本数据类型1数值常量:数值常量有(Integer整型)(不含小数点或指数的数)、Long(长整型)(相当于范围扩展了的整数)、Single(单精度)包含了小数点或指数)或者Double(双精度)(相当于范围扩展了的更精确的单精度实型数).例如:2字符串常量:是用双引号括起来的一串字符。这些字符可以是除双引号“””和回车、换行符以外的所有字符。例如:“$12,345.00”、“vb”、“98765”。第2章VisualBasic基本知识2.2变量变量命名规则以字母或汉字开头,后可跟汉字、字母、数字或下划线组成,长度小于等于255个字符;不要使用VB中的关键字;VB中不区分变量名的大小写.为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型。(1)要见名知义。比如用sum(或s)代表求和。(2)尽可能简单明了。(3)不能用VB的关键字做变量名。(4)变量名不能与过程名和符号常量名相同。(5)尽量采用VB建议的变量名前缀或后缀的约定来命名。如:intMax。(6)VB不区分变量名和其他名字中字母的大小写。为便于阅读,每个单词开头的字母一般用大写,例如PrintText。第2章VisualBasic基本知识2.3数据类型及声明将变量与一定的数据类型相联系这个过程称为变量声明.声明变量的语句格式如下:Dim变量名1As数据类型1,变量名2As数据类型2,……[例2.4]下面是几个变量声明:DimCounterasIntegerDimAreaAsSingleDimStudentNameAsStringDimStudentNameAsStrint*20第2章VisualBasic基本知识2.3数据类型及声明1Variant变量变体型数据是一种可变的数据类型,可以存放任何类型的数据。在程序中不特别说明时,VB会自动将该变量默认为Variant型变量。2符号常量声明符号常量的语法为:Const常量名As数据类型=值[例2.5]下面是一些典型的符号常量声明:ConstTWAsSingle=3.123456ConstAvogadroAsDouble=6.0225D+23ConstMaxCountAsInteger=100第2章VisualBasic基本知识2.3数据类型及声明3后缀不是明确声明一个数据类型(使用Dim或Const语句),要通过增加一个字符后缀到变量或常量后,使变量和符号常量可以与某个数据类型相联系。较为常用的几个后缀如下:后缀数据类型%整型&长整型!单精度型#双精度型$字符串型@货币型第2章VisualBasic基本知识2.3数据类型及声明4用户定义的数据类型除了上述数据类型外,在VB中,用户可以根据需要利用Type语句定义自己的数据类型,其格式如下:Type数据类型名数据类型元素名As类型名……EndType[例2.6]定义一个有关职工信息的自定义类型:TypeClient_RecordcltNameasString*16cltPasswordasString*8cltDepositasCurrencyEndType第2章VisualBasic基本知识2.4运算符和表达式1算术运算符表2-1标准算术运算符运算符名称优先级示例结果^乘方13^29-负号2-2-2*乘32*510/除34/5.8\整除44\50Mod取模55Mod41+加62+35-减64.5-2.42.1第2章VisualBasic基本知识2.4表达式1表达式的组成表达式由变量、常量、运算符、函数和圆括号按一定的规则组成,表达式的运算结果的类型由参与运算的数据类型和运算符共同决定。2表达式的书写规则1)每个符号占1格,所有符号都必须一个一个并排写在同一基准上,不能出现上标和下标。2)不能按常规习惯省略乘号*,如:2x要写成2*x。3)只能使用小括号(),且必须配对。4)不能出现非法的字符,如π。[例2.7]下面给出几个算术表达式:2*j+k-12*(j+k-1)First+second-third(a^2+b^2)^0.54*Pi*Radius^3/3(5/9)*(F-32)B^2-(4*a*c)(2*x-3*y)/(u+v)第2章VisualBasic基本知识2.4表达式3运算符的优先级一个算术表达式中同时出现几个运算符时,由运算符的优先级来决定,并且在优先级相同时,运算符的执行还有一定的顺序。算术运算符优先级由高至低是:指数运算(^)、负数(–)、乘法和除法(*、/)、整数除法(\)、求模运算(Mod)、加法和减法(+、–)。在优先级相同时,运算符按从左至右的顺序执行。4插入括号[例2.10]假定我们求代数项的值:对于这个代数式VisualBasic表达式如下:(2*(a+b)^2+(3*c)^2)^(m/(n+1))如果要按照某种特定的顺序来执行运算,可以引入额外的括号对。例如:((2*((a+b)^2))+((3*c)^2))^(m/(n+1))122)3()(2nmcba第2章VisualBasic基本知识2.4表达式5字符串表达式字符串运算符有“&”和“+”两个,如表2-2所示表2-2字符连接运算符运算符说明示例结果&连接两个字符串表达式Micro&soft“Microsoft“+计算和,也可连接字符串123+456““123456““&”和“+”两个字符连接运算符对于字符串连接功能是一样的,只是在使用“&”时,其左右两边必须加空格,而“+”两边无须输入空格,系统会自动留空;“+”两边必须是字符串,必要时得使用转换函数,而“&”两边连接的可以不是字符串,系统自动将其转换为字符串进行连接运算。第2章VisualBasic基本知识2.4表达式6变量赋值变量赋值的作用是把指定的值赋给某个变量或某个对象的属性。一般格式为:变量(或对象.属性)=表达式说明:(1)“=”为赋值号,不等于数学意义上的等号。(2)赋值语句具有赋值和计算的双重功能,即首先计算赋值号右边的源操作符的值,然后赋给左边的目标操作符。(3)目标操作符和源操作符应具有相同的数据类型。但不管表达式是什么类型,都可以赋给一个Variant变量。(4)如果复合语句(一行有多个语句)含有注释语句,则注释语句必定是最后一个语句。复合语句的各语句可以是任何合法的VB语句,但各语句之间必须用冒号隔开。第2章VisualBasic基本知识2.5显示输出—Print语句Print语句的作用是在当前活动窗体中显示信息,显示信息的位置从左上角开始。Print语句由关键字Print组成,后面跟着一系列。输出项可以是数值常量、字符串常量或者表达式。连着的各项必须用逗号或分号隔开。逗号使数据项隔得较开,而分号隔得较近。空的Print语句输出空的一行。[例2.11]一个VisualBasic程序包含以下的语句:Dimstudentasstring,xasinteger,c1assingle,c2assingle……Student=“Tom”X=39C1=7C2=11……Print“Name:”,student,x,(c1+c2)/2这个Print语句将产生如下的输出:Name:Tom399第2章VisualBasic基本知识2.6库函数VisualBasic包含大量的库函数,库函数提供了一个方便快捷的方法来实现许多数学操作、字符串操作以及各种逻辑操作。这些库函数是预先写好的程序,是整个程序设计语言不可缺少的一部分。在一个表达式或者语句中,它们可以出现在变量的位置上。常见函数类型如下:数学函数字符串函数日期和时间函数格式化函数表2-3常用数学函数函数说明实例结果Sin返回弧度的正弦Sin(1).841470984807897Cos返回弧度的余弦Cos(1).54030230586814Atn返回用弧度表示的反正切值Atn(1).785398163397448Tan返回弧度的正切Tan(1)1.5574077246549Abs返回数的绝对值Abs(-2.4)2.4Exp返回e的指定次幂Exp(1)2.71828182845905Log返回一个数值的自然对数Log(1)0Rnd返回小于1且大于或等于0的随机数Rnd0~1之间的随机数Sgn返回数的符号值Sgn(-100)-1Sqr返回数的平方根Sqr(16)4Int返回不大于给定数的最大整数Int(3.6)3Fix返回数的整数部分Fix(-3.6)-3表2-4常用字符串函数函数说明实例结果Ltrim$(C)返回删除字符串左端空格后的字符串LTrim$(MyName)MyNameRtrim$(C)返回删除字符串右端空格后的字符串RTrim$(MyName)MyNameTrim(C)返回删除字符串前后空格的字符串Trim$(MyName)MyNameLeft$(C,N)返回从字符串左边开始的指定数目的字符Left$(MyName,2)MyRight$(C,N)返回从字符串右端开始的指定数目的字符Right$(MyName,4)NameMid$(C,N1[,N2])返回从字符串指定位置开始的指定数目的字符Mid$(MyName,2,3)yNaLen(C)返回字符串的字符数Len(MyName=王青)9LenB(C)返回字符串所占字节数LenB(MyName=王青)6Instr([N1,]C1,C2[,M])返回字符串在给定的字符串中出现的开始位置InStr(7,ASDFDFDFSDSF,DF)7*InstrRev(C1,C2[,N1][,M])与Instr函数不同的是从字符串的尾部开始查找InStrRev(ASDFDFDFSDSF,DF,7)5Space$(N)返回由指定数目空格字符组成的字符串Space$(5)String$(N,C)返回包含一个字符重复指定次数的字符串String$(2,A)AALcase(C)字符串中字母转换为小写LCase(ABCabc)abcabcUcase(C)字符串中字母转换为大写LCase(ABCabc)ABCABC表2-5日期和时间函数函数说明实例结果Now返回系统日期和时间(yy-mm-ddhh:mm:ss)Now2006-5-18*16:19:10*Date[$][()]返回当前日期(yy-mm-dd)Date$()2001-5-18*DateSerial(Y,M,D)返回一个日期形式DateSerial(1,2,3)2001-2-3DateValue(C)返回一个日期形式,自变量为字符串DateValue(1,2,3)2001-2-3Day(C|N)返回月中第几天(1~31)Day(2002-3-5)5WeekDay(C|N)返回是星期几(1~7)WeekDay(2002-3-5)3(星期二)WeekDayName(C|N)返回星期代号(1~7)转换为星期名称,星期日为1WeekDayName(3)星期二Month(C|N)返回一年中的某月(1~12)Month(2002-3-5)3Monthname(N)返回月份名Monthname(12)十二月Year(C|N)返回年份(yyyy)Year(2002-3-5)2002Hour(C|N)返回小时(0~23)Hour(Now)16*Minute(C|N)返回分钟(0~59)Minute(Now)31*Second(C|N)返回秒(0~59)Second(Now)42*Timer[$][()]返回从午夜开始算起的秒数Timer59623.44*Time[$][()]返回当前时间(hh:mm:ss)Time16:35:35*TimeSerial(H,M,S)返回一个时间形式TimeSerial(1,2,3)1:02:03TimeValue(C)返回一个时间形式,自变量为字符串TimeValue(1:2:3)1:02:03*注:由当时系统时间定。表2