第2章数据与表达式.ppt

上传人:本田雅阁 文档编号:3424194 上传时间:2019-08-24 格式:PPT 页数:75 大小:373.04KB
返回 下载 相关 举报
第2章数据与表达式.ppt_第1页
第1页 / 共75页
第2章数据与表达式.ppt_第2页
第2页 / 共75页
第2章数据与表达式.ppt_第3页
第3页 / 共75页
第2章数据与表达式.ppt_第4页
第4页 / 共75页
第2章数据与表达式.ppt_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《第2章数据与表达式.ppt》由会员分享,可在线阅读,更多相关《第2章数据与表达式.ppt(75页珍藏版)》请在三一文库上搜索。

1、第2章 数据与表达式,本章要点 字符集 数据类型 常量、变量 运算符、表达式 常用内部函数,21 字符集,2.1.1 VB的字符集 VB的基本字符集包括: 字母:大写英文字母AZ;小写英文字母az。 数字:0一9; 专用字符:共27个。,2.1.2 编码规则 1.VB代码中不区分字母的大小写 为提高程序的可读性,VB对用户程序代码进行自动转换: (1)对于VB中的关键字,首字母总被转换成大写,其余字母被转换成小写; (2)若关键字由多个英文单词组成,它会将每个单词首字母转换成大写;,2.语句书写自由 (1)在同一行上可以书写多条语句,但语句间要用冒号“:”分隔 a = 10: b = 20 (

2、2)若一个语句行不能写下全部语句,或在特别需要时,可以换行。换行时需在本行后加入续行符,1个空格加下划线“_“。 (3)一行最多允许255个字符,3.注释有利于程序的维护和调试 其语法格式为: Rem 或 注释以Rem开头,也可以使用单引“,注释内容可直接出现在语句的后面。 例如: This is a VB REM This is a VB,如果在其他语句行后面使用Rem关键字,必需用冒号(:)与语句隔开。若用英文单引号“,则在其他语句行后面不必加冒号(:)。 例如: Const PI=3.1315925 符号常量PI S = PI * r * r: Rem 计算圆的面积 也可以使用“编辑“工

3、具栏的“设置注释块“、“解除注释块“按钮,使选中的若干语句增加注释或消除注释,十分方便。,4.保留行号和标号 VB源程序也接受行号与标号,但这不是必须的。 每个对象的名字由3个小写字母组成的前缀(指明对象的类型)和表示该对象作用的缩写字母组成 。,22 数据类型,2.2.1 标准数据类型,表2-1 VB中的标准数据类型表,2.2.6 自定义类型 由Type语句来实现: 格式:Pubilc|PrivateType 自定义类型名 元素名1 As 类型名 元素名2 As 类型名 元素名n As 类型名 End Type 元素名:表示自定义数据类型中的一个成员。 类型名:为标准类型。,定义一个有关学生

4、考试信息的自定义类型: Type Stutype name As String*4 姓名 age As Integer birthday As Date weight As Single yuweng As Single 语文 End Type,对于定义好的类型,就可以在变量声明时使用该类型。 例如,可在某过程声明变量: Dim Student As Stutype 要表示Student变量中的某个元素,形式如下: 变量名元素名 例如,要表示考生的姓名,语文的成绩: Student.name , Studentyuweng,注 意 (1)Type语句是不可执行的,而且只能出现在模块的声明部分,

5、在过程中不能使用Type语句 。 (2)自定义类型中的元素类型可以是字符串,但必须是定长字符串。 (3)不能将自定义类型名和该类型变量名混淆,VB会根据变量的类型分配所需的内存空间,存储数据。,2.2.7 枚举型:,格式:Public|Private Enum 枚举类型名 元素名1 =元素值 元素名2 =元素值 End Type private enum color black=1 white=2 end enum,2.2.8 模块,VB应用程序(通常称为工程)由窗体模块、标准模块和类模块组成。 VB程序代码保存在窗体模块文件(.Frm)、标准模块文件(.Bas)或类模块文件(.Cls)中,它

6、们形成了工程的一种模块层次结构,如下图所示:,一个应用程序的组成结构,窗体模块(文件扩展名为 .FRM ) 窗体模块可以包含处理事件的过程、通用过程以及变量、常数、类型和外部过程的窗体级声明。 写入窗体模块的代码是该窗体所属的具体应用程序专用的;它也可以引用该应用程序内的其它窗体或对象。,标准模块(文件扩展名为BAS) 它们可以包含变量、常数、类型、外部过程和全局过程的全局(在整个应用程序范围内有效的)声明或模块级声明。 写入标准模块的代码不必绑在特定的应用程序上,则在许多不同的应用程序中可以重用标准模块。,类模块(文件扩展名为 .CLS) 在 Visual Basic 中类模块是面向对象编程

