主页常量、变量、函数及表达式是构成 VB应用程序的基本元素,
也是程序设计的重要基础知识。
学习和熟悉掌握这些元素,对以后的程序设计是十分重要的。
主页第 2章 程序设计基础程序中的大部分实际工作是采用程序代码来处理的任何一门程序设计语言都有一套严格的编程规定本章主要内容退出数据类型常量与变量表达式常用内部函数主页
2.1 数据类型在使用计算机来处理数据时,会遇到各种不同类型的数据 。
例如,一个人的姓名是由一串文本 (字符 )组成,成绩,年龄和体重都是一个数值,而是否大学毕业则是一个逻辑值,等等 。
为了更好地处理各种各样的数据,VB定义了多种数据类型数值型数据类型 字符型逻辑型日期型对象型变体型整数,整型 /长整型字节型浮点型,单 /双精度货币型主页数值型数据
(1) 整型 (Integer)和长整型 (Long)
不带小数部分的数,表示正整数、负整数和零整型数,-32768~ 32767
长整型数,-2147483648~ 2147483647
(2) 字节型 (Byte)
字节型数可以表示无符号的整数
0~ 255
(3) 单精度型 (Single)和双精度型 (Double)
浮点数。表示带有小数部分的数如超出某个表示范围,则用科学记数法例如,4.53E8(4.53× 108),8.173E-14,3.14D23
(4) 货币型 (Currency)
专门为处理货币而设计的数据类型它可最多保留小数点右边 4位和小数点左边 15位主页其他类型数据
(1) 字符型是用双引号括起来的一串字符。
例如,,Canton”,” 1+2=?”,” Good└┘Morning”等
,″”称为起止界限符。
字符串长度。 分为,变长字符串 (长度不固定 )
定长字符串 (长度固定 )
例如,Dim a As String ′a是 不定长字符串
Dim b As String*4 ′b是 定长字符串 (4个字符 )
a =,VB” ′a的值为 2个字符,VB”
a =,Visual Basic” ′a的值为 12个字符,Visual Basic”
b =,VB” ′b的值为 4个字符,VB,(后面有 2个空格 )
b =,Visual Basic” ′b的值为 4个字符,Visu”
主页其他类型数据
(2) 逻辑型数据只有 True(真 )和 False(假 )两个值
(3)日期型数据用两个,#”符号把日期和时间的值括起来如,#08/20/2001#,#2001-08-20#
(4) 变体型 (Variant)数据是一种可变的数据类型,可以存放任何类型的数据,VB会自动完成必要的转换不特别说明时,VB会自动将该变量默认为 Variant型变量例,Temp=“22” ’字符串
Temp=Temp-1 ’数值
Temp=#01/01/2002# ’日期主页
2.2 常量与变量
2.2.1 常量在程序运行期间其值始终保持不变的量一般常量,在程序代码中直接给出的数据 。
例如,123,-263,” Visual Basic”,,12.57”等符号常量,在程序中用符号表示的常量 。 格式:
[Public| Private] Const 常量名 [As 数据类型 ]=表达式例如,Const PI=3.14159 As Single
主页
2.2.2 变量变量是在程序运行期间其值可以发生变化的量
1,变量的命名规则应遵守一些规则
2,变量的声明
(1) 声明变量 (显式声明 )
用 Dim,Public,Private或 Static语句来声明变量例如,Dim sum As Integer ′把 sum定义为整型变量
(2)
不加说明就直接使用变量,此时默认的变量类型为变体型也允许使用类型符来声明变量的类型,如 Num%,Sum!
主页
(1),值可变,,当将某个数据存放到一个变量时,就把变量中原有的值“冲”掉,换成新的值。
例如,以下 2个赋值语句:
a = 3
a = 8
同一变量在不同时刻可以取不同的值
(2)“取之不尽,,在运算过程中,如果没有改变该变量的值,
那么,不管使用变量的值进行多少次运算,其值始终保持不变。
例如
x = 5
a = 3 + x ′x的值始终保持为 5
b = x*x – 4*x
3.变量的两个重要特点主页五类表达式,算术表达式,字符串表达式,日期表达式,关系表达式 和 逻辑表达式
1,算术表达式:
运算符及其优先级,^(乘方 ) → -(求负 ) → */ → \ → Mod → +-
示例,5*x^10 + x/6 – x^(1/3)
15 Mod 6
2,字符串表达式,运算符有两个,&和 +
”计算机,&,网络,结果为,计算机网络,
3,日期表达式,
#8/8/2001# - #6/3/2001# 结果为 66
#12/1/2000# - 32 结果为 #10/30/2000#
2.3 表达式结果?
主页
1 + 2 * 14 Mod 17 \ 6 / 2 =?
求出下列表达式的值 想一想
1,按运算符的优先级分成若干运算步骤先乘除,再整除 \和求 Mod,后加运算
2,根据运算符的运算功能求出各步骤的结果思考题
1 + 28 Mod 5
结果为 4
主页内部函数是由 VB系统提供函数名 (参数 1,参数 2,…)
返回函数值例如:
y=Sqr(289)
Sqr是内部函数名,289为参数,运行时该语句调用内部函数 Sqr来求 289的平方根,其计算结果由系统返回给变量 y
VB的内部函数大体上分为四大类:数学函数,字符串函数,日期与时间函数和转换函数。
2.4 常用内部函数主页说明,
· 函数 Int(x)是求小于或等于 x的最大整数。
例如 Int(2)=2,Int(-2.5)=-3,Int(-3)=-3
利用 Int函数可以对数据进行四舍五入。例如,对一个正数 x
舍去小数位时进行四舍五入,可采用如下式子:
Int(x+0.5)
当 x=9.4时,Int(9.4 + 0.5)=9
当 x=9.5时,Int(9.5 + 0.5)=10
2.4.1 数学函数主页
· 随机函数 Rnd可以模拟自然界中各种随机现象。它可产生一个 (0,1)的随机数。在 VB中,有一个称为 随机数生成器 的随机数生成程序,能产生一个随机数序列,用户每次调用 Rnd即可得到这个随机数序列中的一个。
使用 Randomize语句可以为 随机数生成器 指定不同的初值或者称为随机数序列的,种子,,这样可以得到不同的随机数序列。
Rnd通常与 Int函数配合使用生成 [a,b]区间范围内的随机整数,可以采用
Int((b-a+1)*Rnd + a)
例如 Int(4*Rnd+1)可以产生 1~ 4之间 (含 1和 4)的随机整数。
可以是 1,2,3或 4,这由 VB运行时随机给定。
主页编写的窗体单击事件过程代码如下:
Private Sub Form_Click()
Dim x As Integer,a As Integer
Dim b As Integer,c As Integer
x = 36
a = Int(x / 10) '求十位数
b = x Mod 10 '求个位数
c = b * 10 + a '生成新的数
Print "处理后的数,"; c
End Sub
运行程序后单击窗体,输出结果是:
处理后的数,63
例 2.1 给定一个两位数 (如 36),交换个位数和十位数的位置,把处理后的数显示在窗体上例 2.1
主页编写的窗体单击事件过程代码如下:
Private Sub Form_Click()
Dim a As Integer,b As Integer,c As Integer
Randomize '初始化随机数生成器
a = Int(90 * Rnd + 10) '产生 [10,99]区间内的随机整数
b = Int(90 * Rnd + 10)
c = a + b '求两数之和
Print "产生的两个随机数,"; a,b
Print "和数,"; c
End Sub
产生的两个随机数,56 71
和数,127
例 2.2 通过随机函数产生 2个两位正整数,求这 2个数之和并显示出来再次运行程序,单击窗体后输出另一组结果是:
产生的两个随机数,18 37
和数,55
例 2.2
主页用于进行字符串处理说明,(1) 函数 Mid(字符串,p[,n]) 从第 P个开始取 n个字符示例,Mid(“ABCDEG”,3,2) 的结果为,CD”
若省略 n,则得到的是从 P开始的往后所有字符,如
Mid(“ABCDE”,2) 的结果为,BCDE”
(2)插入字符串语句 Mid
(3)在函数 Instr中,f和 k均为可选参数,f表示开始搜索的位置 (默认值为 1),k表示比较方式,若 k为 0(默认 ),表示区分大小写;若 k为 1,则不分大小写。
格式,Instr(f,字符串 1,字符串 2,k)
例如 Instr(3,”A12a34A56”,”A”) 的结果为 7
Instr(3,”A12a34A56”,”A”,1) 的结果为 4
Instr(”A12a34A56”,”A”) 的结果为 1
2.4.2 字符串函数主页先从字符串 a中找出某个指定字符 (本例为空格 ),再以此字符为界拆分成两个字符串。编写的窗体单击过程代码如下:
Private Sub Form_Click()
Dim a As String,b As String,c As String,n As Integer
a = "Visual└┘Basic" '└┘表示空格
n = InStr(a,"└┘") '查找空格位置
b = Left(a,n - 1) '取左边部分
c = Mid(a,n + 1) '取右边部分
Print b '显示左边部分
Print c '显示右边部分
End Sub
Visual
Basic
例 2.3 使用字符串函数示例例 2.3
主页
Private Sub Form_Click()
Dim a As String,b As String,c As String,n As Integer
a =,Visual└┘Basic” '└┘表示空格
n = InStr(a,“└┘”) '查找空格位置
b = Left(a,n - 1) '取左边部分
c = Right( ___⑴ ___,___⑵ ___ ) '取右边部分
Print b '显示左边部分
Print c '显示右边部分
End Sub
Visual
Basic
若用 Right函数来代替 Mid函数,应如何改动?
想一想思考题
A,(1) a (2) n
B,(1) a (2) Len(a)-n
主页日期 /时间函数用于进行日期和时间处理例如:
函数 Date返回系统日期,如返回日期为 #11/03/2001#
函数 Time返回系统时间,如返回时间为 #7:03:28#
2.4.3 日期与时间函数主页转换函数用于数据类型的转换说明,Val函数将数字字符串转换为数值型数字时,会自动将字符串中的空格去掉,并依据字符串中排列在前面的数值常量来定值,例如:
Val("A12") 的值为 0
Val("12A12") 的值为 12
Val("1.2e2") 的值为 120
使用转换函数的示例
Private Sub Form_Click()
x = "123"
y = 123
a = Chr(Asc(x) + 5)
b = Str(Val(x) + 5)
c = Val(Str(y) + "5")
Print a,b,c
End Sub
运行程序后单击窗体,输出结果是什么?
2.4.4 类型转换函数想一想
6 128 1235
转换函数例思考题主页在编写程序代码时,要遵守一定的规则。不能超越其规定来自由发挥。
(1) 一行写多条语句 。冒号分隔
Sum=Sum+x,Count=Count+1
(2) 一条语句写成多行使用续行符 (一个空格后面跟随一个下划线,_”),将长语句分成多行。例如:
Print Text1.Text & Text2.Text & Text4.Text &└┘_
& Left(Text3.Text,3)
(3)不区分大小写字母
VB不区分应用程序代码字母的大小写 。
2.5.2 代码书写规则主页
(4) 各关键字之间,关键字和变量名、常量名、过程名之间一定要有空格分隔。
示例,Private└┘ Sub└┘ Form_Click()
(5)使用缩进在编写程序代码时,可以使用缩进来反映代码的逻辑结构和嵌套关系。 例如:
Private Sub Form_Click()
x=4
If x<1 Then
Print "x<1"
Else
Print "x>=1"
End If
End Sub
主页
(6)严格按照 VB规定的格式和符号编写程序。
与其他高级语言一样,在 VB中使用的分号、引号、括号等符号都是英文状态下的半角符号,而不能使用中文状态下的全角符号。
许多程序错误都是由此而起 !!!!
例如:
If a<5 Then x=10
Print "x="; x
不能写成
If a〈 5 Then x=10
Print,x=”; x
全角符号全角符号主页
VB支持结构化的程序设计方法其程序结构清晰,可读性好,也易于查错和修改结构化程序设计方法有三种基本控制结构:
顺序结构、选择结构和循环结构具有 单入口,单出口 的特点
(a) (b) (c)
顺序结构 选择结构 循环结构
A
B
假真
L
E真 假
A B
E
2.5.3 结构化程序的基本结构
也是程序设计的重要基础知识。
学习和熟悉掌握这些元素,对以后的程序设计是十分重要的。
主页第 2章 程序设计基础程序中的大部分实际工作是采用程序代码来处理的任何一门程序设计语言都有一套严格的编程规定本章主要内容退出数据类型常量与变量表达式常用内部函数主页
2.1 数据类型在使用计算机来处理数据时,会遇到各种不同类型的数据 。
例如,一个人的姓名是由一串文本 (字符 )组成,成绩,年龄和体重都是一个数值,而是否大学毕业则是一个逻辑值,等等 。
为了更好地处理各种各样的数据,VB定义了多种数据类型数值型数据类型 字符型逻辑型日期型对象型变体型整数,整型 /长整型字节型浮点型,单 /双精度货币型主页数值型数据
(1) 整型 (Integer)和长整型 (Long)
不带小数部分的数,表示正整数、负整数和零整型数,-32768~ 32767
长整型数,-2147483648~ 2147483647
(2) 字节型 (Byte)
字节型数可以表示无符号的整数
0~ 255
(3) 单精度型 (Single)和双精度型 (Double)
浮点数。表示带有小数部分的数如超出某个表示范围,则用科学记数法例如,4.53E8(4.53× 108),8.173E-14,3.14D23
(4) 货币型 (Currency)
专门为处理货币而设计的数据类型它可最多保留小数点右边 4位和小数点左边 15位主页其他类型数据
(1) 字符型是用双引号括起来的一串字符。
例如,,Canton”,” 1+2=?”,” Good└┘Morning”等
,″”称为起止界限符。
字符串长度。 分为,变长字符串 (长度不固定 )
定长字符串 (长度固定 )
例如,Dim a As String ′a是 不定长字符串
Dim b As String*4 ′b是 定长字符串 (4个字符 )
a =,VB” ′a的值为 2个字符,VB”
a =,Visual Basic” ′a的值为 12个字符,Visual Basic”
b =,VB” ′b的值为 4个字符,VB,(后面有 2个空格 )
b =,Visual Basic” ′b的值为 4个字符,Visu”
主页其他类型数据
(2) 逻辑型数据只有 True(真 )和 False(假 )两个值
(3)日期型数据用两个,#”符号把日期和时间的值括起来如,#08/20/2001#,#2001-08-20#
(4) 变体型 (Variant)数据是一种可变的数据类型,可以存放任何类型的数据,VB会自动完成必要的转换不特别说明时,VB会自动将该变量默认为 Variant型变量例,Temp=“22” ’字符串
Temp=Temp-1 ’数值
Temp=#01/01/2002# ’日期主页
2.2 常量与变量
2.2.1 常量在程序运行期间其值始终保持不变的量一般常量,在程序代码中直接给出的数据 。
例如,123,-263,” Visual Basic”,,12.57”等符号常量,在程序中用符号表示的常量 。 格式:
[Public| Private] Const 常量名 [As 数据类型 ]=表达式例如,Const PI=3.14159 As Single
主页
2.2.2 变量变量是在程序运行期间其值可以发生变化的量
1,变量的命名规则应遵守一些规则
2,变量的声明
(1) 声明变量 (显式声明 )
用 Dim,Public,Private或 Static语句来声明变量例如,Dim sum As Integer ′把 sum定义为整型变量
(2)
不加说明就直接使用变量,此时默认的变量类型为变体型也允许使用类型符来声明变量的类型,如 Num%,Sum!
主页
(1),值可变,,当将某个数据存放到一个变量时,就把变量中原有的值“冲”掉,换成新的值。
例如,以下 2个赋值语句:
a = 3
a = 8
同一变量在不同时刻可以取不同的值
(2)“取之不尽,,在运算过程中,如果没有改变该变量的值,
那么,不管使用变量的值进行多少次运算,其值始终保持不变。
例如
x = 5
a = 3 + x ′x的值始终保持为 5
b = x*x – 4*x
3.变量的两个重要特点主页五类表达式,算术表达式,字符串表达式,日期表达式,关系表达式 和 逻辑表达式
1,算术表达式:
运算符及其优先级,^(乘方 ) → -(求负 ) → */ → \ → Mod → +-
示例,5*x^10 + x/6 – x^(1/3)
15 Mod 6
2,字符串表达式,运算符有两个,&和 +
”计算机,&,网络,结果为,计算机网络,
3,日期表达式,
#8/8/2001# - #6/3/2001# 结果为 66
#12/1/2000# - 32 结果为 #10/30/2000#
2.3 表达式结果?
主页
1 + 2 * 14 Mod 17 \ 6 / 2 =?
求出下列表达式的值 想一想
1,按运算符的优先级分成若干运算步骤先乘除,再整除 \和求 Mod,后加运算
2,根据运算符的运算功能求出各步骤的结果思考题
1 + 28 Mod 5
结果为 4
主页内部函数是由 VB系统提供函数名 (参数 1,参数 2,…)
返回函数值例如:
y=Sqr(289)
Sqr是内部函数名,289为参数,运行时该语句调用内部函数 Sqr来求 289的平方根,其计算结果由系统返回给变量 y
VB的内部函数大体上分为四大类:数学函数,字符串函数,日期与时间函数和转换函数。
2.4 常用内部函数主页说明,
· 函数 Int(x)是求小于或等于 x的最大整数。
例如 Int(2)=2,Int(-2.5)=-3,Int(-3)=-3
利用 Int函数可以对数据进行四舍五入。例如,对一个正数 x
舍去小数位时进行四舍五入,可采用如下式子:
Int(x+0.5)
当 x=9.4时,Int(9.4 + 0.5)=9
当 x=9.5时,Int(9.5 + 0.5)=10
2.4.1 数学函数主页
· 随机函数 Rnd可以模拟自然界中各种随机现象。它可产生一个 (0,1)的随机数。在 VB中,有一个称为 随机数生成器 的随机数生成程序,能产生一个随机数序列,用户每次调用 Rnd即可得到这个随机数序列中的一个。
使用 Randomize语句可以为 随机数生成器 指定不同的初值或者称为随机数序列的,种子,,这样可以得到不同的随机数序列。
Rnd通常与 Int函数配合使用生成 [a,b]区间范围内的随机整数,可以采用
Int((b-a+1)*Rnd + a)
例如 Int(4*Rnd+1)可以产生 1~ 4之间 (含 1和 4)的随机整数。
可以是 1,2,3或 4,这由 VB运行时随机给定。
主页编写的窗体单击事件过程代码如下:
Private Sub Form_Click()
Dim x As Integer,a As Integer
Dim b As Integer,c As Integer
x = 36
a = Int(x / 10) '求十位数
b = x Mod 10 '求个位数
c = b * 10 + a '生成新的数
Print "处理后的数,"; c
End Sub
运行程序后单击窗体,输出结果是:
处理后的数,63
例 2.1 给定一个两位数 (如 36),交换个位数和十位数的位置,把处理后的数显示在窗体上例 2.1
主页编写的窗体单击事件过程代码如下:
Private Sub Form_Click()
Dim a As Integer,b As Integer,c As Integer
Randomize '初始化随机数生成器
a = Int(90 * Rnd + 10) '产生 [10,99]区间内的随机整数
b = Int(90 * Rnd + 10)
c = a + b '求两数之和
Print "产生的两个随机数,"; a,b
Print "和数,"; c
End Sub
产生的两个随机数,56 71
和数,127
例 2.2 通过随机函数产生 2个两位正整数,求这 2个数之和并显示出来再次运行程序,单击窗体后输出另一组结果是:
产生的两个随机数,18 37
和数,55
例 2.2
主页用于进行字符串处理说明,(1) 函数 Mid(字符串,p[,n]) 从第 P个开始取 n个字符示例,Mid(“ABCDEG”,3,2) 的结果为,CD”
若省略 n,则得到的是从 P开始的往后所有字符,如
Mid(“ABCDE”,2) 的结果为,BCDE”
(2)插入字符串语句 Mid
(3)在函数 Instr中,f和 k均为可选参数,f表示开始搜索的位置 (默认值为 1),k表示比较方式,若 k为 0(默认 ),表示区分大小写;若 k为 1,则不分大小写。
格式,Instr(f,字符串 1,字符串 2,k)
例如 Instr(3,”A12a34A56”,”A”) 的结果为 7
Instr(3,”A12a34A56”,”A”,1) 的结果为 4
Instr(”A12a34A56”,”A”) 的结果为 1
2.4.2 字符串函数主页先从字符串 a中找出某个指定字符 (本例为空格 ),再以此字符为界拆分成两个字符串。编写的窗体单击过程代码如下:
Private Sub Form_Click()
Dim a As String,b As String,c As String,n As Integer
a = "Visual└┘Basic" '└┘表示空格
n = InStr(a,"└┘") '查找空格位置
b = Left(a,n - 1) '取左边部分
c = Mid(a,n + 1) '取右边部分
Print b '显示左边部分
Print c '显示右边部分
End Sub
Visual
Basic
例 2.3 使用字符串函数示例例 2.3
主页
Private Sub Form_Click()
Dim a As String,b As String,c As String,n As Integer
a =,Visual└┘Basic” '└┘表示空格
n = InStr(a,“└┘”) '查找空格位置
b = Left(a,n - 1) '取左边部分
c = Right( ___⑴ ___,___⑵ ___ ) '取右边部分
Print b '显示左边部分
Print c '显示右边部分
End Sub
Visual
Basic
若用 Right函数来代替 Mid函数,应如何改动?
想一想思考题
A,(1) a (2) n
B,(1) a (2) Len(a)-n
主页日期 /时间函数用于进行日期和时间处理例如:
函数 Date返回系统日期,如返回日期为 #11/03/2001#
函数 Time返回系统时间,如返回时间为 #7:03:28#
2.4.3 日期与时间函数主页转换函数用于数据类型的转换说明,Val函数将数字字符串转换为数值型数字时,会自动将字符串中的空格去掉,并依据字符串中排列在前面的数值常量来定值,例如:
Val("A12") 的值为 0
Val("12A12") 的值为 12
Val("1.2e2") 的值为 120
使用转换函数的示例
Private Sub Form_Click()
x = "123"
y = 123
a = Chr(Asc(x) + 5)
b = Str(Val(x) + 5)
c = Val(Str(y) + "5")
Print a,b,c
End Sub
运行程序后单击窗体,输出结果是什么?
2.4.4 类型转换函数想一想
6 128 1235
转换函数例思考题主页在编写程序代码时,要遵守一定的规则。不能超越其规定来自由发挥。
(1) 一行写多条语句 。冒号分隔
Sum=Sum+x,Count=Count+1
(2) 一条语句写成多行使用续行符 (一个空格后面跟随一个下划线,_”),将长语句分成多行。例如:
Print Text1.Text & Text2.Text & Text4.Text &└┘_
& Left(Text3.Text,3)
(3)不区分大小写字母
VB不区分应用程序代码字母的大小写 。
2.5.2 代码书写规则主页
(4) 各关键字之间,关键字和变量名、常量名、过程名之间一定要有空格分隔。
示例,Private└┘ Sub└┘ Form_Click()
(5)使用缩进在编写程序代码时,可以使用缩进来反映代码的逻辑结构和嵌套关系。 例如:
Private Sub Form_Click()
x=4
If x<1 Then
Print "x<1"
Else
Print "x>=1"
End If
End Sub
主页
(6)严格按照 VB规定的格式和符号编写程序。
与其他高级语言一样,在 VB中使用的分号、引号、括号等符号都是英文状态下的半角符号,而不能使用中文状态下的全角符号。
许多程序错误都是由此而起 !!!!
例如:
If a<5 Then x=10
Print "x="; x
不能写成
If a〈 5 Then x=10
Print,x=”; x
全角符号全角符号主页
VB支持结构化的程序设计方法其程序结构清晰,可读性好,也易于查错和修改结构化程序设计方法有三种基本控制结构:
顺序结构、选择结构和循环结构具有 单入口,单出口 的特点
(a) (b) (c)
顺序结构 选择结构 循环结构
A
B
假真
L
E真 假
A B
E
2.5.3 结构化程序的基本结构