83
第第第 第第第 第第第第 第第第 第第第第 第第第 第第第第 第第第第 第第第第第第第第第 第第

第三章 数据类型、运算符 与表达式

  • Upload
    yanka

  • View
    81

  • Download
    2

Embed Size (px)

DESCRIPTION

第三章 数据类型、运算符 与表达式. 计算机系信息教研室 赵娜. 主要内容. 3-1 基本字符集和词汇集 3-2 Visual Basic 的数据类型 3-3 常量和变量 3-4 运算符和表达式 3-5 常用内部函数 3-6 程序语句的书写规则. 字符集. 字符是构成程序设计语言的最小单位。 VB 的字符集包括:数字、英文字母和特殊符号。 数字 0~9 英文字母 a~z 和 A~Z 特殊字符 ! #$%&@^ ’ ()*+,-./\? >[]_{}|~:; ” Space - PowerPoint PPT Presentation

Citation preview

Page 1: 第三章  数据类型、运算符 与表达式

第三章 第三章 数据类型、运算符数据类型、运算符

与表达式与表达式

计算机系信息教研室 赵娜

Page 2: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

主要内容

3-1 基本字符集和词汇集3-2 Visual Basic 的数据类型3-3 常量和变量3-4 运算符和表达式3-5 常用内部函数3-6 程序语句的书写规则

Page 3: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

字符集字符是构成程序设计语言的最小单位。VB 的字符集包括:数字、英文字母和特殊

符号。 数字

• 0~9 英文字母

• a~z 和 A~Z 特殊字符

• ! #$%&@^’()*+,-./\?>[]_{}|~:;”Space在代码窗口输入程序时,除汉字外,其余

符号不能以全角或中文方式输入,只能以英文方式键入作为语言成分的字符。

Page 4: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

词汇集 词汇符号是程序设计语言中具有独立意义的最基本结构。 词汇符号包括:运算符、分隔符、关键词、标识符和符号

常量。1. 运算符和分隔符 算术运算符: + 、 - 、 * 、 / 、 \ 、 MOD 、 ^ 字符运算符: & 、 + 比较运算符: > 、 >= 、 < 、 <= 、 = 、 <> 逻辑运算符: NOT 、 AND 、 OR 、 XOR 、 EQV 、 IMP 分隔符: :!、 # 、 $ 、 % 、 @ 、’、 () 、 , 、 . 、 ? 、

[] 、 _ 、 {} 、 | 、 ~ 、 : 、 ; 、”、 Space2. 关键词(保留字) 在语法上有固定的含义,是语言的组成部分,往往表

示系统提供的标准过程、函数、运算符、常量等。在 VB中,约定关键字的首个字母大写

Page 5: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

3. 标识符 程序中使用的变量名、数组名、函数名、过程名和用户

自数据类型名等统称为标识符。除系统内部函数的函数名由系统定义外,其余都由用户自定义。

Visual Basic 的标识符命名规则为: 必须以字母 A ~ Z (或 a ~ z )开头,构成标识符的

字符必须是字母、汉字、数字、下划线等字符。 组成标识符的字符数不得超过 255 个字符。 名称中间不允许有空格,也不允许包含小数点。 名称的最后一个字符可以是类型说明符号(但类型说明

符不是标识符的一部分) VB 中的关键字不能作为标识符。 标识符在同一范围内必须是唯一的。

Page 6: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

说明:( 1 )标识符中的字母不区分大小写,习

惯上(只是使用习惯)变量名用小写字母表示,而符号常量一般用大写字母表示。

( 2 )标识符虽然可由程序员随意定义,但标识符是用于标识某个量的符号。因此,命名应尽量有相应的意义,以便于阅读理解,做到“见名知义”。

( 3 )标识符尽量简单明了,不要太长,因为太长不便于阅读和书写。

Page 7: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

3-2 数据类型数据是程序的必要组成部分,也是程

序处理的对象。Visual Basic 提供了系统定义的数据

类型,并允许用户根据需要定义自己的数据类型。

1 基本数据类型 主要有数值型数据和字符型数据,以及布尔型、日期型和可变类型。

2 用户定义的数据类型

Page 8: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

基本数据类型

1. 字符串型 (String) 字符串是一个字符序列,由 ASCII 字符组

成,包括标准的 ASCII 字符和扩展 ASCII字符。• 在 VB 中,存储一个字符占 2 个字节

