690 likes | 940 Views
第三章 VB 语言基础. 本章重点和难点 3.1 Visual Basic 程序代码的组织方式 3.2 代码行的书写规则 3.3 Visual Basic 的数据类型 3.4 运算符与表达式 3.5 Visual Basic 公共函数. 本章重点和难点. 掌握 VB 提供的常见数据类型 掌握变量的定义 掌握 VB 运算符和表达式的使用 掌握 VB 公共函数的功能和调用 难点: 1 、运算符 & 与 + 的区别和联系 2 、字符串函数和转换函数的应用. 3.1 程序代码的组织方式.
E N D
第三章 VB语言基础 本章重点和难点 3.1 Visual Basic 程序代码的组织方式 3.2 代码行的书写规则 3.3 Visual Basic 的数据类型 3.4 运算符与表达式 3.5 Visual Basic 公共函数
本章重点和难点 • 掌握VB提供的常见数据类型 • 掌握变量的定义 • 掌握VB运算符和表达式的使用 • 掌握VB公共函数的功能和调用 难点: 1、运算符&与+的区别和联系 2、字符串函数和转换函数的应用
3.1 程序代码的组织方式 一个VB程序由窗体界面和程序代码两部组成,通过程序代码 把窗口界面的各个对象以及应用中的其元素联系在一起。程 序代码部分则由若干被称为“过程”的代码行及向系统提供某 些信息的说明组成。过程及又被组织在“模块”之中。将设计 的过程代码及相关说明合理地组织到不同的模块之中,也就 是设计代码的结构,在创建VB应用程序时是最为重要的一个 步骤。
过程 过程就是具有特定书写格式、包含若干可被作为一个整体执行的代码的组合。 “过程”可分为“事件过程”和“通用过程”两类。 1.事件过程 为窗体以及窗体上的各种对象编写的用来响应由用户或系统引发的各种事件的代码就是“事件过程”。 ●事件过程由VB中事件调用。也就是说,当指定的事件发生时,该过程即会被激活执行。 事件过存储在被称为“窗体模块”的文件中(扩展名“.frm”),而且在缺省情况下,“是私有的”(private)。换言之,事件过程在未特别说明时,仅在该窗体内有效。
事件过程 事件过程的代码框架是由VB系统自动提供的在保存窗体时,窗体的外观和编写的代码统一保存。 图1
通用过程 一个应用程序可以具有若干个窗体,每个窗体又可能拥有相同或不同的对象,但是这些不同窗体中的对象却有可能引发相同的操作或需在进行某些共同的处理。也就是说,一个应用程序中的多个窗体可以共享一些代码,或者一个窗体内不同的事件过程可以共享一些代码。这些可被共享的代码构成的过程称为“通用过程”。 通用过程是由用户自己定义,可由事件过程或其他过程调用而执行。
模块 模块是VB用于将不同类型过程代码组织到一起而提供的一种结构。在VB中具有三种类型的模块:窗体模块、标准模块和类模块。 1.窗体模块 应用程序中的每个窗体都有一个相应的窗体模块。窗体模块不仅包含有用于处理发生在窗体中的各个对象的事件过程,而且包含有窗体及窗体中各个控件对象的属性设置以及相关的说明。 如果某些通用过程仅供本窗体内的其他过程共享,则它也可包含在窗体模块之中。
模块 2.标准模块 在应用程序中可被多个窗体共享的代码,应当被组织到“标准模块”之中。标准模块文件的扩展名是“.bas”。 ●标准模块中保存的过程都是 通用过程。标准过程中还包 含有相关的说明。 ●标准模块中代码并不限于一 个应用程序,还可供其他应用程序重复使用。
模块 ●创建标准最简便的方法是: 单击工具栏上“添加窗体”按钮右侧向下的箭头,并在出现的选项表中选择“添加模块”(图2),然后再在出现的“代码编辑器”窗口中输入代码即可。 3.类模块 类模块包含用于创建新的对象类的属性、方法的定义等。
3.2代码行的书写规则 1. 语句 语句上构成VB程序的最基本成分。一个语句或者用于系统提供某些必要的信息(如程序中使用的数据类型等),或者规定系统应该执行的某些操作。 语句的一般形式如下: <语句定义符> [语句体] ●语句定义符用于规定语句的功能。 ●语句体则用于提供语句所要说明的具体内容或者要招待的具体操作。 ●VB中一些语句可以没有语句定义符;也有一些语句的语句定义符可以省略。
3.2代码行的书写规则 ● VB程序是按行书写的。一个语句可写在一行上;也可以通过在行的末尾加上续行标志“ -”(一个空格加一个下划线字符),而分写在多行上;另外,也可在一个代码行上写入多个语句,但语句之间需要用冒号“:”分隔。 例如: 1.一个语句分写在多行上: Dim student_name As String,student_number As String,ComputerAs _Integer,English As Integer 2.一行写多个语句: x=10:y4=”Visual Basic”:Z=20
3.2代码行的书写规则 1.2. 书写规范 ●语句输入时,可以不区分大小写字母,一个代码行输入完后,按回车键,光标自动移向下一行,同时,系统还会自动把语句中所有“保留字”的第一个字母改为大写字母,并在其前后加上空格。 例如,Rem是系统保留字,所以不论输入的是ReM,还是rem或REM,系统都会自动变换成Rem。 ●一个代码行的长度不得超过1023B,且在一行的实际文本之前最多只能有256个前导空格。一个逻辑行最多只能有25个后续行。
3.3 Visual Basic 的数据类型 • 变量或常量的命名规则 • 数据类型 • 常量 • 变量
变量或常量的命名规则 • 必须以字母、汉字开头,由字母、汉字、数字或下划线组成,长度≤40个字符 • 不能使用VB中的关键字 • 不区分变量名的大小写 • 为增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型
3.3 Visual Basic 的数据类型 数据是程序处理的对象。VB具有强大的数据处理能力,它的具体表现就是VB程序不仅可以处理各种数制的数,而且具有丰富的数据类型。 一.数据类型 VB支持的数据类型多达成12种。表1列出了这些数据类型的名称、存储大小及数据的取值范围。
数据类型 存储大小 取值范围 Integer整型数 2 Byte -32768~32767 Long长整型数 4 Byte -2147483648~2147483647 Single单精度型数 4 Byte -3.402823E38~-1.401298E-45 1.401298E-45~3.402823E38 Double双精度型数 8 Byte -1.79769313486232E308~ -4.9406545841247E-324 4.94065645841247E-324~ 1.79769313486232E308 Byte字节型数 1 Byte 0~255 Boolean逻辑型数 2 Byte True或False String字符串型数(变长) 10 Byte+串长度 0~约定俗成0亿个字符 数据类型
String字符串型数(定长) 串长度 1~约65400个字符 Date日期型数 8 Byte 1000年1月1日~9999年12月31日 Currency货币型数 8 Byte -922337203685447.5808~ 922337203685447.5807 Object对象型数 4 Byte 任何对象引用 Variant变体型数 >=16 Byte 数值型可达Double型的范围; 字符型可达变长字符串型的长度 数据类型
常量 在程序中取值始终保持不变的数据称为“常量”。 1)数值常量 一般的数值常量由正负号、数字和小数点组成,正数的正号可以省略。在VB程序中,除常用的十进制外,还可以使用八进制数和十六进制数。 ●不带小数点的数称为“整型数”。VB中的整型数又分为整型数和长整型数。 ●带小数点的数称为“实型数”或“浮点数‘。根据占用的存储量的大小,又分为单精度型数和双精度型数。
常量 ●在计算机程序中,很大或很小的数通常以指数形式表示,10的幂次则以字母e或字母d代表。可表示为mmmEeee或mmmDeee两种形式,其中,mmm 是尾数,eee是指数。E表示单精度数,D表示双精度数。 例如: 123 -235 32747 (整型数) 1758624 -3765410 (长整型数) 12304 -762.678 0.000352 -1.243E5 1.234E-5 (单精度数) 3.14159265333 -57832.12345 3.14159265D8 -8.573264907D-15 (双精度数)
常量 ● VB中允许使用八进制数和十六进制数,它们都是无符号整型数。八进制数的表示方法是在数字前面加“&O”;十六进制数的表示方法是在数字前面加“&H”。例如:&O137 &H137 2)字符常量 把一串字符用引号括起来,就构成一个字符常量。 例如:“Visual Basic” 、“How are you!”、“ab”等都是合法的字符常量。 2)逻辑型常量 逻辑型常量只有两个取值:True(真)和False(假)。
常量 3)日期型常量 日期型常量的一般表示形式是:mm/dd/yyy,如获至宝998年6月15日可表示为:#6/15/1998# 4)符号常量 常量在程序中也可用符号来表示。以符号形式表示的常量称为“符号常量”。代表常量的符号称为“常量名”。常量名是一个长度不超过255个字符,只能由字母、数字和下划线组成且首字符必须是字母的字符串。常量名中的字母不区分大小写。
常量 如在程序中使用自定义符号常量,,则应用Const语句先行说明。 Const语句的形式台下: [Public|Private] const < 常量名> [As Type]= <数值> Public选项只能用在标准模块中,用以说明可在整个应用程序中使用的常量;Private选项则用于说明在模块范围内使用的常量,它们均不能在过程中使用。Type用于指定常量的数据类型。另外,也可以在说明时,通过数据类型符号规定常量的类型。例如: Const Tax As Single =1.02 Public Const Country $ =”CHINA”,Fax_Num&=35424489
符号常量的例子 ‘声明了单精度型常量PI,代表3.14159 Const PI = 3.14159 Const MAX As Integer = &O144 ‘整型常量MAX,代表八进制数144, Const COUNTS# = 45.67 ‘声明了双精度型常量COUNTS,代表45.67,
变量 以符号形式出现在程序中,且取值可以发生变化的数据称为“变量”。 1.变量名及类型说明 变量名的命名规则是: ●首字符必须是字母; ●长度不超过255个字符; ●在作用域内必须唯一; ●作为变量名的字符串不得包括点号和用于类型说明的字符%、&、!、#、@、$ . ●不得使用系统保留字作变量名 ●有时为了提高程序的可读性,可在变量名之前加上一个约定的前缀,用于表示变量的数据类型。约定的前缀见表2。
数据类型 前缀 数据类型 前缀 整型 lnt 长整型 lng 单精度型 sng 双精度型 dbl 逻辑型 bln 货币型 cur 日期型 dt 字串型 str 变体型 vnt 字节型 byt 变量 表2
等级 范围 局部 在过程中说明,仅在说明它的过程有效 窗体/模块 在窗体或模块中说明,在定义该变量的模块或窗体的所有过程内均有效 全局(公有) 在模块或窗体中说明,在工程内的所有过程中都有效 变量 1.变量作用域与变量说明语句 1)变量作用域 变量的有效作用范围称为变量作用域。 VB有以下三个作用域等级,见表3:
变量 2)变量说明语句 可使用四种说明语句说明变量的类型: Dim <变量名>As<类型>[,<变量名> As<类型>]… Public <变量名>As<类型>[,<变量名> As<类型>]… Private <变量名>As<类型>[,<变量名> As<类型>]… Static <变量名>As<类型>[,<变量名> As<类型>]… 其中,Public语句用于说明全局变量,Private语句用于说明窗体/模块级变量,它们都只能用在模块的通用部分;Static语句用于说明过程级的静态变量,而且Dim语句既可用于说明模块级的变量(在模块的通用部分使用),也可用于说明过程级的变量(在过程内使用),因此较为常用。
变量 用Dim语句声明变量的例子 Dim iCount As Integer Dim sAllsum As Single Dim strS As String*100 或 Dim iCount As Integer,sAllsum As Single
变量 模块级和公有级的变量应“代码编辑器”窗口中的“(通用)”或“(声明)”部分进行说明。 例如: Private Const As Integer 或Public Name As String ,age As Integer 局部变量仅在使用它的过程中说明; Public Sub Command1_Click() Dim Count As Integer … End Sub
变量 ●在用Dim语句说明一个变量后,系统自动为该变量赋予一个初始值。若变量是数值型的,则初始值为0;若初始值是字符串型的,则初始值为空;逻辑型变量的初始值为“ False”。 ●系统还会自动转换在代码中输入的变量名以与说明的变量名相匹配。例如,说明语句是: Dim MyCountry As String 在程序中输入: mycountry=”NanJing” VB将其自动转换成: MyCuntry=”NanJing” VB的这种功能,可帮助使用者输入和使用正确的变量名。
变量 ●在变量类型说语句中,必须每个需要说明的变量逐个使用As Type说明,未加说明的变量将按变体型变量处理。例如: Dim a ,b As Integeer a是变体型,b是整型。 使用变量说明语句说明变量的数据类型,通常称为“显式说明”,也采用在变量名后加上一个用于规定变量类型的说明字符,来规定变量的类型,这种方法称为“隐式说明”。
说明符 示例 意义 说明符 示例 意义 % X% X是整型变量 # #% X是双精度型量 & X& X是长整型量 @ X@ X是货币型变量 ! X! X是单精度量 $ X$ X是字符型变量 变量 VB规定的类型说明字符见下表
变量 用类型说明符声明变量的例子 ITem% ‘声明整型变量 sHight! ‘声明单精度型变量 trName$ ‘声明字符串变量 cXyz@ ‘声明货币型变量
变量 ●按照缺省规定,字符变量的长度上可变的。也就是说,通过字符赋予新的数据,它的长度可增可减。但也可以将字符串变量说明为具有固定长度。方法如下: Dim <变量名> As String*size 例如Dim EmpName As String*size 3) Option Explicit 语句 在模块中使用Option Explicit语句,系统将检查模块中所有未加显式说明的变量,一发现有这样的变量存在,就会产生一个出错信息,提示使用者改正错误
3.4 运算符与表达式 • 算术运算符的优先级 • 运算符示例 • 关系运算符 • 字符比较 • 逻辑运算符的优先级
^ 乘方 / 除 + 加 \ 整除 —减(负号) Mod 取余运算 * 乘 & 字符串连接运算 3.4 运算符与表达式 VB中的运算符和表达式可分为算术运算符与算术表达式、关系运算符与关系表达式和逻辑运算符与逻辑表达式三类。 一.算术运算符与算术表达式 1.算术运算符 VB的算术符有以下几种:
* 运算符示例 本示例使用 * 运算符来计算两数的乘积。 Dim MyValue MyValue = 2 * 2 ' 返回 4 MyValue = 459.35 * 334.90 ‘返回153836.315
+ 运算符示例 本示例使用 +运算符来计算数值的和。+运算符也可以用来做字符串的串接操作。 Dim MyNumber, Var1, Var2 MyNumber = 2 + 2 ' 返回 4 MyNumber = 4257.04 + 98112 ' 返回 102369.04 Var1 = "34": Var2 = 6 ' 初始化混合变量的值 MyNumber = Var1 + Var2 ' 返回 40 Var1 = "34": Var2 = "6" ' 用字符串初始化混合变量的值 MyNumber = Var1 + Var2 ‘返回 “346”(字符串被串接起 来)
- 运算符示例 本示例使用 -运算符来计算两数值的差。 Dim MyResult MyResult = 4 - 2 ' 返回 2 MyResult = 459.35 - 334.90 ‘返回124.45
/ 运算符示例 本示例使用/运算符来计算浮点数除法。 Dim MyValue MyValue = 10 / 4 ' 返回 2.5 MyValue = 10 / 3 ' 返回 3.333333
\ 运算符示例 本示例使用 \运算符来计算整型除法。 Dim MyValue MyValue = 11 \ 4 ' 返回 2 MyValue = 9 \ 3 ' 返回 3 MyValue = 100 \ 3 ' 返回 33
Mod 运算符示例 本示例使用 Mod运算符来对两数作除法运算,但返回其余数而非商数。如果两数中有一数为浮点数,该数会先被四舍五入成整型后再进行运算。 Dim MyResult MyResult = 10 Mod 5 ' 返回 0 MyResult = 3 Mod 10 ‘返回 3 MyResult = 12 Mod 4.3 ' 返回 0 MyResult = 12.6 Mod 5 ' 返回 3
& 运算符示例 本示例使用 &运算符将字符串串接起来。 Dim MyStr MyStr = "Hello" & " World" ' 返回 "Hello World" MyStr = "Check " & 123 & " Check“ ' 返回 "Check 123 Check" Mystr=123 & 456 ' 返回 "123456"
关系运算符 算术运算符的运算次序为 ^ → —(负号) → *和/ →\ → Mod → +和— → & 把常量、变量等运元素用算术运连接起来的式子称为“算术表达式”。例如: a*b/(c*d) 3.14159265*r^2 等 二.关系运算符与关系表达式 关系运算用于对两个数据进比较,比较结果为逻辑值“True”或“False”。 VB常用的关系运算符如下表所示。
运算符 < <= > >= <> = Is 功能 小于 小于等于 大于 大于等于 不等于 等于 用比较两个对象的引用变量 关系运算符 1.关系表达式 关系表达式就是用关系运算把两个比较对象连接起来的式子。 ●比较对象可以是变量、常量和算术表达式。例如: a<32 x+y>=z/2 b$<>”Basic” object1 is object2 ●关系表达式的运算是采用“按值比较”的方法,即先求出运算符两边的“值”,若是变量,则取其当前值,如果两端的值满足条件,则结果为“True”,否则为“False”。
关系运算符示例 本示例示范各种“关系运算符”的用法。 MyResult, Var1, Var2 MyResult = (45 < 35) ' 返回 False MyResult = (45 = 45) ' 返回 True MyResult = (4 <> 3) ' 返回 True MyResult = ("5" > "4") ' 返回 True Var1 = "5": Var2 = 4 ' 设置变量初值。 MyResult = (Var1 > Var2) ' 返回 True Var1 = 5: Var2 = Empty MyResult = (Var1 > Var2) ' 返回 True Var1 = 0: Var2 = Empty MyResult = (Var1 = Var2) ' 返回 True
运算符与表达式 ●字符型数据的关系运算上依照字符的ASCⅡ代码,自左至右按照“逐个比较,遇大则大,长大短小,完全相同,才是相等”的原则进行。 三.逻辑运算符与逻辑表达式 逻辑运算符是对逻辑值进行的运算。 1.逻辑运算符 VB有如下常用的逻辑运算符。 Not:逻辑非And:逻辑与Or:逻辑或Xor:逻辑异或。 逻辑运算的优先次序是: Not→And→Or→Xor