7、的基础,可在类模块中编写代码建立新对象。这些新对象可以包含自定义的属性和方法。 窗体正是这样一种类模块,在其上可安放控件,可显示窗体窗口。,2.3 常量、变量,2.3.1 常量 在程序执行的过程中保持不变的数据称为常量。在VB中,常量分为两种,普通常量和符号常量。符号常量又分为用户自定义和系统定义两种。,1普通常量 普通常量直接出现在代码中,也称为字面常量或文字常量,普通常量的表示形式决定它的类型和值。 整型常量: 整型(Integer): 表示-32768至32767之间的整数,例如:10 110 20 长整型(Long): 表示-2,147,483,648至2,147,483,647之间的

8、整数。,通常我们说的整型常量指的是十进制整数,但VB中可以使用八进制和十六进制形式的整型常数,因此整型常数有如下三种形式: (1)十进制整数。如125,0,-89。 (2)八进制整数。以&或&O(字母O)开头的整数是八进制整数,如&O25表示八进制整数25,即(25)8 ,等于十进制数21。 (3)十六进制。以&H开头的整数是十六进制整数,如&H25表示十六进制整数25,等于十进制数37。VB中的颜色数据常常用十六进制整数表示。,实数常量: (1) 单精度实型(Single):有效数为7位,表示-3.40E38至3.40E38之间的实数 。 (2)双精度实型(Double):有效数为15位,表