在 VB 中,字符串是用双引号括起来的若干个字符。• “Beijing , China” • “hello, world!” • “welcome to VB” • “2004”

Page 9: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

字符串型 -String字符串长度

字符串中包含的字符个数• 汉字作为一个字符处理

例题• 在 VB 中,字符串 "天津 2003Test" 的长度和需要的存储空

间字节数为 ( ) 。 A) 12 和 10 B) 10 和 12 C) 12 和 12 D) 10 和 20

空字符串:长度为 0(即不含任何字符 ) 的字符串。 “”

空格字符串:由一个或多个空格组成的字符串。 “ ” ,“ ” , “ ” ,“ ”

Page 10: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

字符串型 -StringVB 中的字符串分为两种

变长字符串• 长度不确定,约为 0~ 231 个字符。随着对字符串变量赋予新的字符串,它的长度可增可减。按照缺省规定,一个字符串如没有定义成固定长的,都属于可变长字符串

Dim strS As String strS = “Beijing,China”

定长字符串• 含有确定个数的字符,在程序执行过程中其长度不变的字

符串,最大长度不超过 216 个字符。 Dim strS As String*10 strS = “hello” (补五个空格)或者 strS = “good afternoon!” (截断 r 后面

的字符)

Page 11: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

2. 数值型

整型数 (Integer) 简称为整型,表示不带小数点和指数符号的数,

在机器内以二进制补码形式表示。 整型数的运算速度较快,而且比其他数据类型占据的内存要少。在 For…Next 循环内作计数器变量使用时,整型尤为有用。

存储空间:占用两个字节。 存储范围为: -32768 — 32767 (十进制)小数部分四舍五入。

Page 12: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

十六进制整数 由数字 0 ~ 9 、 A ~ F 或 a ~ f 组成,并以 &H引导,其后面的数据位数≤ 4 位

数值范围为 &H0 ~ &HFFFF 如 &H9AB4, &He5b8 等。

八进制整数 由数字 0 ~ 7 组成,并以 &O 或 &引导,其后面

的数据位数≤ 6 位 数值范围为 &O0 ~ &O177777 如: &O4537, &O77347 等。

Page 13: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

例如:

Dim intA As Integer ’声明变量 intA 为整型变量

intA = 3854 ’十进制,范围 -32768 — 32767

或 intA = &H8ae6 ’十六进制,范围 &H0 — &HFFFF

或 intA = &O5375 ’八进制,范围 &O0 — &O177777

Page 14: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

长整型数 (Long) 以带符号的 4 个字节 (32 位 )二进制数存储,

其取值范围为 -2147483648 ~ 2147483647 十六进制长整型数:以 &H开头,以 & 结尾,范围为

&H0& ~ &HFFFFFFFF& 八进制长整型数:以 &O 或 & 开头,以 & 结尾,其范

围为 &O0& ~ &O37777777777&字节型( Byte )

占用 1 个字节,表示无符号的正数 范围为 0—255 。

Page 15: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

单精度数( single ) 占用 4 个字节 最多可表示 7位有效数字。可以用定点形式和浮

点形式表示。• 定点形式 :

-3845.82 526.84 .52645• 浮点形式:指数部分用“ E” 或“ e ” 表示

-3.84582E3 5.26e+2 52.645E-2例如: Dim mul As Single

mul = 586.54 或 mul = 5.8654E2

Page 16: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

双精度数 (Double) 占用 8个字节 最多可表示 15 位有效数字。也可以用定点形式和浮点形式表示。

定点形式 : -3845.822584685 52526.154584 .000052645 浮点形式:指数部分用“ D” 或“ d ” 表示 -3586.84582D83 52584632.0026d+205 52.6258468545D-214

Page 17: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

货币型( Currency) 占用 8个字节 存储范围为:

-922 337 203 685 477.5808 — 922 337 203 685 477.5807

支持小数点左边 15 位和小数点右边 4 位,适用于货币计算。

在 VB 中,关于货币型数据的说明正确的是 ( ) 。A) 货币型数据有时可以表示成整型数据B) 货币型数据与浮点型数据完全一样C) 货币型数据是由数字和小数点组成的字符串D) 货币型数据是小数点位置固定的实型数

整型数据在计算机中是精确表示的,而浮点型数据在计算机中是近似表示的。

Page 18: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

