Visual Basic 程序设计 清华大学出版社 第三章_第1页
Visual Basic 程序设计 清华大学出版社 第三章_第2页
Visual Basic 程序设计 清华大学出版社 第三章_第3页
Visual Basic 程序设计 清华大学出版社 第三章_第4页
Visual Basic 程序设计 清华大学出版社 第三章_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三章第三章 函数与表达式函数与表达式 What pains us trains us. -使我们痛苦的东西在真正锻炼我们使我们痛苦的东西在真正锻炼我们。3.1编码规则编码规则 (1)代码中字母)代码中字母不区分大小写不区分大小写。(2)在同一行上可书写多条语句,但)在同一行上可书写多条语句,但相互之间要用冒号相互之间要用冒号分隔分隔(3)若一条语句比较长,一行放不下,可用用续行符)若一条语句比较长,一行放不下,可用用续行符“_”连连接下一行。接下一行。“_”前要有空格前要有空格。一行上的字符数小于等于。一行上的字符数小于等于255。续行符后不要写任何代码,即使是注释也续行符后不要写任何代码,

2、即使是注释也不可以。不可以。出错指数:出错指数:3.1编码规则编码规则 (4)以)以Rem或撇号或撇号 开头的部分是语句的注释。开头的部分是语句的注释。以以Rem开头的注释要另起一行书写开头的注释要另起一行书写。撇号撇号 引导引导的注释可直接放在语句后面。的注释可直接放在语句后面。(5)使用编辑工具栏中的)使用编辑工具栏中的“设置设置/取消注释块取消注释块”命令,可将若命令,可将若干行语句或文字设置干行语句或文字设置/取消为注释块。取消为注释块。出错指数:出错指数:(真题真题)下列正确的下列正确的Visual Basic注释语句是注释语句是( ) A) Dim a(10)As Integer

3、Rem 这是一个这是一个VB程序程序B) Rem这是一个这是一个VB程序程序 Private Sub Command1_Click() C) a=1:b=2:_Rem 这是一个这是一个VB程序程序 :c=3 D) If Shift=6 And Button=2 Then Print“Hello”Rem这是一个这是一个VB程序程序 End IfB(真题真题) 下列叙述不正确的是下列叙述不正确的是( ) A)注释语句是非执行语句,仅对程序的有关内容起注释作用,注释语句是非执行语句,仅对程序的有关内容起注释作用,它不被解释和编译它不被解释和编译 B)注释语句可以放在代码中的任何位置注释语句可以放在代

4、码中的任何位置C)注释语句不能放在续行符的后面注释语句不能放在续行符的后面 D)代码中加入注释语句的目的是提高程序的可读性代码中加入注释语句的目的是提高程序的可读性B3.2 标准数据类型标准数据类型 数据类型 复合数据类型 基本数据类型 字符型 逻辑型 日期型 变体型 对象型 数值型 整数 浮点数 货币型 字节型 整型 长整型 单精度型 双精度型 自定义数据类型 数组 整数是没有小数点和指数符号的数。按其数值范围划分成:整数是没有小数点和指数符号的数。按其数值范围划分成:1.整型:关键字是整型:关键字是Integer 类型符是类型符是% 内存中占内存中占2个字节个字节共共16位位 能表示的整数

5、范围为:能表示的整数范围为:-3276832767789、-78、+56、96% 都是整型数都是整型数2.长整型:关键字是长整型:关键字是Long 类型符是类型符是& 内存中占内存中占4个字节个字节共共32位位 能表示的整数范围为:能表示的整数范围为:2147483648 214748364745&、-78914& 都是长整型数都是长整型数注意:长整型数要在末尾加上注意:长整型数要在末尾加上&3.2.1 整型数据类型整型数据类型出错指数:出错指数:整型常量的书写形式整型常量的书写形式 十进制整数:十进制整数:如如 0,123%,-45,32&。 八进制整

6、数:八进制整数:以以&、&o、&O开头开头,并由,并由07组成的数字符序列。组成的数字符序列。如:如:&O123表示八进制整数,其值表示八进制整数,其值等于十进制整数为等于十进制整数为1*82 + 2*81 + 3 = 83出错指数:出错指数:整型常量的书写形式整型常量的书写形式 十六进制整数:十六进制整数:以以&h、&H开头开头,并由十六进,并由十六进制数的数字符组成的数字符序列。表示十六进制数的数制数的数字符组成的数字符序列。表示十六进制数的数字符有字符有 16 个:个:09 和和 A、B、C、D、E、F,其中六个字母也可以小写。其中六个字母

7、也可以小写。如:如:&H123表示十六进制整数,其值等于十进制整数表示十六进制整数,其值等于十进制整数为:为:1*162 + 2*161 + 3 = 291;&Habc,其值等于,其值等于10*162 + 11*161 + 12 = 2748。出错指数:出错指数:3.2.2 浮点数据类型浮点数据类型 浮点型就是实数,浮点型就是实数,可以写成十进制小数和指数可以写成十进制小数和指数(用用e或或E代表代表10)两种形式。按数值范围大小和精度不同分成两种:两种形式。按数值范围大小和精度不同分成两种:1. 单精度型:单精度型:关键字关键字 Single ,类型符类型符 ! 在内存中占用

