vb第三章vb语言基础.ppt
第三章第三章 VBVB语言基础语言基础程序程序=数据结构数据结构+ +算法算法不同的数据具有不同的数据结构特点:不同的数据具有不同的数据结构特点: 数据结构不同 数据在计算机内的存储方式不同 数据参与的运算不同第三章第三章 VBVB语言基础语言基础 3.1 数据类型数据类型3.2 变量和常量变量和常量3.3 运算符和表达式运算符和表达式3.4 程序结构和编码规则程序结构和编码规则3.5 综合应用综合应用本章目录本章目录3.1 3.1 数据类型(标准数据类型)数据类型(标准数据类型):数 据 类 型 复 合 数 据 类 型 基 本 数 据 类 型 字 符 型 逻 辑 型 日 期 型 变 体 型 对 象 型 数 值 型 整 数 浮 点 数 货 币 型 字 节 型 整 型 长 整 型 单 精 度 型 双 精 度 型 自 定 义 数 据 类 型 数 组 VB的基本数据类型数值数据类型数值数据类型p整数n整数是不带小数点和指数符号的数,在机器内以二进制补码形式表示。n整型(Integer、%、int):整型以两个字节的二进制码表示和参加运算,取值范围为-32768-32767。n长整型(Long 、&、lng):长整型以四个字节的二进制码表示和参加运算,取值范围为-2147483648-2147483647。p浮点数n浮点数也称实型数或实数,是带有小数部分的数值。它由三部分组成:符号、指数和尾数。n单精度型(Single、!、sng):以4个字节存储,符号1位,指数8位,尾数23位,1位隐含位。用E来表示指数。n双精度型(Double、#、dbl):以8个字节存储,符号1位,指数11位,尾数52位,1位隐含位。用D来表示指数。VB的基本数据类型p货币型(货币型(CurrencyCurrency)n货币数据类型是为表示钱款而设置的。该类型数据以8个字节存储,精确到小数点后四位,小数点前有15位,小数点后4位以后的数字将被舍去。n浮点数中的小数点是“浮动”的,而货币类型数据的小数点是固定的。n表示形式在数字后加符号,例如12.55p字节型(字节型(ByteByte)n字节实际上是一种数值类型,是占一个字节的无符号整数,以一个字节的无符号二进制数存储,取值范围为0-255。VB的基本数据类型p日期型(日期型(DateDate)n表示范围: 日期范围:100年1月1日9999年12月31日 时间范围:0:00:0023:59:59n任何可辨认的文本日期都可以赋值给日期变量。日期文字必须用符号#括起来,如#April 1,2002#。n用数字序列表示,小数点左边代表日期,右边代表时间,0为午夜,0.5为中午12点,负数代表1889年12月31日之前的日期和时间。nDate型按8字节的浮点数来存储。p逻辑型(Boolean)数据 Boolean型用于逻辑判断,它只有True和 False两个值。逻辑数据逻辑数据整型数据整型数据True = -1 False = 0整型数据整型数据逻辑数据逻辑数据非非0数数 = True0 = FalseVB的基本数据类型的基本数据类型VB的基本数据类型p字符串型(String)n字符串包括标准的ASCII字符和扩展ASCII字符及汉字。n字符串是放在双引号内的若干个字符,长度为0的字符串称为空字符串。n若字符串中有双引号则用两个连续的双引号表示。nVB中的字符串分为两种,即变长字符串和定长字符串。变长字符串的长度是不确定的,最大长度不超过231;定长字符串的长度是固定的,最大长度不超过216。n变变 长字符串:Dim As String n定 长字符串:Dim As String * 字符数VB的基本数据类型p变体型(Variant)n对所有未定义的变量的缺省数据类型定义,它对数据的处理完全取决于程序上下文的需要。n变体数据类型是一种可变的数据类型,可以表示任何值,包括数值、字符串及日期等。p对象型(Object)n对象型数据用来表示图形或OLE对象或其他对象,用4个字节存储。类型说明符说明符示例含义%X%Integer&X&Long!X!Single#X#DoubleXCurrency$X$String字节、布尔、日期、对象及变体型没有类型说明符。变量与常量一、变量的命名规则一、变量的命名规则p必须以字母、汉字开头,由字母、汉字、数字或下划线组成。p长度255个字符。p在作用域内必须唯一。p不能使用VB中的关键字。pVB中不区分变量名的大小写。p作为变量名的字符串内不得包括点号或用于类型说明的字符%、&、!、#、$和空格。变量的说明Dim As , As 用于说明窗体变量或局部变量。Public As , As 用于说明全局变量。Private As , As 用于说明窗体 / 模块级变量。Static As , As 用于说明静态变量。133.2.1变量声明变量声明 1. 1.用用DimDim语句显式声明变量语句显式声明变量 形式 Dim Dim 变量名变量名 AS AS 类型类型 Dim Dim 变量名类型符变量名类型符 例 Dim iCount As integer , sAllsum As single 等价于 Dim iCount%, sAllsum!2.2.隐式声明隐式声明未进行上述的声明而直接使用,其类型为 Variant 类型。 建议不使用注意注意: : 在通用声明处加 Option Explicit 语句可强制显式声明变量。本章目录1. 1. 用户声明常量用户声明常量 形式: Const 常量名 AS 类型 = 表达式 省略 AS 类型 ,常量的类型由表达式值的类型决定 为使与变量名区分,一般常量名使用大写字母例 Const MAX=100 ; Const PI=3.14152. 2. 系统提供的常量系统提供的常量 应用程序和控件定义的常量,系统定义常量位于对象库中,可通过“对象浏览器”查看. 例: vbNormal vbMinimized、vbbCrLf回车/换行组合符等3.2.2 3.2.2 常量常量3.3 运算符和表达式一、运算符一、运算符p算术运算符n(乘方)、-(负号)、*(乘)、/(除)、(整除)、Mod(取余)、+(加)、-(减)nMod运算中,结果与被除数同号运算中,结果与被除数同号。p字符运算符n+、&:连接最好用&,因为对变体型数据用+将会出现不同的结果。(例)p关系运算符n=、=、like (例)表达式由运算对象、运算符组成,有返回值。2. 字符串运算符字符串运算符 、+ 字符串连接 123 + 456 结果 123456 123 & 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 男字男字 女字女字 按汉字的拼音字母比较按汉字的拼音字母比较 逻辑运算符n Not(非)、And(与)、Or(或)、Xor(异或)n 逻辑运算符除Not是单目运算符外,其余都是双目运算符,作用是将操作数进行逻辑运算,结果是逻辑值True或False。运算符意义说明举例结果Not取反当操作数为假时,结果为真Not FTAnd与操作数均为真时,结果才为真T And FT And TFTOr或操作数中有一个为真时,结果为真T Or FF Or FTFXor异或操作数相反时,结果才为真T Xor FT Xor TTF 1. 1.组成组成 变量、常量、函数、运算符和圆括号 2.2.书写规则书写规则n运算符不能相邻 例a+ -b是错误的n 乘号不能省略 例x 乘以y 应写成:x*yn 括号必须成对出现(均使用圆括号)n 表达式从左到右在同一基准上书写,无高低、大小 3. 3. 不同数据类型的转换不同数据类型的转换 运算结果的数据类型向精度高的数据类型靠. IntegerLongSingleDouble 字符字符运算符运算符 关系关系运算符运算符 逻辑逻辑运算符运算符n相同优先级的运算符的结合性都是从左向右。n改变运算顺序可使用括号。表达式中只能使用圆括号。例:例:5+10 mod 10 9 / 3+2 2 5+10 mod 10 9 / 3+2 2 结果是?结果是?表达式书写举例 sin(45*3.14/180)+(exp(10)+log(10)/sqr(x+y+1)110lne45sin10yxefgabcda*b*c*d/e/f/g 或 a*b *c*d/(e*f*g) 例:例:逻辑表达式书写,选拔优秀生的条件为:年龄(Age)小于19岁,三门课总分(Total)高于285分,其中有一门为100分,如果其表达式写为:Age285 And ( Mark1=100 Or Mark2 =100 Or Mark3=100 )如果取消括号有何问题?请读者考虑。 3.3.3 通用函数p函数是一种特殊的运算。p函数有函数名和参数(部分函数可没有参数)。p函数的结果有一定的数据类型。pVB的通用函数大体上可分为5类:n算术函数 (p50)n转换函数 (p51)n字符串函数 (p52)n日期与时间函数 (p53)n其他函数调用函数的形式:调用函数的形式:函数名函数名(参数列表)(参数列表)算术函数算术函数lAbs(N)求绝对值求绝对值lAtn(N)求反正切值(求反正切值(n0 *3.1416/180)lCos(N)求余弦值,参数的单位是弧度求余弦值,参数的单位是弧度lExp(N)求求eN的值的值lLog(N)求自然对数求自然对数lRnd(N)产生一个产生一个0,1)区间内的单精度随机数)区间内的单精度随机数 注:产生一定范围内的随机数方法:注:产生一定范围内的随机数方法:int(rnd*范围范围+基数)基数)lSin(N)求正弦值,参数的单位是弧度求正弦值,参数的单位是弧度lSgn(N)求符号求符号(返回返回1或或-1)lSqr(N)求平方根求平方根lTan(N)求正切值,参数的单位是弧度求正切值,参数的单位是弧度转换函数转换函数lASC(C)以十进制值返回字符以十进制值返回字符C的的ASCII码。码。lChr$(N)返回返回ASCII码为码为N的字符。的字符。lHex$(N)求对应的十六进制的值。求对应的十六进制的值。lOct$(N)求对应的八进制的值。求对应的八进制的值。lStr$(N)将数值数据转换为字符串。将数值数据转换为字符串。lVal(C)将字符串将字符串C起始部分的数字串转成数值数据。起始部分的数字串转成数值数据。 lFix(N)取取N的整数部分的整数部分,不四舍五入(不四舍五入() 例:例:Fix(-3.6) 。lInt(N)取小于或等于取小于或等于N的最大整数的最大整数 例:例:Int(-3.6) 。lRound(N) 对对N四舍五入取整。四舍五入取整。例:例:round(-3.6)lLcase$(c) 大写字母转换成小写字母。大写字母转换成小写字母。lUcase$(c) 小写字母转换成大写字母。小写字母转换成大写字母。字符串函数字符串函数lInstr(C1,C2)求字符串求字符串C2在在C1中首次出现的字符位置中首次出现的字符位置lInstrb(C1,C2)求字符串求字符串C2在在C1中首次出现的字节位置中首次出现的字节位置lLen(C)返回字符串返回字符串C中的字符数中的字符数lLenB (C)返回字符串返回字符串C中的字节数中的字节数lMid (C,N1,N2)求字符串求字符串C中从中从N1位置开始的位置开始的N2个字符个字符lLeft(C,N)返回字符串返回字符串C左边左边N个字符个字符lRight (C,N)返回字符串返回字符串C右边右边N个字符个字符lTrim(C) 去掉字符串去掉字符串C左、右边的空格左、右边的空格lLtrim (C)去掉字符串去掉字符串C左边的空格左边的空格lRtrim (C)去掉字符串去掉字符串C右边的空格右边的空格lSpace (N)返回返回N个空格个空格lString (N,C)返回返回N个由个由C中第一个字符组成的字符串中第一个字符组成的字符串lReplace(C,C1,C2) 在在C字符串中用字符串中用C2代替代替C1日期与时间函数lDate()()返回系统当前的日期返回系统当前的日期lDay(D)返回日期表达式返回日期表达式D中的日期中的日期lMonth(D)返回日期表达式返回日期表达式D中的月份中的月份lNow返回系统当前的日期时间返回系统当前的日期时间lTime()()返回系统当前的时间返回系统当前的时间lWeekday(D)返回日期表达式返回日期表达式D的星期号(的星期号(17)lYear(D)返回日期表达式返回日期表达式D中的年份中的年份lDateAdd () 增减日期函数,形式如下:增减日期函数,形式如下: DateAdd (要增减日期形式,增减量,要增减的日期变量要增减日期形式,增减量,要增减的日期变量) lDateDiff() 求间隔日期函数,形式如下:求间隔日期函数,形式如下: DateDiff(要间隔日期形式,日期(要间隔日期形式,日期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“)3.4编码规则lVBVB代码中不区分字母大小写代码中不区分字母大小写l为了提高程序的可读性,为了提高程序的可读性,VBVB对用户程序代码进行自动转换。对用户程序代码进行自动转换。l对于对于VBVB中的关键字,首字母总被转换成大写,其余字母被转换成小写。中的关键字,首字母总被转换成大写,其余字母被转换成小写。l若关键字由多个英文单词组成,自动将每个单词的首字母转换成大写若关键字由多个英文单词组成,自动将每个单词的首字母转换成大写l语句书写自由语句书写自由l在同一行上可以书写多条语句,语句间用在同一行上可以书写多条语句,语句间用“ : :( (西文西文) )”分隔。分隔。l单行语句可分若干行书写,在本行后加入续行符(单行语句可分若干行书写,在本行后加入续行符(空格和下划线空格和下划线“_”_”)。)。l一行允许多达一行允许多达255255个字符个字符l注释有利于程序的维护和调试注释有利于程序的维护和调试l方法:方法:lRemRem语句语句 Rem Rem l单引号单引号 l工具按钮工具按钮在工具栏上击右键,在快捷菜单中选择在工具栏上击右键,在快捷菜单中选择“编辑编辑”按钮按钮3.5 3.5 综合应用综合应用例例3.3 模仿字处理软件中字符串替换功能。模仿字处理软件中字符串替换功能。设计思路:设计思路:v利用利用Shell函数调用函数调用winword.exe执行执行Word程程序实现序实现替换功能替换功能v利用查找利用查找(InStr)、取子串、取子串(Left、Mid)等函数等函数实现实现替换功能替换功能v利用替换利用替换(Replace)函数实现函数实现替换功能替换功能本章目录本章目录3.6 3.6 常见错误常见错误1.1.逻辑表达式书写错,在逻辑表达式书写错,在VBVB没有造成语法错而形成逻辑错没有造成语法错而形成逻辑错 例如数学表达式 3x10 VB表达式写为 3=x10 问题在于VB中的逻辑量与数值量可互转2.2.同时给多个变量赋值,在同时给多个变量赋值,在VBVB没有造成语法错而形成逻辑错没有造成语法错而形成逻辑错 例如Dim x%,y%,z% x=y=z=13.3.标准函数名写错标准函数名写错 4.4.变量名写错变量名写错 检查方法:在通用声明段加Option Explicit5.5.语句书写位置错语句书写位置错 在通用声明段只能有Dim语句,不能有赋值等其它语句本章小节本章小节变量:在程序运行中其存储的值可以改变变量:在程序运行中其存储的值可以改变变量声明变量声明 Dim Dim 变量名变量名 As 类型类型运算符运算符 算术运算符、字符串运算符、关系运算算术运算符、字符串运算符、关系运算符和逻辑运算符符和逻辑运算符函数函数 内部函数内部函数、用户自定义函数用户自定义函数 调用函数形式:调用函数形式:函数名函数名 (参数列表)(参数列表) ShellShell函数函数 调用各种应用程序调用各种应用程序本章目录本章目录