3. 逻辑型数据

逻辑型数据( Boolean) 只有两个值,常用来表示逻辑判断的结果。 当把数值型数据转化成 Boolean 型时

• 0转换成 false• 其它非 0值转换成 true 。

Boolean 型转换为数值型时• false转换为 0• true转换为 -1 。

Page 19: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

4.日期型数据

用来表示日期和时间。 用两个“ #”把表示日期和时间的值括起来。 如果输入的日期或时间是非法的,系统将提示出错。

例如: #14/09/2004# #2004-09-14#

#14/09/2004 02:34:46 pm#

Page 20: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

5. 可变型数据可变类型 (Variant)

能够表示所有系统定义的类型。 当把不同类型的数据赋予 Variant 型时, VB会自动完

成类型间的转换。例如: Value = “23” ’ Value 为“ 23” ,字符串型 Value = Value-18 ’ Value 为 5 ,已转换成数值型 Value = “bfe”& Value ’Value 为“ bfe5” ,字符串型

如果声明变量时没有指定类型,则默认为 Variant型。

要尽量少用 Variant型,以免发生错误。

Page 21: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

关于变体类型变量的说明正确的是 ( ) 。 A) 变量未加定义而直接使用,该变量即为变体类型变量,因而变体变量是无类型变量

B) 变体变量占 16 字节的固定存储单元C) 变体变量定义后,系统将变体变量初始化

为数值 0或空字符串D) 设 x为变体变量,且 x=“10” ,则 x=x

+20是正确语句

Page 22: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

1. 关键字 ( ) 用于定义变体类型数据。 A) Double B) Currency C) Boolean D) Variant

2. 在 VB 中,逻辑值 True转换成整数时,其值为 ( ) 。 A) 1 B) -1 C) 0 D) 任何非 0值

Page 23: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

用户自定义数据类型

假定某班部分学生的成绩如下表所示。如果需要编程序处理此表中的数据,表中每列数据的类型相同,都 Visual Basic 中的基本类型数据,但同一行中不同列的数据却不都是同一类型的,无法用一个变量来完整表示 学号 姓名 性别 出生日

期英语 高等数

学总分

0908014101

李文华 女 1983-02-23

85 96 181

0908034102

张子玉 男 1987-05-18 78.6 78 156.6

0908044104

周明德 男 1990-09-21 90 84 174

Page 24: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

Visual Basic 允许将基本数据类型按需要组合起来,创建用户自定义的数据类型( UDT , User Define Type )。

用户自定义数据类型又称为“记录类型”,是由若干个基本类型的数据项组合而成的组合项。

Page 25: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

创建用户自定义类型 可以使用 Type 语句创建用户自定义数据类型,该语句必须放在模块的声明区域。命令格式为:

[Private|Public] Type < 用户自定义类型名 >< 成员名 1> As < 类型名 1>[< 成员名 2> As < 类型名 2>]…[< 成员名 n> As < 类型名 n>]End Type

Page 26: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

例如,要编程序处理表 2-2 中的数据,需要定义学生成绩数据,每名学生都需要学号、姓名、性别、出生日期等数据项,因此使用 Type 语句定义的学生数据类型 student 如下所示:

Private Type student stuNo As String * 10 stuName As String * 8 sex As Boolean stuBirth As Date stuscore_1 As Single stuscore_2 As Single sum As SingleEnd Type

Page 27: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

3-3 常量和变量

变量: 在程序中处理数据时,所用到的数据以及运行结果要暂时储存在计算机的内存中 , 变量就是命名的内存单元位置。一旦定义了某个变量,它表示的都是同一个内存位置,其中存放的数据可以变化。

一个变量在一个时刻只能存放一个值,如果其中存放的数据发生变化,则新数据将取代原来的数据。

例如:变量 a现在存放的数据是 23 ,如果对 a进行加法(加 5 )操作,则 a现在存放的数据是 28 。

变量有两个特性:名字和数据类型

名字用于在程序中标识变量和使用变量的值 数据类型决定变量中能保存哪种数据

Page 28: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

VB 中变量有两种形式:属性变量:在窗体中设计用户界面时, VB

自动为对象创建一组变量,并为每个变量设置一个默认值。(属性窗口中的变量。)

内存变量:程序员自己根据需要创建的变量。

Page 29: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

◆变量的声明{Dim|Private|Static|Public} < 变量名 > [As< 类型 >]

