《表达式函数及运算.ppt》由会员分享,可在线阅读,更多相关《表达式函数及运算.ppt(30页珍藏版)》请在三一办公上搜索。
1、第二讲 VB语言基础,2.1 数据类型2.2 变量和常量2.3 运算符和表达式2.4 程序结构和编码规则2.5 综合应用,2.1 数据类型(标准数据类型):,VB的基本数据类型,数值数据类型整数整数是不带小数点和指数符号的数,在机器内以二进制补码形式表示。整型(Integer、%、int):整型以两个字节的二进制码表示和参加运算,取值范围为-32768-32767。长整型(Long、&、lng):长整型以四个字节的二进制码表示和参加运算,取值范围为-2147483648-2147483647。浮点数浮点数也称实型数或实数,是带有小数部分的数值。它由三部分组成:符号、指数和尾数。单精度型(Sin
2、gle、!、sng):以4个字节存储,符号1位,指数8位,尾数23位,1位隐含位。用E来表示指数。双精度型(Double、#、dbl):以8个字节存储,符号1位,指数11位,尾数52位,1位隐含位。用D来表示指数。,VB的基本数据类型,货币型(Currency)货币数据类型是为表示钱款而设置的。该类型数据以8个字节存储,精确到小数点后四位,小数点前有15位,小数点后4位以后的数字将被舍去。浮点数中的小数点是“浮动”的,而货币类型数据的小数点是固定的。表示形式在数字后加符号,例如12.55字节型(Byte)字节实际上是一种数值类型,是占一个字节的无符号整数,以一个字节的无符号二进制数存储,取值范
3、围为0-255。,VB的基本数据类型,日期型(Date)表示范围:日期范围:100年1月1日9999年12月31日 时间范围:0:00:0023:59:59任何可辨认的文本日期都可以赋值给日期变量。日期文字必须用符号#括起来,如#April 1,2002#。用数字序列表示,小数点左边代表日期,右边代表时间,0为午夜,0.5为中午12点,负数代表1889年12月31日之前的日期和时间。Date型按8字节的浮点数来存储。,逻辑型(Boolean)数据 Boolean型用于逻辑判断,它只有True和 False两个值。,VB的基本数据类型,VB的基本数据类型,字符串型(String)字符串包括标准的
4、ASCII字符和扩展ASCII字符及汉字。字符串是放在双引号内的若干个字符,长度为0的字符串称为空字符串。若字符串中有双引号则用两个连续的双引号表示。VB中的字符串分为两种,即变长字符串和定长字符串。变长字符串的长度是不确定的,最大长度不超过231;定长字符串的长度是固定的,最大长度不超过216。变 长字符串:Dim As String 定 长字符串:Dim As String*字符数,VB的基本数据类型,变体型(Variant)对所有未定义的变量的缺省数据类型定义,它对数据的处理完全取决于程序上下文的需要。变体数据类型是一种可变的数据类型,可以表示任何值,包括数值、字符串及日期等。对象型(O
5、bject)对象型数据用来表示图形或OLE对象或其他对象,用4个字节存储。,类型说明符,字节、布尔、日期、对象及变体型没有类型说明符。,变量与常量,一、变量的命名规则必须以字母、汉字开头,由字母、汉字、数字或下划线组成。长度255个字符。在作用域内必须唯一。不能使用VB中的关键字。VB中不区分变量名的大小写。作为变量名的字符串内不得包括点号或用于类型说明的字符%、&、!、#、$和空格。,变量的说明,Dim As,As 用于说明窗体变量或局部变量。Public As,As 用于说明全局变量。Private As,As 用于说明窗体/模块级变量。Static As,As 用于说明静态变量。,12,
6、变量声明,1.用Dim语句显式声明变量 形式 Dim 变量名 AS 类型 Dim 变量名类型符 例 Dim iCount As integer,sAllsum As single 等价于 Dim iCount%,sAllsum!2.隐式声明未进行上述的声明而直接使用,其类型为 Variant 类型。建议不使用注意:在通用声明处加 Option Explicit 语句可强制显式声明变量。,本章目录,1.用户声明常量 形式:Const 常量名 AS 类型=表达式 省略 AS 类型,常量的类型由表达式值的类型决定 为使与变量名区分,一般常量名使用大写字母例 Const MAX=100;Const P
7、I=3.14152.系统提供的常量 应用程序和控件定义的常量,系统定义常量位于对象库中,可通过“对象浏览器”查看.例:vbNormal vbMinimized、vbbCrLf回车/换行组合符等,2.2.2 常量,2.3 运算符和表达式,一、运算符算术运算符(乘方)、-(负号)、*(乘)、/(除)、(整除)、Mod(取余)、+(加)、-(减)Mod运算中,结果与被除数同号。字符运算符+、&:连接最好用&,因为对变体型数据用+将会出现不同的结果。(例)关系运算符=、=、like(例),表达式由运算对象、运算符组成,有返回值。,2.字符串运算符、+字符串连接 123+456 结果 123456 12
8、3&456 结果 123456 区别:+两边必须是字符串,&不一定 例如:abcdef&12345 结果为 abcdef12345 abcdef+12345 出错 123&456 结果为 123456“123”+456 结果为 579注意:123+True 结果为 122 False+10+4 结果是14 True转换为数值-1,False转换为数值0,返 回,3关系运算符 将两个操作数进行大小比较,结果为逻辑量。字符串比较,则按字符的ASCII码值从左到右一一比较,直到出现不同的字符 例:ABCDE ABRA 结果为 False,男字 女字 按汉字的拼音字母比较,逻辑运算符,Not(非)、A
9、nd(与)、Or(或)、Xor(异或)逻辑运算符除Not是单目运算符外,其余都是双目运算符,作用是将操作数进行逻辑运算,结果是逻辑值True或False。,1.组成 变量、常量、函数、运算符和圆括号 2.书写规则运算符不能相邻 例a+-b是错误的 乘号不能省略 例x 乘以y 应写成:x*y 括号必须成对出现(均使用圆括号)表达式从左到右在同一基准上书写,无高低、大小 3.不同数据类型的转换 运算结果的数据类型向精度高的数据类型靠.IntegerLongSingleDoubleCurrency,2.3.2.表达式,4.运算符的优先级与结合性,一个表达式可能含有多种运算,一般的运算顺序如下:函数运
10、算;算术字符运算:-*/Mod+-&关系运算;逻辑运算:Not And Or Xor 算术运算符 字符运算符 关系运算符 逻辑运算符相同优先级的运算符的结合性都是从左向右。改变运算顺序可使用括号。表达式中只能使用圆括号。,例:5+10 mod 10 9/3+2 2 结果是?,表达式书写举例,sin(45*3.14/180)+(exp(10)+log(10)/sqr(x+y+1),a*b*c*d/e/f/g 或 a*b*c*d/(e*f*g),例:逻辑表达式书写,选拔优秀生的条件为:年龄(Age)小于19岁,三门课总分(Total)高于285分,其中有一门为100分,如果其表达式写为:Age28
11、5 And(Mark1=100 Or Mark2=100 Or Mark3=100)如果取消括号有何问题?请读者考虑。,2.3.3 通用函数,函数是一种特殊的运算。函数有函数名和参数(部分函数可没有参数)。函数的结果有一定的数据类型。VB的通用函数大体上可分为5类:算术函数(p50)转换函数(p51)字符串函数(p52)日期与时间函数(p53)其他函数,调用函数的形式:函数名(参数列表),算术函数,Abs(N)求绝对值Atn(N)求反正切值(n0*3.1416/180)Cos(N)求余弦值,参数的单位是弧度Exp(N)求eN的值Log(N)求自然对数Rnd(N)产生一个0,1)区间内的单精度随
12、机数 注:产生一定范围内的随机数方法:int(rnd*范围+基数)Sin(N)求正弦值,参数的单位是弧度Sgn(N)求符号(返回1或-1)Sqr(N)求平方根Tan(N)求正切值,参数的单位是弧度,转换函数,ASC(C)以十进制值返回字符C的ASCII码。Chr$(N)返回ASCII码为N的字符。Hex$(N)求对应的十六进制的值。Oct$(N)求对应的八进制的值。Str$(N)将数值数据转换为字符串。Val(C)将字符串C起始部分的数字串转成数值数据。Fix(N)取N的整数部分,不四舍五入()例:Fix(-3.6)。Int(N)取小于或等于N的最大整数 例:Int(-3.6)。Round(N
13、)对N四舍五入取整。例:round(-3.6)Lcase$(c)大写字母转换成小写字母。Ucase$(c)小写字母转换成大写字母。,字符串函数,Instr(C1,C2)求字符串C2在C1中首次出现的字符位置Instrb(C1,C2)求字符串C2在C1中首次出现的字节位置Len(C)返回字符串C中的字符数LenB(C)返回字符串C中的字节数Mid(C,N1,N2)求字符串C中从N1位置开始的N2个字符Left(C,N)返回字符串C左边N个字符Right(C,N)返回字符串C右边N个字符Trim(C)去掉字符串C左、右边的空格Ltrim(C)去掉字符串C左边的空格Rtrim(C)去掉字符串C右边的
14、空格Space(N)返回N个空格String(N,C)返回N个由C中第一个字符组成的字符串Replace(C,C1,C2)在C字符串中用C2代替C1,日期与时间函数,Date()返回系统当前的日期Day(D)返回日期表达式D中的日期Month(D)返回日期表达式D中的月份Now返回系统当前的日期时间Time()返回系统当前的时间Weekday(D)返回日期表达式D的星期号(17)Year(D)返回日期表达式D中的年份DateAdd()增减日期函数,形式如下:DateAdd(要增减日期形式,增减量,要增减的日期变量)DateDiff()求间隔日期函数,形式如下:DateDiff(要间隔日期形式,
15、日期1,日期2)例3-1:计算现在离你毕业还有多少天?,例3-2Shell函数 Shell函数负责执行一个可执行文件,返回一个Variant,如果成功,代表这个程序的进程 ID,若不成功,则会返回0。形式:Shell(命令字符串,窗口类型)窗口类型值为1表示正常窗口,缺省窗口最小化为图标。i=Shell(c:windowscalc.exe)j=Shell(c:,1),提示:如果不知道应用程序的路径名,可用Start命令启动程序 i=Shell(start&“calc.exe);i=Shell(start&“vb6.exe“),2.4编码规则,VB代码中不区分字母大小写为了提高程序的可读性,VB
16、对用户程序代码进行自动转换。对于VB中的关键字,首字母总被转换成大写,其余字母被转换成小写。若关键字由多个英文单词组成,自动将每个单词的首字母转换成大写语句书写自由在同一行上可以书写多条语句,语句间用“:(西文)”分隔。单行语句可分若干行书写,在本行后加入续行符(空格和下划线“_”)。一行允许多达255个字符注释有利于程序的维护和调试方法:Rem语句 Rem 单引号 工具按钮在工具栏上击右键,在快捷菜单中选择“编辑”按钮,2.5 综合应用,例3.3 模仿字处理软件中字符串替换功能。设计思路:利用Shell函数调用winword.exe执行Word程序实现替换功能利用查找(InStr)、取子串(
17、Left、Mid)等函数实现替换功能利用替换(Replace)函数实现替换功能,本章目录,2.6 常见错误,1.逻辑表达式书写错,在VB没有造成语法错而形成逻辑错 例如数学表达式 3x10 VB表达式写为 3=x10 问题在于VB中的逻辑量与数值量可互转2.同时给多个变量赋值,在VB没有造成语法错而形成逻辑错 例如Dim x%,y%,z%x=y=z=13.标准函数名写错 4.变量名写错 检查方法:在通用声明段加Option Explicit5.语句书写位置错 在通用声明段只能有Dim语句,不能有赋值等其它语句,本章小节,变量:在程序运行中其存储的值可以改变变量声明 Dim 变量名 As 类型运算符 算术运算符、字符串运算符、关系运算符和逻辑运算符函数 内部函数、用户自定义函数 调用函数形式:函数名(参数列表)Shell函数 调用各种应用程序,本章目录,