8、在内存中占用4个字节个字节(32位位),精度精度7位位,能表示约为,能表示约为-3.410-383.41038。78.5 689.2! 78.2E+4! 都是正确的写法都是正确的写法注意:注意: 78.2E+4!若写成若写成78.2E+4,系统把它当做双,系统把它当做双精度数精度数3.2.2 浮点数据类型浮点数据类型2. 双精度型:双精度型:关键字关键字Double , 类型符类型符 # ,在内存在内存中占用中占用8个字节个字节(64位位),精度精度15位位,能表示约为,能表示约为-1.710-3081.710308。注意:对于双精度浮点数,十进制小数形式的,在注意:对于双精度浮点数,十进制小

9、数形式的,在末尾加末尾加#,指数形式的要用,指数形式的要用D或或d代替代替E或或e,也可以也可以在末尾加在末尾加#254.3# 2.3D-7 3.2E+2# 都是正确的写法都是正确的写法3.2.3 货币数据类型和字节数据类型货币数据类型和字节数据类型u 货币型是定点实数或整数,货币型是定点实数或整数,最多保留小数点右边最多保留小数点右边4位和位和小数点左边小数点左边15位位(版本不同有差异版本不同有差异),用于货币计算。,用于货币计算。关键字关键字Currency; 类型符类型符 ; 内存中占据内存中占据8个字节个字节 123.45 1234 都是正确的货币型数据都是正确的货币型数据u字节型用

10、于存储二进制数。字节型用于存储二进制数。关键字关键字Byte ; 无类型符无类型符; 在内存中占据在内存中占据1个字节个字节表示范围表示范围0255; 没有负数没有负数3.2.4 字符数据类型字符数据类型字符型数据是用字符型数据是用双引号双引号括起来的一串字符,例括起来的一串字符,例 “book”字符型数据的内部表示是字符的字符型数据的内部表示是字符的Unicode代码代码(以以二进制形式二进制形式) 一个英文字符和一个汉字都占一个英文字符和一个汉字都占2个字节。个字节。没有放入任何字符的一对双引号没有放入任何字符的一对双引号“”是空字符是空字符串串。出错指数:出错指数:3.2.4 字符数据类

11、型字符数据类型空格是有效的字符。字符串中的双引号用连续两个双引空格是有效的字符。字符串中的双引号用连续两个双引号表示,如:字符串号表示,如:字符串“book”name”应该写成应该写成“book” name”字符型关键字字符型关键字 String ;类型符;类型符 $ ;占据的字节数要根占据的字节数要根据字符串的长度来计算据字符串的长度来计算。字符型数据类型有定长和字符型数据类型有定长和变长两种变长两种,定长字符串最长不超过定长字符串最长不超过65535个字符个字符。变长。变长字符串最长不超过字符串最长不超过231个字符个字符出错指数:出错指数:3.2.4 字符数据类型字符数据类型VB中每个英

12、文字符和汉字都占两个字节,这与编码方式有关中每个英文字符和汉字都占两个字节,这与编码方式有关ASCII编码:编码:英文字符可以使用英文字符可以使用ASCII编码,每个字符占一编码,每个字符占一个字节。个字节。Windows采用采用DBCS(Double Byte Character Set)编码编码,即英文采用即英文采用ASCII编码,是单字节;中文以两字节编码。编码,是单字节;中文以两字节编码。1. VB采用采用Unicode(国际标准化组织国际标准化组织(ISO)字符标准字符标准)编码编码,英,英文和汉字每个都占两个字节。为了保持与文和汉字每个都占两个字节。为了保持与ASCII码的兼容性码

13、的兼容性 保留保留ASCII,仅将其字节数变为两个,增加的字节以零填入,仅将其字节数变为两个,增加的字节以零填入3.2.5 逻辑数据类型逻辑数据类型逻辑型数据只有逻辑型数据只有真真(True)和假和假(False)两个量两个量.关键字关键字Boolean,无类型符无类型符。真真(True)和假和假(False)在内存中都占在内存中都占2个字节。个字节。真真(True)对应对应16位位1;假;假(False)对应对应16位位0.将逻辑性数据转化为整数值时将逻辑性数据转化为整数值时真真(True)对应对应-1;假;假(False)对应对应0。当将其他类型数据转换成逻辑数据时,当将其他类型数据转换成

14、逻辑数据时,非非0为真为真(True);0为假为假(False)。出错指数:出错指数:3.2.6 日期数据类型日期数据类型日期型数据是按日期型数据是按8个字节的浮点数存储的。个字节的浮点数存储的。关键字关键字Date/Time,无类型符无类型符。范围从公元。范围从公元100年年1月月1日日到到9999年年12月月31日;时间范围从日;时间范围从0:00:00到到23:59:59表示方法有两种:表示方法有两种:1)以任何字面上可以被认作日期和时间的字符两端加上以任何字面上可以被认作日期和时间的字符两端加上#,例例如:如:#January1,2000# #1 Jan,00# #2000-6-25