例如: Dim intSum As Integer Private Sum As Single , strName As String Static Average As Single Public Yn As Boolean Dim aa ’ 没有指定变量类型,默认为 Variant型 Dim intAge As Integer

Page 30: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

( 1 )声明语句所在的位置不同、声明变量所使用的关键字不同,使得变量具有不同的作用范围和不同的生存周期。

( 2 )变量名的命名规则遵循标识符的命名规则。( 3 )变量的数据类型可以 Visual Basic 的基本

数据类型,也可以是用户自定义类型。( 4 )省略了 As 子句,变量为可变类型。一条声

明语句可以同时声明多个变量,每两个变量之间用逗号分隔,如 Dim x, y As Integer, z As Single

• 此语句声明了 3 个变量, x为可变类型, y为整型, z为单精度型。

Page 31: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

( 5 )变量声明后,系统就为之赋默认的初始值:数值型变量的默认初值为 0;字符串型变量的默认初值为空串;布尔型变量的默认初值为 False;日期时间型变量的默认初值为 1899年 12月 30日 0点 0分 0秒;可变类型变量的默认初值为空( empty)。

( 6 )声明变量时也可以省略 As 子句,而使用类型说明符来声明变量,如 Dim st$ , i& , k#

( 7) Visual Basic 不要求变量必须先声明后使用,但提供了强制对变量进行显式声明的措施,

Page 32: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

变量的作用域

变量的作用域指的是变量的起作用的范围,作用域可以把变量分为三种: 局部变量:只能在定义该变量的过程内部使用 模块级变量:模块级变量可以被当前模块(声

明语句所在的模块)内的任意一个过程所使用。

全局变量:在标准模块的声明区域用 Public 定义的变量称为全局变量

Page 33: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

变量的生存周期

变量的生存周期指的是变量存在的时间,也称为变量的存储类别。 静态存储类别变量(用 Static声明):一旦它

的作用范围结束,变量在内存中仍然存在,不释放。再一次执行同一段程序时,变量的值是最后一次所赋的值。

自动存储类别变量(用 Dim 声明):一旦它的作用范围结束,变量就被从内存释放,不复存在,再一次执行同一段程序时,需要重新给变量分配存储单元、赋初值。

Page 34: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

【例 3-1】新建立一个工程文件,在名称为 Form1 的窗体上画一个文本框,再画一个命令按钮,命令按钮的标题为“改变文本框的背景颜色”。要求程序运行时,每单击命令按钮一次,文本框的背景颜色就变化一次,使用 qbcolor(i) 函数来设置颜色。

Page 35: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

常量:常量是指在程序运行过程中始终保持不变的常数、字符串等。 Vb 中有两种形式的常量:普通常量和符号常量。

普通常量1 、字符串常量 用双引号括起来的一串字符,这些字符可以是除双引号和回车、换行符以外的任何字符。如 : “abd” “123” 等等。

2 、数值常量 数值常量就是常数,分为 5种类型:整数、长整数、定点数、浮点

数和字节数。如: 3.143 、布尔常量 只有 True (真)和 False (假)两个值。4 、日期常量 用两个“ #”把表示日期和时间的值括起来表示日期常量。如: #

14/09/2004#

Page 36: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

●符号常量1 、内部(系统定义)常量 该类型的常量是由 VB 和控件提供的,可与应用程序的对象、

方法和属性一起使用,在代码中可直接使用它们。2 、符号(用户自定义)常量

Const< 常量名 >[As < 数据类型 >]=< 表达式 >…注意: < 表达式 > 由数值常量、字符串常量及运算符组成,可以包含前面定

义过的常量,但不能使用函数调用。如: Const conPi = 3.1415926

Const conDate = #14/09/2004#

Const conName As String = “I can speak English”

Const conPi = 3.1415926, conMax =99, conName = “englisg”

Const conPi2 = conPi*2 ’ 表达式中可以使用已经定义的常量

Page 37: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

( 1 )符号常量名的命名规则遵循标识符的命名规则。

( 2 )定义符号常量时可以使用 As 子句指明其数据类型,也可以使用类型说明符指明数据类型。

( 3 )经过声明的符号常量是用来代表常数值的标识符,不允许在程序中修改它的值。

( 4 )一次定义多个符号常量时,使用逗号作为分隔符。

