VB编程数组
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)
——
数 注意: 在数组声明中的下标说明了数组的整体,即每维的大小;