15、12:30:00 PM#3.2.6 日期数据类型日期数据类型2)以数字序列表示:以数字序列表示:小数点左边的数字代表日期,小数点右边的数字代表时间,小数点左边的数字代表日期,小数点右边的数字代表时间,0为午夜,为午夜,0.5为中午为中午12点点;负数代表的是负数代表的是1899年年12月月31日日之前的日期和时间。之前的日期和时间。例如:将数值例如:将数值-2.6转换成日期代表的是转换成日期代表的是1899-12-29 14:24:003.2.7 对象数据类型对象数据类型关键字关键字Object; 无类型符无类型符;在内存中占据在内存中占据4个字节。个字节。Object变量作为变量作为4个字节

16、地址来存储,该地址可引用应个字节地址来存储,该地址可引用应用程序中的对象。可以用用程序中的对象。可以用Set语句指定一个被声明为语句指定一个被声明为Object的变量去引用应用程序所识别的任何实际对象。的变量去引用应用程序所识别的任何实际对象。3.2.8 变体数据类型变体数据类型变体数据类型变体数据类型关键字关键字Variant; 无类型符无类型符;是一种特;是一种特殊的数据类型,殊的数据类型,为为VB的数据处理增加了智能性,的数据处理增加了智能性,是所有是所有未定义的变量的缺省数据类型未定义的变量的缺省数据类型,它对数据的处理完,它对数据的处理完全取决与程序上下文的需要。全取决与程序上下文的

17、需要。要检测变体型变量中保存的数值是什么类型,可用要检测变体型变量中保存的数值是什么类型,可用VarType函数进行检测,根据函数的返回值函数进行检测,根据函数的返回值(见下表见下表)判断判断变体型变量中保存的数值是什么类型。变体型变量中保存的数值是什么类型。例如:例如:VarType(123)的返回值为的返回值为2,表示为整型。,表示为整型。VarType函数数据类型函数数据类型内容常数内容常数VarType函数返回函数返回值值数据类型数据类型内容常数内容常数VarType函数返回函数返回值值数据类型数据类型vbEmpty0空空vbObject9OLE对象对象vbNull1无效无效vbErr

18、or10错误错误vbInteger2整型整型vbBoolean11逻辑型逻辑型vbLong3长整型长整型vbVariant12变体数组变体数组vbSingle4单精度单精度vbDataObject13数据访问数据访问对象对象vbDouble5双精度双精度vbDecimal14十进制值十进制值vbCurrency6货币型货币型vbByte17字节型字节型vbDate7日期型日期型vbUserDefinedType36自定义类自定义类型的变量型的变量vbString8字符型字符型vbArray8192数组数组3.2.9 自定义数据类型自定义数据类型复合数据类型是以基本数据类型为基础,用特定的方法复

19、合数据类型是以基本数据类型为基础,用特定的方法组成的比较复杂的数据类型。类似于组成的比较复杂的数据类型。类似于C语言中的结构类语言中的结构类型、型、Pascal中的记录类型。中的记录类型。自定义类型通过自定义类型通过Type语句来实现语句来实现。3.3常量与变量常量与变量 3.3.1常量常量 在程序运行过程中,值无法改变的量成为常量。在程序运行过程中,值无法改变的量成为常量。常量有三类:常量有三类:l 普通常量普通常量l 用户自定义常量用户自定义常量l 系统常量系统常量 1.普通常量普通常量u字符型常量:字符型常量:“12345”u逻辑性常量:逻辑性常量: True 和和 Falseu整型常量

20、:整型常量:1234(十进制十进制)、&O123(八进制八进制)、&H12A(十六进制十六进制)u长整型常量:长整型常量:1234&(十进制十进制)、&O123&(八进制八进制)、&H12A&(十六进制十六进制)u单精度常量单精度常量:12.3!、123!、!、123.45E-5!u双精度常量:双精度常量: 123#、123.45D-5、 123.45E-5#u日期时间常量:日期时间常量:#12/27/2000# 、#13:30:45#2.用户自定义常量用户自定义常量u用户可以自定义一个符号来代替一个常量,该符号就称为用户可以自定义一个符

21、号来代替一个常量,该符号就称为用户自定义常量用户自定义常量。符号的命名与变量相同,。符号的命名与变量相同,通常通常(非非强制强制)全部字母大写。全部字母大写。u语法形式语法形式: Const 常量名常量名As 类型类型= 常量表达式常量表达式例如例如: Const PI=3.14159As类型类型:可省略。省略后常量的数据类型由可省略。省略后常量的数据类型由表达式决定。表达式决定。出错指数:出错指数:2.用户自定义常量用户自定义常量Private Sub Command1_Click()Const F = 3 + 5Dim z% z = 2 * FForm1.Print zEnd Sub运行结

22、果:运行结果:16F代表代表83.系统常量系统常量系统常量由系统提供,可使程序容易阅读和编写。系统常量由系统提供,可使程序容易阅读和编写。系统常量系统常量含义含义系统常量系统常量含义含义vbCr回车回车vbKeyTabTab键键vbLf换行换行vbNormal正常正常vbCrlf回车换行回车换行vbMinimized极小化极小化vbNewLine回车换行回车换行vbMaximized极大化极大化vbLeftButton鼠标左键鼠标左键(1)变量的命名规则)变量的命名规则 (2)变量的声明)变量的声明 (3)变量的初值)变量的初值3.3.2变量变量变量名以变量名以字母字母或或汉字汉字开头,由开头

