数据类型、运算符与表达式.ppt_第1页
数据类型、运算符与表达式.ppt_第2页
数据类型、运算符与表达式.ppt_第3页
数据类型、运算符与表达式.ppt_第4页
数据类型、运算符与表达式.ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

2019/6/20,河北大学 管理学院,1,第4章 数据类型、运算符 与表达式,2019/6/20,河北大学 管理学院,2,4.1 基本数据类型,Vb中数据类型可以分为两种,一种即基本数据类型,由系统定义;另一种是由用户自己定义的数据类型。 基本数据类型包括以下几种: 1. 字符串(String)型数据 2. 数值(Numeric)型数据 整数(整型数、长整型数) 实型数(单精度、双精度浮点数) 3. 货币型(Currency) 4. 变体 (Variant) 5. 其他数据类型, 字节(Byte) 布尔型(Boolean) 日期型(Date) 对象型(Object),2019/6/20,河北大学 管理学院,3,1. 字符串(String)型数据,字符串是一个字符序列,由ASC字符组成(双引号和回车除外)。 字符串要用双引号括起来,如:“hello”,如果双引号中没有字符,则称为空字符串。 字符串分两种: 变长字符串,长度不确定,小于231; 定长字符串,字符个数确定,长度由初始定义确定,不能再变动,长度小于216。定义格式: Dim ss As sting*10 ss =“aaaabbbbaaaa” 不足补空,超出截掉。,2019/6/20,河北大学 管理学院,4,2.数值(Numeric)型数据,整数:不带小数点和指数符号的数,在计算机中以二进制补码的形式表示。 整数两字节,integer 长整数四字节,long 浮点数:也称实型数或实数,带有小数部分,由尾数,指数符号,指数三部分组成。 单精度四字节,精确7位 123.45E3或123.45e+3,single 双精度八字节,精确15或16位,double 123.45678D3或123.45678d+3,2019/6/20,河北大学 管理学院,5,3. 货币型(Currency),货币型数据用来表示钱款,以八字节存储,精确到小数点后4位,4位以后四舍五入。 货币型与浮点型的区别: 浮点数小数点是浮动的,即小数点可以出现在任何位置; 123.45678D3 1.2345678D5 货币型小数点是固定的,也称为定点数据类型。,2019/6/20,河北大学 管理学院,6,4. 变体(Variant),变体是一种特殊的数据类型,它的类型是可变的,可以表示任何数据,包括数值,字符串,日期/时间等等。 在定义变量时,应该显式的声明变量的类型,如果省略类型,则变量就被默认为变体类型。 Dim ss As string Dim ss,2019/6/20,河北大学 管理学院,7,5. 其他数据类型,字节(Byte),数值类型,以1个字节的无符号二进制数存储。0-255 布尔型(Boolean),逻辑值,只有真(true)或假(false)两种取值,2字节存储。 日期型(Date),表示日期信息,8字节浮点数存储,格式: mm/dd/year或者mm-dd-year,2019/6/20,河北大学 管理学院,8,4.2 常量和变量,数据可以以常量的形式出现,也可以以变量的形式出现。 常量在程序执行期间,值是确定不变的。VB中的常量分三种:文字常量、符号常量和系统常量 变量的值可变,它只代表内存中指定的存储单元,当这个存储单元中的内容发生变化时,变量值也就随之改变。,2019/6/20,河北大学 管理学院,9,一、常量-文字常量,(一)文字常量-也称直接常量或字面常量,VB定义了四种文字常量: 字符串常量,数值常量,布尔常量,日期常量 (1)字符串常量 由字符组成,可以是除双引号和回车符之外的任何ASC字符(所有英文字符和汉字、标点符号等),字符串常量要用双引号括起来。 定长字符串 65535个字符; 变长字符串 231个字符。,一、常量-文字常量,(2)数值常量,包括四种: 1)整型(Integer):表示-32768至32767之间的整数。 2)长整型(Long):表示-2,147,483,648至2,147,483,647之间的数。 通常我们说的整型常量指的是十进制整数,但VB中可以使用八进制和十六进制形式的整型常数,因此整型常数有如下三种形式: 十进制整数,如125,0,-89,20 八进制整数,整型八进制数以&或&O开头,长整型以&或&O开头,并且以&结尾。如&O25表示八进制整数25,等于十进制数21。 十六进制数,整型数以&H(或&h)开头,长整型数以&H(或&h)开头,并且以&结尾。如&H25表示十六进制整数25,等于十进制数37。,2019/6/20,河北大学 管理学院,10,2019/6/20,河北大学 管理学院,11,一、常量-文字常量,3)货币型常数,也称定点数,以八字节存储,精确到小数点后4位,4位以后四舍五入。 4)浮点型常数,也称实数,由尾数,指数符号和指数三部分组成,包括单精度(指数符号为E)和双精度(D)两种。 类型说明符 %,整型; &,长整型; !,单精度浮点数; #,双精度浮点数; ,货币类型; $,字符串类型。,一、常量-文字常量,(3)布尔常量,也称逻辑常量,只有True和False两个值。 (4)日期常量,任何字面上可以被认作日期和时间的字符串,只要用#括起来,都可以作为日期类型。如: #05/16/2006# #9/19/2006 3:30:00 PM# #6:30:00 AM# 日期类型数据以8字节的浮点数来存储,其中数值的整数部分代表日期,小数部分代表时间。 表示日期范围从公元100年1月1日9999年12月31日, 而时间范围从0:00:0023:59:59。,2019/6/20,河北大学 管理学院,12,2019/6/20,河北大学 管理学院,13,一、常量-符号常量,符号常量可以用来代替数值或字符串。-在程序中,某个常量多次被使用,可以使用一个符号来代替该常量,这样不仅在书写上方便,而且有效地改进了程序的可读性和可维护性。 VB中使用关键字Const 声明符号常量。其格式如下: Public|Private Const 常量名 As 类型=表达式 其中,Public-当符号常量会在多个模块中使用时,需要在标准模块中以关键字Public定义; Private-当符号常量只在过程或某个窗体模块中使用时,以关键字Private定义,可以省略; As 类型-用来指定常量的数据类型,可以省略,这时常量的类型由“表达式”决定。 例: Const PI# = 3.1415926535 等价于: Const PI As Double = 3.1415926535 Const aa As Integer=2 , bb = aa+1,2019/6/20,河北大学 管理学院,14,一、常量-系统常量,VB中提供了大量的预定义常量,这些常量即系统常量,它实际上也是符号常量,不过不由用户来定义,可以在程序中直接调用。 系统常量可以通过“视图”菜单下的“对象浏览器”命令来查看。P54 系统常量均以小写字母vb开头。比如vbCrLf就是一个系统常量,它是回车换行符,相当于执行回车换行操作。 例如,要将文本框Text1的背景颜色设置为红色,可以使用下面的语句: Text1.BackColor = vbRed 这里的vbRed就是系统常量,这比直接使用16进制数来设置要直观得多,也易于阅读和理解。当然,如果可以在属性窗口中设置,要比在代码中设置方便得多。,2019/6/20,河北大学 管理学院,15,二、变量,变量实质上是一个有名称的内存位置。通过变量的名称来引用一个变量,而变量的数据类型则决定了该变量的存储方式。 变量的命名规则: 1,名字组成:字母、数字、下划线; 2,首字母必须是英文字母; 3,名字长度255个字符; 4,不能用VB中的保留字作变量名。 5,VB中定义变量名时,不区分字母大小写。,2019/6/20,河北大学 管理学院,16,二、变量,变量的定义有两种方式: (一)在定义变量时指明变量类型 格式:Declare 变量名 As 类型 其中,类型既可以是基本数据类型,也可以是用户自定义的类型; Declare可以是Dim,Static,Public,Redim (二)用类型说明符来标识 如:tt% 定义了一个名为tt的整型变量 aa$ 定义了一个名为aa的字符串变量,二、变量,1, Dim-用于在标准模块、窗体模块过程中定义变量或数组。 例: Dim aa As integer , bb As single 等价于 Dim aa%, bb! 在一个语句中定义两个变量时,每一个变量都要用As子句显性声明,否则,该变量被当作变体类型。 Dim nn As string 定义一个变长字符串,长度由赋值的字符串决定; Dim mm As string*10 定义一个长度为10的定长字符串。,2019/6/20,河北大学 管理学院,17,2019/6/20,河北大学 管理学院,18,二、变量,2, Static-用在过程中定义静态变量或数组变量。 Static与Dim区别: Static定义的变量每次引用时,其值会继续保留-静态变量; Dim定义的变量每次引用时,其值会重置为0或空-自动变量。 3,Public-用在标准模块中定义全局变量或数组。 4,Redim-用来定义数组(第8章)。,2019/6/20,河北大学 管理学院,19,二、变量,几点说明: 1,变量要显式定义,如果不将类型名称显示定义,末尾也不加类型说明符,那么此变量被默认为变体类型。 2,出于节省内存空间、提高处理速度考虑,在定义变量时,能用整型就不要用浮点型,能用单精度就不要用双精度。 3,用类型说明符定义的变量,在使用时可以省略类型说明符。,2019/6/20,河北大学 管理学院,20,4.3 变量的作用域,变量的作用域是指变量的有效范围,即变量的可见性。也就是说,对于我们定义的这个变量,可以在程序的什么地方访问或引用它。 根据变量定义的位置和所使用的变量定义语句不同,变量可以分为三类:局部变量,模块变量和全局变量。,2019/6/20,河北大学 管理学院,21,一、局部变量,局部变量-在过程(事件过程或通用过程)内定义,作用域就是所在的过程,通常用来存放中间结果或用作临时变量。 局部变量在过程中用Dim,Static定义。 局部变量只作用于所在过程中,对其他过程不可见.因此,在不同的过程中可以定义同名的局部变量,并不会发生冲突。,2019/6/20,河北大学 管理学院,22,二、模块变量(窗体变量和标准模块变量),1,窗体模块变量可以用于该窗体内的所有过程,当一个窗体内的不同过程都需要使用同一个变量时,这个变量就应该定义为窗体模块变量,而且必须显式的声明,不允许默认声明。 声明方法:在程序代码窗口中的对象框中选择“通用”,并在过程框中选择“声明”。 2,标准模块变量的声明与窗体模块类似。标准模块是只含有代码的应用程序文件。建立一个新的标准模块,需要执行工程菜单下的“添加模块”命令,在添加模块对话框中,选择“新建”选项卡,单击“模块”图标,打开即可。在标准模块的代码窗口中,就可以声明标准模块变量。 在默认情况下,模块级变量对所有该模块中的过程都是可见的,而对其他模块中的代码不可见。声明时可以用Private或Dim,二者并没有什么区别,只是为了与全局变量的Public相区别,用Private更好一些,使代码更容易理解。,2019/6/20,河北大学 管理学院,23,三、全局变量,全局变量也称全程变量,它的作用域是三种变量中最大的,对工程中的每个模块、每个过程都可见。 全局变量也要在标准模块的声明部分声明,这点和标准模块变量一样。不同的是,全局变量只能在标准模块中声明,而不能在过程或窗体模块中声明。 ?同名冲突,2019/6/20,河北大学 管理学院,24,四、默认声明,VB允许对局部变量进行默认声明。即在过程中,可以在用到变量时直接给出,不用提前用Dim或Static显式的定义。 末尾加类型说明符,标识数据类型;否则,默认为变体类型。 Private Sub Form_Click() aa = “每逢佳节倍思亲“ Print aa End Sub,2019/6/20,河北大学 管理学院,25,四、默认声明,默认声明的好处:节省代码,操作方便。 默认声明也会带来麻烦:上例中,如果同时定义了一个全局变量aa,那么,当触发按钮的单击事件,执行这个事件过程时,会把其中的aa当作已声明的全局变量。执行这个过程后,全局变量aa中原来的数据就被覆盖了,这时程序的运行结果就会与理想产生偏差,而且这种错误往往很难检查出来。 这时如果在事件过程中显式的声明了aa这个局部变量,那么本过程中,局部变量aa就屏蔽了全局变量aa,使得全局变量aa在本过程中不可见。 “县官不如现管”,“强龙不压地头蛇” 要避免麻烦,或者显式声明,或者一个变量一个名,不要重复命名。,2019/6/20,河北大学 管理学院,26,4.4 常用内部函数,VB中预定义了大量的内部函数,可以实现多种功能,在编程时可以直接调用。 一、转换函数-用于数据类型或形式的转换。 1,两个取整函数int(x)和fix(x) Fix(x)-为截断取整,即去掉小数部分。 Int(x)-求不大于x的最大整数。 当x0时, Fix(x)与int(x) 相同; 当x0时,int(x) 与fix(x) -1相等。 2,两个四舍五入函数Cint(x),Ccur(x) Cint(x)-四舍五入取整 Ccur(x)-四舍五入为货币类型,例: Fix(9.59) 9, Int(9.59) 9 Fix(-9.59) -9, Int(-9.59) -10,Cint (9.591) 10 Ccur (9.59585) 9.5959,2019/6/20,河北大学 管理学院,27,一、转换函数,3,ASC字符与数值转换函数Asc$(x),Chr$(x) Asc(x$)-返回字符串中第一个字符的ASC码值 Asc(“AB”),65 Chr$(x) -把数值转换为ASC字符 Chr$(65) ,“A” 4,数值与字符串转换函数Str$(x),Val(x$) Str$(x)-把数值转换为字符串 Str$(12.53),“12.53” Val(x$)-把字符串转换为数值 Val(“12.53”), 12.53 Val(“abc123”) , 结果为:0, Val(“1.2sa10”) , 结果为:1.2 注意: Val函数只将最前面的数字字符转换为数值。,2019/6/20,河北大学 管理学院,28,一、转换函数,5,进制转换函数Hex$(x),Oct$(x) Hex$(x)-十进制转换为十六进制(除16取余,倒序) Hex$(100),“64” Oct$(x)-十进制转换为八进制 Oct$(100),“144” 6,数值类型之间的转换 CDbl(x)-转换为双精度类型 CDbl(12.53),12.53 CSng(x)-转换为单精度类型 CSng (12.53),12.53 CLng(x)-四舍五入为长整型数 CLng(12.53),13 CVar(x)-转换为变体类型 CVar(12.53),12.53,2019/6/20,河北大学 管理学院,29,二、数学函数,1, 三角函数-角度以弧度为单位。 Sin(x)-返回x的正弦值 Sin(0),0 Cos(x)-返回x的余弦值 Cos(0),1 Tan(x)-返回x的正切值 Tan(0),0 Atn(x)-返回x的反正切值 Atn(0),0 2,绝对值函数 Abs(x) -返回x的绝对值 Abs(-2.8) , 2.8 3,符号函数 Sgn(x)- 返回x的符号 当x0时,返回1。,二、数学函数,4,平方根函数 Sqr(x)-返回x的平方根 Sqr(25) ,5 5,指数函数 Exp(x)- 返回e的x次幂 2.71828 Exp(2),7.38905609893065 对数函数 Log(x) 返回自然对数值 Log(7.38905609893065) ,2 6,随机数函数 Rnd(N)-产生随机数 Rnd函数返回0 1(包括0,不包括1)之间的双精度随机数。 若要产生1-100的随机整数? Int(Rnd *100)+1,2019/6/20,河北大学 管理学院,30,2019/6/20,河北大学 管理学院,31,三、日期和时间函数-返回系统当前的日期和时间,Now-返回系统当前日期/时间 2010-03-19 10:33:23 注:Now是内部变量,是一个双精度浮点数, 小数点左边的部分表示从1899年12月31日起到现在所经历的天数; 右边的部分表示从当天0时起到现在所经历的毫秒数。 例:Print Now 输出系统当前时间 2010-03-19 10:33:23 Day(d)-返回当前的日期 WeekDay(d)-返回当前的星期 Month(d)-返回当前的月份 Year(d)-返回当前的年份,Hour(t)-返回当前小时 Minute(t)-返回当前分钟 Second(t)-返回当前秒 Timer-返回从午夜开始已过的秒数 Time-返回当前时间,2019/6/20,河北大学 管理学院,32,命令行解释程序CLI,利用命令行解释程序,可以直接显示出函数的执行结果,这种方式称为“直接方式”。 直接方式在立即窗口(视图菜单下)中执行。 在立即窗口中输入命令,回车,命令行解释程序就立即对输入的命令进行解释,并立即响应,与DOS下命令行的执行情况类似。 VB立即窗口调试 Print(?)输出方法,2019/6/20,河北大学 管理学院,33,四、字符串函数,字符串函数用于字符串处理,这类函数多以类型说明符$结尾(也可以省略),表明函数返回值为字符串。 1、删除空白字符函数 LTrim$(x$)-删除字符串左边的空白字符 RTrim$(x$)-删除字符串右边的空白字符 Trim$(x$)-删除字符串两边的空白字符 2、字符串截取函数 左部截取:Left$(x$,n)-返回字符串的前n个字符 中部截取:Left$(x$,p,n)-从第p个字符开始,向右截取n个字符,若省略n则截取到最后 右部截取:Right$(x$,n)-返回字符串的最后n个字符 例:Left$(“ABCDEFG”,3) “ABC” Mid$(“ABCDEFG“,2,3) “BCD“,2019/6/20,河北大学 管理学院,34,四、字符串函数,3、字符串长度测试函数 len(x$)-测试字符串长度 len(变量名)-测试变量的存储(占用)空间。 例:len(“This is a book!“) 15 4、String$函数 String$(n,ASC码)-返回该ASC码对应的n个字符 String$(n,字符串)-返回由n个该字符串首字符组成的字符串 例: a$=String$(4,65) 等价于 a$= “AAAA” b$=String$(3, “ abc”) 等价于 b$=“aaa” 5、空格函数Space$(n)-返回n个空格 例:a$=“a”+ Space$(3)+”b” 等价于 a$=“a b”,2019/6/20,河北大学 管理学院,35,四、字符串函数,6、字符串匹配函数-查找是否在文本框中输入了某个字符串 InStr(首字符位置, 字符串1,字符串2,n) 在字符串1中查找字符串2,由第一个参数指定的位置开始查找,如果找到,则返回串2的第一个字符在串1中的位置。 例: InStr(2, “ABCDEFGEF”, “EF”) 5(第一次出现的位置) 注: 1)串2 的长度65535个字符 2)函数返回值为长整型数,如果找到,则返回该位置;否则返回0。 3)第一个参数可以省略,这时从串1第一个位置开始查找 4)最后一个参数n有三种取值,默认值为0: 0-进行二进制比较,区分字母大小写 1-忽略字母大小写进行比较 2-用于对数据库中的信息进行比较,2019/6/20,河北大学 管理学院,36,四、字符串函数,7、字母大小写转换 Ucase$(字符串)-小写变大写 Lcase$(字符串)-大写变小写 8、插入字符串语句Mid$ Mid$(字符串,位置,L)=子字符串 把从“字符串”的“位置”开始的字符用子字符串代替。 如果指定参数L,则替换的内容是“子字符串”左部的L个字符。“位置”和L均为长整型数。 例:a$=“12345” : Mid(a,3,2)=“abc” : Print a 输出:12ab5,2019/6/20,河北大学 管理学院,37,4.5 运算符与表达式-算术运算符,2019/6/20,河北大学 管理学院,38,二、关系运算符,也称比较运算符,用于两个表达式的值进行比较,比较结果是一个逻辑值:True(-1)和False(0),2019/6/20,河北大学 管理学院,39,二、关系运算符,1)数值表达式按数值大小比较。 2)字符串表达式进行关系比较,则按字符的ASCII码值从左到右一一比较,直到出现不同的字符为止.。 例: “ ABCDE “ “ ABRA “ 结果为 False 3)数值型与可转换为数值型的数据比较: 例:29“189“ ,按数值比较,结果为False。 4)数值型与不能转换成数值型的字符型比较: 例:77“ sdcd“ ,不能比较,系统出错。 5)数学式axb,应该表示为:a=x And x=b,2019/6/20,河北大学 管理学院,40,三、逻辑运算符-逻辑运算也称布尔运算。,2019/6/20,河北大学 管理学院,41,三、逻辑运算符,参与逻辑运算的量一般都应是逻辑型数据,如果参与逻辑运算的两操作数是数值,则以数值的二进制值逐位进行逻辑运算(0看作False,1看作True)。 关系表达式与逻辑表达式常常用在条件语句与循环语句中,作为条件控制程序的流程走向(第七章)。,2019/6/20,河北大学 管理学院,4

温馨提示

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

评论

0/150

提交评论