9、示1.80D308至1.80D308之间的实数。,实数常量的表示 (1)十进制小数形式。它是由正负号(+,-)、数字(09)和小数点(.)或类型符号(!、#)组成,即n.n,n!或n#,其中n是09的数字。 例如0.123、.123、123.0、123!、123#等都是十进制小数形式。 (2)指数形式。 nEm 或 n.nEm, nDm 或 n.nDm 例:1.25E+3 和 1.25D+3相当于1250.0 或者1.25103,字符型常量:在VB中字符串常量是用双引号“括起的一串字符,这些字符可以是除双引号“、回车和换行符以外的所有字符。 几点说明: (1)字符串中的字符可以是所有西文字符和

10、汉字、标点符号等; (2)“表示空字符串,而“ “表示有一个空格的字符串; (3)若字符串中有双引号,例如ABD“XYZ,则用连续两个双引号表示,即: “ABD”“XYZ”。,?hex(2002) 7D2 ?hex(2002.43) 7D2 ?hex(2002.53) 7D3 ?hex(2002.63) 7D3 ?hex(2003) 7D3,日期型常量: 日期(Date)型数据按8字节的浮点数来存储,表示日期范围从公元100年1月1日9999年12月31日,而时间范围从0:00:0023:59:59。 一种在字面上可被认作日期和时间的字符,只要用号码符“#“括起来,都可以作为日期型数值常量。

11、例:#09/02/99#、#January 4,1989#,#2002-5-4 14:30:00 PM#都是合法的日期型常量。,逻辑型常量: 只有两个值True,或False。将逻辑数据转换成整型时:True为-1,False为0; 其它数据转换成逻辑数据时:非0为True, 0为False。,2符号常量 符号常量就是用标识符来表示一个常量。当我们要修改该常量时,只需要修改定义该常量的一个语句即可。 定义常量的方法如下: Pubilc|Private const 常量名 as类型=表达式,常量名的命名规则与标识符相同,as类型用以说明常量的数据类型。 (1)由1255个字符组成,包含的符号可以

12、是数字、英文字母或下划线,中间不能有“.“或其他类型说明字符,并且必须以英文字母开头。 (2)表达式由数值常量、字符串常量等及运算符组成,可以包含前面定义过的常量,但不能使用函数调用。,下面是声明符号常量的例子: Const conPi=3.1415916 表示数量 Public Const conMaxPlanets As Integer=100 表示数量 Const conReleaseDate=#11/10/2000# 表示日期 Public Const conTel=“3859987“ 表示字符串 Const conCodeName=“Rose“ 表示字符串,(3)如果用逗号进行分隔,

13、则在一行中可放置多个常量声明: Public Const conPi = 3.14, conMaxPlanets = 9, conWorldPop = 6000000000# (4)等号“右边的表达式往往是数字或字符串,但也可以是结果为数字或字符串的表达式,甚至可用先前定义过的常量定义新常量,例如: Const conPi2=conPi*3,(5)Const语句的使用范围和规则: 如果要创建仅存在于过程中的常量,应在该过程内声明常量,如Const age=20。 如果要创建的常量对模块中所有过程都有效,但对模块之外任何代码都无效,应在模块的声明段中声明常量,如 Private Const a=

14、20。 如果要创建在整个应用程序中有效的常量,应在标准模块的声明段中进行声明,并在Const前面放置Public 关键字,如 Public Const a=20。 在窗体模块或类模块中不能声明Public常量。,2.3.2 变量 在程序执行过程中,其值可以改变的量称为变量。 1.命名规则 (1)变量名只能由字母、数字和下划线组成,中间不能包含小数点,如int.sum是非法的。 (2)变量名的第一个字符必须是英文字母,如:sum,a2,不能为2a。 (3)组成变量名的字符数不得超过255个字符。 (4)不能用VB的保留字作变量名,但可以把保留字嵌入变量名中;变量名也不能是末尾带有类型说明符的保留

15、字。例如,变量Print 和Print$是非法的,而变量 Print_Number是合法的。,2变量的声明 (1)类型声明语句 格式:声明符 变量名 As 类型 声明符是声明语句的关键字,它可以是Dim,Private,Public,Static,缺省 As类型为可变类型。 Dim a as integer Dim b as long Dim c as single 上面的3个语句可以写为: Dim a as integer,b as long,c as single 也可以用类型符来定义变量,例如上面语句写成: Dim a%,b&,c! 作用是一样的。,若把多个变量都定义成同一类型,例如:把

16、X,Y,Z都定义成双精度型,必须写成:Dim X as double, Y as double,Z as double 如果写成:Dim x,y,z as double 则x,y定义成可变类型,z定义成双精度型。 对于字符型变量,VB中分为定长和变长两种,例如: Dim Name As String, Id As String * 10,(2)隐式声明 Visual Basic允许用户在编写应用程序时,不声明变量而直接使用,系统临时为新变量分配存储空间并使用,这就是隐式声明。 所有隐式声明的变量都是Variant数据类型。Visual Basic根据程序中赋予变量的值来自动调整变量的类型。,一

17、个很简单的程序,其使用的变量a, b, Sum都没有事先定义。 Private Sub Form_Click() Sum = 0 a = 10: b = 20 Sum = a + b Print “Sum=“; Sum End Sub,(3)强制显式声明Option Explicit语句 “先声明变量,后使用变量”,这样做可以提高程序的效率,同时也使程序易于调试。 Visual Basic 中可以强制显式声明,可以在窗体模块、标准模块和类模块的通用声明段中加入语句:Option Explicit。,Option Explicit语句,3变体类型变量Variant 当声明语句中,使用类型关键字V

18、ariant定义类型,或仅定义变量而不作类型声明,则该变量称为变体类型变量。 4自定义类型变量 在 Visual Basic 6.0 中允许用户自己定义变量类型,在定义“自定义类型变量“前要先定义数据类型。,2.3.3 变量的作用域,在VB中,由于可以在过程中和模块中声明变量,根据定义变量的位置和定义变量的语句不同,变量可以分为: 局部变量 模块级变量(私有的模块级变量,能被本模块的所有过程和函数使用) 全局变量(公有的模块级变量)。,过程级变量局部变量,局部变量:在过程内声明的变量,只能在本过程中使用。,在过程内部使用 Dim 或者 Static 关键字来声明的变量,只在声明它们的过程中才能

19、被访问或改变该变量的值,别的过程不可访问。所以可以在不同的过程中声明相同名字的局部变量而互不影响。,Private Sub Form_Load() Dim n% n= 10 print n End Sub Private Sub From_Click() Dim n% Print “=“; n End Sub,程序运行后单击窗体,其输出结果是什么?,窗体/模块级变量,窗体/模块级变量:在“通用声明”段中用Dim语句或用Private语句声明的变量,可被本窗体/模块的任何过程访问,但其他模块却不能访问该变量。 在“通用声明”段声明如下变量 Private s As String Dim a As

20、 Integer,b As Single,全局变量,全局变量也称公有的模块级变量,在窗体模块或标准模块的顶部的“通用”声明段用Public关键字声明,它的作用范围是整个应用程序,即可被本应用程序的任何过程或函数访问。 例如:Public a As Integer,b As single,3种变量声明及使用规则如下表:,24 运算符、表达式,2.4.1 运算符 VB中的运算符有算术运算符、字符串运算符、关系运算符和逻辑运算符四类。 1. 算术运算符,算术运算符,2 .字符串运算符 字符串只有连接运算,在VB中可以用“+”或“&”。建议尽量使用“&”,使程序看起来更明了。使用“&”运算符时应注意前

21、后加空格,否则VB会当作长整数型的类型符来处理。 “+”和“&”的区别:当两个被连接的数据都是字符型时,它们的作用相同。当数字型和字符型连接时,“&“把数据都转化成字符型然后连接;“+“把数据都转化成数字符型然后连接。,“ABC“+“DEF“其值为“ABCDEF“。 “姓名:“ & “张三“ 其值为:“姓名:张三“。 23 & “7“ 其值为:“237“。 23+“7“ 其值为:30。 23+“7abc”则会出现类型不匹配的误。 使用运算符“&”时,变量与运算符“&”之间应加一个空格。这是因为符号“&”还是长整型的类型定义符,如果变量与符号“&”接在一起,VB系统先把它作为类型定义符处理,因而

22、就会出现语法错误。,3.关系运算符 关系运算符都是双目运算,是用来比较两个运算量之间的关系,关系表达式的运算结果为逻辑量。若关系成立,结果为True,若关系不成立,结果为False。,关系运算的规则 (1)当两个操作式均为数值型,按数值大小比较。 (2)字符串比较,则按字符的ASCII码值从左到右一一比 较,直到出现不同的字符为止.。 “ ABCDE “ “ ABRA “ 结果为 False (3)数值型与可转换为数值型的数据比较, 如:29“189“ ,按数值比较,结果为False。 (4)数值型与不能转换成数值型的字符型比较: 如:77“ sdcd“ ,不能比较,系统出错。,4. 逻辑运算

23、符 逻辑运算符对逻辑量进行逻辑运算,除Not外都是对两个逻辑量运算,结果为逻辑值。,(1)逻辑运算符的优先级不相同,Not(逻辑非)最高,但 它低于关系运算,Imp(逻辑蕴含)最低。 (2)VB中常用的逻辑运算符是Not、And和Or。它们用于将多个关系表达式进行逻辑判断。 例如,数学上表示某个数在某个区域时用表达式: 10X=10) And (X20) (3)参与逻辑运算的量一般都应是逻辑型数据,如果参与逻 辑运算的两操作数是数值量,则以数值的二进制值逐位进行逻辑运算(0当False,1当True)。 ? 4 and 3 结果为0 ? 4 or 3 结果为7,2.4.2 表达式 1表达式的组

