1、第3章 VB程序设计语言基础 2022-9-282022-9-28第3章 VB程序设计语言基础 n本章将介绍构成VB应用程序的基本元素以及使用方法,主要包括数据类型、表达式和运算符和常用函数等内容。3.1 数据类型 3.2 常量与变量 3.3 表达式和运算符 3.4 Visual Basic的常用函数 2022-9-282022-9-283.1 数据类型 n数据不仅仅是数值,凡是能够输入到计算机中、被计算机识别并加工处理的符号的集合称之为数据。数值、文字、字符、图形、图像和声音等都是数据。n数据既是计算机程序处理的对象,也是运算产生的结果。n数据按其构造、处理方式、用途及基本属性,可分为若干不
2、同的类型。2022-9-282022-9-281数值型数据 n整型数(Integer)n长整型数(Long)n单精度浮点数(Single)n双精度浮点数(Double)n货币型数(Currency)n字节型数(Byte)2022-9-282022-9-282字符型数据(String)n用双引号括起来的一串字符。n一个西文字符占1个字节,一个汉字或全角字符占2个字节。nVB中字符串分两种:定长字符串和变长字符串。n例如:“123”、“Visual Basic”、北京奥运、(空字符串)2022-9-282022-9-283日期型数据 n日期型数据表示由年、月、日组成的日期信息或由时、分、秒组成的时
3、间信息。n日期型数据占8个字节内存。n日期型数据的书写格式为mm/dd/yyyy或 mm-dd-yyyy,或者是其他可以辨认的文本日期。2022-9-282022-9-284逻辑型数据 n逻辑型数据也称为布尔型数据,在内存中占2个字节。n逻辑型数据取值只有两种:True(真)和False(假)。2022-9-282022-9-285变体型数据 n变体型数据是一种可变的数据类型,它可以表示多种类型的数据,包括数值、字符串、日期/时间等。2022-9-282022-9-286对象型数据 n对象型数据用来表示图形、OLE对象或其他对象,用4个字节存储。2022-9-282022-9-283.2 常量
4、与变量 n3.2.1 常量 n3.2.2 变量 2022-9-282022-9-283.2.1 常量n常量是指在程序中事先设置、运行过程中数值保持不变的数据。VB中常量分直接常量和符号常量两种形式。2022-9-282022-9-281直接常量-1 n字符串常量 字符串常量就是用双引号括起来的一串字符。例如:“date”,“#”,“75.25”等。n数值常量 数值常量有四种表示形式:整型数、长整型数、货币型数、浮点数。2022-9-282022-9-281直接常量-2n逻辑(布尔)常量 逻辑常量只有True和False两个值。将逻辑常量转换成整形数时True为-1,False为0;而数值型数据
5、转换成逻辑常量时非零为True,零为False。n日期常量日期型常量的表示方法是用两个“#”号把表示日期和时间的值括起来。2022-9-282022-9-281直接常量-3n如果需要特别指明一个常量的类型,可以在常数后面加上类型说明符,如表所示。类型符数据类型%整型&长整型!单精度浮点数#双精度浮点数货币型字符串型2022-9-282022-9-282符号常量 n符号常量是指用事先定义的符号(即常量名)代表具体的常量,通常用来代替数值或字符串。n符号常量又分两种:系统常量和用户自定义常量。2022-9-282022-9-28系统常量 n系统常量是VB提供的预定义常量,可以在程序中直接使用。n预
6、定义常量又称内部常量,可与应用程序的对象、方法和属性一起使用。n内部常量以 vb打头,例如:vbOK,vbYesNOCancel等。2022-9-282022-9-28用户自定义常量-1nVB允许用户创建自己的符号常量,称之为用户定义符号常量。n用户定义符号常量使用Const语句来给常量分配名字、值和类型。n声明(定义)常量的语法为:Const As=2022-9-282022-9-28用户自定义常量-2n例如:Const PI#=3.141592653Const Min=256 Max=999,Const abc!=168.82022-9-282022-9-283.2.2 变量 n变量是指在
7、程序运行过程中,取值可以改变的数据。nVB有两大类型变量:属性变量和内存(声明)变量。2022-9-282022-9-281变量的命名规则 n 变量名必须以字母或汉字开头,由字母、数字、下划线等字符组成,最后一个字符可以是类型说明符。n 变量名中间不能有空格和小数点,变量名的长度不能超过255个字符。n 变量名不能用VB中的保留字。n 变量名不区分大小写,即ABC、AbC、aBC都被看成是同一个变量名。2022-9-282022-9-282定义变量 n一般是先定义(声明)后使用。n定义变量的目的就是为变量命名,同时由系统通过其类型为它分配存贮单元。n变量也可以不加任何定义而直接使用。n变量的定
8、义分显式定义和隐式定义两种。2022-9-282022-9-28显式定义n所谓显式定义,是指每个变量在使用前先定义。n显式定义语句的格式为:Dim As,AsDim ,2022-9-282022-9-28隐式定义 nVB允许用户编程时可以不加任何定义而直接使用变量,系统运行时再临时为变量分配存储空间,通常称这种方式为隐式定义。2022-9-282022-9-283强制显示定义变量 n强制用户显示定义变量。n选择“工具”菜单的“选项”命令,打开“选项”对话框,然后选择“编辑器”选项卡下的“要求变量声明”复选框,再单击“确定”按钮即可。nOption Explicit 2022-9-282022-
9、9-283.3 表达式和运算符 n表达式是数据之间运算关系的表达形式,由常量、变量、函数等数据和运算符组成。n3.3.1 算术运算符和算术表达式 n3.3.2 字符串运算符 n3.3.3 关系运算符和关系表达式 n3.3.4 逻辑运算符和逻辑表达式 n3.3.5 日期运算符 n3.3.6 运算符的优先级 2022-9-282022-9-283.3.1 算术运算符和算术表达式 优先级运 算运 算 符表达式例子1幂MN2取负-N3乘法、浮点除法*、/M*N、M/N4整数除法MN5取模(余数)ModM Mod N6加法、减法+、-M+N、M-N2022-9-282022-9-281幂运算 n幂运算用
10、来计算乘方和方根。n例如:23 2的3次方,结果为8 2022-9-282022-9-282整数除法与浮点除法-1n整数除法的操作数一般为整型值,结果为整型值。n如果操作数带有小数,系统先将操作数进行舍入处理,将其变为整型数或长整型数,然后再进行整除运算,运算结果被截断为整型数或长整型数,不进行舍入处理。2022-9-282022-9-282整数除法与浮点除法-2n例如:5/2 结果为2.552 结果为224.45 结果为624.65 结果为52022-9-282022-9-283取模运算 n取模运算用来求第1个操作数整除第2个操作数所得的余数,其结果的正负号始终与第1个操作数的符号相同。n通
11、常用来判断一个数是否能被另一个数整除。n例如:7 Mod 3 结果为1 7 Mod-3 结果为1 -7 Mod 3 结果为-1 -7 Mod 3 结果为-1 2022-9-282022-9-284算术表达式-1n算术表达式由算术运算符,数值型常量、变量、函数和括号组成,其运算结果为一数值。n表达式的书写原则:表达式中的所有操作数和运算符都必须在同一水平线上。括号必须成对出现,均使用圆括号。2022-9-282022-9-284算术表达式-2n算术运算符的优先级 当算术表达式中出现多个算术运算符时,按表3-3中运算符的优先级决定其运算顺序,幂运算的优先级最高,加、减运算的优先级最低。2022-9
12、-282022-9-284算术表达式-3n算术运算中数据类型的转换 在算术运算中,如果操作数具有不同的数据精度,VB规定运算结果的数据类型采用精度高的数据类型。Integer long Single Double Currency 2022-9-282022-9-283.3.2 字符串运算符 n字符串运算符有两个“”和“+”,用来连接两个或更多个字符串。n格式:2022-9-282022-9-283.3.3 关系运算符和关系表达式-1 n关系运算符也称比较运算符,用来对两个相同类型的表达式进行比较,其结果是一个逻辑值,若关系成立,结果为True(真),否则为False(假)。2022-9-28
13、2022-9-283.3.3 关系运算符和关系表达式-2运 算 符含 义实 例结 果=等于3+8=15False大于bcdeabdeTrue abdeFalse=大于等于fg=abcTrue=2009False或不等于NewnewTrueLike字符窜匹配New like*ewTrueIs比较对象2022-9-282022-9-283.3.4 逻辑运算符和逻辑表达式 n逻辑运算又称布尔运算,用逻辑运算符连接两个或多个关系表达式,构成逻辑表达式。其运算结果为逻辑型数据,即True(真)或False(假)。2022-9-282022-9-28非(Not)运算 n进行取反运算。n例如:a=2:b=6
14、Not(ab)结果为TrueNot 1 结果为0Not 0 结果为12022-9-282022-9-28与(And)运算 n两个表达式均为True,结果才为True,否则为False。n例如:a=2:b=6 (a3)结果为True 2022-9-282022-9-28或(Or)运算 n两个表达式只要有一个为True,结果为True,只有当两个都为False,结果才是False。n例如:a=2:b=6 (a7)结果为True2022-9-282022-9-28异或(Xor)运算 n两个表达式同时为True或同时为False,结果为False,否则为True。n例如:(25)结果为True2022
15、-9-282022-9-28等价(Eqv)运算 n两个表达式同时为True或同时为False,结果为True,否则为False。n例如:(25)结果为False 2022-9-282022-9-28蕴含(Imp)运算 n当第1个表达式为True,第2个表达式为False时,结果为False。n例如:(25)结果为False 2022-9-282022-9-283.3.5 日期运算符 n日期型数据只有加(+)和减(-)两个运算符。n两个日期型数据相减,结果是一个整型数据,即两个日期相差的天数。n日期型数据加上(或减去)一个整型数据,结果仍为一日期型数据。2022-9-282022-9-283.3
16、.6 运算符的优先级 n各运算符的优先级为:数值运算符;字符串运算符;关系运算符;逻辑运算符。n如果表达式中有函数和括号,则先做函数和括号内的表达式。2022-9-282022-9-283.4 Visual Basic的常用函数 n3.4.1 算术函数 n3.4.2 字符串函数 n3.4.3 数据类型转换函数 n3.4.4 日期和时间函数 n3.4.5 测试函数 n3.4.6 格式函数Format 2022-9-282022-9-283.4.1 算术函数 函 数 格 式功 能Sin(X)返回X的正弦值Cos(X)返回X的余弦值Abs(X)返回X的绝对值Sgn(X)返回X的符号X 0返回1Sqr
17、(X)返回X的平方根(X=0)Exp(X)返回e的X次方Rnd(X)产生0,1)之间的随机数2022-9-282022-9-281随机函数-1n随机函数Rnd(x),产生一个0,1)之间的Single型的随机数。n格式为:Rnd(expN)2022-9-282022-9-281随机函数-2n产生指定区间的随机数的方法为:0,x)区间的随机浮点数:Rnd*x m,n)区间的随机浮点数:m+Rnd*(n m)i,j 区间的随机整数:Int(i+Rnd*(j i+1)2022-9-282022-9-282随机数语句 n当一个应用程序不断地重复使用随机函数Rnd,VB可能会提供相同的种子,即同一序列的
18、随机数可能会反复出现,用随机数语句可以消除这种情况。n随机数语句的格式为:Randomize expN2022-9-282022-9-283.4.2 字符串函数 函 数 格 式功 能Ltrim(字符串)删除“字符串”左边的空白字符Rtrim(字符串)删除“字符串”右边的空白字符Trim(字符串)删除“字符串”左右两边的空白字符Len(字符串|变量名)返回字符串的长度Left(字符串,n)返回“字符串”的前n个字符Mid(字符串,m,n)从第m个字符开始,向后截取n个字符Right(字符串,n)返回“字符串”的最后n个字符String(n,|ASCII码)返回由“字符串”中首字符或“ASCII码
19、”组成的n个相同的字符串Ucase(字符串)把“字符串”中的小写字母转换为大写字母Lcase(字符串)把“字符串”中的大写字母转换为小写字母Space(n)返回由n个空格组成的字符串InStr(m,c1,c2,n)在c1中从第m个字符开始找c2,省略m时从头开始找,返回第一次找到c2的开始位置,找不到为0。2022-9-282022-9-281删除空白字符函数 n格式1:Ltrim(字符串)n格式2:Rtrim(字符串)n格式3:Trim(字符串)2022-9-282022-9-282字符串长度测试函数 n格式:Len(字符串|变量名)n例如:s1=计算机 n一个英文字符或一个汉字都看做是一个
20、字符,均占用2个字节的存储空间。2022-9-282022-9-283字符串截取函数-1 n格式1:Left(字符串,n)n格式2:Mid(字符串,m,n)n格式3:Right(字符串,n)2022-9-282022-9-283字符串截取函数-2n例如:v=Good Luckv1=Left(v,4)v2=Right(v,4)v3=Mid(v,1,4)2022-9-282022-9-284返回指定字符串函数 n格式:String(n,字符串|ASCII码)n例如:a=string(3,65)b=string(3,#)2022-9-282022-9-285大小写字母转换函数 n格式1:Ucase(
21、字符串)n格式2:Lcase(字符串)2022-9-282022-9-286空格函数 n格式:Space(n)其中:n例如:u=BBC+Space(2)+CDD 2022-9-282022-9-287字符串匹配函数 n格式:InStr(m,c1,c2,n)n例如:?InStr(2,asd,a,0)2022-9-282022-9-283.4.3 数据类型转换函数 函 数 格 式功 能实 例结 果Asc(String)返回字符串中第一个字符的ASCII码Asc(a)97Chr(X)将ASCII码转换成字符Chr(65)AInt(X)返回不大于自然数X的最大整数Int(-34.5)-35Cint(X
22、)将X取整,小数部分舍入处理Cint(-34.51)-35Fix(X)将X取整Fix(-34.5)-34Str(X)将X的值换成字符串Str(-23.5)-23.5Val(String)将字符串换成数值Val(45EF)452022-9-282022-9-283.4.4 日期和时间函数 函 数 格 式功 能Date()返回计算机系统当前日期(年-月-日)Day(Now)返回当前月中的日(131)WeekDay(Now)返回当前星期(17)Month(Now)返回当前月份(112)Year(Now)返回当前年份(YYYY)Hour(Now)返回当前小时Minute(Now)返回当前分钟Secon
23、d(Now)返回当前秒Now()返回系统日期和时间Time()返回系统时间2022-9-282022-9-28例3-1(界面)n【例3-1】在窗体Form1上有文本框Text1、Text2、Text3、Text4、Text5和Text6,要求单击窗体时,在6个文本框Text1中分别显示当前系统的年、月、日、时、分和秒。如图所示。2022-9-282022-9-28例3-1(语句)n代码如下:Private Sub Form_Click()Text1.Text=Year(Now)Text2.Text=Month(Now)Text3.Text=Day(Now)Text4.Text=Hour(Now
24、)Text5.Text=Minute(Now)Text6.Text=Second(Now)End Sub 2022-9-282022-9-283.4.5 测试函数 函 数 格 式功 能返回值的类型IIf(E,z1,z2)若表达式E为True,返回表达式z1的值,否则返回表达式z2的值由z1、z2的值决定IsNull(E)测试表达式是否不包含任何有效数据(Null)BooleanIsNumeric(E)测试表达式的值是否为数值型BooleanIsArray(V)测试变量是否为数组BooleanVarType(E)返回表达式的值类型对应的整数Integer2022-9-282022-9-283.4
25、.6 格式函数Format n格式函数Format可以将要输出数据以某种特定的格式输出,其返回值是字符串。nFormat函数的格式为:Format(表达式,格式字符串)2022-9-282022-9-281.数值格式化 格式字符作 用 实 例结 果0按指定的位数显示数字,不足处可前后补零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-在数字前加-
26、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-用指数表示format(0.2345,00.0E-#)23.5E-22022-9-282022-9-282.日期时间格式化 格式字符作 用 实 例结 果mm-dd-yy按月/日/年格式输出Format(date(),mm-dd-yy)03-17-09mm-dd-yyyy按月/日/年全称格式输出Format(date(),mm-dd-yyy
27、y)03-17-2009hh:mm:ss AM/PM12小时时钟,上午AM,下午PMFormat(Now,hh:mm:ss AM/PM)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:102022-9-282022-9-283.字符串格式化 格式字符作 用 实 例结 果将字符串中的字母转换成小写输出format(HELLO,将字符串中的字母转换成大写输出format(hello,)HELLO实际字符位数小于格式字符位数,字符串前加空格format(str,)str&实际字符位数小于格式字符位数,字符串前不加空格format(str,&)str2022-9-282022-9-28
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。