1 / 61

第二章 VB 程序设计基础

第二章 VB 程序设计基础. 2.1 数据类型 2.2 常量和变量 2.3 变量的作用域 2.4 常用的内部函数 2.5 Inputbox 和 Msgbox 函数 2.6 运算符和表达式. 2.1 数据类型--基本数据类型. 字符串:通常放在 " " 中间 如: " hello " ; " 程序设计 " 等 双引号中间没有字符时,称为空字符串 字符串可以是定长的或变长的,定长的字符串不能超过65535个字符,变长的可以有大约21亿个字符. 2.1 数据类型--基本数据类型. 数值:分为整数和浮点数两类

holleb
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程序设计基础 • 2.1 数据类型 • 2.2 常量和变量 • 2.3 变量的作用域 • 2.4 常用的内部函数 • 2.5 Inputbox和Msgbox函数 • 2.6 运算符和表达式

  2. 2.1 数据类型--基本数据类型 • 字符串:通常放在" "中间如: "hello " ; "程序设计"等双引号中间没有字符时,称为空字符串 • 字符串可以是定长的或变长的,定长的字符串不能超过65535个字符,变长的可以有大约21亿个字符

  3. 2.1 数据类型--基本数据类型 • 数值:分为整数和浮点数两类 • 整数:不带小数点和指数符号的数整型(integer):占用两个字节; 范围是:-32768~32767长整形(long):占用4个字节; 范围是:-2147483648~2147483647

  4. 2.1 数据类型--基本数据类型 • 浮点数:是带有小数部分的数值。也叫 做实型或实数 • 由3部分组成:符号、尾数、指数 如:-12.45E3;3.65D6 • 单精度(Single):占用4个字节;可以精确 到7位十进制数 • 双精度(Double):占用8个字节;可以精确 到15或16位

  5. 2.1 数据类型--基本数据类型 • 货币(Currency):占用8个字节;精确到小数点后4位;其中小数点是固定的,所以称为定点数。 • 取值范围:-922337103685477.5808 到922337103685477.5807

  6. 2.1 数据类型--基本数据类型 • 变体数据:是一种可变的数据类型,可以表示任何值。 • 字节(Byte):是一种数值,范围是0~255 • 布尔(Boolean):逻辑值true或false • 日期(Date):mm/dd/yyyy 或mm-dd-yyyy范围:100年1月1日到9999年12月31日 文本日期:#January 1 , 2003#

  7. 2.1.2 用户定义的数据类型 Type 数据类型名 数据类型元素名 As 类型名 …… End Type 如:Type rec Ryear as Integer Rmonth as String*3 Rday as Integer End Type

  8. 2.1.3 枚举类型 • [public | private ] Enum 类型名 成员名[=常数表达式]……End Enum

  9. 2.1.3 枚举类型 Public Enum Days Sunday Monday Tuesday Wednesday Thursday Friday Saturday = 1 End Enum

  10. DIM A AS DOUBLE • A=23 • DIM B AS DAYS • B=SUNDAY

  11. 2.2 常量和变量—2.2.1 常量 • 常量分为:文字常量、符号常量 • 文字常量:1、字符串: "hello " 2、数值:整型、长整型、货币、浮点数 整型:十六进制:&h23a八 进 制:&o27

  12. 2.2.1 常量 • VB6.0能自动判断常量类型。例如,在默认情况下,VB6.0将选择需要内存容量最小的表示方法,值3.14通常被作为单精度数处理。为了显式地指明常数的类型,可以在常数后面加上类型说明符。这些说明符分别为: %:整型; &:长整型; !:单精度浮点数; #:双精度浮点数; @:货币型; $:字符串型。 • 字节、布尔、日期、对象及变体类型没有类型说明符。

  13. 2.2.1 常量 • 符号常量在VB6.0中,可以定义符号常量,用来代替数值或字符串。一般格式为:Const 常量名=表达式 [,常量名=表达式] 如:Const Maxchars&=254, Maxbue=Maxchars+1

  14. 2.2.2 变量 • 数值存入内存后,必须用某种方式访问它,才能执行指定的操作。在VB中可以用名字表示内存位置,这样就能访问内存中的数据。一个有名称的内存位置称为变量(Variable)。 • 和其他语言一样,VB6.0也用变量来储存数据值。每个变量都有一个名字和相应的数据类型,通过名字来引用一个变量,而数据类型则决定了该变量的储存方式。

  15. 2.2.2 变量 内存空间 变量A 10 Dim a As IntegerA=10 变量的数据类型决定了该变量能存储什么类型的数据 例如: Dim a As Integer a= "hello" 是错误的写法

  16. 1、变量的命名规则 (1)名字只能由字母、数字和下划线组成; (2)名字的第一个字符必须是英文字母,最后一个 字符可以是类型说明符; (3)名字的有效字符为255个; (4)不能用Visual Basic的保留字作变量名,但可 以把保留字嵌入变量名中;同时,变量名也不 能是末尾带有类型说明符的保留字。例如,变 量Print是非法的,而变量Print_Number是合 法的。 VB不区分变量名和其他名字中字母的大小写,Hello ,HELLO ,hello指的是同一个名字。

  17. 2、变量的类型和定义 • 任何一个变量都属于一定的数据类型 • 规定一个变量类型的方式:1、用类型说明符放在变量名的尾部 如:a#;Lname$;total%等2、定义变量时指定其类型 如:Dim a As Integer

  18. 2、变量的类型和定义 • 定义变量中应该注意:1、如果一个变量未经定义就在程序中使 用,则该变量被当做变体类型变量。 如:a=10 a= "hello" 是合法的 但:Dim a As Integer a = 10 a = "hello"是不合法的

  19. 2、变量的类型和定义 • 定义变量中应该注意:2、在实际应用中,应该根据需要设置变 量的类型。 如:能使用整型变量就不要使用长整型3、用Dim a! 定义了一个整型变量a,则a=10和a!=10都是合法的

  20. 3、记录类型变量 • 例如:Private Type Demo num As Double stra As String*5 End Type则 Dim a As Demo 能够把a定义为Demo类型的变量可以这样使用:a.num=2.35 a.stra = "hello"

  21. 2.2.3 变体类型变量 • 1、变体类型变量的定义dim a as variant dim a • 变体类型的变量相当灵活a= "100" a=100a=a-10 a=a & "hello" • 随着赋值的不同a的类型不断的变化

  22. 2.2.3 变体类型变量 • 检测变体数据的类型b = VarType(a)如果得到的b为2则说明变量a为整型

  23. 2.2.3 变体类型变量 • 变体类型变量中的数值variant变量存放数值时,系统尽量以最紧凑的方式存储。如:a=10 则 a为整型a=32769 则 a为长整型如果需要用指定的类型来存储数值则必须使用类型转换函数如:a=10 b=csng(a) 则b 为单精度类型变量

  24. 2.2.3 变体类型变量 • 变体类型变量中的字符串对于变体类型中存放的字符串相连接最好使用&符号,不要使用+。 • 变体类型变量中的空值variant变量在附值之前为空值,不能使用。可以使用IsEmpty( )来检测一个variant变量是否是空值。如:dim a则IsEmpty(a)的结果为逻辑真true

  25. 2.2.3 变体类型变量 • 变体类型变量中的Nullvariant变量可以有一个特殊的值NullNull有如下特性:如果表达式中任何一部分为Null,则整个表达式的结果为Null如:a=Null b=a+10 则b为Null可以通过IsNull( )函数来检测一个变量是否为Null。如:IsNull(b)

  26. 2.3 变量的作用域 • 1、局部变量 • 2、全局变量 • 3、窗体和模块变量

  27. 2.4 常用的内部函数 • 1、数学运算函数 • 2、字符串函数 • 3、日期时间函数 • 4、格式输出函数 • 5、数据类型转换函数 • 6、随机函数

  28. 2.4.1 数学运算函数 • 数学函数主要用来完成数学运算,常用的有: 1、Sin(X):返回X的正弦值,X的单位是弧度。 例如:Sin(90 * 3.14159265 / 180)结果为-0.54 2、Cos(X):返回X的余弦值,X的单位是弧度。 例如:Cos(12)结果为0.84 3、Tan(X):返回X的正切值,X的单位是弧度。 例如:Tan(12)结果为-0.64 4、Atn(X):返回X的反正切值,返回值为弧度。 例如:Atn(3)结果为1.25

  29. 2.4.1 数学运算函数 5、Log(X):返回X的自然对数。 例如:Log(100)结果为4.61。 6、Exp(X):返回以e为底的X的指数值,即eX。 例如:Exp(3)结果为20.1 7、Sqr(X):返回X的平方根值。 例如:Sqr(16)结果为4 8、Abs(X):返回X的绝对值。 例如:Abs(-78)结果为78

  30. 2.4.1 数学运算函数 9、Int(X):返回X整数部分。当X为负数时,返 回小于负数的负整数. 例如:Int(-8.4)结果为-9。 10、Fix(X):返回X的整数部分。当X为负数时, 返回大于负数的负整数。 例如:Fix(-8.4)结果为-8。 11、Sgn(X):返回X的符号,当X为负数时,函 数返回-1;当X为0时函数返回0; 当X为正数时,函数返回1。

  31. 2.4.2 字符串函数 1、InStr([起始位置,]字符串1,字符串2[,比较类型] 它的作用是根据比较类型模式确定字符串2在字符串1 中一次出现的位置。 例如: InStr("abcde","cd")结果为3 InStr(4,"abcdeabcde","cd")结果为8 2、InStrRev(字符串1,字符串2[,起始位置[,比较类型]]) InStrRev ( )的作用与INSTR( )函数的作用相似,只 是从字符串1的后面开始向前查找 InStrRev("abcdeabcde","cd",4)结果为3

  32. 2.4.2 字符串函数 3、LTrim$(字符串) 作用是去掉字符串左边的空白部分。 例如:LTrim$(" aaaaaa ")结果为"aaaaaa " 4、RTrim$(字符串) 作用是去掉字符串右边的空白部分。 例如:LTrim$(" aaaaaa ")结果为" aaaaaa" 5、Trim$(字符串) 作用是去掉字符串左右的空格。 例如:Trim (" abcdef ")结果为"abcdef"

  33. 2.4.2 字符串函数 6、Left$(字符串,个数) 作用是取出字符串左边指定个数的字符,若个数大于或等于字符串长度,则全取。 如:Left$ ("abcdefg" ,3) 结果为"abc" 7、Right$(字符串,个数) 作用是取出字符串右边指定个数的字符,若个数大于或等于字符串长度,则全取。 例如:Right$("abcdef",3)结果为"def"

  34. 2.4.2 字符串函数 8) Mid$(字符串,起始位置[,个数]) 作用是取出字节符串由起始位置开始的指定个数的字符。若起始位置大于字符串长度,返回空串,若缺省个数,取出从起始位置开始的所有字符。 如:Mid$(“abcdef”,3,2)结果为"cd" Mid$(“abcdef”,3)结果为"cdef" Mid$(“abcdef”,9)结果为""

  35. 2.4.2 字符串函数 9、UCase$(字符串) 作用是将字符串的小写字母转换为大写字母,其他字符不变,若字符串为NULL时,返回NULL。 例如:UCase$("aBcDef')结果为"ABCDEF" 10、LCase$(字符串) 作用是将字符串中的大写字母转换为小写字母。例如:LCase$("AbcDeF")结果为"abcdef"

  36. 2.4.2 字符串函数 11、Len(字符串或字符串变量) 作用是计算字符串长度,若字符串为空时,返回NULL。例如:Len("abcdef")结果为6 12、Space$(个数) 作用是返回指定个数的空字符串。 例如:Space$(5) 结果为 " "

  37. 2.4.2 字符串函数 13、String$(个数,字符串): 作用是返回包含重复字符的字符串,长度由“个数”指定。重复字符由“字符”指定,当“字符”为串时,用串的第一个字符。 例如:String$(4,"a")="aaaa" String$(3,"ab")="aaa"

  38. 2.4.2 字符串函数 14、StrComp(字符串1,字符串2[,比较类型]) 作用是按比较类型比较两个字符串,相等时返回0;小于时返回-1;大于时返回1。 例如:StrComp("abc","bcd")结果为-1 15、StrReverse(字符串) 作用是将给定字符串逆序输出。若为空串,返回空串,若为NULL,则会出错。 如:StrReverse ("abcdef")结果为"fedcba"

  39. 2.4.3 日期时间函数 1、Date:作用是返回当前系统日期。 2、Time:作用是返回当前系统时间。 假设现在的系统日期和时间为:2003年9月1日 9点19分35秒 则:Date 结果为 2003-9-1 Time 结果为 9:19:35

  40. 2.4.3 日期时间函数 3、Day(Now)作用是返回当前的日期。Day(now)结果为1 Day(#12/30/2003#)结果为30 4、Month(Now)作用是返回当前的月份。 5、Year(Now)作用是返回当前的年份

  41. 2.4.3 日期时间函数 6、Weekday(Now) 作用是返回当前的星期 假设今天星期三,则 Weekday(Now)结果为4 Weekday(Now,2)结果为3

  42. 2.4.3 日期时间函数 7、Hour(NOW) 返回当前时间的小时0~23之间整数。 如:Hour(Now)结果为9Hour(#11:11:56 PM#)结果为23 8、Minute(Now) 返回当前时间的分钟0~59之间整数。 9、Second(Now) 返回当前时间的秒0~59之间的整数。

  43. 2.4.4 格式输出函数 • print方法:该方法可以在窗体上显示文本字符串和表达式的值,并可在其他图形对象或打印机上输出信息。 • 一般格式为: [对象名称.]print [表达式表][,|;]

  44. print方法的相关说明 1、“对象名称”可以是窗体图片框或打印机,如果省略对象名称,则在窗体上输出 2、“表达式表”可以是一个或多个表达式,如果省略则输出一个空行 3、输出多个表达式或字符串时如果使用逗号隔开,则分区输出。如果用分号分隔,则按紧凑格式输出

  45. print方法的相关说明 4、print方法具有计算和输出双重功能 例如:print 12+23;2*6 能够输出 35 12 5、print方法输出完毕后会自动换行,如果 不想换行可以在表达式后加分号 比较:print 12 print 12; print 13 print 13 和

  46. 2.4.5 数据类型转换函数 1、Hex$(数值x) 把一个十进制数转换为十六进制数。 例如:Hex$(98)结果为62 2、Oct$(数值x): 把一个十进制数转换为八进制数。 例如:Oct$(98)结果为142

  47. 2.4.5 数据类型转换函数 3、Asc(字符串x[$]) 返回字符串x中第一个字符的ASCII码。 例如:Asc("abc$")结果为97 4、Chr$(数值x) 把x的值转换为相应的ASCII字符。 例如:Chr$(98)结果为"b"

  48. 2.4.5 数据类型转换函数 5、Str$(数值x):把x的值转换为一个字符串 例如:Str$(456)="456" 6、Val(字符串x):把x转换为数字,忽略字符串中的非数字字符, 例如:Val("12.34a567abcd")=12.34 同时它还识别基数前缀 &O(八进制),&H(表示十六进制), 例如:Val("&HFF")=255 Val("&HFFFF")=-1

  49. 2.4.5 数据类型转换函数 7、Cint(x):把x的小数部分四舍五入转换为整数。 8、Ccur(x):把x的值转换为货币类型值,小数部 分最多保留四位且自四舍五入。 9、CDbl(x):把x值转换为双精度数。 10、CLng(x):把x的小数部分四舍五入转换为长 整型数。 11、CSng(x):把x的值转换为单精度数。 12、CVar(x):把x的值转换为变体类型值。

  50. 2.4.6 随机函数 • Rnd(X):作用是产生一个介于0~1之间的单精度随机数。 • X是产生随机数的种子 • 为了每次运行程序调用随机函数都会有不同的随机数序列,在调用Rnd之前,先使用无参数的Randomize语句初始化随机数生成器,该生成器具有根据系统计时器得到的种子,这样再调用Rnd就会得到不同的随机数序列了。

More Related