1 / 57

第三章 VB 语言基础

第三章 VB 语言基础. 3.1 数据类型 3.2 变量和常量 3.3 运算符和表达式 3.4 程序结构和编码规则 3.5 综合应用. 本章目录. 3.1 数据类型. 标识符 : 是为变量、常量、数据类型、过程、函数和类等定义用的名字。 VB 中命名规则如下: 以字母或汉字开头,后可跟汉字、字母、数字或下划线组成,长度小于等于 255 个字符; 不要使用 VB 中的关键字;. 3.1 数据类型. 本章目录. 1 、数值型. 1) 整数 定义:不带小数点和指数符号的数。 特点:数精确表示,但数范围有限。

morag
Download Presentation

第三章 VB 语言基础

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第三章 VB语言基础 3.1 数据类型 3.2 变量和常量 3.3 运算符和表达式 3.4 程序结构和编码规则 3.5 综合应用 本章目录

  2. 3.1 数据类型 • 标识符:是为变量、常量、数据类型、过程、函数和类等定义用的名字。VB中命名规则如下: • 以字母或汉字开头,后可跟汉字、字母、数字或下划线组成,长度小于等于255个字符; • 不要使用VB中的关键字;

  3. 3.1 数据类型 本章目录

  4. 1、数值型 1) 整数 • 定义:不带小数点和指数符号的数。 • 特点:数精确表示,但数范围有限。 • 类型:整型Integer或%(默认) 2字节 长整型Long或& 。 4字节 • 形式:±n[&] 例: 123、123%、123& 、+123 正确的整数 123.0 、1,230 错误

  5. 2)实数:4,8字节 • 定义:带小数点或指数符号的数。 • 特点:数据不精确表示,但数范围大。 • 类型:单精度 Single或!, 双精度Double或# 。 • 形式: 尾数 [ E | D 指数 ] • 其中: E表示单精度指数符号 、D表示双精度指数符号 尾数可以整数(必须要求指数)也可以小数 例: 123.45、 123.45!、0.12345E+3、 12345E-2 都是 单精度表示的同值实数 0.12345D+3 双精度表示的

  6. 3) 货币类型(Currency) 8字节 • 是定点实数或整数,用于货币计算。符号@ * * *……* * * * . * * * * 最多15位 最多4位 1234@, 3415.453@ 4) 字节类型(Byte) • 占一字节的无符号整数 (0-255)

  7. 2、字符串型数据(String) $ • 字符型:存放字符型数据,可以包括所有西文字符和汉字。VB中有定义和可变长两种表示。 • String * n 定长 • String 可变长 • 形式: “字符串”, 例: "abc" "ABC" "计算机" "12.34" "3+2" ""(空串) • 注意:如果字符串本身包括双引号,可用连续两个双引号表示。 • 例: 要打印以下字符串: "You must study hard", he said. 在程序中需要将该字符串表示成: " ""You must study hard"" , he said. "

  8. 3、逻辑型数据(Boolean)2字节 • 逻辑型数据只有两个值: • 真(True)和假(False) • 注意: • 当把数值型数据转换为逻辑型数据时, 0 转换为False,非0值转换为True。 • 当把逻辑型数据转换为数值型数据时, False转换为0,True转换为-1。

  9. 思考: • 下列各表达式运算显示结果是什么: ?6 < 8 ?6>8 ? 5+(6<8)-2 ? 5+(6>8)-2 true false 2 3

  10. 形式: #……#一般为:月/日/年 VB接受许多种日期时间格式 例: 下面的 Date/Time 值全部有效。 #3-6-93 13:20# #March 27,1993 1:20am# #Apr-2-93# #14 April 1993# #12/18/1999# 4、日期型数据(Date) 8字节

  11. 5、变体型(Variant) 根据需要分配长度 • 代表一种可变的数据类型。用于未经定义而用的变量 • 要测定变量中所存数值类型可用VarTYpe函数检测,根据返回值来确定是何数据类型 6、对象型(Object) 4字节 • 用来表示引用应用程序中的对象 • 控件对象 • OLE对象

  12. 3.2 变量和常量 3xy ' 数字开头 y - z ' 不允许出现减号 Wang Ping ' 不允许出现空格 Dim '  VB.NET的关键字 Cos '标准函数名 表达式: s=3.14*r*r 其中:r、s是变量,3.14是常量 • 变量 :是内存中保存信息(值)的内存区域,在程序运行中其存储的值可以改变。不同数据类型变量所分配的存储空间不同 1、变量名命名规则: • 必须以字母或汉字开头,由字母、汉字、数字或下划线组成,长度小于等于255个字符 • 不能使用VB中的关键字 • VB不区分变量名的大小写,一般变量名首字母用大写,其余用小写字母表示;常量全部用大写字母表示 非法变量名 本章目录

  13. 变量的命名规则 例:下列为非法变量名的是。 A、stud.no B. st_add C. Bool* D. mass_4 E. #12disk F. 924k 下列为合法变量名的是。 A、4*Dale B、Alpha C、LOOP D、PAπ E、A(A+B) F、C23A G、dim A C E F B F

  14. 2、变量声明 (1)用Dim语句显式声明变量 Dim 变量名 [As 类型] 或 Dim 变量名类型符 例 Dim iCount As integer , sAllsum As single 等价于 Dim iCount%, sAllsum! • As部分缺省,创建的变量为变体类型 • 注意:一条Dim语句可同时定义多个变量,但每个变量应有类型说明,否则为变体型 。 • 例如:Dim m,n As Integer, x,y As Single • 则创建了变体型变量m、x,整型变量n和单精度型变量y 表示整型

  15. 也可以用常用的类型说明符来定义: • 整型 : % • 长整型 : & • 单精度: ! • 双精度: # • 货币型: @ • 字符型: $

  16. 变量类型: 类型符 变量名 类型名 • 数值型变量 • Dim count as Integer或 dim count% • Dim lng count as long或 dim lng count& • Static Dimaas single 或static dima! • publicbas double 或 public b# • 字符串型变量 • Static Dim che as string或static dim che$ • Dim aa as string*5‘表示只接收5个字符的变量(长度固定) • 日期型变量 • Dim dat as date 赋值:dat=#10/29/98# • 日期变量可进行加减运算,但不能乘除

  17. 布尔型变量(逻辑变量) • 缺省值为false(0),结果两种状态true(-1)或false(0) • 进行逻辑运算:NOT、AND、OR、XOR • 对象型变量object • 利用它访问实际对象 • 变体型变量variant • 未具体指名类型的,如:dim bb • 或未声明就引用的变量 Private Sub Form_Click() Dim aa As String * 10 aa = "abcdefghijklmnopqrst" bb = "fkfkds" Print aa, bb bb = 567 Print bb End Sub Abcdefghij fkfkds 567

  18. 变量的数据类型 八进制、十六进制数 &O334 &H9Af 八进制、十六进制数 &O334&&H9Af& 其中:2/16的含义是2个字节,或16位,即1字节=8 位, 其他类推。

  19. 数值数据类型 • 标准数据类型

  20. (2) 隐式声明(默认) 不声明直接使用。其类型为 Variant 类型 为可变类型,易出错、浪费空间 (3) 强制显式声明 在模块的声明段中使用语句: Option Explicit 如果设置: 工具→选项→编辑器→要求变量声明,则在后续模块中自动插入 Option Explicit

  21. 例: Dim a as integer Dim a% Dim B as integer,stname as string,ab Dim B%,stname$ ,ab • 变量声明位置和作用范围 • 过程内部声明变量,只在该过程执行时存在 • 窗体模块、标准模块或类模块中声明变量,在模块中所有过程有效 • 带public关键字声明变量,该变量在整个应用程序中有效 • 带static关键字声明局部变量,过程运行结束,但值保留

  22. 常量 • 常量是在程序运行中不变的量,VB有三种常量: • 直接常量 • 字符串常量:用双引括起,例“asdfg”、”12345” • 逻辑常量:只有true 和False两个值 • 整数常量:有三种形式,如1234(十进制)、&H12A(十六进制,以&H开头)、&O123(八进制,以&O或&开头) • 长整常量:有三种形式,如:12 345 678(十进制)、&H12A&(十六进制,以&H开头,&结尾)、&O123&(八进制,以&O或&开头,以&结尾) • 单精度常量:有三种形式:如12.34 , 123! , 123.45E-5 • 双精度常量:有两种形式 如:12.34# , 123.45D-5 • 日期型常量:用一对# #括起,如:#12/27。0001# , #13:30:45# • 用户自定义常量(符号常量) 用户声明,便于程序阅读或修改 Const 符号常量名 [As 类型] = 表达式 例如: Const PI = 3.14159 • 省略 [AS 类型] ,常量的类型由表达式值的类型决定。 为使与变量名区分,一般常量名使用大写字母。 • 系统常量 系统提供许多内部常量 • 系统定义常量位于对象库中,可通过“对象浏览器”查看。 例:vbNormal vbMinimized、vbMaximized等 注意:避免在不同模块中定义常量时出现循环定义 • 例如:vbCrLf 回车/换行组合符

  23. 3.3 运算符和表达式 • 操作数 • 操作数是运算对象 • 可以是常数、变量、函数 或 表达式 • 运算符 • 表示运算方法的符号,由简单符号表示 • 表达式 • 由运算符连接操作数形成的运算字符序列 • 必须“一行”书写,必要时加括号 单对象运算称单目运算,两对象运算称双目运算

  24. 运算符及优先级 算术运算符 ^ - * \ / Mod + -高到低 字符运算符 + &同级 关系运算符 = > >= < <= <> Is Like 同级 逻辑运算符 Not And Or高到低 由高到低 3.3 运算符和表达式 • 运算符和表达式 : 结果类型 算术运算符与算术表达式 数值 字符串运算符与字符串表达式 字符串 关系运算符与关系表达式 逻辑 逻辑运算符与逻辑表达式 逻辑

  25. 1、算术运算符 • 注意:对算术运算符两边的操作数应是数值型,若是数字字符或逻辑型,则自动转换成数值类型后再运算。 • 例如: • 30-True结果是31,逻辑量True转为数值-1,False转为数值0 • False + 10 + "4"结果是14 整数相余 例:5+10 mod 10 \ 9 / 3+2 ^2 结果:10 3 4 3 1 10

  26. 1. 算术运算符与算术表达式 • 说明: (1)运算结果的数据类型由精度低的数据类型向精度高的类型转换。 (2)整除(\ )运算时,被除数先四舍五入为整数然后相除,结果为整数或长整数。 (3)Mod运算的结果是整数。 (4)在VB中用“\”表示整除,而在其他语言可能不一样,用其他的符号。 例: 25.36\7.65 10\3+2 25.36 mod 7.6 3 5 1

  27. 2、字符串运算符与字符串表达式 • 字符串运算符:& 、+ 字符串连接 • " 123 " + " 456 " 结果 " 123456 " • “ 123 ”&“ 456 ”结果 “123456 ” • “ABC”+”123”结果为”ABC123” • 123 & 456 结果为”123456” (仅VB中可用) • 区别:+两边必须是字符串,& 不一定 • 例如: • 操作 结果 操作 结果 • "ab" & 123 "ab123 " "ab"+ 12 出错 • "12" & 456 " 12456 " "12" + 456 468 • "12" & True "12True" "12" + True 11

  28. 2、字符串运算符与字符串表达式 • 例如: "abcdef" & 12345 ' 结果为 "abcdef12345 " "abcdef " + 12345 ' 出错 "123" & 456 ' 结果为" 123456 " "123" + 456 ‘结果为579 100+"100"& 100 注意: "123 " + True ' 结果为122 True转换为数值-1,False转换为数值0 200100

  29. 2、关系运算符 关系运算符是双目运算符,作用是对两个操作数进行大小比较,若关系成立,则返回True,否则返回False。操作数可以是数值型、字符型。 本章目录

  30. 关系运算符与关系表达式 • 运算规则 1) 运算符前后的两个操作数都是数值型,则大小比较 2) 操作数都是字符型,则按ASCII码值从左到右比较 3) 两个操作数的类型一般情况下最好一致 4) 关系运算符的优先级相同,运算时从左到右依次进行

  31. 关系运算符与关系表达式 关系表达式 例如: (3>1)=(4<2) 0=(4<2) 18.5<15.4 false true false

  32. Eqv 等价 4 两个操作数相同时,结果才为真 T Eqv T T T Eqv F F 3、逻辑运算符 逻辑运算符除Not是单目运算符外,其余都是双目运算符,作用是将操作数进行逻辑运算,结果是逻辑值True或False。 true (15>23) or (6>12) true 例: (3>8) Eqv (10>20) 例:(2>3 )and (3 > 4) false

  33. A B A And B A Or B NotA True True True True False True False False True False False True False True True False False False False True 逻辑运算符真值表 设变量X=5,下列表达式的值为True的是: A.(X>=5)And(x<=8)B. (X<=5)And(X>=8) C.(X>=5)Or(X<=8)D. (X>=5)Xor(X>=8) E. Not(x<>5) A C D E

  34. 逻辑运算符与逻辑表达式 –例 • 计算下面表达式的值: 1) (15>3) And (6>2) 结果为True 2) (7>3) Or (2>6) 结果为True 3) Not (2>6) And (6>2) 结果为True 15 or 6 15 Xor 6 15 and 6 15 9 6

  35. 日期表达式 • 日期运算符 + : - : • 日期表达式 日期-日期:#09/01/2002# - #08/01/2002# 日期+天数:#09/01/2002# + 100 日期-天数:#09/01/2002# - 100

  36. 表达式小结 1. 组成 变量、常量、函数、运算符和圆括号。 2.书写规则 (1) 运算符不能相邻。例a+ -b是错误的。 (2) 乘号不能省略。例x 乘以y 应写成:x*y。 (3) 括号必须成对出现,均使用圆括号。 (4) 表达式从左到右在同一基准上书写,无高低、大小。 3. 不同数据类型的转换 运算结果的数据类型向精度高的数据类型靠。 Integer<Long<Single<Double<Currency 4. 优先级 算术运算符>=字符运算符>关系运算符>逻辑运算

  37. 【例】用一个逻辑表达式表示满足闰年的条件 闰年的条件是: 1) 能被4整除,但不能被100整除的年份都是闰年 2) 能被400整除的年份是闰年 用Y表示一个年份,则有如下的判断条件: Y Mod 4=0 And Y Mod 100 <>0 Or Y Mod 400=0

  38. 表达式书写举例 例逻辑表达式书写,选拔优秀生的条件为:年龄(Age)小于19岁,三门课总分(Total)高于285分,其中有一门为100分,如果其表达式写为: Age<19 And Total>285 And Mark1=100 Or Mark2 =100 Or Mark3=100 有何问题?该如何修改? ( )

  39. 3.3.3 常用函数 VB函数: 内部函数和用户自定义函数 数学函数 转换函数 字符串函数 日期函数 格式输出函数 内部函数 调用函数的形式: 函数名[(参数列表)] 本章目录

  40. 函数名 含义 实例 结果 Abs(N) 取绝对值 Abs(-3.5) 3.5 Cos(N) 余弦函数 Cos(0) 1 Exp(N) en Exp(3) 20.086 Fix(N) 取整 Fix(-3.5) Fix(3.9) -3 3 Log(N) 自然对数 Log(10) 2.3 Int(N) 取小于或等于 N的最大整数 Int(-3.5) Int(3.5) -4 3 数学函数 注意:Int (x)函数是取小于x的最大整数 Fix(x)函数是取x的整数部分 本章目录

  41. 函数名 含义 实例 结果 Rnd[(N)] 产生随机数 Rnd [0,1)之间的数 Round(N) 四舍五入取整 Round(-3.5) Round(3.5) -4 4 Sin(N) 正弦函数 Sin(0) 0 Sgn(N) 符号函数 Sgn(-3.5) -1 Sqr(N) 平方根 Sqr(9) 3 Tan(N) 正切函数 Tan(0) 0 数学函数 Rnd函数返回0和1(包括0但不包括1)之间的双精度随机数. 每次运行时,要产生不同序列的随机数,先执行Randomize 语句。产生a~b的之间的随机整数:Int(Rnd *(b-a)+a)

  42. (1) -3 ÷6+8 × INT24.7 (2)[(x+y )- z ]×80 - 5(C+D) (3)cos x(sin x+l)(4)(5) e2+2 • 写出下列数学表达式的VB表达式 a*b*c*d/e/f/g 或a*b*c*d/(e*f*g) sin(45*3.14/180)+(exp(10)+log(10))/sqr(x+y+1) ((x+y)-z)*80-5*(C+D) (-3)/6+8*Int(24.7) exp(2)+2 cos(x)*(sin(x)+1) y^2+n/m

  43. 2 例:如果x是一个正实数,下列VB表达式将对x的第位小数四舍五入。 0.1 * Int (10*(x+0.05)) 例:如果x是一个正实数,下列VB表达式将对x的第位小数四舍五入。 0.001* Int (1000*(x+0.0005)) 例:在VB中,表达式Int (9.555*100+0.5)/100的值为。 例:函数表达式Sgn(Sqr(64))的值为 4 9.56 1 Sgn是符号函数,如sgn(-45)=-1

  44. 字符串函数

  45. 字符串函数 本章目录

  46. 例:在VB中,表达式MID(TRIM(”ABCDE ”),3,2)的值为。 例:在VB中,语句:a=123+Mid(“123456”, 3,2 )执行后,a的值是。 哪若是:a=123&Mid(“123456”, 3,2 ),则答案是? 例:函数表达式Mid$(“Visual Basic” ,1,6)的值为 CD 157 123 34 Visual

  47. 函数名 说明 实例 Date[()] 返回系统日期 Date Day(C|N) 返回日期代号(1~31) Day("2003,05,01") Hour(C|N) 返回小时(0~24) Hour(#1:12:56PM#) Minute(C|N) 返回分钟(0~59) Minute(#1:12:56PM#) Month(C|N) 返回月份代号(1~12) Month("2003,05,01") Now 返回系统日期和时间 Now Second(C|N) 返回秒(0~59) Second(#1:12:56PM#) Time[()] 返回系统时间 Time Year(C|N) 返回年代号(1753~2078) Year(365) 日期函数 例 计算从当前日期到2007年6月30日有多少天?表达式为: DateDiff("d", Now, #6/30/2007#)

  48. 函数名 功能 实例 结果 Asc(C) 字符转换成ASCII码值 Asc("A") 65 CDate 转换成日期型 CDate("2003/11/13") 2003-11-13 Chr(N) ASCII码值转换成字符 Chr$(65) "A" Hex(N) 十进制转换成十六进制 Hex(100) 64 Lcase$(C) 大写字母转为小写字母 Lcase$("ABC") "abc" Oct (N) 十进制转换成八进制 Oct$(100) "144" Str(N) 数值转换为字符串 Str$(123.45) "123.45" Ucase(C) 小写字母转为大写字母 Ucase$("abc") "ABC" Val(C) 数字字符串转换为数值 Val("123AB") 123 转换函数

  49. 说明 1.Chr和ASC函数互为反函数,即Chr(Asc(C))、Asc(Chr(N)的结果都是C或N(原来自变量的值)。 • 如表达式Chr(Asc(7))7 Chr(Asc(122))1 Asc(Chr(122) 122 2、Str函数将非负数值转换成字符型值后,会在转换后的字符串左边增加空格即数值的符号位。如: str(124)”□124”非”124” 3.Val将数字字符串转换为数值,当字符串中出现数值类型规定的数字字符以外的字符时,则停止转换,函数所返回的是停止转换前的结果。 如:Val(“-123.43cy”-123.43 876554 例:A$="87654321" 求:Val(left$(A$,4)+Mid$(A$,4,2)) 例: 123+2 mod l0\7+Asc("A") 188 本章目录

More Related