1、2022-4-262022-4-26Visual Basic程序设计教程1第3章 VB程序设计语言基础 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程22022-4-262022-4-26第3章 VB程序设计语言基础 n本章将介绍构成VB应用程序的基本元素以及使用方法,主要包括数据类型、表达式和运算符和常用函数等内容 。3.1 数据类型 3.2 常量与变量 3.3 表达式和运算符 3.4 Visual Basic的常用函数 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教
2、程程序设计教程32022-4-262022-4-263.1 数据类型 n数据不仅仅是数值,凡是能够输入到计算机中、被计算机识别并加工处理的符号的集合称之为数据。数值、文字、字符、图形、图像和声音等都是数据。 n数据既是计算机程序处理的对象,也是运算产生的结果。n数据按其构造、处理方式、用途及基本属性,可分为若干不同的类型。 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程42022-4-262022-4-261数值型数据 n整型数(Integer) n长整型数(Long) n单精度浮点数(Single) n双精度浮点数(Dou
3、ble) n货币型数(Currency) n字节型数(Byte) 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程52022-4-262022-4-262字符型数据(String) n用双引号括起来的一串字符。n一个西文字符占1个字节,一个汉字或全角字符占2个字节。nVB中字符串分两种:定长字符串和变长字符串。n例如:“123”、“Visual Basic”、 北京奥运、(空字符串) 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程62022-4-262022
4、-4-263日期型数据 n日期型数据表示由年、月、日组成的日期信息或由时、分、秒组成的时间信息。n日期型数据占8个字节内存。 n日期型数据的书写格式为mm/dd/yyyy或 mm-dd-yyyy,或者是其他可以辨认的文本日期。 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程72022-4-262022-4-264逻辑型数据 n逻辑型数据也称为布尔型数据,在内存中占2个字节。n逻辑型数据取值只有两种:True(真)和False(假)。 目录目录Visual BasicVisual BasicVisual Basic程序设计教程
5、程序设计教程程序设计教程82022-4-262022-4-265变体型数据 n变体型数据是一种可变的数据类型,它可以表示多种类型的数据,包括数值、字符串、日期/时间等。 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程92022-4-262022-4-266对象型数据 n对象型数据用来表示图形、OLE对象或其他对象,用4个字节存储。 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程102022-4-262022-4-263.2 常量与变量 n3.2.1 常量
6、n3.2.2 变量 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程112022-4-262022-4-263.2.1 常量n常量是指在程序中事先设置、运行过程中数值保持不变的数据。VB中常量分直接常量和符号常量两种形式。 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程122022-4-262022-4-261直接常量-1 n字符串常量 字符串常量就是用双引号括起来的一串字符。 例如:“date”,“#”,“75.25”等。n数值常量 数值常量有四种表示形式
7、:整型数、长整型数、货币型数、浮点数。目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程132022-4-262022-4-261直接常量-2n逻辑(布尔)常量 逻辑常量只有True和False两个值。将逻辑常量转换成整形数时True为-1,False为0;而数值型数据转换成逻辑常量时非零为True,零为False。 n日期常量日期型常量的表示方法是用两个“#”号把表示日期和时间的值括起来。 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程142022-4-26
8、2022-4-261直接常量-3n如果需要特别指明一个常量的类型,可以在常数后面加上类型说明符,如表所示。 类型符数据类型%整型&长整型!单精度浮点数#双精度浮点数货币型字符串型目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程152022-4-262022-4-262符号常量 n符号常量是指用事先定义的符号(即常量名)代表具体的常量,通常用来代替数值或字符串。n符号常量又分两种:系统常量和用户自定义常量。目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程1620
9、22-4-262022-4-26系统常量 n系统常量是VB提供的预定义常量,可以在程序中直接使用。 n预定义常量又称内部常量,可与应用程序的对象、方法和属性一起使用。n内部常量以 vb打头,例如: vbOK,vbYesNOCancel等。 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程172022-4-262022-4-26用户自定义常量 -1nVB允许用户创建自己的符号常量,称之为用户定义符号常量。n用户定义符号常量使用Const语句来给常量分配名字、值和类型。n声明(定义)常量的语法为:Const As=目录目录Visu
10、al BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程182022-4-262022-4-26用户自定义常量-2n例如:Const PI#=3.141592653Const Min=256 Max=999, Const abc!=168.8目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程192022-4-262022-4-263.2.2 变量 n变量是指在程序运行过程中,取值可以改变的数据。 nVB有两大类型变量:属性变量和内存(声明)变量。 目录目录Visual BasicVis
11、ual BasicVisual Basic程序设计教程程序设计教程程序设计教程202022-4-262022-4-261变量的命名规则 n 变量名必须以字母或汉字开头,由字母、数字、下划线等字符组成,最后一个字符可以是类型说明符。n 变量名中间不能有空格和小数点,变量名的长度不能超过255个字符。n 变量名不能用VB中的保留字。n 变量名不区分大小写,即ABC、AbC、aBC都被看成是同一个变量名。 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程212022-4-262022-4-262定义变量 n一般是先定义(声明)后使用
12、。n定义变量的目的就是为变量命名,同时由系统通过其类型为它分配存贮单元。n变量也可以不加任何定义而直接使用。n变量的定义分显式定义和隐式定义两种。 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程222022-4-262022-4-26显式定义n所谓显式定义,是指每个变量在使用前先定义。n显式定义语句的格式为:Dim As ,AsDim , 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程232022-4-262022-4-26隐式定义 nVB允许用户编程时可
13、以不加任何定义而直接使用变量,系统运行时再临时为变量分配存储空间,通常称这种方式为隐式定义。 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程242022-4-262022-4-263强制显示定义变量 n强制用户显示定义变量。n选择“工具”菜单的“选项”命令,打开“选项”对话框,然后选择“编辑器”选项卡下的“要求变量声明”复选框,再单击“确定”按钮即可。nOption Explicit 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程252022-4-2620
14、22-4-263.3 表达式和运算符 n表达式是数据之间运算关系的表达形式,由常量、变量、函数等数据和运算符组成。n3.3.1 算术运算符和算术表达式 n3.3.2 字符串运算符 n3.3.3 关系运算符和关系表达式 n3.3.4 逻辑运算符和逻辑表达式 n3.3.5 日期运算符 n3.3.6 运算符的优先级 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程262022-4-262022-4-263.3.1 算术运算符和算术表达式 优先级运 算运 算 符表达式例子1幂MN2取负-N3乘法、浮点除法*、/M*N、 M/N4整数除
15、法MN5取模(余数)ModM Mod N6加法、减法+、-M+N、 M-N目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程272022-4-262022-4-261幂运算 n幂运算用来计算乘方和方根。n例如:23 2的3次方,结果为8 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程282022-4-262022-4-262整数除法与浮点除法 -1n整数除法的操作数一般为整型值,结果为整型值。n如果操作数带有小数,系统先将操作数进行舍入处理,将其变为整型数或长
16、整型数,然后再进行整除运算,运算结果被截断为整型数或长整型数,不进行舍入处理。 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程292022-4-262022-4-262整数除法与浮点除法 -2n例如: 5/2 结果为2.552 结果为224.45 结果为624.65 结果为5目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程302022-4-262022-4-263取模运算 n取模运算用来求第1个操作数整除第2个操作数所得的余数,其结果的正负号始终与第1个操作
17、数的符号相同。n通常用来判断一个数是否能被另一个数整除。n例如: 7 Mod 3 结果为1 7 Mod -3 结果为1 -7 Mod 3 结果为-1 -7 Mod 3 结果为-1 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程312022-4-262022-4-264算术表达式 -1n算术表达式由算术运算符,数值型常量、变量、函数和括号组成,其运算结果为一数值。 n表达式的书写原则: 表达式中的所有操作数和运算符都必须在同一水平线上 。 括号必须成对出现,均使用圆括号 。目录目录Visual BasicVisual Basi
18、cVisual Basic程序设计教程程序设计教程程序设计教程322022-4-262022-4-264算术表达式 -2n算术运算符的优先级 当算术表达式中出现多个算术运算符时,按表3-3中运算符的优先级决定其运算顺序,幂运算的优先级最高,加、减运算的优先级最低。 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程332022-4-262022-4-264算术表达式 -3n算术运算中数据类型的转换 在算术运算中,如果操作数具有不同的数据精度,VB规定运算结果的数据类型采用精度高的数据类型。Integer long Single
19、Double Currency 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程342022-4-262022-4-263.3.2 字符串运算符 n字符串运算符有两个“”和“+”,用来连接两个或更多个字符串。n格式: 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程352022-4-262022-4-263.3.3 关系运算符和关系表达式-1 n关系运算符也称比较运算符,用来对两个相同类型的表达式进行比较,其结果是一个逻辑值,若关系成立,结果为True(真),
20、否则为False(假)。 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程362022-4-262022-4-263.3.3 关系运算符和关系表达式-2运 算 符含 义实 例结 果=等于3+8=15False大于bcdeabdeTrue abdeFalse=大于等于fg=abcTrue=2009False或不等于NewnewTrueLike字符窜匹配New like *ewTrueIs比较对象目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程372022-4-2
21、62022-4-263.3.4 逻辑运算符和逻辑表达式 n逻辑运算又称布尔运算,用逻辑运算符连接两个或多个关系表达式,构成逻辑表达式。其运算结果为逻辑型数据,即True(真)或False(假)。 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程382022-4-262022-4-26非(Not)运算 n进行取反运算。n例如:a=2 :b=6Not(ab) 结果为TrueNot 1 结果为0Not 0 结果为1目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程39
22、2022-4-262022-4-26与(And)运算 n两个表达式均为True,结果才为True,否则为False。 n例如:a=2 :b=6 (a3) 结果为True 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程402022-4-262022-4-26或(Or)运算 n两个表达式只要有一个为True,结果为True ,只有当两个都为False,结果才是False。n例如:a=2 :b=6 (a7) 结果为True目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设
23、计教程412022-4-262022-4-26异或(Xor)运算 n两个表达式同时为True或同时为False,结果为False,否则为True 。n例如:(25) 结果为True目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程422022-4-262022-4-26等价(Eqv)运算 n两个表达式同时为True或同时为False,结果为True,否则为False。n例如:(25) 结果为False 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程432022
24、-4-262022-4-26蕴含(Imp)运算 n当第1个表达式为True,第2个表达式为False时,结果为False。n例如:(25) 结果为False 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程442022-4-262022-4-263.3.5 日期运算符 n日期型数据只有加(+)和减(-)两个运算符。n两个日期型数据相减,结果是一个整型数据,即两个日期相差的天数。n日期型数据加上(或减去)一个整型数据,结果仍为一日期型数据。 目录目录Visual BasicVisual BasicVisual Basic程序设计
25、教程程序设计教程程序设计教程452022-4-262022-4-263.3.6 运算符的优先级 n各运算符的优先级为: 数值运算符; 字符串运算符; 关系运算符; 逻辑运算符。 n如果表达式中有函数和括号,则先做函数和括号内的表达式。 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程462022-4-262022-4-263.4 Visual Basic的常用函数 n3.4.1 算术函数 n3.4.2 字符串函数 n3.4.3 数据类型转换函数 n3.4.4 日期和时间函数 n3.4.5 测试函数 n3.4.6 格式函数For
26、mat 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程472022-4-262022-4-263.4.1 算术函数 函 数 格 式功 能Sin(X)返回X的正弦值Cos(X)返回X的余弦值Abs(X)返回X的绝对值Sgn(X)返回X的符号X 0返回1Sqr(X)返回X的平方根(X =0)Exp(X)返回e的X次方Rnd(X)产生0,1)之间的随机数目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程482022-4-262022-4-261随机函数 -1n随机函
27、数Rnd(x),产生一个0 , 1 )之间的Single型的随机数。n格式为: Rnd (expN) 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程492022-4-262022-4-261随机函数 -2n产生指定区间的随机数的方法为:0 , x )区间的随机浮点数:Rnd * x m , n )区间的随机浮点数:m + Rnd * (n m) i , j 区间的随机整数:Int(i + Rnd *(j i + 1)目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设
28、计教程502022-4-262022-4-262随机数语句 n当一个应用程序不断地重复使用随机函数Rnd,VB可能会提供相同的种子,即同一序列的随机数可能会反复出现,用随机数语句可以消除这种情况。n随机数语句的格式为: Randomize expN目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程512022-4-262022-4-263.4.2 字符串函数 函 数 格 式功 能Ltrim(字符串)删除“字符串”左边的空白字符Rtrim(字符串)删除“字符串”右边的空白字符Trim(字符串)删除“字符串”左右两边的空白字符Len
29、(字符串|变量名)返回字符串的长度Left(字符串,n)返回“字符串”的前n个字符Mid(字符串,m,n)从第m个字符开始,向后截取n个字符Right(字符串,n)返回“字符串”的最后n个字符String(n, |ASCII码)返回由“字符串”中首字符或“ASCII码”组成的n个相同的字符串Ucase(字符串)把“字符串”中的小写字母转换为大写字母Lcase(字符串)把“字符串”中的大写字母转换为小写字母Space(n)返回由n个空格组成的字符串InStr(m,c1,c2,n)在c1中从第m个字符开始找c2,省略m时从头开始找,返回第一次找到c2的开始位置,找不到为0。目录目录Visual B
30、asicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程522022-4-262022-4-261删除空白字符函数 n格式1:Ltrim(字符串)n格式2:Rtrim(字符串)n格式3:Trim(字符串)目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程532022-4-262022-4-262字符串长度测试函数 n格式:Len(字符串|变量名) n例如:s1=计算机 n一个英文字符或一个汉字都看做是一个字符,均占用2个字节的存储空间。 目录目录Visual BasicVisual Basic
31、Visual Basic程序设计教程程序设计教程程序设计教程542022-4-262022-4-263字符串截取函数-1 n格式1:Left(字符串,n)n格式2:Mid(字符串,m,n) n格式3:Right (字符串,n) 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程552022-4-262022-4-263字符串截取函数-2n例如:v=Good Luckv1= Left(v,4) v2= Right(v,4)v3= Mid(v,1,4)目录目录Visual BasicVisual BasicVisual Basic程
32、序设计教程程序设计教程程序设计教程562022-4-262022-4-264返回指定字符串函数 n格式:String(n,字符串|ASCII码) n例如:a=string(3,65) b=string(3,#) 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程572022-4-262022-4-265大小写字母转换函数 n格式1:Ucase(字符串)n格式2:Lcase(字符串)目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程582022-4-262022-4
33、-266空格函数 n格式:Space(n)其中:n例如:u=BBC+Space(2)+CDD 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程592022-4-262022-4-267字符串匹配函数 n格式:InStr(m,c1,c2,n) n例如:?InStr(2,asd,a,0) 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程602022-4-262022-4-263.4.3 数据类型转换函数 函 数 格 式功 能实 例结 果Asc(String)返回字
34、符串中第一个字符的ASCII码Asc(a)97Chr(X)将ASCII码转换成字符Chr(65)AInt(X)返回不大于自然数X的最大整数Int(-34.5)-35Cint(X)将X取整,小数部分舍入处理Cint(-34.51)-35Fix(X)将X取整Fix(-34.5)-34Str(X)将X的值换成字符串Str(-23.5)-23.5Val(String)将字符串换成数值Val(45EF)45目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程612022-4-262022-4-263.4.4 日期和时间函数 函 数 格 式功
35、 能Date()返回计算机系统当前日期(年-月-日)Day(Now)返回当前月中的日 (131)WeekDay(Now)返回当前星期(17)Month(Now)返回当前月份(112)Year(Now)返回当前年份(YYYY)Hour(Now)返回当前小时Minute(Now)返回当前分钟Second(Now)返回当前秒Now()返回系统日期和时间Time()返回系统时间目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程622022-4-262022-4-26例3-1(界面)n【例3-1】在窗体Form1上有文本框Text1、Te
36、xt2、Text3、 Text4、Text5和Text6,要求单击窗体时,在6个文本框Text1中分别显示当前系统的年、月、日、时、分和秒。如图所示。 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程632022-4-262022-4-26例3-1(语句)n代码如下:Private Sub Form_Click() Text1.Text = Year(Now) Text2.Text = Month(Now) Text3.Text = Day(Now) Text4.Text = Hour(Now) Text5.Text = Mi
37、nute(Now) Text6.Text = Second(Now)End Sub 目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程642022-4-262022-4-263.4.5 测试函数 函 数 格 式功 能返回值的类型IIf(E,z1,z2)若表达式E为True,返回表达式z1的值,否则返回表达式z2的值由z1、 z2的值决定IsNull(E)测试表达式是否不包含任何有效数据(Null)BooleanIsNumeric(E)测试表达式的值是否为数值型BooleanIsArray(V)测试变量是否为数组BooleanVa
38、rType(E)返回表达式的值类型对应的整数Integer目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程652022-4-262022-4-263.4.6 格式函数Format n格式函数Format可以将要输出数据以某种特定的格式输出,其返回值是字符串。nFormat函数的格式为: Format(表达式,格式字符串)目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程662022-4-262022-4-261.数值格式化 格式字符作 用 实 例结 果0按指定的
39、位数显示数字,不足处可前后补零format(23,000.0)023.0#数字前后不补零format(123,#.#)123.%数字乘以100同时在右边加上百分号format(0.5,0%)50%$在数字前加$format(23.45,$00.00)$23.45+在数字前加+format(23.45,+00.00)+23.45-在数字前加-format(23.45,-00.00)-23.45.加小数点format(2345,000.00)2345.00,价千分号format(2345.2,#,000.00)2,345.20E+用指数表示format(23.45,0.00E+#)2.35E+1E
40、-用指数表示format(0.2345,00.0E-#)23.5E-2目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程672022-4-262022-4-262.日期时间格式化 格式字符作 用 实 例结 果mm-dd-yy按月/日/年格式输出Format(date(),mm-dd-yy)03-17-09mm-dd-yyyy按月/日/年全称格式输出Format(date(),mm-dd-yyyy) 03-17-2009hh:mm:ss AM/PM12小时时钟,上午AM,下午PMFormat(Now, hh:mm:ss AM/PM
41、)12:02:30 PMhh:mm:ss a/p12小时时钟,上午a,下午pFormat(Now, hh:mm:ss a/p) 12:00:54 phh:mm:ss24小时时钟Format(Now, hh:mm:ss )12:07:10目录目录Visual BasicVisual BasicVisual Basic程序设计教程程序设计教程程序设计教程682022-4-262022-4-263.字符串格式化 格式字符作 用 实 例结 果将字符串中的字母转换成小写输出format(HELLO,将字符串中的字母转换成大写输出format(hello,)HELLO实际字符位数小于格式字符位数,字符串前加空格format(str,)str&实际字符位数小于格式字符位数,字符串前不加空格format(str,&)str