830 likes | 1k Views
ç¬¬ä¸‰ç« æ•°æ®ç±»åž‹ã€è¿ç®—符 与表达å¼. è®¡ç®—æœºç³»ä¿¡æ¯æ•™ç ”室 赵娜. 主è¦å†…容. 3-1 基本å—ç¬¦é›†å’Œè¯æ±‡é›† 3-2 Visual Basic 的数æ®ç±»åž‹ 3-3 常é‡å’Œå˜é‡ 3-4 è¿ç®—ç¬¦å’Œè¡¨è¾¾å¼ 3-5 常用内部函数 3-6 程åºè¯å¥çš„书写规则. å—符集. å—符是构æˆç¨‹åºè®¾è®¡è¯è¨€çš„æœ€å°å•ä½ã€‚ VB çš„å—符集包括:数å—ã€è‹±æ–‡å—æ¯å’Œç‰¹æ®Šç¬¦å·ã€‚ æ•°å— 0~9 è‹±æ–‡å—æ¯ a~z å’Œ A~Z 特殊å—符 ï¼ #$%&@^ ’ ()*+,-./? >[]_{}|~:; †Space
E N D
第三章 数据类型、运算符与表达式 计算机系信息教研室 赵娜
主要内容 3-1 基本字符集和词汇集 3-2 Visual Basic的数据类型 3-3 常量和变量 3-4 运算符和表达式 3-5 常用内部函数 3-6 程序语句的书写规则
字符集 • 字符是构成程序设计语言的最小单位。 • VB的字符集包括:数字、英文字母和特殊符号。 • 数字 • 0~9 • 英文字母 • a~z和A~Z • 特殊字符 • !#$%&@^’()*+,-./\?>[]_{}|~:;”Space • 在代码窗口输入程序时,除汉字外,其余符号不能以全角或中文方式输入,只能以英文方式键入作为语言成分的字符。
词汇集 • 词汇符号是程序设计语言中具有独立意义的最基本结构。 • 词汇符号包括:运算符、分隔符、关键词、标识符和符号常量。 1.运算符和分隔符 • 算术运算符:+、-、*、/、\、MOD、^ • 字符运算符:&、+ • 比较运算符:>、>=、<、<=、=、<> • 逻辑运算符:NOT、AND、OR、XOR、EQV、IMP • 分隔符: :!、#、$、%、@、’、()、,、.、?、[]、_、{}、|、~、:、;、”、Space 2.关键词(保留字) 在语法上有固定的含义,是语言的组成部分,往往表示系统提供的标准过程、函数、运算符、常量等。在VB中,约定关键字的首个字母大写
3.标识符 • 程序中使用的变量名、数组名、函数名、过程名和用户自数据类型名等统称为标识符。除系统内部函数的函数名由系统定义外,其余都由用户自定义。 • Visual Basic的标识符命名规则为: • 必须以字母A~Z(或a ~ z)开头,构成标识符的字符必须是字母、汉字、数字、下划线等字符。 • 组成标识符的字符数不得超过255个字符。 • 名称中间不允许有空格,也不允许包含小数点。 • 名称的最后一个字符可以是类型说明符号(但类型说明符不是标识符的一部分) • VB中的关键字不能作为标识符。 • 标识符在同一范围内必须是唯一的。
说明: • (1)标识符中的字母不区分大小写,习惯上(只是使用习惯)变量名用小写字母表示,而符号常量一般用大写字母表示。 • (2)标识符虽然可由程序员随意定义,但标识符是用于标识某个量的符号。因此,命名应尽量有相应的意义,以便于阅读理解,做到“见名知义”。 • (3)标识符尽量简单明了,不要太长,因为太长不便于阅读和书写。
3-2 数据类型 • 数据是程序的必要组成部分,也是程序处理的对象。 • Visual Basic提供了系统定义的数据类型,并允许用户根据需要定义自己的数据类型。 1 基本数据类型 • 主要有数值型数据和字符型数据,以及布尔型、日期型和可变类型。 2 用户定义的数据类型
基本数据类型 • 字符串型(String) • 字符串是一个字符序列,由ASCII字符组成,包括标准的ASCII字符和扩展ASCII字符。 • 在VB中,存储一个字符占2个字节 • 在VB中,字符串是用双引号括起来的若干个字符。 • “Beijing,China” • “hello, world!” • “welcome to VB” • “2004”
字符串型-String • 字符串长度 • 字符串中包含的字符个数 • 汉字作为一个字符处理 • 例题 • 在VB中,字符串"天津2003Test"的长度和需要的存储空间字节数为( )。 A) 12和10 B) 10和12 C) 12和12 D) 10和20 • 空字符串:长度为0(即不含任何字符)的字符串。 • “” • 空格字符串:由一个或多个空格组成的字符串。 • “” ,“” , “” ,“”
字符串型-String • VB中的字符串分为两种 • 变长字符串 • 长度不确定,约为0~231个字符。随着对字符串变量赋予新的字符串,它的长度可增可减。按照缺省规定,一个字符串如没有定义成固定长的,都属于可变长字符串 Dim strS As String strS = “Beijing,China” • 定长字符串 • 含有确定个数的字符,在程序执行过程中其长度不变的字符串,最大长度不超过216个字符。 Dim strS As String*10 strS = “hello” (补五个空格) 或者 strS = “good afternoon!” (截断r后面的字符)
2.数值型 • 整型数(Integer) • 简称为整型,表示不带小数点和指数符号的数,在机器内以二进制补码形式表示。 • 整型数的运算速度较快,而且比其他数据类型占据的内存要少。在For…Next循环内作计数器变量使用时,整型尤为有用。 • 存储空间:占用两个字节。 • 存储范围为: -32768 — 32767 (十进制) • 小数部分四舍五入。
十六进制整数 • 由数字0 ~9、A ~F或a ~f组成,并以&H引导,其后面的数据位数≤4位 • 数值范围为&H0~&HFFFF • 如&H9AB4, &He5b8等。 • 八进制整数 • 由数字0 ~7组成,并以&O或&引导,其后面的数据位数≤6位 • 数值范围为&O0 ~&O177777 • 如:&O4537, &O77347等。
例如: Dim intA As Integer ’声明变量intA为整型变量 intA = 3854 ’十进制,范围 -32768 — 32767 或 intA = &H8ae6 ’十六进制,范围&H0 — &HFFFF 或 intA = &O5375 ’八进制,范围&O0 — &O177777
长整型数(Long) • 以带符号的4个字节(32位)二进制数存储,其取值范围为-2147483648 ~2147483647 • 十六进制长整型数:以&H开头,以&结尾,范围为&H0& ~ &HFFFFFFFF& • 八进制长整型数:以&O或&开头,以&结尾,其范围为&O0&~&O37777777777& • 字节型(Byte) • 占用1个字节,表示无符号的正数 • 范围为0—255。
单精度数(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
双精度数(Double) • 占用8个字节 • 最多可表示15位有效数字。也可以用定点形式和浮点形式表示。 定点形式: -3845.822584685 52526.154584 .000052645 浮点形式:指数部分用“D”或“d ”表示 -3586.84582D83 52584632.0026d+205 52.6258468545D-214
货币型(Currency) • 占用8个字节 • 存储范围为: -922 337 203 685 477.5808 — 922 337 203 685 477.5807 • 支持小数点左边15位和小数点右边4位,适用于货币计算。 在VB中,关于货币型数据的说明正确的是( )。 A) 货币型数据有时可以表示成整型数据 B) 货币型数据与浮点型数据完全一样 C) 货币型数据是由数字和小数点组成的字符串 D) 货币型数据是小数点位置固定的实型数 • 整型数据在计算机中是精确表示的,而浮点型数据在计算机中是近似表示的。
3.逻辑型数据 • 逻辑型数据(Boolean) • 只有两个值,常用来表示逻辑判断的结果。 • 当把数值型数据转化成Boolean型时 • 0转换成false • 其它非0值转换成true。 • Boolean型转换为数值型时 • false转换为0 • true转换为-1。
4.日期型数据 • 用来表示日期和时间。 • 用两个“#”把表示日期和时间的值括起来。 • 如果输入的日期或时间是非法的,系统将提示出错。 例如:#14/09/2004# #2004-09-14# #14/09/2004 02:34:46 pm#
5.可变型数据 • 可变类型(Variant) • 能够表示所有系统定义的类型。 • 当把不同类型的数据赋予Variant型时,VB会自动完成类型间的转换。 例如: Value = “23” ’ Value为“23”,字符串型 Value = Value-18 ’ Value为5,已转换成数值型 Value = “bfe”& Value ’Value为“bfe5”,字符串型 • 如果声明变量时没有指定类型,则默认为Variant型。 • 要尽量少用Variant型,以免发生错误。
关于变体类型变量的说明正确的是( )。 A) 变量未加定义而直接使用,该变量即为变体类型变量,因而变体变量是无类型变量 B) 变体变量占16字节的固定存储单元 C) 变体变量定义后,系统将变体变量初始化为数值0或空字符串 D) 设x为变体变量,且x=“10”,则x=x+20是正确语句
关键字( )用于定义变体类型数据。 A) Double B) Currency C) Boolean D) Variant • 在VB中,逻辑值True转换成整数时,其值为( )。 A) 1 B) -1 C) 0 D) 任何非0值
学号 姓名 性别 出生日期 英语 高等数学 总分 0908014101 李文华 女 1983-02-23 85 96 181 0908034102 张子玉 男 1987-05-18 78.6 78 156.6 0908044104 周明德 男 1990-09-21 90 84 174 用户自定义数据类型 • 假定某班部分学生的成绩如下表所示。如果需要编程序处理此表中的数据,表中每列数据的类型相同,都Visual Basic中的基本类型数据,但同一行中不同列的数据却不都是同一类型的,无法用一个变量来完整表示
Visual Basic允许将基本数据类型按需要组合起来,创建用户自定义的数据类型(UDT,User Define Type)。 • 用户自定义数据类型又称为“记录类型”,是由若干个基本类型的数据项组合而成的组合项。
创建用户自定义类型 • 可以使用Type语句创建用户自定义数据类型,该语句必须放在模块的声明区域。命令格式为: [Private|Public] Type <用户自定义类型名> <成员名1> As <类型名1> [<成员名2> As <类型名2>] … [<成员名n> As <类型名n>] End Type
例如,要编程序处理表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 Single End Type
3-3 常量和变量 • 变量: • 在程序中处理数据时,所用到的数据以及运行结果要暂时储存在计算机的内存中,变量就是命名的内存单元位置。一旦定义了某个变量,它表示的都是同一个内存位置,其中存放的数据可以变化。 • 一个变量在一个时刻只能存放一个值,如果其中存放的数据发生变化,则新数据将取代原来的数据。 • 例如:变量a现在存放的数据是23,如果对a进行加法(加5)操作,则a现在存放的数据是28。 • 变量有两个特性:名字和数据类型 • 名字用于在程序中标识变量和使用变量的值 • 数据类型决定变量中能保存哪种数据
VB中变量有两种形式: • 属性变量:在窗体中设计用户界面时,VB自动为对象创建一组变量,并为每个变量设置一个默认值。(属性窗口中的变量。) • 内存变量:程序员自己根据需要创建的变量。
◆变量的声明 {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
(1)声明语句所在的位置不同、声明变量所使用的关键字不同,使得变量具有不同的作用范围和不同的生存周期。(1)声明语句所在的位置不同、声明变量所使用的关键字不同,使得变量具有不同的作用范围和不同的生存周期。 • (2)变量名的命名规则遵循标识符的命名规则。 • (3)变量的数据类型可以Visual Basic的基本数据类型,也可以是用户自定义类型。 • (4)省略了As子句,变量为可变类型。一条声明语句可以同时声明多个变量,每两个变量之间用逗号分隔,如 • Dim x, y As Integer, z As Single • 此语句声明了3个变量,x为可变类型,y为整型,z为单精度型。
(5)变量声明后,系统就为之赋默认的初始值:数值型变量的默认初值为0;字符串型变量的默认初值为空串;布尔型变量的默认初值为False;日期时间型变量的默认初值为1899年12月30日0点0分0秒;可变类型变量的默认初值为空(empty)。(5)变量声明后,系统就为之赋默认的初始值:数值型变量的默认初值为0;字符串型变量的默认初值为空串;布尔型变量的默认初值为False;日期时间型变量的默认初值为1899年12月30日0点0分0秒;可变类型变量的默认初值为空(empty)。 • (6)声明变量时也可以省略As子句,而使用类型说明符来声明变量,如 • Dim st$,i&,k# • (7)Visual Basic不要求变量必须先声明后使用,但提供了强制对变量进行显式声明的措施,
变量的作用域 • 变量的作用域指的是变量的起作用的范围,作用域可以把变量分为三种: • 局部变量:只能在定义该变量的过程内部使用 • 模块级变量:模块级变量可以被当前模块(声明语句所在的模块)内的任意一个过程所使用。 • 全局变量:在标准模块的声明区域用Public定义的变量称为全局变量
变量的生存周期 • 变量的生存周期指的是变量存在的时间,也称为变量的存储类别。 • 静态存储类别变量(用Static声明):一旦它的作用范围结束,变量在内存中仍然存在,不释放。再一次执行同一段程序时,变量的值是最后一次所赋的值。 • 自动存储类别变量(用Dim声明):一旦它的作用范围结束,变量就被从内存释放,不复存在,再一次执行同一段程序时,需要重新给变量分配存储单元、赋初值。
【例3-1】新建立一个工程文件,在名称为Form1的窗体上画一个文本框,再画一个命令按钮,命令按钮的标题为“改变文本框的背景颜色”。要求程序运行时,每单击命令按钮一次,文本框的背景颜色就变化一次,使用qbcolor(i)函数来设置颜色。【例3-1】新建立一个工程文件,在名称为Form1的窗体上画一个文本框,再画一个命令按钮,命令按钮的标题为“改变文本框的背景颜色”。要求程序运行时,每单击命令按钮一次,文本框的背景颜色就变化一次,使用qbcolor(i)函数来设置颜色。
常量:常量是指在程序运行过程中始终保持不变的常数、字符串等。常量:常量是指在程序运行过程中始终保持不变的常数、字符串等。 • Vb中有两种形式的常量:普通常量和符号常量。 • 普通常量 1、字符串常量 用双引号括起来的一串字符,这些字符可以是除双引号和回车、换行符以外的任何字符。如:“abd”“123”等等。 2、数值常量 数值常量就是常数,分为5种类型:整数、长整数、定点数、浮点数和字节数。如:3.14 3、布尔常量 只有True(真)和False(假)两个值。 4、日期常量 用两个“#”把表示日期和时间的值括起来表示日期常量。如:#14/09/2004#
●符号常量 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 ’表达式中可以使用已经定义的常量
(1)符号常量名的命名规则遵循标识符的命名规则。(1)符号常量名的命名规则遵循标识符的命名规则。 (2)定义符号常量时可以使用As子句指明其数据类型,也可以使用类型说明符指明数据类型。 (3)经过声明的符号常量是用来代表常数值的标识符,不允许在程序中修改它的值。 (4)一次定义多个符号常量时,使用逗号作为分隔符。 (5)定义符号常量的位置不同、所使用的关键字不同,符号常量的作用范围也不同。
3-4 运算符与表达式 表达式的类型由运算符的类型决定。 在VB中有5类运算符和表达式: ①算术运算符和算术表达式 ②字符串运算符和字符串表达式 ③日期运算符和日期表达式 ④关系运算符和关系表达式 ⑤布尔运算符和布尔表达式
算术表达式:也叫数值表达式,由算术运算符、数值型常量、变量、函数和圆括号组成。算术表达式:也叫数值表达式,由算术运算符、数值型常量、变量、函数和圆括号组成。 格式: 〈数值1〉〈算术运算符1〉〈数值2〉[〈算术运算符2〉〈数值3〉] … 例如: 50*2+(34-6)/7-8/4 3*5^2-(3^2+4*7)/6
1、算术运算符 ①^ 乘方 如: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
④\ 整数除法 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
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。
x2+3xy/(2-y) x^2+3*x*y/(2-y) 1+y/x 1-y/x (1+y/x)/(1-y/x)
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
字符串表达式: 由字符串常量、字符串变量、字符串函数和字符串运算符组成。 格式: ﹤字符串1﹥&﹤字符串2﹥[&﹤字符串3﹥] 如:“ABC123”&“567xyz” 结果为“ABC123567xyz” “VB程序”&“设计教程” 结果为“VB程序设计教程” “123 45”&“abc ”&“ xyz ” 结果为“123 45abc xyz ”
“+”也可以把两个字符串连接成一个字符串,但是最好用“&”。 • 一是避免与算术加法运算符产生混 淆, • 二是“&”可以自动将非字符串类型的数据转换成字符串后再进行连接,而“+”则不能。 如: 123&"abc"&456&"xyz" 结果为“123abc456xyz” 如用“+”,会出错。
设a%=20,b$="30",则表达式a&b是( )。 A) 算术表达式 B) 逻辑表达式 C) 关系表达式 D) 字符表达式
日期表达式: 由算术运算符“+、-”、算术表达式、日期型常量、日期型变量和函数组成。 日期型数据是一种特殊的数据,它们之间只能进行加减运 算。共有3种情况: ①两个日期型数据可以相减,结果是一个数值型数据 (两个日期相差的天数)。如: #07/28/2004#-#07/12/2004# 结果为16 (数值型数据) ②一个表示天数的数值型数据可加到日期型数据中, 结果仍是一日期型数据(向后推算日期)。如: #07/12/2004#+16 结果为 #07/28/2004# (日期型数据)
③可以从一个日期型数据中减去一个表示天数的数值型数据,结果仍为一日期型数据(向前推算日期)③可以从一个日期型数据中减去一个表示天数的数值型数据,结果仍为一日期型数据(向前推算日期) 如: #07/28/2004#-16 结果为 #07/12/2004# (日期型数据)
◆关系运算符与关系表达式 关系表达式是指用关系运算符将两个表达 式连接起来的式子(如a+b>0)。 关系运算符也称比较运算符,用来对两个 表达式的值进行比较,比较的结果是一个布尔 值,这个结果就是关系表达式的值。 如:3+5 > 10 结果为 False 3+5 <> 10 结果为 True