文档库 最新最全的文档下载
当前位置:文档库 › VB基础知识

VB基础知识

VB基础知识
VB基础知识

复习

一、VB的数据类型

Boolean(布尔型): 类型说明符:Boolean,占用2字节

Byte(字节): 类型说明符:Byte占用1字节.

Integer(整型):类型说明符:Integer,类型标识%,占用2字节.

Long(长整型): 类型说明符:Long,类型标识"&",占用4字节.

Single(单精度型): 类型说明符:Single,类型标识"!",占用4字节.

Double(双精度型): 类型说明符:Double,类型标识"#",占用8字节.

Currency(货币型): 类型说明符:Currency,类型标识"@",占用8字节.

Date(日期型): 类型说明符:Date ,占用8字节.

String(字符串,变长): 类型说明符:String,类型标识"$"

二、VB的运算符

赋值运算符:用来给变量或对象的属性赋值.把运算符右边的内容(包括常量,变量,函数返回值或对象的属性)赋给左边的变量或对象.属性.

使用赋值号应注意:

1.赋值号左边必须是变量或对象的属性,不能是数值,常量和表达式.

2.赋值号两端的数据类型应该匹配,不匹配时应进行适当转换.

3.给对象赋值时,只有运行时可改写的对象属性才能被赋值.

数学运算符

∧指数运算

- 负号运算符

* / 乘除运算,其中除法所得到的结果为实数

\ 整除,所得到结果为实际结果的整数部分.

MOD 取模运算,两数相除取余数.

+ - 加减运算.

字符串运算符

& + 连接字符.

&与+连接运算符的区别

&强制两个表达式(它们的类型可能不同)做字符串连接;而当+运算符两边的表达式中混有数值字符串及数值,其结果会是数值的求和,如果都是字符串则作"相加",返回连接起来的字符串.

三、VB语句与控制

VB赋值语句

用来对一般的变量进行赋值的赋值语句,用关键字LET描述,但一般都省略.

格式:[let]变量或属性=表达式

VB注释语句

引入目的:为程序的阅读和修改提供信息,提高程序的可读性和可维护性.

注释方法有两种:'或REM关键字.

条件分支——IF语句

第一种格式:

if 条件 then

语句

end if

如果条件为true,则执行"语句",否则执行end if后面语句.

第二种格式:

if 条件 then

语句

else

语句

end if

IF语句的第三种格式

If 条件1 then

语句1

else if 条件2 then

语句2

else

语句3

end if

如果条件1为true,则执行语句1,如果为false,则检查条件2,如果条件2为true,则执行语句2,如果条件2为false,则执行语句3.

多重选择语句——select case语句

格式: select case 测试表达式

case 条件1

语句1

………

case else

语句

end select

VB将测试表达式的值与此同时结构中的每个case的值进行比较,如果相等,就执行与该case 相关的程序段,如果都不等,则执行case else所对应的程序段.

循环语句:Do……Loop语句

第一种格式:

Do While 条件式

[程序段]

Loop

当条件为true时,循环继续,直到条件变为False为止.

第二种格式:

Do Until 条件式

[程序段]

Loop

当条件为False时,循环继续,直到条件变为true为止.

第三种格式:

Do

[程序段]

Loop While 条件式

当条件式为true时,循环继续进行,直到条件式变为false为止.

第三种格式:

Do

[程序段]

Loop Until 条件式

当条件式为时false,循环继续进行,直到条件式变为true为止

For …Next语句

语法规则:

For 循环控制变量=初值 To 终值 [step增量]

语句

next 循环控制变量

四、VB函数

VB的数学函数

VB日期和时间函数

字符串函数

五、对象的常用属性(例)

Alignment 设置或返回控件的文本对齐方式

AutoSize 返回或设置控件是否自动改变大小以显示其全部内容BackColor 返回或设置对象的背景颜色。

ForeColor 返回或设置在对象里显示图片和文本的前景颜色。BackStyle 返回或设置控件的背景是透明的还是非透明的。BorderStyle 返回或设置对象的边框样式

Caption 指定显示在窗体标题栏中的文本或指定显示在控件中的文本。Enabled 返回或设置对象是否能够对用户产生的事件作出反应。

Font 返回或设置对象可用的所有字体、字形、字号

Height 返回或设置对象的高度

Width 返回或设置对象的宽度