( 5)定义符号常量的位置不同、所使用的关键字不同,符号常量的作用范围也不同。

Page 38: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

3-4 运算符与表达式

表达式的类型由运算符的类型决定。在 VB 中有 5 类运算符和表达式:①算术运算符和算术表达式②字符串运算符和字符串表达式③日期运算符和日期表达式④关系运算符和关系表达式⑤布尔运算符和布尔表达式

Page 39: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

•算术表达式 :也叫数值表达式,由算术运算符、数值型常量、变量、函数和圆括号组成。

格式:〈数值 1〉〈算术运算符 1〉〈数值 2〉 [〈算术

运算符 2〉〈数值 3〉 ] …

例如: 50*2+(34-6)/7-8/4 3*5^2-(3^2+4*7)/6

Page 40: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

① ^ 乘方 如: a^b表示 ab 8^3 表示 83

2^3=8 4^2=16 4^3=64② * 乘法 如: a*b表示 a×b 4*6 表示 4×6 4*7=28 3*9=27 12*3=36③ / 浮点除法 如: a/b表示 a÷b 16/5 表示 16÷5 10/4=2.5 16/5=3.2 34/5=6.8

1 、算术运算符

Page 41: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

④ \ 整数除法 13\5=2 1\2=0 10\3=3 \ 用于整数除法,如果参加运算的数据含有小数,首先将它们四舍五入然后再进行运算,其结果只取整数部分。

例如: 11.4\4= 11\4= 2 11.6\4= 12\4= 3⑤ Mod 求余的模运算 13 mod 5 = 3 1 mod 2 = 1 mod用来求整型除法的余数,如果操作数含有小数,

首先四舍五入。 例如: 25.62 mod 6.64= 26 mod 7= 5

Page 42: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

2 、表达式的书写规则①每个符号占一格,所有符号都必须一个一个并排写在同一横线上,不能出现上标或下标。

如: 43 要写成 4^3 , X1+X2 要写成 X1+X2②在数学表达式中省略的内容要重新写上。 如: 2ab要写成 2*a*b③所有括号都用小括号,括号必须配对。 如: 4[x+ 2 ( y+ z)] 要写成 4*(x+2*(y+z))④要把数学表达式中的有些符号,改成 vb中可以

表示的符号。如: 2∏r要写成 2*pi*r。

Page 43: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

x2+3xy/(2-y) x^2+3*x*y/(2-y)

1+y/x1-y/x (1+y/x)/(1-y/x)

Page 44: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

3 、算术运算符的优先级 ^ - * / \ mod + -

如: 2*3^2+2*8/4+3^2 = 2* 9 + 16/4+ 9 = 18 + 4 + 9 = 31 7*3+4^2 mod 5*3-10\3 = 21 + 16 mod 15 – 3 = 21 + 1 – 3 = 19

Page 45: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

字符串表达式: 由字符串常量、字符串变量、字符串函数和

字符串运算符组成。格式:﹤字符串 1﹥&﹤字符串 2﹥[&﹤字符串 3﹥]如:“ ABC123”&“567xyz” 结果为“ ABC123567xyz” “VB 程序” &“ 设计教程” 结果为“ VB 程序设计教程” “123 45”&“abc ”&“ xyz ” 结果为“ 123 45abc xyz ”

Page 46: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

“+”也可以把两个字符串连接成一个字符串,但是最好用“ &” 。

一是避免与算术加法运算符产生混淆,二是“ &” 可以自动将非字符串类型的

数据转换成字符串后再进行连接,而“+”则不能。如: 123&"abc"&456&"xyz" 结果为“ 123abc456xyz”如用“ +” ,会出错。

Page 47: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

设 a%=20,b$="30", 则表达式 a&b是 ( ) 。 A) 算术表达式 B) 逻辑表达式 C) 关系表达式 D) 字符表达式

Page 48: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

日期表达式: 由算术运算符“+、-”、算术表达式、日期型常量、日期型变量和函数组成。

日期型数据是一种特殊的数据,它们之间只能进行加减运算。共有 3种情况:①两个日期型数据可以相减,结果是一个数值型数据(两个日期相差的天数)。如: # 07/28/2004#- #07/12/2004# 结果为 16 (数值型数据)②一个表示天数的数值型数据可加到日期型数据中, 结果仍是一日期型数据(向后推算日期)。如: # 07/12/2004# +16 结果为 #07/28/2004# (日期型数据)

