




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、3.1 语法规则 3.2 数据类型 3.3 常量、变量和函数 3.4 运算符和表达式,第3章 VB语言基础,3.1 语法规则,每一种高级程序设计语言源程序代码的书写都有一定的规则,以便于程序的阅读,VB也不例外,其源程序代码的编写具有自己的风格,3.1 语法规则,1.VB源代码不区分字母的大小写:在代码窗口中,VB对用户输入的程序代码进行自动转换,以提高程序的可读性: VB关键字的首字母总被转换成大写,其余字母被转换成小写; 若关键字由多个英文单词组成,每个单词的首字母都将被转换成大写; 对用户自定义的变量、过程名,VB以第一次定义的为准,以后输入时VB自动向首次定义的转换; 没有定义的变体型
2、变量,则按最后一次书写的格式自动转换,这样对统一格式不利,因此建议大家最好是先定义再使用变量,3.1 语法规则,2.语句书写自由 同一行中可以写多个语句,语句间用冒号“:”分隔; 一个语句可分行书写,须在行后加续行标志(“ _”); 代码的分隔符用空格或Tab键; 每行字符长度不超过1023个字符。 3.适当添加注释有利于程序的维护和调试 以关键字Rem开头或以撇号“”开头引导注释内容,且以撇号开头的注释还可直接出现在语句后面。 可通过“编辑”工具栏的“设置注释块”、“解除注释块”按钮,为选中的若干行语句(或文字)统一设置注释或取消注释。 注:有语法意义的标点符号,必须是英文状态的标点,而不能
3、是中文状态的标点,3.2 数据类型,数据类型的定义:在具有共性的数据集合上定义了若干封闭的运算,这就构成了一个数据类型。因此数据类型的两个要素是数据集合和其上的运算。简单地说,数据类型 = 数据集合 + 定义在其上的运算。 数据类型决定数据的存储方式,包括数据的大小、有效位、是否有小数点等。在不同的程序设计语言中,数据类型的规定和处理方法也不相同。VB中数据类型分为基本数据类型和自定义数据类型。基本数据类型是VB中已经定义的一些常用的标准的数据类型,自定义数据类型是为了满足程序员构造特殊数据类型的需要,一、 基本数据类型,1.字符串(String)数据类型 字符串是指由ASCII字符、汉字及其
4、它可打印字符组成的文本。字符串有定长字符串和可变长字符串。当声明一个变量为String型时,按系统默认设置为可变长字符串,其长度由为它赋值的字符串决定;定长字符串可用语法“String * Size”表示,当给定长字符串变量赋值时,若字符串的长度变量的长度长,则将字符串的尾部截去;若字符串的长度比变量的长度短,则在尾部补空格。数值字符串(由数字组成的字符串)和数值型变量可以互相赋值。例如: Dim x As Single , y AS String x = 123.456 : y = x y 的值为123.456 x = Int(y) x 的值为123,2.数值(Numeric)数据类型:数值
5、型数据类型包括整型、长整型、单精度浮点型、双精度浮点型、货币型和字节型。 整型(Integer):以两个字节表示和参加运算。 十进制整数,取值范围是-3276832767; 八进制整数,前面冠以 要访问学生的语文课成绩应表示为:Student.sngChinese,3.3 常量、变量和函数,变量:在程序的运行过程中,其值可以改变的量称为变量。变量的本质是计算机内被命名的存储位置,在程序代码中定义一个变量,指定了一个变量名,运行时系统根据其数据类型为之分配合适的存储空间。在程序中,我们可以通过变量名来访问相应的存储单元中存放的数据,该存储单元所表示的值,我们就称之为变量的值。变量一经赋值,可以多
6、次读出,其值保持不变,直到再次给该变量赋以新值。 常量:是在程序的运行过程中其值保持不变的量。VB中定义了许多内部常量,同时也允许用户定义常量。 函数:是指能完成某种特定的操作或运算一段子程序,并且在子程序完成后带回一个值,这个值就称为函数的返回值。VB把常用功能模块做成了内部函数,程序员可以直接使用这些函数,也可以自己编写特定功能的函数,一、 标识符命名规则,在VB0中,用户可以根据实际情况为变量、常量等对象定义标识符,即他们的名字。定义名字的目的是为了在程序中按名字来访问或调用它们。合法的标识符不仅要具有唯一性(在其作用域内),而且必须遵循以下命名规则: 以字母或汉字开头,由字母、汉字、数
7、字或下划线组成的1-255个字符。如ab , a1, a_b都是合法标识符。而1a ,b-a 为非法的标识符。 不能使用VB的关键字。如Private 、Sub、 End、If 等都不能定义为变量或常量名。 常量或变量的名称中的字母不区分大小写。如XYZ,xyz,xYz认为是同一标识符。 为了增加程序的可读性,可以在标识符前加前缀来表明该变量或常量的数据类型参见教材表3-1,二、常量,常量分为值常量和符号常量。 1值常量,是指直接在程序中使用的常量值。各种数据类型都有直接使用的常量,但是表示方式不同。 (1) 整型常量:十进制整型常量,如-100;八进制的整型常量是以 b a = abcdef
8、gh 长度超过5个字符 b = 这是变长字符串 Print a; b End Sub,运行结果,2)用类型符(参见教材表3-1)直接声明变量。格式如下: Dim 变量名 类型符 如: Dim item% 声明整型变量item Dim shight! 声明单精度型变量shight Dim strname$ 声明字符串型变量strname Dim cxyz 声明货币型变量cxyz (3)隐式声明:在窗体的通用声明段中添若无Option Explicit语句,则可以不声明变量而直接使用,但程序出错时不易查出,一般不提倡这样做,2.变量的作用范围 声明变量的位置不同以及声明时使用的关键字不同,所声明的
9、变量的有效范围也不一样。VB中变量的有效范围有三个等级: 全局变量:在整个工程所有模块中有效。在标准模块的声明部分,用Public声明的变量为全局变量,用Private或Dim声明的变量为模块级变量。 窗体模块/标准模块级变量:只在该窗体模块或标准模块的各个过程中使用,其它模块中的代码不能引用。若在窗体中用Public声明全局变量,则在其它模块中引用时,须在变量前加声明此变量的窗体名。 过程级(局部)变量:只在一个过程内有效,在其它过程中均无效。局部变量对任何临时性计算非常有用。在过程中用Private 、Dim或Static声明的变量均为窗体模块级变量,其中Static用于定义静态变量且只能
10、在过程中使用,Dim用于定义动态变量。 不同作用范围的3种变量声明及使用规则如教材表3-4所示,3.关于变体类型(Variant)的变量 VB中,变体类型是变量的缺省类型。以下三种方式变体类型变量的声明是等价的: (1) 在Dim语句中使用类型关键字Variant定义,如: Dim varExample As Variant (2) 在Dim语句中仅定义变量名而不声明类型,如: Dim VarA,VarB (3) 隐式声明的变量,系统默认为变体类型变量。 在Variant变量中,可以存放任何类型的数据,包括数值、字符串、日期和时间等。向Variant类型的变量赋值时,不必进行任何转换,VB自动
11、完成各种必要的转换,四、常用内部函数,程序设计中的函数是指一段小的子程序,它能完成某种特定的操作或运算,并且在子程序完成后带回一个值,这个值就称为函数的返回值。VB把常用功能模块做成了内部函数,程序员可以直接使用这些函数而不必自己再花时间去编写,利用这些函数可以大大简化代码的编制。 用户在使用这些内部函数时,只需写出它的函数名和填入函数的参数就可直接引用,并且参数必须在函数名后用括号括起来。若参数有多个,则参数之间必须用逗号隔开。若函数不带参数,则调用时直接写出函数名即可。例如,下面的几种函数调用都是合法的: x=Sin(x) 返回x的正弦值 Print Format(Now, hh:mm:s
12、s) 返回当前时刻的hh:mm:ss格式 Print Now 返回当前系统时间日期,VB的内部函数大体上可分为数学函数、转换函数、字符串函数、时间/日期函数和随机函数等。这些内部函数的详细用法请参见MSDN(Microsoft Developer Network) 联机帮助文档。 对一个常用内部函数,应掌握以下几点: (1)函数的功能,即它能完成的操作。 (2)参数的格式,包括函数的名字,参数的个数、位置、数据类型。 (3)函数返回值的意义和数据类型。 要检验各函数的功能,可在【立即】窗口中输入“Print 函数名(参数)”并回车,则可立即显示出该函数的值,1.数学函数 VB中的数学函数与数学
13、中的定义一致,但三角函数中的参数以弧度为单位。 (1) Sin()函数:计算角度的正弦值。格式:Sin(x) (2) Cos()函数:计算角度的余弦值。格式:Cos(x) (3) Tan()函数:计算角度的正切值。格式:Tan(x) (4) Atn()函数:计算反正切值。格式:Atn(x) (5) Log()函数:计算自然对数值。格式:Log(x) (6) Exp()函数:计算以e为底的幂。格式:Exp(x) (7) Sqr()函数:计算平方根。格式:Sqr(x,8) Abs()函数:计算绝对值。格式:Abs(x) (9) Hex()函数:将十进制数值转换为十六进制数值或字符串。格式:Hex(
14、x) (10) Oct()函数:将十进制数值转换为八进制数值或字符串。格式:Oct(x) (11) Sgn()函数:判断参数的符号。 格式:Sgn(x) 参数:x为一个数值型常量或变量或表达式。 返回值:当x0,返回值+1;当x=0,返回值0;当x0,返回值-1,2.转换函数 转换函数用于数据类型或形式的转换,包括整型、浮点型、字符串型之间以及与ASCII码字符之间的转换。 (1) Str()函数:将数值型数据转换成字符串型数据。 格式:Str(Numerical) 参数:函数中的参数只有一个, 为数值型的常量、变量或表达式。 返回值:由参数转换而来的一个字符串型常量。 例 X5645 A=S
15、tr(X) 结果:A的值为5645,2) Val()函数:将数字字符串转换成数值型常数。 格式:Val(String) 参数:参数为字符串类型的变量或常量或表达式。 返回值:若参数字符串中包含“”,则只将最左边的一个“”转换成小数点;若参数字符串中包含有“+”或“-”,则只将字符串首的“+”、“-”号转换为正、负号;若参数字符串中还包含有除数字以外的其他字符,则只将字符串中其他字符以前的串转换成数值。 例 A=+3.14+2 : B=156B C=25.25.2868 X=Val(A) Y=Val(B) Z=Val(C) 结果:X, Y, Z 的值分别为3.14, 156, 25.25,3)
16、Chr()函数:将ASCII码转换成相应字符。 例 A=Chr(97) 结果:由于a的ASCII代码为97,故A的值为a。 (4) Asc()函数:求出一个字符对应的ASCII码值。 例 A=Asc(C) 结果:A的值为67,即C的ASCII码值。 (5) Cint()函数:将数值的小数部分进行四舍五入,然后返回一整型量。 (6) Fix()函数 (7) Int()函数 例 X=Int(6.5) Y=Int(-7.8) 结果:X的值为6,Y的值为-8,8) Ccur()函数:将数值型量转换成货币型量,最多保留四位小数。 (9) Lcase()函数:将大写字母转为小写字母。 (10) Ucase
17、()函数:将小写字母转换为大写字母。 除上述转换函数外,VB 6.0中还提供了Cdbl,Clng,Csng,Cbool,Cstr等类型转换函数,其详细用法请查询MSDN联机帮助文档,3.字符串函数 Windows系统采用DBCS编码来处理使用象形文字字符的东亚语言。DBCS编码实际上是一套单字节与双字节的混合编码,即西文与ASCII编码一样,是单字节;中文以两字节编码。 VB中采用的是Unicode编码,全部用两个字节表示一个字符的字符集。 为了不同软件系统的需要,VB提供了StrConv函数作为Unicode与DBCS之间的转换。 (1) StrConv()函数:将字符串转换成Unicode
18、码字符串或 DBCS码字符串。 格式:StrConv(String,vbFromUnicodevbUnicode) 参数:要求参数String为一字符串类型常量或变量或表达式。 返回值:函数StrConv(String,vbFromUnicode)返回String的DBCS码字符串;StrConv(String,vbUnicode)则返回String的Unicode码字符串,2)InStr()函数::从字符串String1中的第N个字符开始找字符串String2。 格式:InStr(N,String1,String2,M) 参数:若省略N(注意:N省略,则不能带参数M),从头开始找;若有参数N
19、,则从String1的左端第N个字符开始找。M=1表示查找时不区分大小写,M=0或M省略表示查找时区分大小写。 返回值:若在String1中找到String2,则返回String1中第一次和String2匹配的第一个字符的顺序号;若找不到,则函数返回0。 例 x=InStr(2, EFEfCDEFG,EF,0) y=InStr(2, EFEfCDEFG, EF,1) 结果:x赋值为7,y赋值为3。 (3)InStrRev()函数:与InStr函数的作用相似,只是从String1的尾部开始找String2。 格式:InStrRev(String1,String2,N,M,4)Join()函数:将
20、数组的各元素按指定的分隔符连接成字符串。 格式:Join(Array,D) 参数:该函数的参数为一数组,分隔符D可省略。 返回值:若省略D,则各元素值顺序连接成字符串返回;若不省略D,则按分隔符D将各元素连接成字符串返回。 例 AArray(123,ab,c) c=Join(A, ) 结果:C的值为字符串123/ab/c。 (5)Left()函数:取出字符左边的N个字符作为一个新的字符串。 格式:Left(String,N) 例 C=Left(ABCDEFG,3) 结果:C的值为ABC,6)Len()函数:求字符串长度(即字符串的字符个数)。 例 xLen(AB高等教育) 结果:x的值为6。
21、(7)LenB()函数:求字符串存储时所占的字节数。 例 xLenB(AB高等教育) 结果:x的值为12。 (8)Ltrim()函数:去掉字符串左边的空格。 例 C=ABCD D=Ltrim(C) 结果:D的值为ABCD。 (9)Rtrim()函数:去掉字符串右边空格,10)Mid()函数:从字符串的中间取子串。 格式:Mid(String,N1,N2) 参数:从第N1个取起,取N2个。 例 C=Mid(ABCDEFG,2,3) 结果:C的值为BCD。 (11)Right()函数:取出字符串右边的N个字符。 (12)String()函数:产生由字符串的N个首字符组成的字符串。 格式:Strin
22、g(N,String) 例 C=String(3, ABCDEF) 结果:C的值为AAA。 (13)StrReverse()函数:将字符串反序,4.日期与时间函数 说明:日期与时间函数中的Date StringN表示参数可以是字符串表达式或数值表达式,其中N表示相对于1899年12月31日前后的天数。注意:日期的显示与Windows“控制面板”中设置的日期格式一致。 (1)Date()函数:提取或设置系统的当前日期。 例 Print Date 显示当前日期 Date=“2007-04-15” 设置当前日期 (2)DateSerial()函数:产生日期。 格式:DateSerial(year,m
23、onth,date) 参数:三个整型参数分别代表年、月、日。 例 Print DateSerial(2007,4,25) 输出结果:2007-4-25,3)DateValue()函数:产生日期。 格式:DateValue(Date String) 例 Print DateValue(7,4,20) 输出结果:2007-4-20 (4)Day()函数:计算日期值。 例 Print Day(Date) 假设当前日期为2007-4-22 输出结果:22 (5)Month()函数:计算月份值。 (6)MonthName()函数:返回月份名。 格式:MonthName(NString) 例 Print
24、MonthName(8), MonthName(9) 输出结果:八月 九月,7)Year()函数:返回日期中的年号。 格式:Year(DateStringN) 参数:DateString为一日期字符串,N表示1899年12月31日前后的天数。 例 Print Year(2001,12,20), Print Year(365) 输出结果:2001,1899 (8)Now()函数:返回系统日期和时间。 (9)Time()函数:返回系统中的当前时间。 (10)Hour()函数:返回系统时间的小时。 (11)Minute()函数:返回系统时间分钟。 (12)Second()函数:返回系统时间的秒。 (
25、13)Weekday()函数:返回星期值。 (14)WeekdayName()函数:返回星期名称,5.判断函数 (1)IsNumeric()函数:判断表达式是否为数字型。 (2)IsEmpty()函数 :判断变量是否已被初始化。 (3)IsDate()函数:判断表达式是否为日期。 (4)IsArray()函数:判断变量是否为数组,6.随机函数 在测试、模拟及游戏程序中,经常使用随机数。 (1)随机函数Rnd() 格式:Rnd(x) 功能:产生一个大于0小于1的单精度随机数。 参数:可有参数,也可省去参数。参数x为随机数生成时的种子。 例 产生一个lower,Upper范围内的随机整数。 Pri
26、nt Int(Upper-lower+1)*Rnd+lower) (2)Randomize语句:设置随机数种子。 例 Randmize Timer 将系统从午夜开始到现在经过的秒数作为随机数种子,7.Shell函数 VB不但提供了丰富的内部函数供用户调用,而且还可以通过Shell函数来调用Windows下运行的任何可执行程序。 格式:Shell 命令字符串,窗口类型 命令字符串:要执行的应用程序名,包括路径,必须是可执行文件(扩展名为.COM,.EXE,.BAT)。 窗口类型:程序运行时窗口的样式,一般取1,其它取值参见VB帮助。 函数调用成功后的返回值为一个任务标识ID,它是运行程序的唯一标
27、识,3.4 运算符和表达式,运算符:表示运算的符号称为运算符,如+,-,*,/等。参加运算的数据称为操作数,如常量、变量等。 表达式:由运算符和操作数构成的式子称为表达式,目的是求出一个新的值,如x+3,y+sin(a)等。表达式是程序设计语言的基本语法单位,它表达了一种求值规则。表达式是由常量、变量、函数、运算符及括号连接而成。 不同类型的数据可进行不同的运算。因为每一个表达式有一个结果值,表达式是有数据类型的,它决定了运算结果的数据类型。 VB中的运算符可分为:算术运算符、字符串运算符、关系运算符和逻辑运算符四类,分别可构成算术表达式、字符串表达式、关系表达式和逻辑表达式,一、算术运算符与
28、算术表达式,VB提供了8种算术运算: (指数)、-(负号)、*、/(乘、除)、(整除)、Mod(取余)、+、-(加、减)。 1.指数运算“”:指数运算用来计算乘方和方根,其运算符为“”。计算ab时,若左操作数为正实数,则右操作数b可为任意数值。若左操作数a为负实数,则右操作数b必须是整数。 例 102 10的平方,结果为100 10 -2 10的平方的倒数,即1/100,结果为0.01 250.5 25的平方根,结果为5 2.浮点数除法“/”与整数除法“”: (1) “/”。运算结果的类型由其值决定。 例 3/2 结果等于1.5,浮点数 3.6/1.8 结果等于2,整数,2)“”。整除的操作数
29、一般为整型数。当操作数带有小数点时,VB首先对其四舍五入为整型数,然后进行整除运算。运算结果简单地截取整数部分,小数部分不作舍入处理。 例 104 结果等于2 202.6 结果等于6 25.636.78 结果等于3 3.取余运算“Mod”:用于求余数,结果是第一个操作数整除以第二个操作数所得的余数。如果左右操作数为实数,VB首先对其四舍五入取整,然后做求余运算。运算结果的符号取决于左操作数的符号。 例 10 Mod 4 结果等于2 20 Mod 2.6 结果等于2 -5 Mod 2 结果等于-1 -5 Mod 2 结果等于-1,4.算术表达式中算术运算符的优先级 VB中的算术运算符优先级顺序(
30、从高到低)如下:、-、*、/、Mod、+,-。 当一个表达式中含有多种算术运算符时,按级别由高到低进行,同级运算符从左到右运算。如果表达式中含有括号,则先计算括号内表达式的值;有多层括号时,从内层括号到外层括号计算,二、 字符串运算符与字符串表达式,字符串连接运算符有两个:“&”,“+”,它们的作用都是将两个字符串依次连接起来,生成一个新的字符串。字符串变量、字符串常量及字符串函数通过字符串运算符组合而成的表达式,称为字符串表达式,其值为一个字符串。 例 a=Visual ,b=Basic“ ,则a & b或a + b的运算结果都是Visual Basic。 运算符“&”时应注意,运算符“&”
31、前后应各加一个空格,以免造成错误,这是因为符号“&”还是长整型的类型符。 此外,还需注意连接符“&”与“+”的区别: “+”:连接符两旁的操作数均应为字符型;若均为数值型或当操作数为数字字符串时则进行算术加运算;若一个为含有非数字字符的字符型数据,另一个为数值型数据则出错。 “&”:连接符两旁的操作数不管是字符型还是数值型,进行连接操作前,系统先将操作数转换成字符型,然后再连接,例 xyz+123 结果为xyz123 xyz & 123 结果为xyz123 xyz+123 出错 123+123 结果为246 因此,如果要做字符串连接,建议尽量使用“&”,而不要用“,三、关系运算符与关系表达式,
32、关系运算就是比较运算,作用是将两个操作数进行大小比较,比较的结果是一个逻辑值。由关系运算符连接成的表达式称为关系表达式。关系表达式的运算结果是一个逻辑值,若关系成立,返回True,否则返回False。在VB中,True用-1表示,False用0表示。操作数可以是数值型、字符型,对关系运算符需注意以下规则: (1) 如果两个操作数是数值型,则按其大小比较。但对单精度或双精度数进行比较时,因为机器的运算误差,可能会得不到希望的结果。因此应避免直接判断两个浮点数是否相等,应该是对两个数误差的判断。 例 Abs(num1-num2)1E-6 (2) 如果两个操作数是字符串型,则从左到右逐个字符比较,比较的是字符的ASCII码值,直到出现不同的字符为止。 例 Student= Student结果为True ABCDEABCDC结果为True Dd 结果为True,3) 注意这样的比较运算的结果: ”123” ”40”结果为False (4) 关系运算符的优先级相同。 (5) L
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山西警官职业学院《影视艺术欣赏》2023-2024学年第二学期期末试卷
- 通辽职业学院《文化创意产业概论》2023-2024学年第二学期期末试卷
- 江西现代职业技术学院《动物遗传学实验》2023-2024学年第二学期期末试卷
- 昆明文理学院《书籍装帧设计》2023-2024学年第二学期期末试卷
- 建筑公司整体转让合同
- 农民公寓买卖合同
- 临时工聘用炊事员合同书
- 品牌形象代言合同
- 指定用途借款合同
- 实验室设备采购合同
- 计算猪单位体重总产热量的计算公式
- 早期大肠癌的诊断与内镜下治疗课件
- 艾宾浩斯记忆表格遗忘曲线
- 2023年4月自考00540外国文学史试题及答案含评分标准
- 第6章-非线性有限元法(几何非线性)课件
- 中国志愿服务发展指数报告
- 初中物理-流体压强与流速的关系教学设计学情分析教材分析课后反思
- 畜牧业经营预测与决策 畜牧业经营预测(畜牧业经营管理)
- 陕西省公务员招聘面试真题和考官题本及答案102套
- 差额定率分档累进法计算
- 第5章全程导游服务程序与服务质量(课件)《导游业务》(第五版)
评论
0/150
提交评论