文档库 最新最全的文档下载
当前位置:文档库 › VB第8次课课件(第4章数组)

VB第8次课课件(第4章数组)

第4章数组和字符串

五、与数组相关的几个函数

六、控件数组

七、数组应用举例

八、字符串应用

五、与数组相关的几个函数

1.Array()函数

格式:Array(arglist)

功能:对数组整体赋值,但此时只能声明Variant 的变量或仅由括号括起的动态数组。赋值

后的数组大小由赋值的个数决定。

说明:arglist 参数是一个用逗号隔开的值表,这些值用赋给数组的各个元素。

例子:Dim A As Variant

A = Array(10,20,30)

B = A(2)

创建一个Variant变量A,将一个数组赋给变量A ,将数组的第二个元素的值赋给变量B。

例12:Array函数使用的例子。

12

2. Ubound函数

格式:UBound(arrayname[, dimension])

功能:返回一个Long 型数据,其值为指定的数组维可用的最大下标。

说明:arrayname-必选项,数组变量的名称.

dimension-可选项,指定返回哪一维的上界。1表示第一维,2表示第二维,以此类推。如果省略dimension,就认为是1。

例子:Dim A(1 To 100, 0 To 3, -3 To 4) 语句返回值

UBound(A, 1)100

UBound(A, 2)3

UBound(A, 3)4

3. Lbound函数

格式:LBound(arrayname[, dimension])

功能:返回一个Long型数据,其值为指定数组维可用的最小下标。

说明:arrayname-必需的。数组变量的名称。

Dimension-可选的,指定返回哪一维的下界。1表示第一维,2表示第二维,以此类推。如果省略dimension,就认为是1。

例子:Dim A(1 To 100, 0 To 3, -3 To 4) 语句返回值

LBound(A, 1)1

LBound(A, 2)0

LBound(A, 3)-3

3. Split函数

格式:Split(字符串,[分隔符],[分解个数])

功能:以指定字符为分隔符,将字符串分解为若干个子字符串,并保存在一个下标从0开始的一维数组中。说明:在使用Split函数之前,要先定义一个动态数组用以存放该函数的返回值。

例子:Private Sub Command1_Click()

Dim a() As String

Dim b As Variant

a = Split("a*b*c*d*e*f", "*", 3)

For i = 0 To UBound(a)

Print a(i)

Next i

b = Split("a b

c

d

e f")

For i = 0 To UBound(b)

Print "b("; i; ")="; b(i)

Next i

End Sub例13

例14:在窗体上添加一个命令按钮和一个文本框,在文本框中输入用“,”号隔开的一组数,如:1,2,3,4,5,6,7,8,9,10

在命令按钮的单击事件中编写一段程序,将文本框中的数据依次向右移位,移位次数由键盘输入。如移位2次,则输出结果为:

9,10,1,2,3,4,5,6,7,8

例14

六、控件数组

1.控件数组的定义

控件数组是由一组相同类型的控件组成。它们共用一个控件名,绝大部分的属性也相同,但有一个属性不同,即Index属性的值不同。当建立控件数组时,系统给每个元素赋一个唯一的索引号(Index),通过属性窗口的Index属性,可以知道该控件的下标是多少,第1个元素下标是0。

控件数组最大的特点是:控件数组共享同样的事件过程。所以适用于若干个控件执行的操作相似的场合。

2.控件数组的建立

(1)在设计时建立,步骤为:

?在窗体上画出某个控件,可以进行控件名的属性设置,这是建立的第一个元素;

?选中该控件,进行copy和paste操作,系

统会提示:

“已有了命名的控件,是否要建立控件数组”

单击Yes按钮后,就建立了一个控件数组元素,进行若干次Paste操作,就建立了所需要的控件

数组;

Dim a(1 To 12) As Integer

Private Sub Command1_Click(Index As Integer)Select Case Index

Case 0

'产生12个数,在Text1(0) 中显示Case 1

'求最大值Case 2

'求最小值Case 3

'求平均值Case 4

'退出End Select

End Sub

例15:随机生成12个数,求这组数中的最大值、最小值及平均值。要求使用控件数组。

例15

(2)运行时添加控件数组,步骤为:

?在窗体上画出某控件,设置该控件的Index属性值为0,表示该控件为数组;这是建立的第一个元素;

?在编程时通过Load方法添加其余的若干个元素,也可以通过Unload方法删除某个元素;

?每个新添加的控件数组通过Left和Top属性,确定其在窗体中的位置,并将Visible属性设置为True。

例16:建立一个类似国际象棋的棋盘。要求:

设计时在窗体上放一个Label控件,其Index属性为0,BackColor属性为黑色。程序运行时产生64个Label控件数组元素,BackColor黑白交替。

16

七、数组应用举例

例17:求两矩阵相乘的积。

For i = 1 To 2

For k = 1 To 3

For j = 1 To 5

c(i, k) = c(i, k) + a(i, j) * b(j, k)

Next j

Print c(i, k),

Next k

Print

Next i例

17

例18:扬辉三角形。

18

杨辉三角形为直角样式的代码

杨辉三角形为等腰样式的代码

排序问题

1.比较互换法排序

基本过程(以降序为例):

将第一个元素顺序与其后面的元素比较,比第一个大则进行交换,第一轮完毕后,最大的元素被挪到了第一个位置,第二轮从第二个元素开始重复上面的过程,结束后得到第二个最大的元素,如此下去经过N-1 轮的比较,可将N 个数排好

如原始数据:1,2,3,5,4 要求:降序

第一轮比较:

1 2 3 5 4

2 1

3 5 4

3 1 2 5 4

5 1 2 3 4

5 1 2 3 4第一轮结束,找到最大值5

第二轮比较:

5 1 2 3 4

5 2 1 3 4

5 3 1 2 4

5 4 1 2 3第二轮结束,找到第二最大值4

相关文档