Visual Basic语言基础 第 3章
? Visual Basic程序代码的组织方式
? 代码行的书写规则
? Visual Basic的数据类型
? 运算符与表达式
? Visual Basic公共函数
? 本章小结(上机与习题)
VB程序代码的组织方式
一、模块的概念:
1、窗体模块 (,frm文件 )
2、标准模块 (,bas文件 )
3、类模块 (,cls文件 )
二、各种模块的功能
三、各种模块包含的内容(过程,..)
四、各种模块如何创建,组织
3.1
五、过程
? 具有 特定 书写 格式,包含若干可被作
为一个整体执行的代码组(小程序段)
? 过程的 种类,事件过程、通用过程。
? 过程的 作用范围, private 与 public
? 事件过程
? 通用过程
P41
练习
事件过程
? 为窗体以及各种对象编写的用来响应各种
事件的代码行就是“事件过程”。
? 事件过程存储在被称为“窗体模块”的文
件中(扩展名,FRM)。在缺省情况下,
是“私有的”( Private)。
? 事件过程的代码框架是由 VB系统自动提供
的 ( 图 3-1)。
图 3-1
通用过程
? 一个应用程序中可被多个窗体共享的过程
被称为“通用过程”。
? 通用过程是由事件过程或其它通用过程调
用而执行的。在缺省情况下,它是“公有
的”( Public),即通用过程可被所有的窗
体共享。
? 通用过程的位置:(窗体与标准模块)
? 通用过程的创建
图 3-2
练习
P53
第 1,2,3题
代码行的书写规则
? 语句
? 书写规范
? 练习
3.2
语句
? 语句是 程序的最 基本成份 。语句的 功能,
提供信息(如定义数据类型),或者执行
的某些操作。
? 语句的一般形式是:
? 一个语句可写在 一 行上;
? 一个语句可写在 多 行上;使用“续行标志”
? 多个语句可以写在一行上;
语句之间用冒号,:”分隔。
<语句定义符 > [语句体 ]
示例
语句示例
例 1,一个语句分写在多行上,
Dim student_name As String,student_number As _
String,computer As Integer,english As Integer
例 2,一行写多个语句,
x = 10, y$ = "Visual Basic", z = 20
书写规范
? 语句中字母不区分大小写。
? 一个代码行输入完后,按回车键。系统自
动进行语法检查。
? 系统自动将所有“保留字”的第一个字母
改为大写字母。如,Rem是系统保留字,
所以不论输入的是 ReM、还是 rem或 REM
等,系统都会自动变换成 Rem。
VB的数据类型
VB要处理各种各样的数据, 如何有效的
描述与处理这些数据?
每种数据类型的 要素,
?数据类型
?常量
?变量
3.3
?类型定义
?存储大小
?取值范围
?运算
?函数
数据类型
? VB支持的数据类型多达 12种。 表 3-1
? 变量若不加说明,系统均按 viarian类
型 处理,它可以存储各种类型的数据。
? 如果需要处理的数值超出了相应数据
类型数据的表示范围,将产生,数据
溢出” 错误。
3.3.1
常量
? 数值常量
? 字符常量
? 逻辑型常量
只有两个取值,True 和 False。
? 日期常量
? 符号常量
3.3.2
数值常量
? 一般的数值常量由正负号、数字和小数点
组成,正数的正号可以省略。
? 不带小数点的数称为“整数” (integer,long)。
? 带小数点的数称为“实型数”或“浮点
数”。 (Single,double)。
? 浮点数值可表示为 mmm Eeee 或 mmm
Deee 两种形式
? 数值常量示例
数值常量示例
? 123 -227 32742 ( integer)
? 1758624 -3765410 ( long)
? 123.4 -752.678 1.234E-5 -9.654E-6 (single)
? -5732.12345 -8.573264907D-15(double)
? &O137 表示这是一个八进制数 137,它相
当于十进制数 95;
? &H137 表示这是一个十六进制数 137,它
相当于十进制数 311。
字符常量
? 把一串字符用引号括起来,就构成一
个字符常量。
例如:
"Visual Basic", "How are you!",
"aB"等都是合法的字符常量 。
? 字符常量最多可达 65535个字符。
? 注意,,ABC”不等于,abc”
日期常量
? 日期常量要用,#”括起来。
? 日期型常量的一般表示形式是:
#月月 /日日 /年年 #
如 2003年 2月 15日可表示为:
#1/1/2003#
或者为,#january 1,2003#
符号常量
? 以符号形式表示的常量称为“符号常
量”。代表常量的符号称作“常量
名”。
? Const语句的形式是:
? VB还在其内部定义了许多符号常量
如,Vbred,Vbblue…...
[Public|Private] Const <常量名 > [As type] = <数值 >
变量
? 变量名及类型说明
? 变量作用域与变量说明语句
3.3.3
变量名及类型说明
? 变量名的 命名规则 是:
– 首字符必须是字母;
– 长度不超过 255个字符;
– 在作用域内必须唯一;
– 不得包括 点号 和 %,&,!,#,@,$。
? 为了提高程序的可读性,变量名之前加上
一个约定的前缀,用于表示变量的数据类
型。约定的前缀见 表 3-2。
表 3-2
数据类型 前缀 数据类型 前缀
整型 int 长整型 lng
单精度型 sng 双精度型 dbl
逻辑型 bln 货币型 cur
日期型 dt 字串型 str
变体型 vnt 字节型 byt
变量作用域与变量说明语句
定义变量的两个要点:
?在什么 地点 定义变量
?用什么 语句 定义变量
变量作用域
变量说明语句
Option Explicit语句
变量作用域
等级 (语句 ) 范围 (地点)
局部
Dim/static 在 过程 中说明,仅在此过程中有效
窗体 /模块
Dim/Private
在 窗体或模块 中说明,在此模块或窗
体的 所有 过程内均有效
全局(公有)
Public
在模块或窗体中说明,在工程内的所
有过程中都有效
注意,变量两个要点的应用
变量说明语句
? 四种说明语句说明变量的类型:
Dim | Public| Private | Static
? 注意,使用四种说明语句的地点!
? Dim语句对变量的初始化。
? 变量的类型也可以,隐式说明,。
VB规定的类型说明字符如 表 3-4。
? 关于字符串变量的声明
表 3-4
说明字符 示例 意义
% x% 表示 x是整型变量
& x& 表示 x是长整型变量
! x! 表示 x是单精度变量
# x# 表示 x是双精度变量
@ x@ 表示 x是货币型变量
$ x$ 表示 x是字符型变量
关于字符串变量的声明
? 字符串型 变量的长度是可变的。但也可以
说明为具有固定长度。方法是:
例如,Dim EmpName As String * 50
? 去掉多余的空格,使用 Trim 和 RTrim 函数。
? 标准 模块中的 定长 字符串变量可说明为
Public 或 Private。在 窗体和类模块 中,则
必须说明为 Private。
Dim <变量名 > As String * size
Option Explicit语句
在模块中使用 Option Explicit语句,系
统将检查模块中所有未加显式说明的变量,
一旦发现有这样的变量存在,就会产生一
个出错信息,提示使用者改正错误。
运算符与表达式
VB中运算符和表达式可分为以下三类。
? 算术运算符与算术表达式
? 关系运算符与关系表达式
? 逻辑运算符与逻辑表达式
? 运算规则
3.4
算术运算符与算术表达式
? 算术运算符
? 算术表达式
3.4.1
算术运算符
? VB的算术 运算符 有以下几种:
^ 乘方运算符 ; + 加 ; - 减 (负号 )
* 乘 ; /除 ; \ 整除 例,8\6 结果等于 1
Mod 取余运算 例,8 Mod 6 结果等于 2
& 字符串连接运算
例,"Visual" & "Basic" 结果是 VisualBasic
? 算术运算符的 运算次序 为:
^ → - (负号 ) → * 和 / → \ (整除 ) → Mod
→ + 和 - → &
算术表达式
? 可以使用圆括号来改变运算次序。
例,a * b / (c * d)
3.14159265 * r ^ 2
等都是合法的算术表达式。
? 注意:
P53 第 9题,第 8题
关系运算符与关系表达式
关系运算用于对两个数据进行比
较,比较结果为逻辑值,True”或
,False”。
? 关系运算符
? 关系表达式
3.4.2
关系运算符
运算符 功能
< 小于
<= 小于等于
> 大于
>= 大于等于
< > 不等于
= 等于
Is 用来比较两个对象的引用变