Page 49: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

③可以从一个日期型数据中减去一个表示天数的数值型数据,结果仍为一日期型数据(向前推算日期)

如: # 07/28/2004#- 16 结果为 #07/12/2004# (日期型数据)

Page 50: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

◆ 关系运算符与关系表达式关系表达式是指用关系运算符将两个表达

式连接起来的式子 (如 a+b>0) 。

关系运算符也称比较运算符,用来对两个表达式的值进行比较,比较的结果是一个布尔值,这个结果就是关系表达式的值。

如: 3+ 5 > 10 结果为 False 3+ 5 <> 10 结果为 True

Page 51: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

1. 关系运算符

运算符 名称 例子 说明

< 小于 “3”<4 True 强制转换为数值型

<= 小于等于 3<=4 True

> 大于 0>(1>0) True强制转换为数值型

>= 大于等于 “aa”>=“ab” False

= 等于 1=True False强制转换为数值型

<> 不等于 2<>3 True

Like 字符串匹配 "ABCDE" Like "*CD*"

True

Page 52: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

2. 关系表达式关系表达式的格式为:〈表达式 1〉〈关系运算符〉〈表达式 2〉

[〈关系运算符〉〈表达式 3〉…… ]

说明:①运算次序:先分别求出关系运算符两侧表达

式的值,然后再对二者进行比较。二者的关系如果与关系运算符一致,则结果为 true ,否则为 false 。

如: 3+ 4 > 1+ 8 结果为 False

Page 53: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

②数值型数据按数值大小进行比较。③日期型数据将日期看成“ yyyymmdd” 的 8位整数,按数值

大小比较。如:20041012 > 20041009

④字符型数据按其 ASCⅡ码值进行比较。“ 空格” <“0”<…<“9”<“A”<…<“Z”<“a”<…<

“z”<“任何汉字” 字符串的比较: “ ac”<“bc”

“aa”<“ab” “abc”<“abd” “357”<“a34”

Page 54: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

⑤数学不等式 : a≤x ≤b ,在 VB 中不能写成 a<=x<=b。 如 :假设 x=5 ,不满足 2 ≤x ≤3 。 但在 VB 中, 2<=x<=3却是 true 。 这是 因为在 vb 中该式相当于 (2<=x)<=3

Page 55: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

◆布尔运算符与布尔表达式布尔表达式是指用布尔运算符连接若干关系表达式或布尔值而成的式子。如: a≤x ≤b可表示为: a<=x And x<=b布尔表达式的值也是一个布尔值。

布尔运算符有: and、 or、 not、 xor、eqv、 imp六种,常用的为前 3种。如果布尔运算符两侧有数值数据出现,则将数值数据转换为二进制数 (补码形式 )进行按位运算。 1 为真, 0为假。

Page 56: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

布尔运算符

运算符 名称 例子 说明

and 与(4>5)and(3<4)

值为 false ,两个表达式的值均为真,结果才为真。

or 或(4>5)or(3<4)

值为 true ,两个表达式的值均为假,结果才为假。

not 非 not(1>0)

值为 false ,与原来的值相反

Page 57: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

a b a and b a or b not a

true true true true false

true false false true false

false true false true true

false false false false true

布尔运算真值表

2+3>5 and 5<3 结果为 false

Not 5<3 and 6*2=10+2 结果为 true

5>=5 or 4*7<>7 结果为 true

Page 58: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

例: 判断某年是闰年的根据是年份满足下述条件之一:①能被 4整除,但不能被 100 整除。 ②能被 100 整除,也能被 400 整除。①y mod 4 = 0 and y mod 100 <> 0②y mod 100 = 0 and y mod 400 = 0 ① or ②即 y mod 4 = 0 and y mod 100 <> 0 or y mod 100 = 0 and y mod 400 = 0

Page 59: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

下列表达式中不正确的是 ( ) 。A) x Like 3,5,7B) x+y=zC) x+y And x+a>y+bD)#05/08/1995#+#01/07/1995#

Page 60: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

◆ 运算符的优先顺序Vb会按照一定的顺序对表达式求值,这

个顺序称为运算符的优先顺序。

Page 61: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

优先顺序 运算符类型 运算符1

算术运算符

^ (指数运算)

2 -(负数)

3 * 、 / (乘法和除法)

