nullVisual Basic语言基础 第3章Visual Basic语言基础 第3章Visual Basic程序代码的组织方式
代码行的书写规则
Visual Basic的数据类型
运算符与
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
达式
Visual Basic公共函数
Points to Remember引言引言任何编程语言(包括VB在内),都是以
变量
过程
作为语言的基础
变量存放数据,而过程则是操作变量的代码
本章为VB语言基础,主要了解过程、模块、变量、函数、语句、算法等基本概念。VB程序代码的组织方式VB程序代码的组织方式一个Visual Basic程序由窗体界面和程序代码两部分组成。
通过程序代码把窗口界面的各个对象以及应用中的其他元素联系在一起。
程序代码部分则由若干被称为“过程”的代码行及向系统提供某些信息的说明组成。过程及说明又被组织在所谓的“模块”之中。
过程
模块3.1过程过程 所谓“过程”,就是具有特定书写格式、包含若干可被作为一个整体执行的代码行的一个代码组。根据执行的方式,可把“过程”分为“事件过程”和“通用过程”两类。
事件过程
通用过程3.1.1事件过程事件过程VB程序是由事件驱动的,所以事件过程是VB 程序中不可缺少的基本过程。为窗体以及窗体上的各种对象编写的用来响应由用户或系统引发的各种事件的代码行就是“事件过程”。
事件过程由VB中的事件调用。也就是说,当指定的事件发生时,该过程即会被激活执行。
事件过程存储在被称为“窗体模块”的文件中(扩展名.FRM),而且在缺省情况下,是“私有的”(Private)。
事件过程的代码框架是由VB系统自动提供的 (图3-1)。 图3-1图3-1通用过程通用过程“通用过程”由可被共享的代码构成。
通用过程是由事件过程或其他通用过程调用而执行的。
通用过程在缺省情况下,是“公有的”(Public),也就是说,通用过程可被所有的窗体共享。模块模块模块是Visual Basic用于将不同类型过程代码组织到一起而提供的一种结构。
在VB中的三种类型模块:
窗体模块
标准模块
类模块
类模块包含用于创建新的对象类的属性、方法的定义等。3.1.2窗体模块窗体模块应用程序中的每个窗体都有一个相对应的窗体模块。
包含:有用于处理发生在窗体中的各个对象的事件过程 & 窗体及窗体中各个控件对象的属性设置以及相关的说明。
如果某些通用过程仅供本窗体内的其他过程共享,则它也可包含在该窗体模块之中。 标准模块标准模块“标准模块”之中存放在应用程序中可被多个窗体共享的代码。
标准模块文件的扩展名是.bas。
标准模块中保存通用过程和相关说明。
标准模块中代码并不限于用于一个应用程序,还可供其他应用程序重复使用。
创建标准模块最简便的方法是:单击工具栏上添加窗体按钮右侧向下的箭头,并在出现的选项表中选择“添加模块”(图3-2),然后再在出现的代码编辑窗口中输入代码即可。 图3-2图3-2代码行的书写规则代码行的书写规则语句
书写规范3.2语句语句语句是构成Visual Basic 程序的最基本成份。
一个语句或者用于向系统提供某些必要的信息(如程序中使用的数据类型等),或者规定系统应该执行的某些操作。
语句的一般形式是:
VB程序是按行书写的。一个语句可写在一行上;也可以通过在行的末尾加上续行标志“ _” ,而分写在多行上;另外,也可在一个代码行上写入多个语句,但语句之间需要用冒号“:”分隔。
VB在输入代码时,可以不区分大小写字母。
示例 <语句定义符> [语句体] 语句示例语句示例例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。
当注释语句出现在程序行的后面时,只能使用’。
赋值语句[Let]var=<表达式>程序注释:
(1) Rem 语句
(2) ’ 符号VB的数据类型VB的数据类型在程序中取值始终保持不变的数据称为“常量”,常量可以是具体的数值,也可以是专门说明的符号。
变量则是存储单元的代号。从外部设备输入的数据,必须送入变量中保存;而在程序执行过程中,变量的内容可以不断改变。与数学上表示未知数的“变量”不同,程序中的变量在任一时刻都有一个确定的“值” ,变量在参加运算等处理时,是用它所存储的数据进行运算。
数据类型
常量
变量3.3数据类型数据类型VB支持的数据类型多达12种。表3-1列出了这些数据类型的名称、存储大小及数据的取值范围。
VB之所以提供多种数据类型的根本目的就是为了提高程序代码的运行效率。不论是常量还是变量,如果不加说明,系统均按变体型数据处理,它可以存储各种类型的数据。
如果需要处理的数值超出了相应数据类型数据的表示范围,将产生“数据溢出”错误。 3.3.1常量常量常量是在程序中取值始终保持不变的数据。
常量可以是具体的数值,也可以是专门说明的符号。
数值常量
字符常量
逻辑型常量
只有两个取值:True(真)和False(假)
日期常量
符号常量3.3.2数值常量数值常量一般的数值常量由正负号、数字和小数点组成,正数的正号可以省略。
不带小数点的数称为“整数”。
整数:用2个字节存放,表示范围较小(-32768 ~ 32767)214-1
长整数:用4个字节存放
带小数点的数称为“实型数”或“浮点数”。根据占用的存储量的大小,又分为单精度数和双精度数。
在计算机程序中,很大或很小的数通常以指数形式表示,10的幂次则以字母e或字母d代表。也就是说浮点数值可表示为 mmm Eeee 或 mmm Deee 两种形式,其中 mmm 是尾数,而 eee 是指数。
数值常量示例数值常量示例数值常量示例123 -227 32742 (整数)
1758624 -3765410 (长整数)
123.4 -752.678 0.000352 -0.01234 1.234E5 -9.654E6 1.234E-5 -9.654E-6 (单精度数)
3.1415926535 -5732.12345 3.14159265D8 -8.573264907D-15(双精度数)
&O137 表示这是一个八进制数137,它相当于十进制数95;
&H137 表示这是一个十六进制数137,它相当于十进制数311。 字符常量字符常量把一串字符用引号括起来,就构成一个字符常量。
例如:
"Visual Basic"、"How are you!"、"aB"等都是合法的字符常量。
字符常量容纳的字符数(长度),最多可达65535个。 日期常量日期常量日期型常量的一般表示形式是:mm/dd/yyyy,如2003年2月15日可表示为:
#2/15/2003#
注意:为了与字符串型常量相区分,日期常量要用“#”括起来。 符号常量符号常量以符号形式表示的常量称为“符号常量”。代表常量的符号称作“常量名”。
常量名是一个长度不超过255个字符、只能由字母、数字和下划线组成且首字符必须是字母的字符串。常量名中的字母不区分大小写。
Const语句的形式是:
Public选项表示符号常量可在整个应用程序中使用;
Private选项表示符号常量只在说明的范围内可以使用;
Type用于指定常量的数据类型
VB还在其内部定义了许多符号常量
例:Const TT as single =1.2[Public|Private] Const <常量名> [As type] = <数值> 变量变量变量名及类型说明
变量作用域与变量说明语句3.3.3变量名及类型说明变量名及类型说明变量名的命名规则是:
首字符必须是字母;
长度不超过255个字符;
在作用域内必须唯一;
作为变量名的字符串内不得包括点号和用于类型说明的字符%、&、!、#、@、$。
有时为了提高程序的可读性,可在变量名之前加上一个约定的前缀,用于表示变量的数据类型。约定的前缀见表3-2。 Why?表3-2表3-2变量作用域与变量说明语句变量作用域与变量说明语句变量在使用之前,最好用变量说明语句说明其类型。
根据变量说明方式的不同,变量的有效作用范围也不同。变量的有效作用范围称为变量作用域。
变量作用域
变量说明语句
Option Explicit语句变量作用域变量作用域变量说明语句变量说明语句可使用四种说明语句说明变量的类型:
用Dim语句说明一个变量后,系统自动为该变量赋予一个初始值。
数值型初始值为0;
字符串型初始值为空串;
逻辑型初始值为False。
变量的类型也可以“隐式说明”。VB规定的类型说明字符如表3-4。
关于字符串变量的声明 Dim | Public| Private | Static <变量名> As <类型>[, <变量名> As <类型>]... 表3-4表3-4实例:见教材P35关于字符串变量的声明关于字符串变量的声明按照缺省规定,字符串型变量的长度是可变的。但也可以将字符串变量说明为具有固定长度。方法是:
例如, Dim EmpName As String * 50
因为定长字符串用空格填充尾部多余的空间,所以在处理定长字符串时常常需要使用Trim 和 RTrim 函数。
标准模块中的定长字符串变量可说明为 Public 或 Private。在窗体和类模块中,则必须将定长字符串变量说明为 Private。 Dim <变量名> As String * sizeOption Explicit语句Option Explicit语句在模块中使用Option Explicit语句,系统将检查模块中所有未加显式说明的变量,一旦发现有这样的变量存在,就会产生一个出错信息,提示使用者改正错误。
Option Explicit语句可使用以下方法输入:
激活代码编辑器窗口;
从对象列表中选“General”或(通用);
从过程列表中选“Declarations”或(声明);
在代码编辑栏中输入:
Option Explicit运算符与表达式运算符与表达式 VB中的运算符和表达式可分为算术运算符与算术表达式、关系运算符与关系表达式和逻辑运算符与逻辑表达式三类。
算术运算符与算术表达式
关系运算符与关系表达式
逻辑运算符与逻辑表达式
运算规则3.4算术运算符与算术表达式算术运算符与算术表达式算术运算符
算术表达式3.4.1算术运算符算术运算符VB的算术运算符有以下几种:
^ 乘方运算符
+ 加
- 减(负号)
* 乘
/ 除
\ 整除 例:8\6 结果等于1
Mod 取余运算 例:8 Mod 6 结果等于2
& 字符串连接运算 例:"Visual" & "Basic" 结果是VisualBasic
算术运算符的运算次序为:
^ → - (负号) → * 和 / → \ (整除) → Mod → + 和 - →& null & 、+ 字符串连接
" 123 " + " 456 " 结果 " 123456 "
" 123 " & " 456 " 结果 " 123456 "
区别:+ 两边必须是字符串,& 不一定
例如:
"abcdef" & 12345
"abcdef " + 12345
"123" & 456
"123" + 456
"123" + True字符串运算符 结果为 "abcdef12345 " 出错 结果为 "123456 " 结果为 579 结果为 122注意: True转换为数值-1,False转换为数值0算术表达式算术表达式把常量、变量等运算元素用算术运算符连接起来的式子称作“算术表达式”。在算术表达式中,可以使用圆括号来改变运算次序。例如:
a * b / (c * d)
3.14159265 * r ^ 2
等都是合法的算术表达式。带有括号的算术表达式在运算时将优先进行括号内的运算。 null5+10mod10\9/3+2^2=? 答案:10关系运算符与关系表达式关系运算符与关系表达式 关系运算用于对两个数据进行比较,比较结果为逻辑值“True”或“False”。
关系运算符
关系表达式3.4.2关系运算符关系运算符关系表达式关系表达式关系表达式就是用关系运算符把两个比较对象连接起来的式子。比较对象可以是变量、常量和算术表达式。
例如:
a < 32,x + y >= z / 2,b$ <> "Basic“,object1 Is object2 等都是合法的关系表达式。
关系表达式的运算是采用“按值比较”的方法。null关系运算操作数进行大小比较,结果为逻辑量。
字符串比较,则按字符的ASCII码值从左到右一一比较,直到出现不同的字符为止逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式 逻辑运算是对逻辑值进行的运算。
逻辑运算符
逻辑表达式3.4.3逻辑运算符逻辑运算符逻辑运算的优先次序是:
NOT → AND → OR → XOR 逻辑表达式逻辑表达式逻辑表达式是用逻辑运算符把逻辑量连接起来的式子。例如:
a >= 2 * 3.14159 * r AND x <> 5 OR NOT b (设b为逻辑变量)
x > 2 OR Text1.Text = "Microsoft"
等都是合法的逻辑表达式。逻辑表达式主要用于表示一些复杂的判断条件。 运算规则运算规则在表达式中,当运算符不止一种时,要先处理算术运算符,接着处理关系运算符,最后处理逻辑运算符。而这几种运算符内的优先次序,则按前面各小节所列次序进行。
如果进行运算的两个运算对象的类型相同,它们的运算结果也将是同一类型。
如果不同数据类型的数据进行运算,结果的类型为两个运算对象中存储长度较长的那个对象的类型。
注意:除法运算是个例外,不论除数与被除数类型如何,结果总是双精度型。 3.4.4算术运算符>=字符运算符>关系运算符>逻辑运算null 比a小,比b大 用 Or比a大,比b小 用 And例:表示算术表达式:
正确的VB表达式: 3〈=x And x <=7
错误的VB表达式: 3<=x<=7 或 3<=x Or x<=7 举例例:用人单位招聘秘书,年龄小于40岁的女性,学历专科或本科And And Or年龄<40 性别=“女” (学历=“专科” 学历=“本科”)VB公共函数VB公共函数所谓公共函数是由系统提供的,可在任何一个VB程序中随时使用的程序段。
每个函数都有系统规定的函数名。使用函数称为函数调用。函数调用形式是:
其中,p1, p2, ...是调用函数时的自变量序列,自变量的个数、排列次序和数据类型,应和函数规定的参数相同。
算术函数
字符函数
转换函数
日期与时间函数
格式化函数Format$ 3.5<函数名> (p1, p2,...)null算术函数null字符函数字符函数-1字符函数-1AnString="Hello Computer World"
FirstStr=Left(AnString,5)
MidStr=Mid(AnString,7,8)
LastStr=Right(AnString,5)
Print FirstStr, MidStr, LastStrHello Computer World字符函数-2字符函数-2Print String(5, "*")
Print String(5, 42)
Print String(10, " ABC ")
Print MyStr= " Hello " &Space(10) & " World " String(n, ch)生成n个同一字符组成的字符串,这个字符由 ch指定。Ch可以是字符串,由它的第一个字符构成重复串;也可以是某字符的ASCII码。*****
*****
AAAAAAAAAA
Hello World" * "的ASCII码为42InStr(n,x, "字符")字符串匹配函数InStr(n,x, "字符")字符串匹配函数
s="Microsoft Visual Basic"
Pos=InStr(s, "Basic")
Print Pos18null转换函数转换函数-1转换函数-1Asc(s)
例如:MyStr1=Asc("A")
Print MyStr1
Chr(s)
例如: MyChar1=Chr(97)
Print MyChar165a转换函数-2转换函数-2Str(s) 返回数值s的字符串形式。当数字转成字符串时,字符串的第一个位一定是空格或者负号。
例:
MyString1=Str(459)
MyString2=Str(-459.65)
MyString3=Str(459.001)注意str(x)与cstr(x)的区别转换函数-3转换函数-3Int(x):取小于等于x的最大整数
CInt(x):对x小数部分四舍五入取整Int(5.5)=
Int(-5.5)=CInt(5.5)=
CInt(-5.5)=5-66-6null日期函数格式化函数Format$格式化函数Format$格式化函数Format[$]是专门用于将数值、日期和时间数据按指定格式输出的函数。它的一般形式是:
式中的fmt$是用于格式控制的字符串。
#、0是数位控制符;
.、,是标点控制符;
E+和E-是指数输出控制符;
其它是符号控制符。
Format函数仅用于控制数据的外部输出形式,不会改变数据在计算机内部的存储形式。 Format[$](<算术表达式>,fmt$) Points to RememberPoints to RememberVB程序的组织方式
数据、表达式及运算规则:类型、常量、变量说明与作用域;运算符与表达式、运算规则
公共函数:常用算术函数、转换函数、字符函数、日期函数及Format函数的功能及应用