24、成 表达式由常量、变量、函数、运算符以及圆括号、(),按照一定的规则组成,不管表达式的形式如何,都会计算出一个结果,该结果的类型由参与运算的数据和运算符决定。,2表达式的书写规则: 运算符不能相邻。例a+-b是错误的。 表达式中的每个字符没有高低、大小的区别。 只能使用圆括号,可以多重使用,圆括号必须成对出现。 VB表达式中的乘号“*“不能省略。 能用内部函数的地方尽量使用内部函数。 数学式 写成VB表达式为: (-b+sqr(b2-4*a*c)/(2*a),3关系表达式和逻辑表达式 当使用关系运算符或逻辑运算符时,表达式又称为关系表达式或逻辑表达式。 关系运算一般表示一个简单的条件。 例如:

25、age20 、score80、x+yz等。 逻辑表达式表示较复杂的条件。 例如:数学中的0x5,写成VB表达式应为0x And x5。 关系表达式与逻辑表达式常常用在条件语句与循环语句中,作为条件控制程序的流程走向。,4结果类型 算术表达式中,不同类型的数据计算时结果转化成精度高的类型。 关系表达式和逻辑表达式的结果是逻辑值:True、False。 5优先级 圆括号算术运算符关系运算符逻辑运算符。,?Hex(2002) 7D2 ?Hex(2002.12) 7D2 ?Hex(2002.56) (35页四舍五入取整) 7D3 (1)当一个表达式中出现多种运算符时,首先进行算术运算符,接着处理字符串

26、连接运算符,然后处理关系运算符,最后处理逻辑运算符,在各类运算中再按照相应的优先次序进行。 (2)可以用括号改变优先顺序,强令表达式的某些部分优先运行。括号内的运算总是优先于括号外的运算。对于多重括号,总是由内到外。,25 常用内部函数,VB提供了大量的内部函数供用户调用。 函数的一般调用格式: 函数名(参数表) 说明: 使用库函数要注意参数的个数及其参数的数据类型 要注意函数的定义域(自变量或参数的取值范围) 例如: sqr(x) 要求: x=0 要注意函数的值域。 如:exp(23773) 的值就超出实数在计算机中的表示 范围。,2.5.1 数学函数,e为底的指数函数,即e,2.5.2 转

27、换函数,(1)要区别两个取整函数int()和fix() Fix(N)为截断取整,即去掉小数后的数。 Int(N)不大于N的最大整数。 N0 fix(N)与int(N) 相同,当N0时, int(N) 与fix(N) -1相等。 例如: Fix(9.59) =9, Int(9.59) =9 Fix(-9.59) =-9, Int(-9.59) =-10 ?round(4.89) 5 (2)Asc(“Abcd“) 值为: 65 (只取首字母的Ascii值) (3)Val(“abc123“) 值为:0, Val(“1.2sa10“) 值为1.2 Val( )函数只将最前面的数字字符转换为数值。,2.

28、5.3 字符串函数 VB具有很强的字符串处理能力。 如果返回是字符型,则函数后有“$“字符。当然一般也可以不写,习惯都写上。 例如: len(“This is a book!“) 15 Left$(“ABCDEFG“,3) “ABC“ Mid$(“ABCDEFG“,2,3) “BCD“ InStr(2, “ABCDEFGEF“, “EF“) 5(第一次出现的位置),?Ltrim( “ Microsoft Visual “) ?right(“abcdefghi“,5) Efghi ?string(5,66) BBBBB,2.5.4 日期与时间函数 日期与时间函数提供时间和日期信息。 ?now 2

29、007-3-30 11:01:13 ?day(now) 30 ?month(now) 3 ?year(now) 2007 ?weekday(now) 6 ?rnd .7055475,(1)DateAdd增减日期函数 形式: DateAdd(要增减日期形式,增减量,要增减的日期变量) 作用:对要增减的日期变量按日期形式做增减。 例如:DateAdd(“ww“,2,#2/14/2000#) 表示在指定的日期上加2周,所以函数的结果为:#2/28/2000#。,(2)DateDiff函数 形式:DateDiff(要间隔日期形式,日期1,日期2) 作用:两个指定的日期按日期形式相差的日期。 例如: ?

30、DateDiff(“m“,#2/14/2000#,#3/8/2000#) 表示两个日期之间相差几个月,结果为1。 ?DateDiff(“d“,#8/26/1980#,#3/22/2007#),2.5.5 格式输出函数 使用格式: Format$(表达式,“格式字符串“) 功能:按用户指定格式返回表达式,常用在print方法中。 使用形式: print Format$(表达式,“格式字符串“) 表达式:可以是数值、日期或字符串型表达式。 格式字符串:表示输出表达式时采用的输出格式。不同数据类型所采用的格式字符串是不同的。,(1)数值型数据格式化 对于符号:0与#,当数值的实际位数比格式控制给定的

31、位数多时,系统将按四舍五入返回给定的位数。 如: ?Format(3.14159, “#.#“) 其值为 3.142,(2)日期和时间型数据格式化 缺省日期格式为:“mm/dd/yy“, 时间格式:“hh:mm:ss “ (3)字符串类型数据格式化,2.5.6 Shell函数 在VB中,可以调用在DOS下或Windows下运行的应用程序。 函数调用形式: ID=Shell( FileName ,WindowType ) 说明:执行一个可执行文件,返回一个Variant (Double),如果成功的话,代表这个程序的任务ID,它是一个唯一的数值,用来指明正在运行的程序。若不成功,则会返回 0,FileName:是要执行的应用程序名字符串,包括盘符、路径,它必须是可执行的文件。 WindowType:为整型值,表示执行应用程序打开的窗口类型,例如: 调用执行Windows系统中的记事本 i = Shell(“C:WINDOWSNOTEPAD.EXE“) (直接在立即窗口下输入,前面不用加问号) 也可按过程形式调用: Shell “C:WINDOWSNOTEPAD.EXE“ 注意:上面指定的执行文件,可能因不同计算机系统,文件的路径有所不同。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1