资源描述
第三章 VB语言基础,3.1 数据类型 3.2 变量和常量 3.3 运算符和表达式 3.4 程序结构和编码规则 3.5 综合应用,本章目录,3.1 数据类型,本章目录,数据实际上是现实世界的一种形式化表达。 数据是程序的必要组成部分,也是程序处理的对象。,标准数据类型,1.数值型 (1)整型 (2)长整型 (3)单精度 浮点型 (4)双精度 浮点型,没有小数点和指数符号(计算机内补码形式) ,分两种: Integer:整型(占2字节) 表数范围:-215 215-1, 即-32768 32767 表示形式: n 或n%(即%可省略),例如:-120,120, 120%,(1)整数,Long :长整型(占4字节) 表数范围:-231-1 231-1 表示形式:n&,例如:120 &, 43210,-12345678 &,Single:单精度(4字节)- 7个有效位 表示形式:带小数点数 用指数(E)表示 数字后面加“!” 范围:1.401 298E-45 3.402 823E38,例: -1E2 ,1.2E2 120.0 ,120! +12345678.,=(-1)102,(2)浮点数,123.45 123.45! 0.123 45103,同值,Double:双精度(8字节) - 15个有效位 表示形式:用指数(D)表示 数字后面加“#”,例: -1D2 ,1.2D2 120#,(2)浮点数,123.45# 0.123 45D+3 0.123 45E+3#,同值,(3) Currency :货币类型(8字节) -19个有效位 最多保留小数点右边4位和小数点左边15位 表示形式:数字后面加“ ”,例:120,(4) Byte :字节类型(占1字节) 表数范围:0255(无符号整数),3.1 数据类型,2.字符(String)型:,表示形式:用双引号括起来或变量名后加“$” 如:“Basic”、a$ “1234”,3.1 数据类型,3.逻辑(Boolean)型:,用于逻辑判断,只有两个值,True (-1) False ( 0),1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.1 数据类型,4.日期型(Date)型:-占用8个字节 表示形式:用#号括起来 如:# 3/25/2011 # #2-14-04 6:10:00# #2-14-04 6:10:00 AM# #2-14-04 6:10:00 PM# # January 1,2011 #,3.1 数据类型,5.变体(Variant)型:万能型 是一种通用的、可变的数据类型 取决于程序上下文的需要,隐含变量的类型,6.Object型: 用于保存任何对象的引用,3.2 常量与变量,3.2.1 变量,变量 计算机内存单元 在程序运行中其存储的值可以改变,0100,1001,1010,var_3,年龄,birth,#1-1-1989#,22,False,变量三要素: 变量名 变量值 变量类型,内存单元地址,1.变量的命名规则: 必须以字母或汉字开头,由字母、汉字、数字或下划线组成,长度小于等于255个字符 不能使用VB中的关键字 VB不区分变量名的大小写,2.变量声明,本章目录,(1)用Dim语句显式声明变量 (2)隐式声明变量,(1)用Dim语句显式声明变量 格式: Dim 变量名 As 类型 说明: 1)变量名后面加类型符来代替“As 类型” ,无空格 2)一条Dim语句可同时定义多个变量,但每个变量应有类型说明,否则为变体型。 例如:Dim m,n As Integer, x,y As Single 则创建了变体型变量m、x,整型变量n和单精度型变量y,3)在VB中,变量根据不同的类型有不同的默认值。,4)对于字符型变量,根据其存放的字符串长度是否固定,其定义方法有以下两种:,定长时,多截 少补空格,5)除了用Dim语句声明变量外,在过程外部还可以用Static、Public、Private等关键字声明变量,(2)隐式声明变量 不声明,直接使用,称为隐式声明 所有隐式声明的变量都是变体(Viriant)型 注意:Dim语句中,As部分缺省,创建的变量也为变体类型 不定义而直接赋值 a = 99*99,Dim num As Integer, y As Single num = 100 y = 500 / mun,Option Explicit 强制显示声明所有变量 该语句表示变量必须显示定义 它必须放在程序中的第一句 使用它可以减少程序中的错误,3.2.2常量,常量是在程序运行中不变的量,VB有三种常量: 直接常量 符号常量 系统常量,本章目录,3.2.2常量,1.直接常量(字面常量) 其常数值直接反映了其类型 数值型常量: 十进制数:integer、long、single、double 八进制整数:&O 如:&O56 十六进制整数:&H 如:&H4A7 字符型常量: 逻辑型常量: 日期型常量:,本章目录,2.用户声明的符号常量 用户声明,便于程序阅读或修改 Const 符号常量名 As 类型 = 表达式 例如: Const PI = 3.14159,例:输入一个圆半径,求它的周长和面积。,Private Sub Command1_Click() Dim r As Single Dim p As Single Dim a As Single Const PI! = 3.14159 r = Val(Text1.Text) p = 2 * PI * r a = PI * r * r Text2.Text = Str(p) Text3.Text = Str(a) End Sub,3.系统常量 系统提供许多内部常量 例如:vbCrLf 回车/换行组合符 vbRed 红色 Form1.BackColor = vbRed Form1.windowstate=vbMaximized Print aaa + bbb Print aaa + vbCrLf + bbb,3.3 运算符和表达式,VB中的运算符分为: 算术运算符 字符串运算符 关系运算符 逻辑运算符,本章目录,1、算术运算符,例:?2- -2 : ?9*95 5+10 mod 10 9 / 3+2 2 结果:,本章目录,10,注意 算数运算符两边的操作数应是数值型 ,若是数字字符型或逻辑值,则自动转换成数值类型后再参与运算。,2、字符串运算符,& 两旁的操作数可任意,转换成字符型后再连接 + 两旁的操作数应均为字符型; 1)数值型:则进行算术加运算 2)一个为数字字符,另一个为数值,自动将数字字符转换为数值后进行算术加 3)一个为非数字字符,另一个为数值型,出错 例如: 操作 结果 操作 结果 ab & 123 ab123 ab + 12 出错 12 & 456 12456 12 + 456 468 12 & True 12True12 + True 11,本章目录,使用运算符“&”时,变量与运算符“&”之间应加一个空格。这是因为符号“&”还是长整型的类型定义符,如果变量与符号“&”接在一起,VB系统先把它作为类型定义符处理,因而就会出现语法错误。,3、关系运算符,本章目录,关系运算符都是双目运算,是用来比较两个运算量之间的关系,关系表达式的运算结果为逻辑量。若关系成立,结果为True,若关系不成立,结果为False。,关系运算的规则如下: 当两个操作式均为数值型,按数值大小比较。 字符串比较,则按字符的ASCII码值从左到右一一比较,直到出现不同的字符为止。 ABCDE ABRA 结果为 False 数值型与可转换为数值型的数据比较,29“189” ,按数值比较,结果为False。 数值型与不能转换成数值型的字符型比较,77“ sdcd” ,不能比较,系统出错。,4、逻辑运算符,本章目录,3.3.2表达式,1.组成 变量、常量、函数、运算符和圆括号 2.书写规则 运算符不能相邻 例a+ -b是错误的 乘号不能省略 例x 乘以y 应写成:x*y 括号必须成对出现(均使用圆括号) 表达式从左到右在同一基准上书写,无高低、大小 3. 不同数据类型的转换 运算结果的数据类型向精度高的数据类型靠 Integer=字符运算符关系运算符逻辑运算,本章目录,表达式书写举例,a*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 ) 如果取消括号有何问题?请读者考虑。,sin(45*3.14/180)+(exp(10)+log(10)/sqr(x+y+1),本章目录,3.3.3 常用函数,VB函数: 内部函数和用户自定义函数,内部函数,数学函数 转换函数 字符串函数 日期函数 格式输出函数,调用函数的形式: 函数名(参数列表),本章目录,1.数学函数,本章目录,数学函数-续,Rnd函数返回0和1(包括0但不包括1)之间的双精度随机数. 每次运行时,要产生不同序列的随机数,先执行Randomize 语句。 产生一定范围内的随机整数: Int(Rnd*范围+基数),练习1:说出下列表达式的值:,1、VAL(“123”) 2、VAL(“4.5AB”) 3、Int(3.9) 4、Int(5.1) 5、Fix(3.9) 6、Fix(5.1) 7、Sqr(9) 8、Sqr(10),练习2:写出下列表达式:,1、产生一个50100之间的随机整数: Int((10050+1)*Rnd+50) 2、产生一个01000之间的随机整数: Int((10000+1)*Rnd+0) 3、X大于100或X小于50: X100ORX50 4、5X9: X5ANDX9,练习3:说出下列代码的含义,1、Dim R As Single 2、R = Val(Text1.Text) 3、Text2.Text = Str(P) 4、Dim i, a As Integer 5、Randomize 6、a = Int(10 * Rnd + 0) 7、Text1.Text = Text1.Text + Str(a),2.转换函数,本章目录,说明: Chr()与Asc()函数互为反函数; Str()函数将非负数值转换成字符型值后,左边添加空格(符号位) Val()遇到非数字字符,则停止转换,3.字符串函数,本章目录,字符串函数-续,本章目录,4.日期函数,本章目录,DateAdd ()函数 格式: DateAdd(要增减的日期形式, 增减量, 日期) 作用: 对要增减的日期变量按日期形式做增减。 例: DateAdd(“m”, 3, #2009/6/30#) DateAdd(yyyy, 3, #2009/6/30#),yyyy 年 q 季 m 月 y 一年的日数 d 日 w 一周的日数 ww 周 h 时 n 分钟 s 秒,DateDiff()函数 格式: DateDiff(Interval as string,Date1,Date2) 功能:比较Date1和Date2之间相差的月数(或者天数,小时,分,秒) 其中Interval的值有以下几种情况: m:月份;d:天数;h:小时;s:秒等 例:求2001年1月1日和2007年1月1日之间相隔几天。 Dim TT = DateDiff(d, #1/1/2001#, #1/1/2007#)Print T 程序运行结果为:2191 如果要求相隔月数的话,只用把d改成m即可.,DateDiff(要间隔的日期形式, 日期1, 日期2),Shell函数,Shell函数可调用各种应用程序。格式如下: Shell(命令字符串,窗口类型) 命令字符串为要执行的应用程序名(包括路径),必须是可执行文件(.com、.exe、.bat)。 窗口类型表示执行应用程序的窗口状态,04,6的整型数值,1表示正常窗口状态。,例 i = Shell( calc.exe) j = Shell(“C:Program FilesMicrosoft OfficeOFFICE11EXCEL.EXE”,1) winword.exe C:WINDOWSsystem32mspaint.exe,本章目录,WindowStyle:,3.4 程序结构和编码规则,本章目录,编码规则,(1) VB代码不区分字母的大小写 (2) 语句书写自由 一行上可书写多句语句(用冒号分隔),一行最多255个字符。 单行语句可分若干行书写,在本行后加入续行符(空格和下划线)。,本章目录,3.5 综合应用,例3.1 模仿字处理软件中字符串替换功能。 设计思路: 利用Shell函数调用winword.exe执行Word程序实现替换功能 利用查找(InStr)、取子串(Left、Mid)等函数实现替换功能 利用替换(Replace)函数实现替换功能,本章目录,Private Sub Command1_Click() i = InStr(Text1, Text2) k = i + Len(Text2) Ls = Left(Text1, i - 1) Text4 = Ls + Text3 + Mid(Text1, k) Text4 = Left(Text1, i - 1) + Text3 + Mid(Text1, k) End Sub,Private Sub Command2_Click() Text4 = Replace(Text1, Text2, Text3) End Sub,Private Sub Command3_Click() i = Shell(C:Program FilesMicrosoft OfficeOffice10winword.exe, 1) End Sub,本章小节,变量:在程序运行中其存储的值可以改变 变量声明 Dim 变量名 As 类型 运算符 算术运算符、字符串运算符、关系运算符和逻辑运算符 函数 内部函数、用户自定义函数 调用函数形式:函数名(参数列表) Shell函数 调用各种应用程序,本章目录,下列数字是字符串类型的是()。 A、Visual BasicB、“Visual Basic” C、#Visual Basic#D、&Visual Basic& 整型的关键字是()。 A、IntegerB、Long C、SingleD、Double 双精度的关键字是()。 A、IntegerB、Long C、SingleD、Double 表示变体型数据的名称是()。 A、IntegerB、Double C、SingleD、Variant,日期型数据应用一对()括起来。 A、双引号B、单引号 C、“#”D、“*” 下列各选项中的变量a,()肯定不是变体型。 A、Dim a as Integer B、Dim a as Variant C、Dim a D、a=2,声明符号常量的关键字是()。 A、StaticB、Dim C、ConstD、Currency 声明一个变量为静态变量的关键字是()。 A、DimB、Private C、StaticD、Public,Visual Basic的Integer型数据占用()字节内存。 A、2B、4 C、8D、16 如果布尔型数为False值,则对应的整型数的值为()。 A、1B、1 C、0D、0,3.以下各选项中,属于变量的是( ),属于数值常量的是( )。 A、sumB、”sum” C、100D、”100” 4.以下标识符中,合法的是()。 A、b_j2008B、b-j2008 C、2008 b_j D、If 5.以下属于字符串常量的是()。 A、4_fB、f_4 C、f-4D、”4-f”,定义语句如下: Dim a,b as Integer Dim c Dim d as String 变量a的数据类型是( ),变量b的数据类型是 ( ),变量c的数据类型是( ),变量d的数据类型是( )。 A、变体型B、整型 C、空型(Void)D、字符串型,数据型数据包括()。 A、单精度和双精度 B、整数型和长整型 C、整型和实型 D、Currency型和Decimal型 在Visual Basic中以&H开头的数据是()。 A、二进制B、八进制 C、十进制D、十六进制,以下声明语句中错误的是()。 A、Const var1=124 B、Dim var2=ABC C、Public a! D、Static var3 as Integer,设有如下变量声明: Dim TestDate As Date 为变量TestDate正确赋值的表达方式是()。 A、TestDate=#1/1/2002# B、TestDate=#”1/1/2002”# C、TestDate=date(”1/1/2002”) D、TestDate=Format(“m/d/yy”, ”1/1/2002”),在窗体上画一个名为Command1的命令按钮,然后编写如下程序: Private Sub Command1_Click() Static X As Integer Static Y As Integer Cls Y=1 Y=Y+5 X=5+X Print X,Y End Sub 程序运行时,三次单击命令按钮Command1后,窗体上显示的结果为()。 A、15 16B、15 6 C、15 15D、5 6,字符串变量未赋值时它的值为()。 A、NullB、0 C、空串D、Error 如果变量a是Integer型类型,则执行语句a=”5”+3后a的值是( ),则执行语句a=”5”+”3”后a的值是( )。 A、8B、2 C、53D、错误,下列语句可以声明一个全局整型变量的是()。 A、Dim a as Integer B、Public a C、Dim Static a as Integer D、Public a as Integer 下列语句为Boolean类型的变量a赋值有误的是()。 A、a=1B、a=True C、a=”是”D、a=False,已知语句Dim Test&,则变量Test的类型是()。 A、变体型B、单精度 C、双精度D、长整型 一程序声明了一个常量,语句为: Const a1=20,a2=70 则下列语句正确的是()。 A、a1=a1+30B、a2=50 C、a3=a2-a1D、a2=a1,逻辑运算符中优先级最高的是()。 A、NotB、And C、OrD、= 当表达式中混有多种运算符时,优先级最低的是()。 A、算术运算符B、字符串连接运算符 C、关系运算符D、逻辑运算符,整除的运算符是()。 A、*B、/C、D、& 1+”1”和1&”1”的值分别 是()。 A、”11”,”11”B、2,”11” C、”11”,2D、2,2,表达式23*5+29 Mod 24/53的值为() A、40B、38 C、42D、0 下列运算中值最大的是()。 A、87B、8/7 C、8 Mod 7D、7 Mod 8,数学表达式55 C、x5D、x10 Or x5 以下各表达式中值为0的是()。 A、1/5B、15 C、1 Mod 5D、1*5,求一个三位正整数n的10位上的数字,以下不能实现的方法是()。 A、(n Mod 100)10 B、n10-(n/100)*10 C、(n 10) Mod 10 D、(n-(n100)*100)/10,在VB中,表达式0x100(x的值不为Null)的值为()。 A、False B、当x的值在(0,100)内时,值为False C、True D、当x的值在(0,100)外时,值为False,语句Print 5/4*65 Mod 2的输出是()。 A、0 B、1 C、2 D、3,下列表达式: (1)45 And 6=7 Xor 56,3把下列算术表达式写成VB表达式,(1),(2),
展开阅读全文