Left 返回或设置对象内部的左边与它的容器的左边之间的距离。Top 返回或设置对象的内顶部和它的容器的顶边之间的距离。Visible 返回或设置一指示对象为可见或隐藏的值。

Locked 设置为ture时,文本不能被编辑,也不能被复制粘贴。

MultiLine 返回或设置TextBox 控件是否能够接受和显示多行文本。

ScrollBars TextBox 控件的属性MultiLine为真时,可为文本框控件设置水平、垂直滚动条。Style 命令按钮的该赂性值为1时,可修改该命令按钮的背景颜色。

Text 返回或设置文本框控件中包含的文本。

Name 返回或设置字体对象的名字。

六、几种基本算法

解析法( P98)

通过分析问题中各要素之间的关系,用最简练的语言或形式化的符号来表达它们的关系,得出解决问题所需的表达式,然后设计程序求解问题的方法称为解析法(参看P100“电阻计算问题”)。

穷举法(P103)

“穷举法”也称为“枚举法”或“列举法”。穷举法,指在一个有穷的可能的解的集合中,一一列举出集合中的每一个元素,用题目给定的检验条件来判断该元素是否符合条件,若满足条件,则该元素即为问题的一个解;否则,该元素就不是该问题的解(参看P103的IQ问题)。

顺序查找(P117)

当查找的对象没有规律时可用顺序查找方法。顺序查找就是一个一个地按照对象的元素往下查找,直到全部元素都查了一遍。

所谓顺序查找,就是从数据序列中的第1个元素开始,从头到尾逐个查找,直到找到所要的数据或搜索完整个数据序列。这种顺序查找的代码很简单,只需编写一个循环,将数组中各元素依次与目标数进行比较即可(参看下面例题)。

'随机生成10个数(在1到100之间的整数)并输出;再输出其中的最大数及位置号(顺序查找)。

Private Sub Command1_Click()

Dim a(1 To 10) As Integer, i As Integer, Max As Integer, mIndex As Integer

Max = 0

Randomize '每次运行时,要产生不同序列的随机数,执行Randomize 语句。

Cls '清除窗体中用PRINT等方法输出的内容。

Print

For i = 1 To 10 '本段循环程序随机产生10个1到100之间的整数并显示出来,同

时还按顺序找出其中的最大数。

a(i) = Int(Rnd * 100) + 1 '利用取整函数Int()、随机函数Rnd(),可让计算机产生一定范围的随

机整数,公式为:Int(Rnd()*(上限- 下限+ 1 ) )+下限。

Print a(i); '按紧凑格式输出所产生的随机数。

If Max < a(i) Then '按顺序查找10个数中的最大数。

Max = a(i) '依次将查找过程中找到的大数存入变量Max中。

mIndex = i '并将其位置保存到变量mIndex中。

End If '顺序比较完成之后,Max就是10个数中的最大者。

Next i

Print

Print

Print " 最大值= " & Max & ",所在位置为第" & mIndex & " 个位置。"

End Sub

对半查找(P119)

若数据没有经过整理而无顺序,要不遗漏不重复地查找,大致也只能用顺序查找的方法进行查找了;而若数据已经整理而变得有顺序(例如数据按由小到大的顺序进行排序)了,就可以使用对半查找(比较容易理解的一种方法)的方法进行查找,从而提高工作效率。

基本方法:首先在查找对象的中间位置取出一个元素来与目标元素对比,若目标元素较小,则在查找对象的上半部分进行查找就可以了。相反,如果目标元素较大,则在查找对象的下半部分继续进行查找。这样查找的范围就缩小了一半。反复进行这个过程,就能很快确定目标元素在查找对象中的位置(或者确定不在查找对象中)。参看下面例题。

从键盘输入一个100以内的正整数,用对半查找法进行查找,确定其是否在随机产生的100个整数中。

Private Sub Command1_Click()

Dim a(1 To 100) As Single, x As Integer

Dim L As Integer, H As Integer

Dim t As Integer, mid As Integer

Cls

Randomize '使生成的数据中无重复元素

For i = 1 To 100

a(i) = Int(100 * Rnd + 1) '给数组a赋1到100之间的数

Print a(i); " ";

If i Mod 10 = 0 Then Print

Next i

Print

'对一维数组进行排列,采用选择法排序

For i = 1 To 99