4 \ (整数除法)

5 Mod(求模运算)

6 +、-(加法和减法)

7 字符串运算符 & (字符串连接)

8 关系运算符 = 、 <> 、 < 、 > 、 <= 、 >=

9

布尔运算符not

10 and

11 or

Page 62: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

设 a=4,b=5, 则以下表达式为真的是 ( ) 。 A) a>=b And b>10 B) a>b Or b>0 C) a<0 Eqv b>0 D) -3+5>a And b>0

Page 63: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

表达式1.5+3\2>2 Or 7 Mod 3<4 And Not 1 的运算

结果是 ( ) 。 A) - 1 B) 0 C) 1 D) 不确定数

Page 64: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

下列表达式的值为 True 或 False 的是 ( ) 。 A) A$+b$ B) a&+b& C) A#-b% D) a#>b! D

Page 65: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

常用内部函数

数学运算函数:Sin 返回弧度的正弦值。参数要求是弧度,如 sin25o表示为 sin( 25*3.14/180)。

sin( 30*3.14/180) = 1/2Cos 返回弧度的余弦值Atn 返回用弧度表示的反正切值Tan 返回弧度的正切值Abs 返回数的绝对值 如: Abs(-34)=34 Abs(46)=46

Page 66: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

Exp 返回 e 的指定次幂 如: exp ( 3 )返回 e^3 Log 返回一个数值的自然对数Sgn 返回数的符号值 如: sgn(3*7+2)返回 1 sgn( 2- 3×4 )返回 -1

Sqr 返回数的平方根 如: sqr( 64 ) = 8 sqr( 49) = 7Int 返回不大于给定数的最大整数 如: Int( 2.3 ) =2 Int(-2.3)=-3Fix 返回数的整数部分 如: Fix(5.6)=5 Fix(-5.6)=-5

Page 67: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

Int函数的应用

作四舍五入: Int(x*10^n+0.5)/10^n例如: 8.334 保留两位有效数字 即n=2判断两个整数是否整除 Int(x/y)=x/y

Page 68: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

字符串函数:Ltrim 删除字符串左端的空格Rtrim 删除字符串右端的空格Trim 删除字符串两端的空格 如: Ltrim(“ abc ”)返回“ abc ” Rtrim(“ abc ”)返回“ abc” Trim (“ abc ”)返回“ abc”Left 返回从字符串左边开始的指定数目的字符 如: Left(“ hello” , 2 )返回 “ he”Right 返回从字符串右边开始的指定数目的字符 如: Right(“ hello” , 2 )返回 “ lo”

Page 69: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

【例 3-3】删除字符串函数应用举例。Private Sub Form_Click()

Dim st As String

st = " 12 34 "

' 变量 st 的左端、中间、右端各有 4 个空格 Print "ab" & LTrim(st) & "cd"

Print "ab" & RTrim(st) & "cd"

Print "ab" & Trim(st) & "cd"

End Sub

Page 70: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

Mid 返回从字符串指定位置开始的指定数目字符 如:mid(“welcome” , 3 , 4 )返回“ lcom”Len 返回字符串的长度 如: Len(“ hello” ) =5Instr 返回字符串在给定的字符串中出现的开始位置。 如: Instr(“welcome” ,“ co” )返回 4Space 返回由指定数目空格组成的字符串 如: Space ( 3 )返回“ ”String 返回一个字符重复指定次数的字符串 如: String( 3 ,“ a” )返回“ aaa”

Page 71: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

Lcase 返回以小写字母组成的字符串 如: Lcase (“ HELlo” )返回 “ hello”

Ucase 返回以大写字母组成的字符串 如: Ucase (“ Hello” )返回“ HELL

O”

Page 72: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

设 a="Visual BASIC", 下面使 b="BASIC"的语句是 ( ) 。

A) b=Left$(a,8,5) B) b=Right$(a,5,5) C) b=Mid$(a,8,5) D) b=InStr(a,8)C

Page 73: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

随机数函数和语句Randomize 产生随机数的种子Rnd(number) 函数 产生 [0, 1 )之间的随

机数number 的值决定了 Rnd 生成随机数的方

式 小于 0 :每次都使用 number 作为随机数种子得到的相同结果。 大于 0 : 序列中的下一个随机数。 等于 0 : 最近生成的数。 省略 : 序列中的下一个随机数。

Page 74: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

