350 likes | 530 Views
( 1 )理解变量与常量的概念、掌握其定义和使用; ( 2 )掌握各种常用数据类型的数据在内存中的存放形式, ( 3 )掌握各种运算符、表达式的使用方法; ( 4 )掌握常用内部函数的使用。. 第三章 VB 语言基础. 本章主要任务:. 一 . 标准数据类型. 3.1 数据类型. 3.1 数据类型. 二、自定义类型. 在模块级别中使用,用于定义包含一个或多个元素的用户自定义的数据类型。 使用形式: Type 自定义类型名 元素名 [([ 下标 ])] As 类型名
E N D
(1)理解变量与常量的概念、掌握其定义和使用;(1)理解变量与常量的概念、掌握其定义和使用; (2)掌握各种常用数据类型的数据在内存中的存放形式, (3)掌握各种运算符、表达式的使用方法; (4)掌握常用内部函数的使用。 第三章 VB语言基础 本章主要任务:
一.标准数据类型 3.1数据类型
3.1数据类型 二、自定义类型 在模块级别中使用,用于定义包含一个或多个元素的用户自定义的数据类型。 使用形式: Type 自定义类型名 元素名 [([下标])] As 类型名 元素名 [([下标])] As 类型名 . . . End Type 说明
3.1数据类型 例如: 对于一个学生的“学号”、“姓名”、“性别”、“年龄”、“入学成绩”等数据,为了处理数据的方便,常常需要把这些数据定义成一个新的数据类型(如Student类型)。 Type Student Xh As String Xm As String Xb As String Nl As Integer Score As Single End Type
3.2 常量 • 在程序运行过程中,其值不能被改变的量称为常量。在VB中有三类常量: • 普通常量 符号常量 系统常量。 • 一、普通常量 • 1.整型常量 • (1)整型(Integer):表示-32768至32767之间的整数 • 例如:10 110 20 • (2)长整型(Long): • 表示-2,147,483,648至2,147,483,647之间的整数 • 例如:长整型常数的书写: 23&
3.2 常量 通常我们说的整型常量指的是十进制整数,但VB中可以使用八进制和十六进制形式的整型常数,因此整型常数有如下三种形式: 1)十进制整数。如125,0,-89。20 2)八进制整数。以&或&O(字母O)开头的整数是八进制整数,如&O25表示八进制整数25,即(25)8,等于十进制数21。 3)十六进制。以&H开头的整数是十六进制整数,如&H25表示十六进制整数25,即(25)16,等于十进制数37。VB中的颜色数据常常用十六进制整数表示。
3.2 常量 2、实数 1)单精度实型(Single):有效数为7位 2)双精度实型(Double):有效数为15位 常量的表示: 1)十进制小数形式。它是由正负号(+,-)、数字(0~9)和小数点(.)或类型符号(!、#)组成,即±n.n,±n!或±n#,其中n是0~9的数字。 例如0.123、.123、123.0、123!、123#等 2)指数形式。 ±nE±m 或±n.nE±m, ±nD±m 或±n.nD±m 例:1.25E+3 和1.25D+3相当于1250.0 或者1.25×103。
3.2 常量 3、字符串常量 在VB中字符串常量是用双引号“"”括起的一串字符,可以是所有西文字符和汉字、标点符号等; 例如"ABC","abcdefg","123","0","VB程序设计"等。 说明: (1)""表示空字符串,而" "表示有一个空格的字符串; (2)若字符串中有双引号,例如ABD"XYZ,则用连续两个双引号表示,即: "ABD""XYZ“ 4、逻辑(Boolean)数据类型 只有两个值True,或False。将逻辑数据转换成整型时:True为-1,False为0;其它数据转换成逻辑数据时:非0为True, 0为False。
3.2 常量 5、日期常量 日期(Date)型数据按8字节的浮点数来存储,表示日期范围从公元100年1月1日~9999年12月31日,而时间范围从0:00:00~23:59:59。 一种在字面上可被认作日期和时间的字符,只要用号码符“#”括起来,都可以作为日期型数值常量。 例:#09/02/99#、#January 4,1989#,#2002-5-4 14:30:00 PM#都是合法的日期型常量。
3.2 常量 二、符号常量 在程序中,某个常量多次被使用,则可以使用一个符号来代替该常量,这样不仅在书写上方便,而且有效地改进了程序的可读性和可维护性。 VB中使用关键字Const 声明符号常量。其格式如下: Const 常量名[As 类型] =常数表达式 或:Const [类型符号]=常数表达式 例如: Const PI As Double=3.1415926535 等价于: Const PI#=3.1415926535
3.2 常量 三、系统常量 VB系统提供的应用程序和控件的系统定义常数。它们存放于系统的对象库中,在“对象浏览器”中的 Visual Basic(VB) 和 Visual Basic for applications(VBA)对象库中列举了 Visual Basic 的常数 例如,要将文本框Text1的前景颜色设置为红色,可以使用下面的语句: Text1.ForeColor=vbRed 这里的vbRed就是系统常量。这比直接使用16进制数来设置要直观得多。
一. 变量的命名规则 1. 以字母或汉字开头,后可跟字母、数字或下划线组成. 2. 变量名最长为255个字符; 3. VB中不区分变量名的大小写,不能使用VB中的关键字; 4.字符之间必须并排书写,不能出现上下标 以下符是合法的变量名: a, x, x3, BOOK_1, sum5 以下标识符是非法的: 3s 以数字开头 s*T 出现非法字符* -3x 以减号开头 bowy-1 出现非法字符-(减号) if 使用了VB的关键字 3.3 变 量
二.变量声明 1.用Dim语句显式声明变量 形式:Dim 变量名 [AS 类型] Dim 变量名[类型符] 例: Dim ab As integer , sum As single 等价于 Dim ab%, sum! 3.3 变量
下面是一个很简单的程序,其使用的变量a, b, Total都没有事先定义。 Private Sub Form_Click() Total = 0 a = 10: b = 20 Total = a + b Print “Total="; Total End Sub 3.3 变量 2.隐式声明 Visual Basic允许用户在编写应用程序时,不声明变量而直接使用,系统临时为新变量分配存储空间并使用,这就是隐式声明。所有隐式声明的变量都是Variant数据类型。Visual Basic根据程序中赋予变量的值来自动调整变量的类型。 例如:
3.3 变量 3.强制显式声明——Option Explicit语句 良好的编程习惯都应该是“先声明变量,后使用变量”,这样做可以提高程序的效率,同时也使程序易于调试。Visual Basic 中可以强制显式声明,可以在窗体模块、标准模块和类模块的通用声明段中加入语句: Option Explicit
3.3 变量 4.变量的默认值 当执行变量的声明语句后,Visual Basic系统就给变量赋值一个默认值,在变量首次赋值之前,一直保持这个黑认值。对于不同类型的变量
一. 运算符 1. 算术运算符 例:5+2*10 mod 10 \ 9 / 3 +2 ^2 结果是: 3.4 运算符和表达式 11 (ia=3)
2. 字符串运算符与字符串表达式 字符串运算符有:& 、+ 。 功能是字符串连接 例如: "ABCD" + "EFGHI" ' 结果为:ABCDEFGHI “ VB ” & “程序设计教程” ' 结果为:VB程序设计教程 说明:当连接符两旁的操作量都为字符串时,上述两个连接符等价。它们区别是: +(连接运算):两个操作数均应为字符串类型; &(连接运算):两个操作数既可为字符型也可为数值型,当是数值型时,系统自动先将其转换为数字字符,然后进行连接操作。 3.4 运算符和表达式
例: "100" + 123 ' 结果为223 "100" + "123" ' 结果为100123 "Abc" + 123 ' 出错 "100" & 123 ' 结果为100123 100 & 123 ' 结果为100123 "Abc" & "123" ' 结果为Abc123 "Abc" & 123 ' 结果为Abc123 3.4 运算符和表达式 注意:使用运算符“&”时,变量与运算符“&”之间应加一个空格。这是因为符号“&”还是长整型的类型定义符,如果变量与符号“&”接在一起,VB系统先把它作为类型定义符处理,因而就会出现语法错误。
3.4.3 关系运算符与关系表达式 运算符 含义 优先级 实例 结果 < 小于 所有关系运算优先级相同。低于算术运算的加“+”,减“-”运算,高于逻辑非“Not”运算。 15+10<20 False <= 小于或等于 10<=20 True > 大于 10>20 False >= 大于或等于 "This">= "That" True = 等于 "This"= "That" False <> 不等于 "This"<> "That" True Like 字符串匹配 "This" Like "*is" True Is 对象比较 3.4 运算符和表达式 比较两个运算量之间的关系,关系表达式的运算结果为逻辑量。若关系成立,结果为True,若关系不成立,结果为False。 VB中的关系运算符如下表所示。
3.4 运算符和表达式 关系运算的规则如下: (1)当两个操作式均为数值型,按数值大小比较。 (2)字符串比较,则按字符的ASCII码值从左到右一一比较,直到出现不同的字符为止.。 例: " ABCDE " > " ABRA " 结果为 False (3)数值型与可转换为数值型的数据比较, 如:29>"189" ,按数值比较,结果为False。 (4)数值型与不能转换成数值型的字符型比较, 如:77>" sdcd" ,不能比较,系统出错。 (5)“Like”运算符是VB6.0新增加的。 其使用格式为:str1 Like str2
3.4.4 逻辑运算符与逻辑表达式 逻辑运算符:Not,And,Or Xor Eqv Imp 3.4 运算符和表达式
3.4 运算符和表达式 说 明: (1)逻辑运算符的优先级不相同,Not(逻辑非)最高,但它低于关系运算,Imp(逻辑蕴含)最低。 (2)VB中常用的逻辑运算符是Not、And和Or。它们用于将多个关系表达式进行逻辑判断。 例如: 数学上表示某个数在某个区域时用表达式:10≤X<20 用VB程序中应写成:X>=10 And X<20 如果写成如下形式将是错误的: 10<=x<20 或10<=x Or x<20
3.4 运算符和表达式 例:用人单位招聘秘书:年龄小于40岁,女性,学历专科或本科: 写成条件VB的表达式: 年龄<=39 性别=“女” 学历=“专科” 学历=“本科” Or And ( ) And
3.4 运算符和表达式 4.4.5 日期型表达式 日期型数据是一种特殊的数值型数据,只能有下面3种情况: 1.一个日期型数据可以相减:DateB-DateA 结果是一个数值型整数(两个日期相差的天数)。 例如:#05/08/2002# - #05/01/2002# 其结果为数值:7 2.一个日期型数据(DateA)与一数值数据(N)可作加法运算:DateA+N 其结果仍是一个日期型数据。 3.一个日期型数据(DateA)与一数值数据(N)可作减法运算:DateA-N 其结果仍是一个日期型数据。 例如:#05/08/2002# - 7
3.4.6 运算符的执行顺序 3.4 运算符和表达式 表达式中出现了多种不同类型的运算符时,其运算符优先级如下: 算术运算符>=字符运算符>关系运算符>逻辑运算 说明: 1.当一个表达式中出现多种运算符时,首先进行算术运算符,接着处理字符串连接运算符,然后处理比较运算符,最后处理逻辑运算符. 2.可以用括号改变优先顺序,强令表达式的某些部分优先运行。括号内的运算总是优先于括号外的运算。对于多重括号,总是由内到外。
3.4 运算符和表达式 3. 表达式的书写中需注意的问题 (1)运算符不能相邻。例a+*b是错误的。 (2)乘号不能省略。例x 乘以y 应写成:x*y (3)括号必须成对出现,均使用圆括号。 (4)表达式从左到右在同一基准并排书写,不能出现上下标 (5)要注意各种运算符的优先级别,为保持运算顺序,在写VB表达式时需要适当添加括号(),若用到库函数必须按库函要求书写。 如: (b-sqr(b*b-4*a*c))/(2*a) (a+b)/(a-b)
VB提供了上百种内部函数(库函数),要求掌握这些常用函数的功能及使用。 调用方法: 函数名(参数列表) 有参函数 函数名 无参函数 说明: (1) 使用库函数要注意参数的个数及其参数的数据类型 (2) 要注意函数的定义域(自变量或参数的取值范围) 例如: sqr(x) 要求: x>=0 (3) 要注意函数的值域。 如:exp(23773) 的值就超出实数在计算机中的表示 范围。 3.5 常用内部函数
1、数学函数 常用的数学函数见表3-8所示 Abs(N) Cos(N) Sin(N) Exp(N) Log(N) Sqr(N) Rnd[(N)] Sgn(N) 说明: (1) 在三角函数中的自变量是以弧度为单位。 如:sin300 sin(3.14159/180*30) (2)Rnd函数返回0 ~ 1(包括0和不包括1)之间的双精度随机数。 若要产生1-100的随机整数: Int(Rnd *100)+1 提问:怎样产生[N,M]区间的随机数? 3.5 常用内部函数
2. 转换函数 常用的转换函数见表3-9所示 说明:(1)要区别两个取整函数int()和fix() Fix(N)为截断取整,即去掉小数后的数。 Int(N)不大于N的最大整数。 N>0与int(N) 相同,当N<0时, int(N)与fix(N) -1相等。 例如: Fix(9.59) =9, Int(9.59) =9 Fix(-9.59) =-9, Int(-9.59) =-10 思考:如何实现四舍五入取整? (2)Asc("Abcd")值为: 65 (只取首字母的Ascii值) (3)Val("abc123")值为:0, Val("1.2sa10") 值为1.2 注意: Val( )函数只将最前面的数字字符转换为数值。 3.5 常用内部函数
3. 字符串操作函数(常用的字符串函数见表3-10) 说明: 如果返回是字符型,则函数后有“$”字符。当然一般也可以不写,习惯都写上。例如: len("This is a book!") 15 Left$("ABCDEFG",3) "ABC" Right ("ABCDEFG",3) “EFG" Mid$("ABCDEFG",2,3) "BCD“ Ucase("ABcd") "ABCD" Lcase("ABcd") " abcd" Trim(" Abcd ") "ABcd" String(5, "A " ) "AAAAA" InStr(2, “ABCDEFGEF”, “EF”) 5(第一次出现的位置) 3.5 常用内部函数
3.5 常用内部函数 4. 日期、时间函数 常用的日期时间函数见表3-11 掌握: Time( ) Date( ) Now Year( ) Month( ) Day( ) 5.格式输出函数 使用格式: Format$(表达式[,“格式字符串”]) 功能:按用户指定格式返回表达式,常常用在print方法中。 使用形式:print Format$(表达式[,“格式字符串”]) 表达式:可以是数值、日期或字符串型表达式。 格式字符串:表示输出表达式时采用的输出格式。不同数据类型所采用的格式字符串是不同的。
(1)数值型数据格式化(见表3-12) 注意:对于符号:0与#,当数值的实际位数比格式控制给定的位数多时,系统将按四舍五入返回给定的位数。 如:Format(3.14159, “###.###”), 其值为 3.142 Format(3.14159,“000.000”), 其值为 003.142 (2)日期和时间型数据格式化(见表3-13) 缺省日期格式为:“mm/dd/yy”, 缺省时间格式:“hh:mm:ss” (3)字符串类型数据格式化(见表3-14) 3.5 常用内部函数
3.5.6 其它函数 除上面常用的四类函数,VB中还有测试函数(见表3-15)、与文件操作有关的函数(见表3-16)及其它函数(见表3-17) 3.5 常用内部函数
本章作业: 1. 思考题: (Pg.63) 要求找到本应书上的内容,并认真理解 一、1、5、6、7 直接做在书上:(Pg.69) 三(全部各小题,抽查若没做,将作为没有成作业处理,记为K3) 做在作业本上: (Pg.68、70) 一、10 (2)(4)(6)(8) 11 (1)(3)(5) 二 全部 实验第2题