VB编程数组

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

组 示例: Dim a(10) as integer
Dim b(5)
※ Option Base 1 : 可修改数组默认下标下界为1
只可在通用模块中声明




3: 数组的定义
定义格式: Dim 数组名(下标1 to 下标2) As 类型
Dim: 用在窗体模块或标准模块及过程中。
VB
ReDim: 用来重新定义动态数组的大小。




2: 数组的基本概念
数组是由一定数目的同类元素按一定顺序排列而成的结构
类型数据,是一组具有同一名字、不同下标的下标变量,其一
VB
般形式如下:

s(n)

设 其中s称为数组名,n是下标。
计 例如:
——

Dim mark(1 To 50) As Integer
组 Mark数组内存分配示意如下:




VB
VB 程序设计




数组
——
数 组



Baidu Nhomakorabea

本章主要内容
1 数组的基本概念
VB

2 静态数组与动态数组


3 数组的基本操作

——
4 控件数组


5 常用算法与数据结构二
6 自定义数据类型




1: 引例
若有一个班50个学生的一门成绩,求平均成绩,然后统计高 于平均分的人数。
按以前简单变量的使用和循环结构相结合,求平均成绩程序段

序 Static: 用来说明该数组为静态数组。

计 Global(Public):说明该数组变量为全局的。
——
一维数组
数 组
格式: Dim 数组名([第一维下标下界 To]第一维下标上界) As 类型
二维数组
格式:Dim 数组名([第一维下标下界To]第一维下标上界, [第二维下标下界To]第二维下标上界) As 类型

——
示例:Dim A(-1 to 5) As Integer
数 组
A(-1)=1
: A(1)=2
K=A(0)+A(1) : A(4)=A(0)+A(1)
说明:上面语句定义的数组中A为数组变量名,(-1 to 5)为下标
上、下界大小,Integer为数组类型名(整型),A(4)为数
组元素,(4)为数组元素的下标。
示例: Dim a(1 to 3,1 to 4) , b(3,0 to 4) , c(4,5)




示例: Dim abc(0 to 3, 0 to 4) as integer
共有 4×5个元素 等价于: Dim abc(3, 4) As integer
VB
Abc(0,0) Abc(0,1) Abc(0,2) Abc(0,3)
定义格式: Dim 数组名(下标1 to 下标2) As 类型
说明:
VB
下标1:又叫数组下标的下界[可省略]
程 序
[当下界为默认值时可省略,VB默认数组下界为0]

下标2:又叫数组下标的上界[不可省略]

as 类型:说明数组中每个元素的类型[可省略]
——

[as 类型 省略时数组元素为可变类型(Variant)]

在程序其他地方出现的下标表示数组中的一个元素。 两者写法形式相同,但意义不同。 例如: Dim a(10) As Integer ‘声明了a数组有11个元素 a(10)=100 ‘对a(10)这个数组元素赋值




多维数组的定义方法:
Dim 数组名([第一维下标下界 To]第一维下标上界,
[第二维下标下界To]第二维下标上界,
Mark(1) Mark(2) Mark(3) ……
…… Mark(49) Mark(50)
注:如要使用数组,必须先定义




3: 数组的定义
定义格式: Dim 数组名(下标1 to 下标2) As 类型
说明: Dim : 定义数组的关键字
VB
下标1: 数组下标的下界
程 序 设
下标2: 数组下标的上界 as 类型: 说明数组中每个元素的类型




【例1】打印斐波那契(Fibonacci)数列的前20项
数列要求:前两项值为1,从第三项起每一项是其前两项之和
Private Sub Form_Click()
VB

A=1 : B=1

Print A,B


For i = 1 To 9
——
A=A+B

B=A+B

Print A,B
Next
End Sub
VB
如下:
程 序
aver = 0
设 For i = 1 To 50

mark =val( InputBox(“请输入学生的成绩”))
——
aver = aver + mark
数 组
Next aver = aver / 50
若要统计高于平均分的人数,则无法实现。mark是一个简 单变量,存放的是最后一个学生的成绩。 如是每位同学都有多科成绩,又如何计算每个同学的总分呢?
VB

[第三维下标下界To]第三维下标上界,…)
序 设
As 类型名称

——
数 VB提供一对确定下标上界、下界值的函数: 组 下界: LBound(数组[, 维])
上界: UBound(数组[, 维]) (其中“数组”是一个数组名,“维”是指要测试的维)




对于一维数组,参数“维”可以省略,如果要测试多维数组,
? 试问以上数组第一维有多少个元素?通用表达式是什么 Ubound(A,1)-Lbound(A,1)+1

Private Sub Form_Click() Dim A(1 to 20) As Integer A(1)=1 : A(2)=1 For i=3 To 20 A(i)=A(i-1)+A(i-2) Next
For i=1 To 20 Print A(i)
Next End Sub




3: 数组的定义
则“维”不能省略。如:
VB
Dim A(-3 To 4, 2, 3 To 5, -1 To 6 )As Integer

序 设
LBound(A,1)
测试A第一维下界为-3,
计 LBound(A,2) 测试A第二维下界为0,
——
UBound(A,1) 测试A第一维上界为4,
数 组
UBound(A,3)
测试A第三维上界为5。

Abc(1,0)
Abc(1,1)
Abc(1,2)
Abc(1,3)
序 设
Abc(2,0)
Abc(2,1)
Abc(2,2)
Abc(2,3)

Abc(3,0)
Abc(3,1)
Abc(3,2)
Abc(3,3)
Abc(0,4) Abc(1,4) Abc(2,4) Abc(3,4)
——
数 注意: 在数组声明中的下标说明了数组的整体,即每维的大小;
相关文档
最新文档