23、,由字母、汉字、数字母、汉字、数字、下划线字、下划线组成,长度小于等于组成,长度小于等于255个个字符、字符、不不能使用系统中的关键字能使用系统中的关键字命名变量,命名变量,不区分不区分变量变量名中字母的名中字母的大小写大小写。 china_beijing shanghai123 数码数码_01 123happy prog%test integer1.变量的命名规则变量的命名规则(真题真题)下述说法不正确的是下述说法不正确的是( ) A)变量名的长度不能超过变量名的长度不能超过255个字符个字符 B)变量名可以包含小数点或者内嵌的类型声明字符变量名可以包含小数点或者内嵌的类型声明字符 C)变量

24、名不能使用关键字变量名不能使用关键字 D)变量名的第一个字符必须是字母变量名的第一个字符必须是字母或汉字或汉字 (真题真题)下列可作为下列可作为Visual Basic变量名的是变量名的是( ) A)FilenameB)A(A+B)C)A%DD)PrintBA (1)显示声明:显示声明:Dim 变量名变量名 As 类型类型 ,变量名变量名 As 类型类型 .或者:或者: Dim 变量名变量名 类型符类型符,变量名变量名 类型符类型符.例如:例如:Dim Book As Single, Pen As Double 等价于等价于Dim Book!,Pen#注意:注意: 变量定义为没有类型符的数据类

25、型时,要用关键字声明。变量定义为没有类型符的数据类型时,要用关键字声明。 Dim x As Boolean2.变量的声明变量的声明字符类型的变量有定长和变长两种:字符类型的变量有定长和变长两种:Dim Str1 As String 声明变长字符变量声明变长字符变量Dim Str2 As String*10 声明定长字符变量,放声明定长字符变量,放10个字符个字符少于少于10个字符则右补空格,多于个字符则右补空格,多于10个则把多余的删个则把多余的删除除用用Static声明的是静态变量;声明的是静态变量;Public声明的是全局变量;声明的是全局变量;Private声明的是局部模块变量。声明的是

26、局部模块变量。Static X As Integer 声明静态的整型变量声明静态的整型变量(2)隐式声明隐式声明在在VB中变量可以不经声明直接使用,中变量可以不经声明直接使用,因为系统已经自动进因为系统已经自动进行了隐式声明,且数据类型为变体型。行了隐式声明,且数据类型为变体型。例如:例如: Private Sub Form_Click()A=5 A由系统隐式声明为变体型由系统隐式声明为变体型B=4Print A+B End Sub(3)强制声明强制声明变量变量“先声明后使用先声明后使用”是一个良好的编程习惯。若想在是一个良好的编程习惯。若想在VB编编程中用到的所有变量没有声明直接使用报错,方

27、法有:程中用到的所有变量没有声明直接使用报错,方法有:在窗体模块、标准模块、类模块的通用声明段加入语句:在窗体模块、标准模块、类模块的通用声明段加入语句:Option Explicit 执行执行“工具工具”-“选项选项”,在编辑器选项卡中选择复选项,在编辑器选项卡中选择复选项“要求变量声明要求变量声明”变量声明后,系统根据其类型给予不同的默认初值:变量声明后,系统根据其类型给予不同的默认初值:u整型、长整型、单精度、双精度、货币型、字节型的整型、长整型、单精度、双精度、货币型、字节型的默认初值为默认初值为0u字符型的默认初值为空字符串字符型的默认初值为空字符串“”“”u逻辑性的默认初值为逻辑性

28、的默认初值为Falseu日期型的默认初值为日期型的默认初值为0/0/0u对象型的默认初值为对象型的默认初值为Nothing3.变量的初值变量的初值(真题真题)下列叙述中正确的是下列叙述中正确的是( ) A)在窗体的在窗体的Form_Load事件过程中定义的变量是全局变量事件过程中定义的变量是全局变量 B)局部变量的作用域可以超出所定义的过程局部变量的作用域可以超出所定义的过程 C)在某个在某个Sub过程中定义的局部变量可以与其他事件过程中过程中定义的局部变量可以与其他事件过程中定义的局部变量同名,但其作用域只限于该过程定义的局部变量同名,但其作用域只限于该过程 D)在调用过程时,所有局部变量被

29、系统初始化为在调用过程时,所有局部变量被系统初始化为0或空字符或空字符串串C(1)算术运算符)算术运算符 (2)字符串运算符)字符串运算符(3)关系运算符)关系运算符(4)逻辑运算符)逻辑运算符3.4运算符及优先级运算符及优先级 运算符的优先级运算符的优先级 优先级用来标志运算符在表达式中的运算顺序。优先级高的优先级用来标志运算符在表达式中的运算顺序。优先级高的先运算,优先级低的后运算。先运算,优先级低的后运算。如:如:x-y*z 相当于相当于 x-(y*z) 运算符的结合性运算符的结合性 在优先级相同情况下,表达式的计算顺序由结合性来确定。在优先级相同情况下,表达式的计算顺序由结合性来确定。