利用 Rnd函数产生任意区间的随机数产生( a , b)区间的随机数: (b-a)*Rnd+a产生 [a , b] 区间的随机整数: Int((b-a+1)*Rnd)+a

随机生成( 1 ~ 100)之间的整数 Int(Rnd * 100 + 1)

用随机函数产生一个 33 到 126之间的整数 Int(Rnd*94)+33

Page 75: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

字符串函数:

Asc 将字符转换成 ASCII值。 如: a=Asc(“C”) a 的值为 67

Chr 将 ASCII值转换成字符。 如: a=Chr(“66”) a 的值为” B”

Page 76: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

Str 把数值型数据转换为字符串如: Str( 26.35 )返回“ 26.35”Str(-25.34) 返回“- 25.34”

Val 把数字字符串转换为相应的数值。 如: Val(“ 23days” ) = 23 Val (“2564”)= 2564

Page 77: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

日期和时间函数Now 返回系统日期和时间 (yy-mm-dd hh:mm:ss) text1.text = now返回 2004-9-16 14:57:51Date 返回当前日期 (yy-mm-dd) text1.text= date 返回 2004-9-16Day 返回月中第几天( 1- 31 ) Day(now)返回 16 (如果今天是 16 号)Weekday 返回是星期几( 1- 7) weekday(#2004-9-14#) 返回 3 (星期二)Month 返回月份( 1- 12 ) month( now)返回 9

Page 78: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

Year 返回年份 year(#2003-9-15#)返回 2003year( now) year(date)返回系统时间的年份Hour 返回小时( 0- 23 ) hour(now) hour(time)返回当前系统时间的小时数Minute Second分别返回系统时间的分钟数和秒数Timer 返回从午夜算起已过的秒数 如: text1.text=Timer 则 text1 中显示从午夜算起

已过的秒数Time 返回当前的系统时间 如: text1.text=time 则 text1 中显示当前的系 统时间 14:35:43

Page 79: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

数据类型转换函数Cbool Cbool(0) Cbool(“0”)返回 falseCbyte Cbyte(234)返回 234Ccur Ccur(325.52)返回 325.52Cdate Cdate(#5/12/2004#)返回 2004-5-12Cint Cint(345.23)返回 345CStr CStr(“abc”)返回 abc CStr(56)返回 56Cvar CVar(52.36)返回 52.36 CVar(true)返回 true CVar(“abc”)返回 abc

Page 80: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

测试与判断函数用来判断变量和表达式的类型等。

( 1 ) IsArray ( 变量名 )• 用于判断变量名是否为数组,如果是,则返回 True ,否则返回 False 。

( 2 ) IsDate( 表达式 )• 判断表达式的值是否为日期,如果是日期则返回 True ,否则返回 Fal

se 。 ( 3 ) IsNumeric( 表达式 )

• 判断表达式是否为数值型数据,如果是,则返回 True ,否则返回 False 。

( 4 ) TypeName( 表达式 )• 判断表达式的数据类型,如函数 TypeName(100 ! ) 的值为 Single

( 5 ) IIf( 表达式 1 ,表达式 2 ,表达式 3)• 判断表达式 1 的值是否为真( True ),如果表达式 1 的值为真,则

函数 IIf() 的值为表达式 2 的值,否则函数的值为表达式 3 的值。• 如令 x=15 ,则函数 IIf(x>0,x,-x) 的值为 15

Page 81: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

语句程序语句VB 程序中的一行代码称为一条程序语句,简

称语句。语句是执行具体操作的指令。长度最多不能超过 1023 个字符。 text1 . text = “hello” 对象名 属性名 赋值号 字符串常量

建立程序语句时必须遵从的构造规则称为语法。

Page 82: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

语句的书写规则

一行中的多条语句一般情况下要求一行只写一个语句,但也可

以把多个语句放在同一行,语句之间用冒号“ :” 隔开。例如:Text1.text=“hello”:red=255:text1.backcolor=red

Label1.caption=“姓名” :label2.caption=“年龄”

Page 83: 第三章  数据类型、运算符 与表达式

Tianjin Agricultural University

语句的续行当一条语句很长时,不方便阅读,这时可

以使用空格和续行符“ _”将一个较长的语句分为多行。如: strMyStr=“当前用户为” &strUsername

可以写成: strMyStr=“当前用户为” & _ strUsername