For j = i + 1 To 100

If a(i) >= a(j) Then

m = a(j): a(j) = a(i): a(i) = m '数据交换

End If

Next j

Next i

For i = 1 To 100

Print a(i); " ";

If i Mod 10 = 0 Then Print

Next i

x = Val(InputBox("请输入要查找的1--100的数")) '输入要查找的数

Do While x > 100 Or x < 1

x = Val(InputBox("您要查找的数不符合条件,请重新输入要查找的1--100的数")) '保证查询符合条件

Loop

'对半查找程序

L = LBound(a): H = UBound(a) '给L和H赋值Lbound(ArrayName[,维数]):取得数组相应维数的下界;Ubound(ArrayName[,维数]):取得数组相应维数的上界

t = 0 '起辅助作用,当t=0时,则表示未找到要查找的数,而t=1时表示要查找的数已找到

Do While t = 0 And H >= L '用do while 循环命令判断查找条件

mid = (H + L) \ 2

If a(mid) = x Then

t = 1

Else

If x < a(mid) Then

H = mid - 1

Else

L = mid + 1

End If

End If

Loop

'结果输出

If H < L Then

Print " 没有找到您要查找的数"

Else

Print " 你要查找的数是a("; mid; ")", a(mid)

End If

End Sub

选择排序(P125)

选择排序法是一个很简单的算法。其原理是首先找到数据清单中的最小(或最大)的数据,然后将这个数据同第一个数据交换位置(进行第一轮挑选);接下来在余下的数据中找第二小(或第二大)的数据(进行第二轮挑选),再将其同第二个数据交换位置,以此类推(参看下面例题)。

例:将五个数5、4、1、3、2按顺序进行排序。

Private Sub Command1_Click()

Dim a(5) As Integer

Dim min As Integer, w As Integer, m As Integer

a(1) = 5: a(2) = 4: a(3) = 1: a(4) = 3: a(5) = 2 '将已知数据赋值给数组元素

Print "排序前的数据:"

For i = 1 To 5 '本程序段输出排序前的数据。

Print a(i),

Next i

Print

Print

For i = 1 To 4 '本程序段按选择排序法进行排序。外循环负责将第I轮

选择到的最小数与第I个位置的数据对调。

min = a(i): w = i '变量min存放找到的较小数,变量w存放较小数的位置。

For j = i + 1 To 5 '内循环程序段负责在第I轮中挑选最小数。

If a(j) < min Then min = a(j): w = j '将找到的较小的数暂存到变量min中,将其位置保存到

变量w中。

Next j

m = a(i): a(i) = min: a(w) = m '将本轮选择到的最小数与第I个位置的数据对调。

Next i

Print "从小到大排序后的数据:"

For i = 1 To 5 '本程序段输出排序后的结果。

Print a(i),

Next i

End Sub

插入排序(P127)

插入排序:在输入每一个数据时,在它前面输入的数据已经按顺序排好,它只需要插入到一个排好顺序的队列之中,这种算法称为插入排序算法(参看P130程序4-15)。

Dim d(10000) As Long

Dim k As Integer

Private Sub Command1_Click()

Dim a As Long

a = Val(Text1.Text)

k = k + 1

i = k

Do While i > 1 And d(i - 1) > a

d(i) = d(i - 1)

i = i - 1

Loop

d(i) = a

Text2.Text = ""

For j = 1 To i - 1

Text2.Text = Text2.Text & Str(d(j)) & " "

Next j

Text2.Text = Text2.Text & "(" & Str(d(j)) & ")"

For j = i + 1 To k

Text2.Text = Text2.Text & Str(d(j)) & " "

Next j

Text1.Text = ""

Text1.SetFocus

End Sub

递归算法(P133):

在函数或子过程的内部,直接或者间接地调用自己的算法(参看下面例题)。

例:用递归函数实现计算N!的求解。代码如下:

Private Sub Form_Click()

Dim N As Integer, F As Long

N = InputBox("输入一个正整数:")

F = Fact(N) '函数调用

Print N; "!="; F

End Sub

Private Function Fact(ByVal N As Integer) As Long

If N = 1 Then

Fact = 1

Else

Fact = N * Fact(N - 1) '函数递归调用

End If

End Function

以计算3!为例,递归函数Fact的调用和返回过程如图1所示。

图1 递归函数Fact的调用

相关文档