打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
数组精讲 | VB编程核心知识总结之数组
数组讲解
各位朋友,今天我们来学习VB编程中最重要的知识——数组的相关知识。
为了解决大批量的数据处理问题,VB中提供了数组(Array)变量。数组是一种重要的数据结构,在许多程序设计语言中,都要直接或间接用到数组这种数据结构。
数组的概念
在VB中,如果把一组有序的数或变量作为一个整体来处理,这一组数或变量称为数组,数组中的每一个数或变量称为数组元素,每一个数组给定一个名称,叫做数组名,一个数组中各个数组元素之间的区别用数组名的下标来表示,放在数组名后的圆括号内。数组中的任意一个数组元素都可以存放一个数据,和使用简单变量一样,所以又称数组元素为下标变量。
例如:用A来表示一个班50个同学的数学成绩,用A(1)表示1号同学的成绩;A(2)表示2号同学的成绩;A(3)表示3号同学的成绩;...;A(50)表示第50号同学的成绩。则A为数组名,A(1)、A(2)、A(3)等都称为A数组的元素。
数组也有数值型和字符串型等类型之分。在一个数组中通常只能放置一种类型的数据,并且与数组的类型一致。
此外,数组还有静态数组和动态数组之分。
注意:在使用数组前通常都要对数组进行维数、类型及大小等内容的定义或说明。
静态数组
一、静态数组定义
静态数组是在定义数组时就指定了数组维数的多少及数组的大小。
1、语法
Dim 
redim
Static
Public
2、语法说明:
(1)Dim:定义窗体模块数组。ReDim:在过程中定义。Static:在过程中定义。Public:在标准模块中定义全局数组。
(2)数组名的命名规则和变量命名规则相同,但是数组名不能与一般变量同名。
(3)凡是VB的数据类型,在数组中都可以说明和使用,当“As类型”省略时,为变体型数组(Variant)。
(4)下限值和上限值的大小范围是从-32768至32767。下限值及关键字TO可以省略,当省略时下限值为0。使用数组时,其下标不能超出所定义的范围。下标可以是负数。
(5)维数可以多达60维。
(6)数组要先定义后使用。
(7)在一个过程内部,数组名不能与某个变量同名。
(8)用Dim语句定义数据组,数值型元素置0,字符型元素置空字符串。
(9)可用类型说明符说明数组类型。
(10)若在定义时不指明下标,下标为0,这里可用Option Base 1定义下标为1。
例子:数组定义举例
定义的例子
数组维数
数组元素
Dim A(5) As Integer
'整型
一维
A(0), A(1),A(2), A(3), A(4), A(5)
Dim A(1 To 5) As String
'字符型
A(1),A(2), A(3), A(4), A(5)
Dim B(2,3) As Single
'单精度实型
二维
B(0,0),B(0,1),B(0,2),B(0,3)
B(1,0),B(1,1),B(1,2),B(1,3)
B(2,0),B(2,1),B(2,2),B(2,3)
Dim B(1 To 2,1 To 3) As Integer
'整型
B(1,1),B(1,2),B(1,3)
B(2,1),B(2,2),B(2,3)
Dim C#(2,3,2) '双精度实型
三维
C(0,0,0),C(0,0,1),C(0,0,2)
C(0,1,0),C(0,1,1),C(0,1,2)
C(0,2,0),C(0,2,1),C(0,2,2)
C(0,3,0),C(0,3,1),C(0,3,2)
C(1,0,0),C(1,0,1),C(1,0,2)
C(1,1,0),C(1,1,1),C(1,1,2)
C(1,2,0),C(1,2,1),C(1,2,2)
C(1,3,0),C(1,3,1),C(1,3,2)
C(2,0,0),C(2,0,1),C(2,0,2)
C(2,1,0),C(2,1,1),C(2,1,2)
C(2,2,0),C(2,2,1),C(2,2,2)
C(2,3,0),C(2,3,1),C(2,3,2)
二、测试数组上、下标函数
1、测试数组下标函数:Lbound(数组[,维])
2、测试数组上标函数:Ubound(数组[,维])
例子:
Dim D(3, 5, 7,9) As String
Private Sub Form_Click()
Print LBound(D, 1),
Print UBound(D, 1)
Print LBound(D, 2),
Print UBound(D, 2)
Print LBound(D, 3),
Print UBound(D, 3)
Print LBound(D, 4),
Print UBound(D, 4)
End Sub
结果显示:
0    3
0    5
0    7
0    9
三、变体型(默认)数组
若定义数组时不指定类型,则该数组是一个变体型数组。其元素的类型可以不同。
即:Dim A(2,3)等同于:Dim A(2,3) As Variant
例子:
Dim A(5)
Private Sub Form_Click()
A(1) = '中华人民共和国'
A(2) = 12345
A(3) = 3456789
A(4) = 987654321
A(5) = 'ABCDE' + 'abcde'
Print A(1)
Print A(2)
Print A(3)
Print A(4)
Print A(5)
End Sub
四、数组的操作
数组的操作包括对数组元素进行数值的输入、输出和复制。
1、数组元素的赋值
方法一:用赋值语句对数组元素逐个赋值。
例子:
Dim A(5)
Private Sub Form_Click()
A(1) = '中华人民共和国'
A(2) = 12345
A(3) = 3456789
A(4) = 987654321
A(5) = 'ABCDE' + 'abcde'
Print A(1)
Print A(2)
Print A(3)
Print A(4)
Print A(5)
End Sub
方法二:用赋值语句结合For循环语句。
Dim D(0 To 2, 1 To 3) As Integer
Private Sub Form_Click()
For i = 0 To 2
For j = 1 To 3
D(i, j) = 100
Print D(i, j)
Next j
Next i
End Sub
方法三:用InputBox函数。
Dim array1(5) As Variant
Private Sub Form_Click()
For i = 1 To 5
array1(i) = InputBox('输入元素的值:')
Next i
For i = 1 To 5
Print array1(i)
Next i
End Sub
方法四:对于 变体型一维数组,可应用Array()函数赋值。
格式:Array(值1,值2,值3… …)
例子:设一个一维变体型数组ABC,不指定维数,用Array()函数赋值,然后显示元素值。
Option Base 1
Dim ABC
Private Sub Form_Click()
ABC = Array('One', 'Two', 'Three', 'Four', 1, 2, 3, 4, 5, 6)
For i = 1 To 10
Print ABC(i)
Next i
End Sub
2、数组元素值的输出
用Print语句显示输出。前面有相应的例子。这里讨论如何进行“格式”输出。
例子:设有一个单精度实型三维数组array2(2,3,4),其元素值:
11 12 13 14
15 16 17 18
19 20 21 22
31 32 33 34
35 36 37 38
39 40 41 42
源程序如下:
Option Base 1
Dim array2(2, 3, 4) As Single
Private Sub Form_Click()
For i = 1 To 2
For j = 1 To 3
For k = 1 To 4
array2(i, j, k) = InputBox('输入元素的值:')
Next k
Next j
Next i
For i = 1 To 2
For j = 1 To 3
For k = 1 To 4
Print array2(i, j, k); '';
Next k
Print
Next j
Print
Next i
End Sub
3、For Each … Next语句
该语句是专门用于数组操作的语句。
(1)语句格式
For Each 成员 in 数组
循环体
[ Exit For]
… …
Next 成员
(2)说明
利用语句中的成员变量可实现数组元素的赋值、计算、显示等操作。
例子:设一个二维数组array5(3,4),将其中的第一个元素赋值100,后面的元素依次再加1赋值
Option Base 1
Dim array5(3, 4)
Private Sub Form_Click()
n = 100
For Each x In array5        ’x为成员
x = n
n = n + 1
Print x
Next x
End Sub
五、嵌套数组
在Visual Basic中,可以用一个数组作为另一个数组的元素。在使用时,可将一个数组(嵌套数组)赋值给另一个数组(被嵌套数组)的元素,嵌套数组名后面加空括号。
要求:嵌套数组是数据类型,被嵌套数组不指定类型。
例子:将数组a(4)赋给数组b(2),
Dim a(4) As Integer
Dim b(2)
Private Sub Form_Click()
For i = 1 To 4
a(i) = i
Next i
b(1) = a()
b(2) = a()
Print b(1)(1)
Print b(1)(2)
Print b(1)(3)
Print b(1)(4)
Print
Print b(2)(1)
Print b(2)(2)
Print b(2)(3)
Print b(2)(4)
End Sub
动态数组
动态数组是指其数组的维数及大小可以重新定义,根据应用的环境不同随时说明其维数及大小。“动态数组”是由变量作为下标的数组,其下标在程序运行时完成定义。
一、动态数组的定义
第一步:用Dim语句或Public语句定义一个只有空括号而无下标的数组。
第二步:用ReDim定义带下标的数组。语句的格式:
ReDim [Preserve] 变量(下标) As 类型
在定义时,类型与Dim语句中的类型要一致。下标通过变量赋值解决。
例子:
Dim A() As Integer
Private Sub Form_Click()
n = InputBox('输入n的值:')
ReDim A(n)
For i = 1 To n
A(i) = 12345
Print A(i)
Next i
End Sub
可以动态地定义多个数组。例子:
Dim A() As Integer, B() As Integer
Private Sub Form_Click()
n = InputBox('输入n的值:')
m = InputBox('输入m的值:')
ReDim A(n, m)
ReDim B(n, m)
For i = 1 To n
For j = 1 To m
A(i, j) = 12345
B(i, j) = 23456
Print A(i, j), B(i, j)
Next j
Next i
End Sub
二、数组的清除和重定义
数组一经定义,在内存中会分配相应的存储单元,其大小是不能改变的。即:在一个程序中,同一个数组只能定义一次。若清除数组内容或重新定义,要使用Erase语句。
格式:
Erase 数组名[,数组名]… …
例子:
Erase A,B,C
1、清除静态数组的影响
数组类型
对元素的影响
数值类型数组
将元素值置0
字符类型数组(变长)
将元素值设为空字符串
字符类型数组(定长)
将元素值置0
变体类型数组
将元素值设为Empty
用户定义类型数组
将元素设为单独的变量
对象数组
将元素值设为Nothing
例子:
Dim A(3) As Integer
Private Sub Command1_Click()
For i = 1 To 3
A(i) = 12345
Print A(i)
Next i
End Sub
Private Sub Command2_Click()
Erase A
For i = 1 To 3
Print A(i)
Next i
End Sub
2、清除动态数组的影响
(1)系统会删除数组结构,并释放内存空间。
(2)下次引用动态数组前,要用ReDim语句重新进行定义。
三、数组应用算法--数据统计
利用数组进行数据统计运算
例:利用随机函数生成十个100以内的随机整数,计算出这十个数的总和及其平均值,并输出这十个数、总和及其平均值。
问题分析:对象设置把结果使用Print方法直接输出到窗体中,不用设置专用对象。
程序代码:
DimA(10)AsInteger
Dim B As Single
Sub Form_Load()
Form1.Show
Print  ' 十个整数为:'
For i=1 To 10             '循环产生10个随机整数
A(I)=Int(Rnd*100)   '生成随机第i个整数
PrintA(I);             '显示第i个数
A(0)=A(0)+A(I)   '累加求和
Next i
Print
B=A(0)/10            '求平均值
Print '总和为:';A(0)
Print '平均值为:';B
End  Sub
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
017、初识数组
【原创】VBA学习笔记(12)VBA的数组 array
《Visual Basic程序设计教程(第3版)》第6章 数组
VB程序设计数组
【原创】VBA学习笔记(13)VBA的数组 array
wrongandpoint
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服