400 likes | 626 Views
第三章 VB 语言基础. 3.1 数据类型. 3.2 变量与常量. 3.3 运算符和表达式. 3.4 程序结构和编码规则. 3.5 综合应用. 3.1 数据类型. 表 3-1 Visual Basic 的标准数据类型. 1 .数值型数据( Numeric ). 2 .日期型数据( Date ). 3.1.1 基本数据类型. 3 .逻辑型数据( Boolean ). 4 .字符型数据( String ). 5 .对象( Object )类型的数据. 6 .变体( Variant )数据类型.
E N D
第三章 VB 语言基础 3.1 数据类型 3.2 变量与常量 3.3 运算符和表达式 3.4 程序结构和编码规则 3.5 综合应用
3.1 数据类型 • 表3-1 Visual Basic的标准数据类型
1.数值型数据(Numeric) 2.日期型数据(Date) 3.1.1 基本数据类型 3.逻辑型数据(Boolean) 4.字符型数据(String) 5.对象(Object)类型的数据 6.变体(Variant)数据类型
1.数值数据类型(Numeric) 数值型数据一般分为整型数和浮点数两类。 整型数分为整数(Integer)和长整数(Long),浮点数分为单精度浮点数(Single)和双精度浮点数(Double)。有时也把货币型数据(Currency)和字节型数据(Byte)划归数值型数据。 1)整数(Integer) 整数是不带小数点和指数符号的数,在机器内部以2字节二进制码形式表示。VB中用±n[%]来表示整数,其中%为整数的类型符,可以省略。如-123%、123%都表示整数。
2)长整数(Long) 整数的最大值为32767,大于此数,程序运行时就会因为溢出产生中断。此时可使用长整数。 长整数用4字节二进制数存储,可以表示更大的整数,其取值范围为-2147483648~2147483647。VB中用±n&来表示长整数,其中&为长整数的类型符。如-1234&、987654&都表示长整数。 3)浮点数 浮点数也称为实型数或实数,由符号、指数和尾数组成,分单精度浮点数(Single)和双精度浮点数(Double),其指数部分分别用“E”(或“e”)和“D”(或“d”)表示。
4)货币型(Currency) 货币型属于定点实数或整数,用8位字节存储小数点前有15位,小数点后有4位,其余的数字被舍去,其表示形式为在数字后加上“@”。 5)字节型(Byte) 字节型数据用1个字节的无符号二进制数存储,取值范围为0——255。
2.字符型数据(String) • 字符型数据是指一切可打印的字符和字符串,它是用双引号括起来的一串字符。 • 一个西文字符占一个字节,一个汉字或全角字符占两个字节。在VB中有两种类型字符串:变长(String)和定长(String * n)字符串。字符串长度:0~231个字符 • 注意: • 空字符串用""表示,而“"则表示空格; • 在字符串中必须用两个连续的双引号来表示字符串有一个双引号。如字符串:abc"计算机"abc,在VB中表示为"abc""计算机""abc"。
3.逻辑型数据(Boolean) • 又称布尔型,只有True和False两个值。在计算机内存中占2字节,经常用来表示逻辑判断的结果。 • 当把数值型数据转换为逻辑型数据时,0会转换为Flase,其它非0值转换为 True。 • 反之,当把逻辑型数据转换为数值型时,Flase转换为0,True转换为-1。
4.日期型数据(Date) • 日期型数据按8字节的浮点数来存储,表示的日期从公元100年1月1日~9999年12月31日,时间范围为0:00:00~23:59:59。 • 任何在字面上可以被认作日期的文本都可以赋值给日期变量,且日期文字必须用符号“#”括起来,如#January 15,2012#,#1985-10-1 9:45:00 PM#都是合法的日期型数据。
5.对象(Object)类型的数据 对象类型的数据(4字节)可以引用应用程序中的对象,主要以变量形式存在。利用Set语句,声明为Object的变量可以被赋值并被任何对象所引用。 6.变体(Variant)数据类型 • Variant数据类型是VB对所有未定义的变量的缺省数据类型的定义,又称为万用数据类型。 • 变体数据类型对数据的处理完全取决于上下文需要。变体型包括数值型、日期型、对象型、字符型等数据类型。通过VarType函数可以检测Variant型变量中保存的具体的数据类型。
3.2 变量与常量 • 将存放数据的内存单元命名,该内存单元称为变量,其名字就是变量名。 • 变量——程序运行过程中其值可以改变的量。(而常量值不变)。
3.2.1 变量 1. 命名规则 • 必须以字母或汉字开头,由字母、数字和下划线组成,长度不得超过255个字符。 • 不得使用VB中的关键字。 • 不区分大小写。(建议:变量首字母一般大写,其余用小写。常量全部用大写字母。)
2. 变量声明 (1)用Dim语句显式声明变量 语法为:Dim 变量名 [As 类型] 类型:缺省时表示变体类型,可用类型说明符代替。 • 例如:Dim a As Integer 等价于 Dim a% Dim b As Single 等价于 Dim b! • Dim a,b,c as integer——只有c是整型,a,b为变体型。 • 变量的默认初值:数值型(0) • string("“),Boolean(False),Date(0/0/0) • 定长字符串:Dim S as String*10,多截少补(右侧空格)。 • 其他声明方式:Static、Public、Private
(2)隐式声明 • VB允许对变量不加声明而直接使用,称为隐式声明。此时变量类型为变体类型。 • 但是这样做可能由于变量名的误写而产生不良后果。例如: Dim x%,y! x=100 y=x/n • 对初学者,建议对变量显式声明;或在通用声明段使用”Option Explicit”强制显式声明
常量——程序运行过程中其值不变的量。VB三种常量:直接常量、用户声明的符号常量、系统提供的常量。常量——程序运行过程中其值不变的量。VB三种常量:直接常量、用户声明的符号常量、系统提供的常量。 • 1.直接常量 • 各种类型的常数,其值反映其类型,也可在常数值后紧跟类型符说明其数据类型。例如:123、123&、123.45、1.234E2、123D3、&O123、&H123。 • 八进制常数:前缀——&O,如:&O123 • 十六进制常数:前缀——&H,如:&H123 3.2.2 常量
2. 用户定义的符号常量 • 用户可以使用Const语句来定义常量: Const 符号常量名 [As 类型] = 表达式 • 符号常量名:命名规则同变量; • 表达式:由数值常量、字符串常量以及运算符所组成。 • 常量一旦声明,其后代码中不能改变其值。 • 例如: Const Pi=3.14159 Const N as interger=10 Const M!=99.9
3. 系统提供的常量 • 内部或系统定义的常量是VB和控件提供的。这些常量可与应用程序的对象、方法和属性一起使用,在代码中可以直接使用它们。 • 例如: • WindowState的值0、1、2对应的常量为:vbNormal、vbMinimized、vbMaximized。 • 颜色常量:vbred、vbgreen、vbblue……
3.3 运算符和表达式 3.3.1 运算符(四类) 1.算术运算符 2.字符串运算符 3.关系运算符 4.逻辑运算符
1.算术运算符 用于数学计算,有8个(其中减号运算符和取负运算符形式相同),其中只有取负“-”是单目运算符,其它均为双目运算符。下表按照优先级别的高低列出了算术运算符。 • 算术运算符
2.字符串运算符 字符串运算符有“&”和“+”两个,如表所示 • 字符串运算符
3.关系运算符 关系运算符属于双目运算符,用来对两个表达式的值进行比较,比较的结果为逻辑值,即若关系成立则返回True,否则返回False。在VB中,分别用-1和0表示True和False。表3-3列出了VB中的关系运算符。 • 表3-3 关系运算符
4.逻辑运算符 逻辑运算符的作用是将操作数进行逻辑运算,结果是逻辑值True 或False。逻辑运算符中,除Not为单目运算符外,其他都为双目运算符。 • 表3-4 逻辑运算符
3.3.2 表达式 表达式由变量、常量、运算符、函数和圆括号按一定的规则组成,表达式的运算结果的类型由参与运算的数据类型和运算符共同决定。 根据表达式中运算符的类别可以将表达式分为算术表达式、字符串表达式、日期表达式、关系表达式和逻辑表达式等。 1.表达式的组成 2.表达式的书写规则 乘号(*)不能省略。 只能使用小括号(),且必须配对。 表达式从左到右在同一基准上书写,无高低、大小之分。 不能出现非法的字符,如π。
3.不同数据类型的转换 如果表达式中操作数具有不同的数据精度,则将较低精度转换为操作数中精度最高的数据精度,即按Integer<Long<Single<Double<Currency的顺序转换,且Long型数据和Single型数据进行运算时,结果总是Double型数据。 4.优先级 当表达式中存在多种运算符共存时,按如下优先级的先后进行运算: 算术运算符>字符运算符>关系运算符>逻辑运算符 例:Age小于19,Total高于285,Mark1~Mark3中有一门是100。分析下列表达式: Age<19 And Total>285 And Mark1=100 or Mark2=100 Or Mark3=100
3.4 常用内部函数 1. 数学函数 2. 转换函数 3. 字符串函数 4. 日期和时间函数 5. 格式输出函数 6. Shell函数
1.数学函数 • 常用数学函数
2.转换函数 • Asc()函数:一个字符串首字符的ASCⅡ码值。 • Chr()函数:ASCⅡ码值转换成字符 。 • Val()函数:数字字符串转换为数值。 • Str()函数:数值转换为字符串。 • Hex()函数:十进制转换成十六进制。 • Oct()函数:十进制转换成八进制值。 • Int()函数:不大于给定数的最大整数,如:Int(3.6) 结果为3。 • Fix()函数:取整。如:Fix(-3.6)结果为-3。 • Round()函数:四舍五入取整。 • Lcase()函数:大写转小写。 • Ucase()函数:小些转大写。
在立即窗口中操作 Chr()函数:ASCⅡ码值转换成字符 : ? Chr(65) A Val()函数:数字字符串转换为数值: ? Val("1234")+ Val("4321") 5555 例题2.9 txtResult.Text = Val(txtAdd1.Text) + Val(txtAdd2.Text)
3.字符串函数 • 常用字符串函数
4.日期和时间函数 • 常用日期函数
3.4.5 格式输出函数(Format) • Format(<表达式>,<格式字符串>) • Private Sub Form_Click() • Print Format(2.71828,”#####.##” • End Sub
3.4.6 Shell()函数 • Shell()函数的作用是在VB中调用一个可执行文件,返回一个 Variant (Double),如果成功调用的话,该值代表这个程序的任务标识 ID,若不成功,则会返回 0。 • Shell函数的格式为: • Shell(pathname[,windowstyle]) • pathname:要执行的程序名(带路径,可执行文件) • windowstyle:0~4、6,一般取1。 • 例如: • J=shell(“c:\Program Files\Microsoft Visual Studio\VB98\VB6.exe”,1) • J=shell(“notepad.exe”,1)
3.5 vb程序结构和编码规则 • 编程序如同写文章,有它的书写规则,初学者应严格遵循,否则会出现编译错误。
1. 程序结构 通用声明 过程块,不分先后
2.编码规则 (1)VB代码不区分字符的大小写 • 关键字会自动转换为大写字母开头,后续字母为小写。 • 自定义的变量、过程名等,以第一次定义为准,其后的输入自动转换。 (2)书写自由 • 一行可以书写多条语句,各语句之间用冒号”:”分隔 • 一行书写不完的语句,可以在该行后加上续行符(由空格+下划线_组成),然后换行书写。 • 一般一行写一条语句,一行最多255个字符,一条语句最多1023个字符。 (3)注释行以Rem 或撇号“‘”开头 • 只有用撇号引导的注释可以出现在语句之后。 • 可使用“编辑”工具栏中的“设置注释块”命令将选定的若干行语句或文字设置为注释项,也可以使用“解除注释块”命令将选定的若干行解除注释。
3.5 综合应用 例3.1 字符串替换。 • 掌握三个函数的运用:Instr、Replace和Shell • 方法一、利用Instr函数: • i=instr(text1,text2) • k=i+len(text2) • ls=left(text1,i-1) • text4=ls+text3+mid(text1,k) • 方法二、利用Replace函数:text4=replace(text1,text2,text3) • 方法三、利用Shell函数调用word:i = Shell("c:\program files\microsoft office\office10\winword.exe", 1)
习题三 课堂练习 • 3.写出vb表达式 (1)abs(x+y)+z^5 (3)10*x+sqr(3*y) (5)1/(1/r1+1/r2+1/r3) • 4.写出vb表达式 (1)chr(int(67+rnd*10)) (3)(x>0 and y>0) or (x<0 and y<0) (5)(x mod 10)*10+x\10 (7)C>=”A” and C=<“Z” or C>=”a” and C=<“z” (9)x>=10 and x<20 (11)x>z and y>z The end