3VB复习范围.docx
《3VB复习范围.docx》由会员分享,可在线阅读,更多相关《3VB复习范围.docx(20页珍藏版)》请在冰豆网上搜索。
3VB复习范围
VB复习参考范围
第3章VB语言基础
3.1VB程序的书写规则
1.VB代码不区分字母的大小写
2.语句书写自由——
(1)一行可书写多条语句,之间用冒号“:
”分隔;例:
a=4:
B=A+2
3.注释有利于程序的维护和调试——使用单引号(’)引导注释
3.2VB数据类型
数据类型
关键字
类型符
占字节数
取值范围
字节型
Byte
无
1
0-255
整型
Integer
%
2
-32768—32767
长整型
Long
&
4
-2147483648—2147483647
单精度型
Single
!
4
负数-3.402823E38—-1.401298E-45;
正数1.401298E-45—3.402823E38
可表示最多7位有效数字的数
双精度型
Double
#
8
负数-1.79769313486232D308—-4.94065645841247D-324
正数4.94065645841247D-324—1.79769313486232D308
可表示最多15位有效数字的数
字符型
String
$
串长度
0—65535个字符
逻辑型
Boolean
无
2
True或False
3.3变量与常量
3.3.1标识符
用来标识常量名、变量名、过程名等元素的符号。
标识符命名规则:
1.以字母或汉字开头,后可跟字母、数字或下划线组成,标识符的长度不能超过255个字符;
2.不能使用VB中的关键字;
3.VB中不区分变量名的大小写
3.3.2常量
符号常量的声明语法格式:
Const常量名[As类型]=表达式
3.3.3变量
变量声明
(1)用Dim语句显式声明变量(使用最多的方式)
语法格式:
Dim变量名[As类型名]或Dim变量名类型符
(2)OptionExplicit语句
在通用声明处加OptionExplicit语句来强制显式声明所有使用的变量。
即:
在模块中使用OptionExplicit语句,系统将检查模块中所有未加显式说明的变量。
3.4运算符和表达式
3.4.1算术运算符和算术表达式
1.算数运算符
运算符
含义
优先级
例
结果
^
乘方
1
N^3
8
-
取负
2
-N
-2
*
乘
3
3*N*N
12
/
除
3
7/N
3.5
\
整除
4
7\N
3
Mod
取余(取模)
5
7Mod2
1
+
加
6
8+N
10
-
减
6
N-12
-10
优先级(先算和后算):
^>->*=/>\>Mod>+=-
3.4.2字符串运算符和字符串表达式
“+”:
只要出现数值型,就进行加法运算两旁均为数字型;字符型与数字型,则系统将把字符串转化为数值;若系统无法把字符串转化为数值,则系统显示出错。
&:
连接符两旁的操作数可为字符型,也可为数字型,在进行连接操作前,均由系统将它们转换成字符型。
3.4.3关系运算符与关系表达式
运算符
说明
例
结果
=
等于
"abc"="ABC"
F
>
大于
"ABC">"ABD"
F
>=
大于等于
"BCD">="BCA"
T
<
小于
23<5
F
<=
小于等于
"123"<="34"
T
<>
不等于
"abc"<>"ABC"
T
关系运算规则:
(1)关系运算符的优先级相同,运算时从左至右依次进行。
(2)对数值型操作数比较,按大小比较。
例:
3>2
(3)对字符型操作数比较,按字符ASCII码值的大小进行比较。
例:
"begin"?
"began"
(4)进行比较的操作数要可比,否则出错。
例如:
123与“abe”就不可比
3.4.4逻辑运算符与逻辑表达式
将操作数进行逻辑运算结果:
True/False(逻辑值)
逻辑运算符
运算符
含义
优先级
说明
例
结果
Not
逻辑非
1
当操作数为假时,结果为真
当操作数为真时,结果为假
NotF
NotT
T
F
And
逻辑与
2
操作数均为真时,结果才为真
TAndF
TAndT
F
T
Or
逻辑或
3
操作数中有一个为真时,结果为真
TOrF
FOrF
T
F
3.4.5各种运算符间的优先级
算术运算符>=字符运算符>关系运算符>逻辑运算符
3.5VB常用内部函数
3.5.1数学函数
VB常用数学函数
函数名
功能
例
结果
Abs(N)
求N的绝对值
Abs(-3.5)
3.5
Sqr(N)
求N的平方根,N≥0
Sqr(16)
4
3.5.2字符串操作函数
VB常用的字符串操作函数
函数名
功能
例
结果
Mid$(C,N1,N2)
从字符串左边第N1个位置开始向右取N2个字符;若省略N2,则取到字符串末尾
Mid$("ABCDEFG",3,4)
Mid$("ABCDEFG",3)
"CDEF"
"CDEFG"
3.5.3类型转换函数
VB常用的类型转换函数
函数名
功能
例
结果
Val(C)
将数字字符串C转换为双精度类型数据
Val(“123abc”)
Val(“-123.45E3”)
123
-123450
第4章算法基础和VB程序的基本控制结构
4.2顺序结构程序设计
4.2.1赋值语句
语法格式:
变量名=表达式或对象名.属性名=表达式
因此,使用赋值语句可把右边表达式的值赋给左边的变量或对象的属性。
4.2.2用户交互函数和过程
(1)InputBox函数
1.调用形式:
变量名=InputBox[$](提示[,标题][,缺省][,x][,y])
2.InputBox函数的各个参数含义如下:
(1)变量:
可以是字符串类型或变体型,用于接收输入框中的数据。
(2)提示:
字符串表达式,不可以省略,用于设定作为提示用显示的文字信息。
(3)标题:
该项为字符串表达式,用于设定对话框中标题的信息内容。
(4)缺省:
该项为字符串表达式,设定缺省值后,打开对话框时,设定的字符串显示在对话框的输入框中。
(5)X,Y坐标位置:
(X,Y)是对话框左上角相对于屏幕(不是窗体)的坐标。
(二)MsgBox函数和MsgBox过程
1.函数调用格式:
变量[%]=MsgBox(提示[,按钮][,标题])
2.过程调用格式:
MsgBox提示[,按钮][,标题]
3.各个参数的含义:
提示、标题:
同InputBox函数。
按钮:
整形表达式,形式为:
C1+C2+C3+C4(P96),决定信息框按钮的数目、类型及图标类型,若省略,则按钮的缺省值为0。
4.3选择结构程序设计
4.3.1If…Then语句(单分支结构)
格式:
If<表达式>Then
语句块
EndIf
或If<表达式>Then<语句>
4.3.2If…Then…Else语句(双分支结构)
格式:
If<表达式>Then
<语句块1>
Else
<语句块2>
EndIf
或If<表达式>Then<语句1>Else<语句2>
4.3.5SelectCase语句(情况语句)
1.格式:
SelectCase变量或表达式
Case表达式列表1
语句块1
Case表达式列表2
语句块2
…
[CaseElse语句块n+1]
EndSelect
4.4循环结构程序设计
4.4.1For循环语句
作用:
一般用于控制循环次数未知。
形式:
For循环变量=初值To终值[Step步长]
语句块
[ExitFor]
语句块
Next循环变量
4.4.2Do…Loop循环语句
格式1:
DoWhile<条件>
语句块
[ExitDo]
语句块
Loop
格式2:
Do
语句块
[ExitDo]
语句块
LoopWhile<条件>
格式3:
DoUntil<条件>
语句块
[ExitDo]
语句块
Loop
格式4:
Do
语句块
[ExitDo]
语句块
LoopUntil<条件>
格式5:
Do
语句块
ExitDo
语句块
Loop
第5章数组
5.1数组的概念
数组并不是一种数据类型,而是一组相同类型的变量的集合.
5.1.1定长数组
一维数组声明形式:
{Public|Private|Dim|Static}数组名(下标1[,下标2…])[As<数据类型>]
5.1.2动态数组
1.语法格式:
{Public|Private|Dim|Static}数组名()[As类型]
2.ReDim语句格式:
ReDim[Preserve]数组名(下标1[,下标2…])
注意:
①ReDim语句只能出现在过程中;
②省略Preserve,则使用ReDim语句重新说明时,原数组中的值丢失;否则保留。
5.2数组的基本操作
5.2.3ForEach…Next语句
格式为:
ForEach成员变量In数组
循环体
Next[成员变量]
其中:
成员变量为变体类型的变量。
第6章过程
6.2Sub子过程的定义及其调用
6.2.1Sub子过程的定义及调用
1.Sub子过程的形式
[Public|Private]Sub子过程名([参数列表])
局部变量或常数定义
语句
[ExitSub]
语句
EndSub
6.2.3Sub子过程的调用:
(独立的语句)
子过程名[参数列表]或Call子过程名[(参数列表)]
6.3Function函数过程的定义及其调用
6.3.1.Function函数过程的定义
[Public|Private]Function函数名([参数列表])[As类型]
局部变量或常数定义
语句
函数名=返回值
[ExitFunction]
语句
函数名=返回值
EndFunction
实验题:
1.课本P120页第12题,要求用selectcase语句完成
PrivateSubCommand1_Click()
Dimp!
s!
w!
s=Text1.Text
w=Text2.Text
SelectCases
CaseIs<100
p=30
CaseIs<200
p=27.5
CaseIs<300
p=25
CaseIs<400
p=22.5
CaseElse
p=20
EndSelect
Text3.Text=p*s*w
EndSub
2.课本P120页第19题
PrivateSubCommand1_Click()
Dimi%,sumAsLong
Fori=101To999Step2
sum=sum+i
List1.AddItemi
Nexti
Text1.Text=sum
EndSub
3.实验五——1
PrivateSubCommand1_Click()
Dimi%,j%,k%,n%
Forn=100To999
i=n\100
j=n\10Mod10
k=nMod10
Ifn=i^3+j^3+k^3ThenList1.AddItemn
Nextn
EndSub
4.实验五——3
PrivateSubCommand1_Click()
Dimx!
x0!
x1!
n%,sum!
n=1
sum=1
x=Text1.Text
x1=1
Do
x0=x1
x1=x0*x/n
sum=sum+x1
n=n+1
LoopUntilx1<0.000001
Text2.Text=sum
EndSub
5.P124—32题(3)
PrivateSubForm_Click()
Dims1AsString,sAsString
Diml%,n%
s1="ABCDEFGHIJKLMNOP"
l=Len(s1)
n=1
DoWhilen<=Int(l/2)
s=s+Mid(s1,n,1)+Mid(s1,l-n+1,1)
n=n+1
Loop
Prints
EndSub
6.P124—32题(4)
PrivateSubCommand1_Click()
DimymAsString,fmAsString
Dimi%,aAsString
ym=Text1.Text
a=Mid(ym,1,1)
Ifa="0"Then
Text2.Text=ym
Else
fm="1"
Fori=2To8
a=Mid(ym,i,1)
Ifa="0"Thenfm=fm&"1"
Ifa="1"Thenfm=fm&"0"
Nexti
Text2.Text=fm
EndIf
EndSub
7.
PrivateSubCommand1_Click()
Dimi%,x%,y%
x=0
y=0
Fori=1to5
LoadLabel1(i)
Label1(i).visible=True
Label1(i).caption=i
x=x+label1(0).width
Label1(i).left=x
y=y+label1(0).height
Label1(i).top=y
Nexti
EndSub
8.实验五——5
PrivateSubCommand1_Click()
Dims1AsString,s2AsString,tAsString
Dimi%
s1=Text1.Text
Fori=1ToLen(s1)
t=Mid(s1,i,1)
Ift>="A"Andt<="Z"Thens2=s2&t
Nexti
Text2.Text=s2
EndSub
9.实验六——1
Dima(1To10)AsInteger
PrivateSubCommand1_Click()
Dimi%
Fori=1To10
a(i)=Int((80-20+1)*Rnd)+20
List1.AddItema(i)
Nexti
EndSub
PrivateSubCommand2_Click()
Dimi%,t%
Fori=1To5
t=a(i)
a(i)=a(10-i+1)
a(10-i+1)=t
Nexti
Fori=1To10
List2.AddItema(i)
Nexti
EndSub
10.实验七——1
PrivateSubCommand1_Click()
Dimx!
y!
x=Val(Text1.Text)
y=x^2+sh(x)
Text2.Text=y
EndSub
PrivateFunctionsh(ByValaAsSingle)AsSingle
sh=(Exp(a)-Exp(-a))/2
EndFunction
11.实验七——2
PrivateSubCommand1_Click()
Dimx!
x=Val(Text1.Text)
Text2.Text=passed(x)
EndSub
PrivateFunctionpassed(ByValxAsSingle)AsString
Ifx<60Then
passed="不及格"
Else:
passed="及格"
EndIf
EndFunction
12.课本179页第9题
PrivateSubCommand1_Click()
Dima!
b!
c!
a=Val(Text1.Text)
b=Val(Text2.Text)
c=Val(Text3.Text)
Text4.Text=max(a,b,c)
EndSub
PrivateFunctionmax(ByValxAsSingle,y!
z!
)AsSingle
Dimt!
Ifx>yThen
t=x
Else
t=y
EndIf
Iftmax=t
EndFunction
13.实验八——1
PrivateSubOption1_Click()
Label1.Caption="美元"
Text2.Text=Val(Text1.Text)/6.82
EndSub
PrivateSubOption2_Click()
Label1.Caption="欧元"
Text2.Text=Val(Text1.Text)/9.45
EndSub
PrivateSubOption3_Click()
Label1.Caption="英镑"
Text2.Text=Val(Text1.Text)/9.87
EndSub
14.实验八——2
PrivateSubCommand1_Click()
Dimx1!
x2!
sum!
x1=Val(Text1.Text)
x2=Val(Text3.Text)
sum=x1+x2
IfOption1.Value=TrueThen
SelectCasesum
CaseIs<=2000
Text2.Text=0
Text4.Text=sum
CaseIs<=4000
Text2.Text=0.05*(sum-2000)
Text4.Text=sum-0.05*(sum-2000)
CaseIs<=6000
Text2.Text=0.1*(sum-2000)
Text4.Text=sum-0.1*(sum-2000)
CaseElse
Text2.Text=0.15*(sum-2000)
Text4.Text=sum-0.15*(sum-2000)
EndSelect
Else:
IfOption2.Value=TrueThenText4.Text=sum
EndIf
EndSub
15.实验八——3
PrivateSubOption1_Click(IndexAsInteger)
Dimi%,t%
Fori=0To3
IfOption1(i).Value=TrueThent=i
Nexti
SelectCaset
CaseIs=0
Text3.Text=Val(Text1.Text)+Val(Text2.Text)
CaseIs=1
Text3.Text=Val(Text1.Text)-Val(Text2.Text)
CaseIs=2
Text3.Text=Val(Text1.Text)*Val(Text2.Text)
CaseIs=3
Text3.Text=Val(Text1.Text)/Val(Text2.Text)
EndSelect
EndSub