30、大多数运算符的结合性是从左至右,单目结合性是从右至左的大多数运算符的结合性是从左至右,单目结合性是从右至左的如:如:a+b-c (a+b)+c1.算术运算符算术运算符 算术运算符中有乘方(算术运算符中有乘方()、负号()、负号(-)、乘()、乘(*)、除()、除(/)、)、整除(整除()、取模(求余)()、取模(求余)(Mod)、加()、加(+)、减()、减(-)。)。其中负号是单目运算符。其中负号是单目运算符。算术运算符之间的优先级为:算术运算符之间的优先级为:乘方乘方负号负号乘乘 、除、除整除整除取模取模加加 、 减减 高低1.算术运算符算术运算符 运算符运算符含义含义例例结果结果乘方乘方

31、a29-负号负号-a-3*乘乘a*a9/除除10/a3.33333333333333整除整除10a3Mod取模取模10 Mod a1+加加10+a13-减减10-a7设:变量设:变量a为整型,值为为整型,值为31.算术运算符算术运算符 注意:注意:在算术运算中,如果操作数具有不同的数据精度,则在算术运算中,如果操作数具有不同的数据精度,则VB规规定运算结果的数据类型采用精度高的数据类型。即定运算结果的数据类型采用精度高的数据类型。即IntegerLongSingleDouble)、小于()、小于(=)、小于等于()、小于等于(=)、不等于()、不等于()、字符串)、字符串匹配(匹配(Like)

32、、对象比较()、对象比较(Is)。)。关系运算符的优先级都是一样的,都小于字关系运算符的优先级都是一样的,都小于字符串连接运算符,也小于算术运算符。符串连接运算符,也小于算术运算符。关系运算符是双目运算符,作用是将两个操作数进行大小比关系运算符是双目运算符,作用是将两个操作数进行大小比较,较,若关系成立,结果为若关系成立,结果为True;不成立,结果;不成立,结果为为False。3.关系运算符关系运算符 运算符运算符含义含义例例结果结果=等于等于“AB”=“ABC”False大于大于“AB”“ABC”False小于小于“AB”=大于等于大于等于15=8True=小于等于小于等于“AB”=“AR

33、”True不等于不等于“ab”AB”TrueLike判断包含关系判断包含关系“ac”Like “boacru”TrueIs判断引用是否相同判断引用是否相同3.关系运算符关系运算符 注意:注意:u如果两个操作数如果两个操作数都是数值都是数值,直接比较大小。,直接比较大小。u如果操作数是如果操作数是字符型数据字符型数据,则从左向右逐个比较字符的,则从左向右逐个比较字符的ASCII值,值,直至出现不同字符或所有字符比较完毕直至出现不同字符或所有字符比较完毕。u汉字字符按拼音字母汉字字符按拼音字母进行比较。进行比较。“大大”99 结果为结果为True “99+1”99 报错报错Like运算符用于判断两

34、个字符串之间的包含关系运算符用于判断两个字符串之间的包含关系格式为:格式为:Like若若包含于包含于结果为结果为True,反之为,反之为False注意:在注意:在中可以使用以下通配符:中可以使用以下通配符:?通配一个字符通配一个字符,“12”Like“?23” 结果为结果为True*通配一串字符通配一串字符,“123456”Like“*” 结果为结果为True#通配一个数字通配一个数字,“123456”Like“#4” 结果为结果为False字符列表字符列表通配字符列表中的一个字符通配字符列表中的一个字符,“7” Like “1-9”结果为结果为True写成写成“7” Like “1,2,3,

35、4,5,6,7,8,9”也可以,结果为也可以,结果为True!字符列表字符列表通配字符列表以外的一个字符通配字符列表以外的一个字符,“7”Like“!1-9”结果为结果为False 写成写成“7”Like“!1,2,3,4,5,6,7,8,9”也可以,也可以,结果为结果为False(真题真题)以下关系表达式中,其值为)以下关系表达式中,其值为True的是的是( )A)”XYZ”XYz”B)”VisualBasic”visualbasic”C)”the”=”there”D)”Integer”Int”B4.逻辑运算符逻辑运算符逻辑运算符中有逻辑非(逻辑运算符中有逻辑非(Not)、逻辑与()、逻辑与

36、(And)、逻辑或)、逻辑或(Or)、逻辑异或()、逻辑异或(Xor)、逻辑等于()、逻辑等于(Eqv)、逻辑蕴含)、逻辑蕴含(Imp)。其中逻辑非是单目运算符。)。其中逻辑非是单目运算符。逻辑运算符的逻辑运算符的优先级低于关系运算符。优先级低于关系运算符。逻辑运算符之间的优先级为:逻辑运算符之间的优先级为:NotAndOr、XorEqvImp 高低4.逻辑运算符逻辑运算符 运算符运算符含义含义说明说明例例结果结果Not取反取反操作数为假时,结果为真操作数为假时,结果为真操作数为真时,结果为假操作数为真时,结果为假Not FalseTrueAnd与与两个操作数均为真时,结果两个操作数均为真时,