关系表达式
字符型数据的关系运算是依照字符的
ASCII代码, 自左至右按照, 查英语字典,
的原则进行 。 例如:
,aBcd” >,abc”的运算结果是 False
注意,x+y>a+b
先做算术运算再做关系运算 !
逻辑运算符与逻辑表达式
逻辑运算是对逻辑值进行的运算。
? 逻辑运算符
? 逻辑表达式
3.4.3
逻辑运算符
? NOT 逻辑 非
NOT A>B
? AND 逻辑 与 例,a>=b AND a>=c
? OR 逻辑 或 例,a>=5 OR a<= — 5
? XOR 逻辑 异或
? 逻辑运算的优先次序是:
NOT → AND → OR → XOR
逻辑表达式
? 逻辑表达式主要用于表示一些复杂的
判断条件。
运算规则
? 算术运算符 — 关系运算符 — 逻辑运算符。
? 不同数据类型 的数据进行运算,结果的类
型为两个运算对象中 存储长度较长 的那个
对象的类型。
? 注意:除法运算是个例外,不论除数与被
除数类型如何,结果总是双精度型。
3.4.4
VB公共函数 (考点)
? 公共函数是由系统提供的,可随时随地调用。
? 函数调用形式,函数名 (参数表 )。
? 函数的三要素
函数名与功能,参数,返回值
? 算术函数
? 字符函数
? 转换函数
? 日期与时间函数
? 格式化函数 Format$
3.5
?必须掌握的函数 (考纲 )
?函数的上机练习
?P54第 11题与补充题
?函数的总结
函数名 功能
Sqr(x) 求平方根值, x≥0
Log(x) 求自然对数, x>0
Exp(x) 求以 e为底的幂值, 即求 ex
Abs(x) 求 x的绝对值
Hex[$](x) 求 x的十六进制数值
Oct[$](x) 求 x的八进制数值
Sgn(x) 求 x的符号, 当 x>0,返回 1; x=0,返回 0; x<0,返回 -1
Rnd[(x)] 产生一个在 (0,1)区间均匀分布的随机数, 若 x=0,则给出的是上一次利用本函数产生的随机数
Sin(x) 求 x的正弦值, x单位是弧度
Cos(x) 求 x的余弦值, x单位是弧度
Tan(x) 求 x的正切值, x单位是弧度
Atn(x) 求 x的反正切值, 函数返回的是主值区间的弧度值
函数名 功能
Len(x) 求 x字符串的长度 (字符个数 )
Left[$](x,n) 从 x字符串左边起取 n个字符
Right[$](x,n) 从 x字符串右边起取 n个字符
Mid[$](x,n1,n2) 从 x字符串左边第 n1个位置开始向右起取 n2个字符
Ucase[$](x) 将 x字符串中所有小写字符改为大写
Lcase[$](x) 将 x字符串中所有大写字符改为小写
Ltrim[$](x) 去掉 x左边的空格
Rtrim[$](x) 去掉 x右边的空格
Instr([n,]x,"字符 ") 从 x的第 n个位置起查找给定的字符, 返回该字符在 x中的位置, n的缺省值为 1
String[$](n,"字符 ") 得到由 n个给定字符组成的一个字符串
Space[$](n) 得到 n个空格
函数名 功能
Str[$](x) 将数值数据 x转换成字符串 (含符号位 )
Val(x) 将字符串 x中的数字转换成数值
Chr[$](x) 返回以 x为 ASCII代码值的字符
Asc(x) 给出字符 x的 ASCII代码值 ( 十进制数 )
Cint(x) 将数值型数据 x的小数部分四舍五入取整
Fix(x) 将数值型数据 x的小数部分舍去
Int(x) 取小于等于 x的最大整数
CBool(x) 将任何有效的字符串或数值转换成逻辑型
CByte(x) 将 0至 255之间的数值转换为字节型
CDate(x) 将有效的日期字符串转换成日期
Ccur(x) 将数值型数据 x转换成货币型数据
CLng(x) 将数值型数据 x转换成长整数型, 小数部分四舍五入
CDbl(x) 将数值型数据 x转换成双精度数
CSng(x) 将数值型数据 x转换成单精度型
Cvar(x) 将数值型数据 x转换成变体型
CStr(x) 将 x转换成字符串型
函数名 功能
Date[$] 返回系统当前的日期
Time[$] 返回系统当前的时间
Now 返回系统当前的日期和时间
Year(x) X应为一有效的日期变量, 常量或字符表达式本函数返回一个表示 x的年号的整数
Month(x) X应为一有效的日期变量, 常量或字符表达式本函数返回一个表示 x的月份的整数
Day(x) X应为一有效的日期变量, 常量或字符表达式本函数返回 1到 31之间的整数, 表示是一个月的第几日
Weekday(x[,c])
X应为一有效的日期变量, 常量或字符表达式 c是
用于指定星期几为一个星期第一天的常数, 缺省
时表示一周的星期天为第一天
格式化函数 Format$
? Format[$]是专门用于将各种数据按指定格
式输出的函数。它的一般形式是:
式中的 fmt$是用于格式控制的字符串。
? 格式控制字符有:
#,0,.、,,%,$,-,+,(,),E+,E-
? Format函数仅用于控制数据的外部输出形
式,不会改变数据在计算机内部的存储形
式。
Format[$](<算术表达式 >,fmt$)
本章总结
? VB程序的组织方式 (模块与过程 )
? 数据、表达式及运算规则:
类型、常量、
变量说明与作用域; (两个要点 )
运算符与表达式、运算规则
? 公共函数, (三要素 )
常用算术函数、转换函数、字符函数、
日期函数及 Format函数的功能及应用
THE END
2011年 7月 18日 2时 35分