1 / 83

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

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

yanka
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第三章 数据类型、运算符与表达式 计算机系信息教研室 赵娜

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

  3. 字符集 • 字符是构成程序设计语言的最小单位。 • VB的字符集包括:数字、英文字母和特殊符号。 • 数字 • 0~9 • 英文字母 • a~z和A~Z • 特殊字符 • !#$%&@^’()*+,-./\?>[]_{}|~:;”Space • 在代码窗口输入程序时,除汉字外,其余符号不能以全角或中文方式输入,只能以英文方式键入作为语言成分的字符。

  4. 词汇集 • 词汇符号是程序设计语言中具有独立意义的最基本结构。 • 词汇符号包括:运算符、分隔符、关键词、标识符和符号常量。 1.运算符和分隔符 • 算术运算符:+、-、*、/、\、MOD、^ • 字符运算符:&、+ • 比较运算符:>、>=、<、<=、=、<> • 逻辑运算符:NOT、AND、OR、XOR、EQV、IMP • 分隔符: :!、#、$、%、@、’、()、,、.、?、[]、_、{}、|、~、:、;、”、Space 2.关键词(保留字) 在语法上有固定的含义,是语言的组成部分,往往表示系统提供的标准过程、函数、运算符、常量等。在VB中,约定关键字的首个字母大写

  5. 3.标识符 • 程序中使用的变量名、数组名、函数名、过程名和用户自数据类型名等统称为标识符。除系统内部函数的函数名由系统定义外,其余都由用户自定义。 • Visual Basic的标识符命名规则为: • 必须以字母A~Z(或a ~ z)开头,构成标识符的字符必须是字母、汉字、数字、下划线等字符。 • 组成标识符的字符数不得超过255个字符。 • 名称中间不允许有空格,也不允许包含小数点。 • 名称的最后一个字符可以是类型说明符号(但类型说明符不是标识符的一部分) • VB中的关键字不能作为标识符。 • 标识符在同一范围内必须是唯一的。

  6. 说明: • (1)标识符中的字母不区分大小写,习惯上(只是使用习惯)变量名用小写字母表示,而符号常量一般用大写字母表示。 • (2)标识符虽然可由程序员随意定义,但标识符是用于标识某个量的符号。因此,命名应尽量有相应的意义,以便于阅读理解,做到“见名知义”。 • (3)标识符尽量简单明了,不要太长,因为太长不便于阅读和书写。

  7. 3-2 数据类型 • 数据是程序的必要组成部分,也是程序处理的对象。 • Visual Basic提供了系统定义的数据类型,并允许用户根据需要定义自己的数据类型。 1 基本数据类型 • 主要有数值型数据和字符型数据,以及布尔型、日期型和可变类型。 2 用户定义的数据类型

  8. 基本数据类型 • 字符串型(String) • 字符串是一个字符序列,由ASCII字符组成,包括标准的ASCII字符和扩展ASCII字符。 • 在VB中,存储一个字符占2个字节 • 在VB中,字符串是用双引号括起来的若干个字符。 • “Beijing,China” • “hello, world!” • “welcome to VB” • “2004”

  9. 字符串型-String • 字符串长度 • 字符串中包含的字符个数 • 汉字作为一个字符处理 • 例题 • 在VB中,字符串"天津2003Test"的长度和需要的存储空间字节数为( )。 A) 12和10 B) 10和12 C) 12和12 D) 10和20 • 空字符串:长度为0(即不含任何字符)的字符串。 • “” • 空格字符串:由一个或多个空格组成的字符串。 • “” ,“” , “” ,“”

  10. 字符串型-String • VB中的字符串分为两种 • 变长字符串 • 长度不确定,约为0~231个字符。随着对字符串变量赋予新的字符串,它的长度可增可减。按照缺省规定,一个字符串如没有定义成固定长的,都属于可变长字符串 Dim strS As String strS = “Beijing,China” • 定长字符串 • 含有确定个数的字符,在程序执行过程中其长度不变的字符串,最大长度不超过216个字符。 Dim strS As String*10 strS = “hello” (补五个空格) 或者 strS = “good afternoon!” (截断r后面的字符)

  11. 2.数值型 • 整型数(Integer) • 简称为整型,表示不带小数点和指数符号的数,在机器内以二进制补码形式表示。 • 整型数的运算速度较快,而且比其他数据类型占据的内存要少。在For…Next循环内作计数器变量使用时,整型尤为有用。 • 存储空间:占用两个字节。 • 存储范围为: -32768 — 32767 (十进制) • 小数部分四舍五入。

  12. 十六进制整数 • 由数字0 ~9、A ~F或a ~f组成,并以&H引导,其后面的数据位数≤4位 • 数值范围为&H0~&HFFFF • 如&H9AB4, &He5b8等。 • 八进制整数 • 由数字0 ~7组成,并以&O或&引导,其后面的数据位数≤6位 • 数值范围为&O0 ~&O177777 • 如:&O4537, &O77347等。

  13. 例如: Dim intA As Integer ’声明变量intA为整型变量 intA = 3854 ’十进制,范围 -32768 — 32767 或 intA = &H8ae6 ’十六进制,范围&H0 — &HFFFF 或 intA = &O5375 ’八进制,范围&O0 — &O177777

  14. 长整型数(Long) • 以带符号的4个字节(32位)二进制数存储,其取值范围为-2147483648 ~2147483647 • 十六进制长整型数:以&H开头,以&结尾,范围为&H0& ~ &HFFFFFFFF& • 八进制长整型数:以&O或&开头,以&结尾,其范围为&O0&~&O37777777777& • 字节型(Byte) • 占用1个字节,表示无符号的正数 • 范围为0—255。

  15. 单精度数(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

  16. 双精度数(Double) • 占用8个字节 • 最多可表示15位有效数字。也可以用定点形式和浮点形式表示。 定点形式: -3845.822584685 52526.154584 .000052645 浮点形式:指数部分用“D”或“d ”表示 -3586.84582D83 52584632.0026d+205 52.6258468545D-214

  17. 货币型(Currency) • 占用8个字节 • 存储范围为: -922 337 203 685 477.5808 — 922 337 203 685 477.5807 • 支持小数点左边15位和小数点右边4位,适用于货币计算。 在VB中,关于货币型数据的说明正确的是( )。 A) 货币型数据有时可以表示成整型数据 B) 货币型数据与浮点型数据完全一样 C) 货币型数据是由数字和小数点组成的字符串 D) 货币型数据是小数点位置固定的实型数 • 整型数据在计算机中是精确表示的,而浮点型数据在计算机中是近似表示的。

  18. 3.逻辑型数据 • 逻辑型数据(Boolean) • 只有两个值,常用来表示逻辑判断的结果。 • 当把数值型数据转化成Boolean型时 • 0转换成false • 其它非0值转换成true。 • Boolean型转换为数值型时 • false转换为0 • true转换为-1。

  19. 4.日期型数据 • 用来表示日期和时间。 • 用两个“#”把表示日期和时间的值括起来。 • 如果输入的日期或时间是非法的,系统将提示出错。 例如:#14/09/2004# #2004-09-14# #14/09/2004 02:34:46 pm#

  20. 5.可变型数据 • 可变类型(Variant) • 能够表示所有系统定义的类型。 • 当把不同类型的数据赋予Variant型时,VB会自动完成类型间的转换。 例如: Value = “23” ’ Value为“23”,字符串型 Value = Value-18 ’ Value为5,已转换成数值型 Value = “bfe”& Value ’Value为“bfe5”,字符串型 • 如果声明变量时没有指定类型,则默认为Variant型。 • 要尽量少用Variant型,以免发生错误。

  21. 关于变体类型变量的说明正确的是( )。 A) 变量未加定义而直接使用,该变量即为变体类型变量,因而变体变量是无类型变量 B) 变体变量占16字节的固定存储单元 C) 变体变量定义后,系统将变体变量初始化为数值0或空字符串 D) 设x为变体变量,且x=“10”,则x=x+20是正确语句

  22. 关键字( )用于定义变体类型数据。 A) Double B) Currency C) Boolean D) Variant • 在VB中,逻辑值True转换成整数时,其值为( )。 A) 1 B) -1 C) 0 D) 任何非0值

  23. 学号 姓名 性别 出生日期 英语 高等数学 总分 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中的基本类型数据,但同一行中不同列的数据却不都是同一类型的,无法用一个变量来完整表示

  24. Visual Basic允许将基本数据类型按需要组合起来,创建用户自定义的数据类型(UDT,User Define Type)。 • 用户自定义数据类型又称为“记录类型”,是由若干个基本类型的数据项组合而成的组合项。

  25. 创建用户自定义类型 • 可以使用Type语句创建用户自定义数据类型,该语句必须放在模块的声明区域。命令格式为: [Private|Public] Type <用户自定义类型名> <成员名1> As <类型名1> [<成员名2> As <类型名2>] … [<成员名n> As <类型名n>] End Type

  26. 例如,要编程序处理表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

  27. 3-3 常量和变量 • 变量: • 在程序中处理数据时,所用到的数据以及运行结果要暂时储存在计算机的内存中,变量就是命名的内存单元位置。一旦定义了某个变量,它表示的都是同一个内存位置,其中存放的数据可以变化。 • 一个变量在一个时刻只能存放一个值,如果其中存放的数据发生变化,则新数据将取代原来的数据。 • 例如:变量a现在存放的数据是23,如果对a进行加法(加5)操作,则a现在存放的数据是28。 • 变量有两个特性:名字和数据类型 • 名字用于在程序中标识变量和使用变量的值 • 数据类型决定变量中能保存哪种数据

  28. VB中变量有两种形式: • 属性变量:在窗体中设计用户界面时,VB自动为对象创建一组变量,并为每个变量设置一个默认值。(属性窗口中的变量。) • 内存变量:程序员自己根据需要创建的变量。

  29. ◆变量的声明 {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

  30. (1)声明语句所在的位置不同、声明变量所使用的关键字不同,使得变量具有不同的作用范围和不同的生存周期。(1)声明语句所在的位置不同、声明变量所使用的关键字不同,使得变量具有不同的作用范围和不同的生存周期。 • (2)变量名的命名规则遵循标识符的命名规则。 • (3)变量的数据类型可以Visual Basic的基本数据类型,也可以是用户自定义类型。 • (4)省略了As子句,变量为可变类型。一条声明语句可以同时声明多个变量,每两个变量之间用逗号分隔,如 • Dim x, y As Integer, z As Single • 此语句声明了3个变量,x为可变类型,y为整型,z为单精度型。

  31. (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不要求变量必须先声明后使用,但提供了强制对变量进行显式声明的措施,

  32. 变量的作用域 • 变量的作用域指的是变量的起作用的范围,作用域可以把变量分为三种: • 局部变量:只能在定义该变量的过程内部使用 • 模块级变量:模块级变量可以被当前模块(声明语句所在的模块)内的任意一个过程所使用。 • 全局变量:在标准模块的声明区域用Public定义的变量称为全局变量

  33. 变量的生存周期 • 变量的生存周期指的是变量存在的时间,也称为变量的存储类别。 • 静态存储类别变量(用Static声明):一旦它的作用范围结束,变量在内存中仍然存在,不释放。再一次执行同一段程序时,变量的值是最后一次所赋的值。 • 自动存储类别变量(用Dim声明):一旦它的作用范围结束,变量就被从内存释放,不复存在,再一次执行同一段程序时,需要重新给变量分配存储单元、赋初值。

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

  35. 常量:常量是指在程序运行过程中始终保持不变的常数、字符串等。常量:常量是指在程序运行过程中始终保持不变的常数、字符串等。 • Vb中有两种形式的常量:普通常量和符号常量。 • 普通常量 1、字符串常量 用双引号括起来的一串字符,这些字符可以是除双引号和回车、换行符以外的任何字符。如:“abd”“123”等等。 2、数值常量 数值常量就是常数,分为5种类型:整数、长整数、定点数、浮点数和字节数。如:3.14 3、布尔常量 只有True(真)和False(假)两个值。 4、日期常量 用两个“#”把表示日期和时间的值括起来表示日期常量。如:#14/09/2004#

  36. ●符号常量 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 ’表达式中可以使用已经定义的常量

  37. (1)符号常量名的命名规则遵循标识符的命名规则。(1)符号常量名的命名规则遵循标识符的命名规则。 (2)定义符号常量时可以使用As子句指明其数据类型,也可以使用类型说明符指明数据类型。 (3)经过声明的符号常量是用来代表常数值的标识符,不允许在程序中修改它的值。 (4)一次定义多个符号常量时,使用逗号作为分隔符。 (5)定义符号常量的位置不同、所使用的关键字不同,符号常量的作用范围也不同。

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

  39. 算术表达式:也叫数值表达式,由算术运算符、数值型常量、变量、函数和圆括号组成。算术表达式:也叫数值表达式,由算术运算符、数值型常量、变量、函数和圆括号组成。 格式: 〈数值1〉〈算术运算符1〉〈数值2〉[〈算术运算符2〉〈数值3〉] … 例如: 50*2+(34-6)/7-8/4 3*5^2-(3^2+4*7)/6

  40. 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

  41. ④\ 整数除法 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

  42. 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。

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

  44. 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

  45. 字符串表达式: 由字符串常量、字符串变量、字符串函数和字符串运算符组成。 格式: ﹤字符串1﹥&﹤字符串2﹥[&﹤字符串3﹥] 如:“ABC123”&“567xyz” 结果为“ABC123567xyz” “VB程序”&“设计教程” 结果为“VB程序设计教程” “123 45”&“abc ”&“ xyz ” 结果为“123 45abc xyz ”

  46. “+”也可以把两个字符串连接成一个字符串,但是最好用“&”。 • 一是避免与算术加法运算符产生混 淆, • 二是“&”可以自动将非字符串类型的数据转换成字符串后再进行连接,而“+”则不能。 如: 123&"abc"&456&"xyz" 结果为“123abc456xyz” 如用“+”,会出错。

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

  48. 日期表达式: 由算术运算符“+、-”、算术表达式、日期型常量、日期型变量和函数组成。 日期型数据是一种特殊的数据,它们之间只能进行加减运 算。共有3种情况: ①两个日期型数据可以相减,结果是一个数值型数据 (两个日期相差的天数)。如: #07/28/2004#-#07/12/2004# 结果为16 (数值型数据) ②一个表示天数的数值型数据可加到日期型数据中, 结果仍是一日期型数据(向后推算日期)。如: #07/12/2004#+16 结果为 #07/28/2004# (日期型数据)

  49. ③可以从一个日期型数据中减去一个表示天数的数值型数据,结果仍为一日期型数据(向前推算日期)③可以从一个日期型数据中减去一个表示天数的数值型数据,结果仍为一日期型数据(向前推算日期) 如: #07/28/2004#-16 结果为 #07/12/2004# (日期型数据)

  50. ◆关系运算符与关系表达式 关系表达式是指用关系运算符将两个表达 式连接起来的式子(如a+b>0)。 关系运算符也称比较运算符,用来对两个 表达式的值进行比较,比较的结果是一个布尔 值,这个结果就是关系表达式的值。 如:3+5 > 10 结果为 False 3+5 <> 10 结果为 True

More Related