37、结果才为真,否则为假才为真,否则为假True And TrueTrueOr或或两个操作数均为假时,结果两个操作数均为假时,结果才为假,否则为真才为假,否则为真False Or FalseFalseXor异或异或两个操作数不同时,结果才两个操作数不同时,结果才为真,否则为假为真,否则为假True Xor FalseTrueEqv等价等价两个操作数相同时,结果才两个操作数相同时,结果才为真为真True Eqv FalseFalseImp蕴含蕴含第一个操作数为真,第二个第一个操作数为真,第二个操作数为假时,结果才为假操作数为假时,结果才为假True Imp FalseFalse4.逻辑运算符逻辑运算

38、符 注意:注意:如果逻辑运算符的运算数中有数值,如果逻辑运算符的运算数中有数值,那么是以数字的二进制逐位进行逻辑运算。那么是以数字的二进制逐位进行逻辑运算。例如:例如:7 And True 结果是:结果是:7 0000000000000111And 1111111111111111 0000000000000111例如:例如:10 Or 7结果是:结果是:150000000000001010Or00000000000001110000000000001111(真题真题)设设a=2,b=3,c=4,d=5,则表达式,则表达式Not a=c Or 4*c=b2 And ba+c的值是的值是( )

39、A)-1 B)1 C)True D)False(真题真题) 表达式表达式4 Eqv True的结果为的结果为( )表达式表达式4 Eqv False的结果为的结果为( )D4-5(真题真题)在在Visual Basic 中,下列优先级最高的运算符是中,下列优先级最高的运算符是( ) A) * B) C) D) NotA3.5表达式表达式 表达式是由变量、常量、运算符、函数和圆括号等有机组成的、表达式是由变量、常量、运算符、函数和圆括号等有机组成的、有一定意义的式子。有一定意义的式子。表达式书写规则:表达式书写规则: 从左到右在一行上书写,无高低区分。从左到右在一行上书写,无高低区分。 的写法出

40、错的写法出错 乘号不能省略。乘号不能省略。例如:例如:x*y不能写成不能写成xy 表达式中可以用圆括号括起,以改变运算的优先级。表达式中可以用圆括号括起,以改变运算的优先级。 不能使用方括号或花括号不能使用方括号或花括号,圆括号可以嵌套,但要注意配对。,圆括号可以嵌套,但要注意配对。 在算术表达式中,若出现不同的数据类型,应向精度高的数在算术表达式中,若出现不同的数据类型,应向精度高的数据类型转换。据类型转换。 IntegerLongSingleDoubleCurrency 但但注意例外情况注意例外情况x+yx-y3.5表达式表达式 日期型数据之间的运算比较特殊,只能进行加减运算日期型数据之间

41、的运算比较特殊,只能进行加减运算1.两个日期型数据可以相减,结果是所差的天数,为数值型数据两个日期型数据可以相减,结果是所差的天数,为数值型数据#12/12/2009# - #12/11/2009#结果是结果是12.一个日期型数据加上一个数值,结果为日期型一个日期型数据加上一个数值,结果为日期型#12/12/2009#+1 结果为结果为2009-12-133.一个日期型数据减去一个数值,结果为日期型一个日期型数据减去一个数值,结果为日期型#12/12/2009# -1 结果为结果为2009-12-11出错指数:出错指数:3.5表达式表达式 例例: 写出闰年的判断条件,写出闰年的判断条件,y为整

42、型变量,存放的是待判断的年份为整型变量,存放的是待判断的年份满足以下两个条件之一即为闰年:满足以下两个条件之一即为闰年:能被能被4整除,但不能被整除,但不能被100整除整除能被能被400整除整除y Mod 4 =0 And y Mod 100 0 Or y Mod 400=0 若表达式结果为若表达式结果为True,则,则y为闰年,否则为非闰年。为闰年,否则为非闰年。3.6常用函数常用函数 Visual Basic中的函数有中的函数有内部函数内部函数(标准函数)和用户(标准函数)和用户自定自定义函数义函数两类。两类。 内部函数又称标准函数、或者库函数,是系统为方便实现一内部函数又称标准函数、或者

43、库函数,是系统为方便实现一些功能而设置的内部程序,包括有些功能而设置的内部程序,包括有数学函数、字符串函数、数学函数、字符串函数、日期和时间函数、转换函数和格式函数等。日期和时间函数、转换函数和格式函数等。函数的调用方法为:函数的调用方法为:函数名函数名( 自变量自变量) 或者或者对象对象.属性值属性值=函数名函数名( 自变量自变量) 1.数学函数数学函数 函数名函数名含义含义值类型值类型例例结果结果Abs(N)取绝对值取绝对值同同NAbs(-3.5)3.5Cos(N)余弦函数余弦函数DoubleCos(0)1Exp(N)e为底的指数函数为底的指数函数DoubleExp(3)20.085536

44、9231877Log(N)e为底的自然对数为底的自然对数DoubleLog(10)2.30258509299405Rnd(N)产生一个小于产生一个小于1但大于但大于等于等于0的随机数的随机数DoubleRnd01之间的数之间的数Sin(N)正弦函数正弦函数DoubleSin(0)0Sgn(N) 根据根据N值符号给出值符号给出1、0、-1IntegerSgn(-3.5)-1Sqr(N)平方根,要求平方根,要求N=0DoubleSqr(9)3Tan(N)正切函数正切函数DoubleTan(0)0Atn(N)反正切函数反正切函数DoubleAtn(1)0.785398163397448注意:注意:u

45、三角函数的自变量单位为弧度。三角函数的自变量单位为弧度。Atn函数返回值的单位也函数返回值的单位也是弧度。是弧度。例如:例如:Sin48。应写为应写为Sin(48*3.14/180)uRnd(N) 返回一个随机数返回一个随机数,小于小于 1 但大于或等于但大于或等于 0 的值的值。如果如果 N 的值小于的值小于 0 每次都得到相同的随机数。大于每次都得到相同的随机数。大于0或省略或省略产生下一个随机数。等于产生下一个随机数。等于0返回最近一次生成的随机数。返回最近一次生成的随机数。默默认情况下认情况下Rnd函数每次运行产生相同的随机数序列,可以使函数每次运行产生相同的随机数序列,可以使用用Ra

46、ndomize语句产生不同序列的随机数。语句产生不同序列的随机数。RandomizeInt(Rnd*101)+200 产生产生200,300区间的随机数区间的随机数2.字符串函数字符串函数 函数名函数名含义含义例例结果结果InStr(Q,C1,C2,M)查查C2是否包含于是否包含于C1,分,分别返回位置或别返回位置或0Instr(“abcd”,”bc”)2Left(C,N)取取C字符串中左边字符串中左边N个个字符字符Left(“abcd”,2)“ab”Len(C)测测C字符串长度字符串长度Len(“ok上海上海”)4Mid (C,N1,N2)在在C中从第中从第N1个字符位个字符位开始,取开始,

47、取N2个字符构个字符构成的子串,缺省成的子串,缺省N2则则取到结尾取到结尾Mid(“abcd”,2,1)“b”Right(C,N)取取C字符串中右边字符串中右边N个个字符字符Right(“abcd”,2)“cd”Space(N)产生产生N个空格组成的字个空格组成的字符串符串Space(5)“ ”函数名函数名含义含义例例结果结果Replace(C,C1,C2)在在C中用中用C2取取代代C1Replace(“abd”,”ab”,”1”)“1d”Split(C,D)将将C按分隔符按分隔符D分隔成字符分隔成字符数组数组s=Split(“ab,cd.ef”,”,”)s(0)=“ab”s(1)=“cd.e

48、f”String(N,C)生成由生成由N个个C中首字符组中首字符组成的字符串成的字符串String(5,”rtyu”)“rrrrr”Trim(C)除去除去C字符串字符串首尾的空格首尾的空格 Trim(“ abcd”)“abcd”Join(A,D)将将A数组中元数组中元素以素以D为分隔为分隔符变成字符符变成字符串串A=array(“12”,”34”,”5”) Join(A,”)“12345”StrReverse(C)取字符串的取字符串的反序字符串反序字符串StrReverse(“ABCD”)“DCBA”StrComp(C1,C2,M)以以-1,0,1表示表示C1C2比比较的结果较的结果StrCo

49、mp(“AB”,”ab”)-1注意:注意:n可选参数可选参数Q表示查找的起始字符位置表示查找的起始字符位置n可选参数可选参数M表示是否区分大小写,表示是否区分大小写,0区分;区分;1不区分;不区分;省略为区省略为区分大小写。分大小写。StrComp(”AB”,”ab”,0) 结果为结果为-1,表示,表示”AB” ”ab”StrComp(”AB”,”ab”,1) 结果为结果为0,不区分大小写,不区分大小写InStr(”1234ABCD”,”ab”)结果为结果为0,找不到找不到,默认区分大小写默认区分大小写InStr(2,”1234ABCD”,”ab”,1) 结果为结果为5,不区分大小写,不区分大

50、小写 3.转换函数转换函数 函数名函数名功能功能例例结果结果Int(N)取不大于取不大于N的最大整数的最大整数Int(-6.9)-7Fix(N)取整取整Fix(-6.9)-6Hex(N)将将10进制数进制数N转换成转换成16进制进制Hex(64)40Oct(N)将将10进制数进制数N转换成转换成8进进制制Oct(24)30Asc(C)返回返回C字符串中首字符字符串中首字符的的ASCII码码Asc(“a”)97Chr(N)根据根据ASCII码值返回字符码值返回字符Chr(65)“A”出错指数:出错指数: 3.转换函数转换函数 函数名函数名功能功能例例结果结果Str(N)将数值转换成字符串将数值转

51、换成字符串str(645)“ 645”Ronud(N,N1)对对N按小数指定位数按小数指定位数N1四舍六入五取双来四舍六入五取双来取整取整Round(-2.5)Round(-2.51)Round(3.5,0)-2-34Cint(N)对对N的小数作四舍六的小数作四舍六入五取双转换成整数入五取双转换成整数Cint(2.5)Cint(2.51)Cint(3.5)234Ccur(N)将将N转换为货币类型,转换为货币类型,小数至多四位且自动小数至多四位且自动四舍五入四舍五入CCur(7.236751)CCur(7.236750)7.23687.2367出错指数:出错指数:3.转换函数转换函数 函数名函数

52、名功能功能例例结果结果CDbl(N)将将N转化为双精度数转化为双精度数CDbl(45.2)45.2000000000000CLng(N)将将N小数部分四舍六入小数部分四舍六入五取双转换为长整型五取双转换为长整型CLng(56.5)CLng(56.51)5657CSng(N)将将N转化为单精度数转化为单精度数CSng(5.1D+3)5100.000CVar(N)将将N转化为变体类型转化为变体类型Cvar(78)78LCase(C)将将C中大写字母转换成中大写字母转换成小写小写LCase(“AsDf”)“asdf”UCase(C)将将C中小写字母转换成中小写字母转换成大写大写Ucase(“abHj

53、k”)“ABHJK”Val(C)将由数字组成的字符将由数字组成的字符串转换成数值串转换成数值Val(“456”)456注意:比较注意:比较Cint() , int() , fix() ,round()的区别的区别 lCint 小数部分超过小数部分超过0.5的部分都进位,不分正负的部分都进位,不分正负例如:例如:Cint(2.51)=3 Cint(-2.51)=-3 小于小于0.5的部分都舍去,不分正负;等于的部分都舍去,不分正负;等于0.5的部分按取双方的部分按取双方式取整式取整例如:例如:Cint(2.49)=2 Cint(-2.49)=-2 Cint(3.5)=4 Cint(-2.5)=-

54、2 lInt 取到的是小于等于这个数的最大整数取到的是小于等于这个数的最大整数例如例如:Int(2.49)=2 Int(2.50)=2 Int(2.51)=2Int(-2.49)=-3 Int(-2.50)=-3 Int(-2.51)=-3 注意:比较注意:比较Cint() , int() , fix() ,round()的区别的区别 lRound 确定好保留的位数后,后面的直接四舍六入五取双确定好保留的位数后,后面的直接四舍六入五取双例如:例如:Round(2.459,2)=2.46 Round(2.445,2)=2.44Round(2.455,2)=2.46 Round(2.454,2)=

55、2.45Round(-2.459,2)=-2.46Round(-2.455,2)=-2.46 Round(-2.454,2)=-2.45 lFix 省略小数位,即直接截走小数位省略小数位,即直接截走小数位例如例如Fix(2.51)=2 Fix(2.49)=2Fix(-2.49)=-2 Fix(-2.51)=-2注意:注意:Chr和和Asc函数互为反函数,如函数互为反函数,如Chr(Asc(34)的结果是的结果是3非负数值用非负数值用Str函数转换成字符型值后,函数转换成字符型值后,会在生成的字符会在生成的字符串左边增加空格,留作符号位串左边增加空格,留作符号位Str(645) 结果为结果为”

56、645” 字符串字符串645之前有一个空格之前有一个空格Val将由数字组成的字符串转换成数值,直到出现非数字符号将由数字组成的字符串转换成数值,直到出现非数字符号Val(“-7.8E-2”) 结果是结果是-7.8 因为因为E不是数字,所以从不是数字,所以从E开始不转换开始不转换Val(“ab”) 结果是结果是0出错指数:出错指数:4.日期函数日期函数 函数名函数名功能功能例例结果结果Date返回系统日期返回系统日期Date2008/7/15Day(C|D)返回日期中号数返回日期中号数Day(“2008,07,15”)15Month(C|D)返回日期中的月份数返回日期中的月份数Month(“20

57、08,07,15”)7Now返回系统日期时间返回系统日期时间Now2008/7/15 9:12:24Time返回系统时间返回系统时间Time9:12:25Year(C|D)返回日期中的年号数返回日期中的年号数Year(Now)2008DateAdd(X,N,D)对对D日期按增减量日期按增减量N和增和增减形式减形式X算出新日期算出新日期dd=#2008/7/15#DateAdd(“d”,34,dd)#2008/8/18#DateDiff(X,D1,D2)以间隔形式以间隔形式X计算日期计算日期D1和和D2的间隔数的间隔数DateDiff(“d”,Now,#2007/7/15#)-366日期形式:日

58、期形式:形形式式yyyyqmydwwwhns意意义义年年季季 月月一年的一年的天数天数日日一周的天数一周的天数星期星期 时时 分分秒秒(真题真题) 表达式表达式Left(how are you,3)的值是的值是( ) A)how B)are C)you D)how are youA(真题真题)设有如下声明:设有如下声明: Dim x As Integer 如果如果Sgn(x)的值为的值为-1,则表示,则表示x的值是的值是( ) A)整数整数 B)大于大于0的整数的整数 C)等于等于0的整数的整数 D)小于小于0的数的数D(真题真题) 语句语句Print Sgn(-62)+Abs(-62)+Int(-62)的输出结果是的输出结果是( ) A)-36 B)1 C)-1 D)-72 C(真题真题)执行以下程序段执行以下程序段a$=”Visual Basic Programming”b$=”C+”c$=Ucase(left$(a$,7)& b$ & Right$(a$,12)后,变量后,变量c$ 的值为的值为( ) A)Visual Basic Programming B)VISUAL C+ Program

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论