- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8
2 定长数组的声明
使用数组的步骤: 定义声明数组,规定其总体格局 使用时只能对数组的各个元素进行操作(一 般不能对数组整体进行操作),从而实现对 数组的访问
9
2 定长数组的声明
定长数组定义时需要规定的内容:
数组的名字 数组的维数 数组的每个维的下标的范围 数组存放数据的数据类型
20
2. Erase 语句
重新初始化固定大小数组的元素,或者释放动态数
组的存储空间
21
3.用Option Base语句设定下界的默认值
设定下界的默认值 格式:Option Base n
n取值Байду номын сангаас能是 0 或 1
跟Option Explict语句一样是设置的功能语句; Option Base 1 …… Dim a(5) Dim b(3,4)
12
2 定长数组的声明
2.多维数组
Dim 数组名(下标1[,下标2…])[As 类型名] 如: 二维数组: Dim db (3,1 to 5) As Integer
Public N(5,5) As Single 三维数组:Dim Tr(3,4,4) As Long Dim A(1 to 5,1 to 5,1 to 5) As Long
db(0,1)
db(1,1)
db(2,1) db(3,1)
db(1,2)
db(2,2) db(3,2)
db(1,3)
db(2,3) db(3,3)
db(1,4)
db(2,4) db(3,4)
db(1,5)
db(2,5) db(3,5)
二维数组在内存中的存放:
以列为单位存放!
db(0,1) Score(1) db(1,1) Score(2) db(2,1) Score(3) db(3,1) db(0,2) Score(4) db(1,2) Score(5) db(2,2) db(3,2) Score(6) db(0,3) Score(7) …… db(0,4) Score(8) …… …… db(0,5) Score(30) db(1,5) db(2,5) db(3,5)
26
Array函数
对数组整体赋值
步骤①定义一个Variant的变量或数组 如: Dim m 或者 Dim m As Variant 步骤②使用Array函数赋值: 变体变量=Array([数据列表]) 如:m=Array(1,3,5,7,9)
注意:下标从0开始,系统根据Array函数的参数个数决定数组
某个过程 内部
14
2 定长数组的声明
2.多维数组
数组的大小(元素的个数):
= 第一维大小 * 第二维大小 *
……
维的大小 =
维上界
-
维下界 + 1
Dim a(3, -1 to 4) as single a数组的大小 = (3-0+1)*(4-(-1)+1) = 4*6 =24 Dim b(3.8, -1 to 4 ,6) as integer b数组的大小 = 5*6*7 = 210
第6章 数组
本章重点:
理解数组的基本概念,了解默认数组。 理解数组的声明(动态数组和定长数组)。 理解数组的基本操作(输入、输出、查找、排序、 增加、删除等)。 掌握For Each … Next语句的用法。 清楚控件数组的概念,掌握控件数组的建立和使用 方法。
2
引入数组(1)
In后面是数组名,没有括
号和上下界。
19
例6-1 按在内存中实际存放顺序输出二维数组
Private Sub Form_Click() Dim a(1 To 3, 1 To 5) As Integer, x As Variant 变量x Dim i As Integer, j As Integer For i = 1 To 3 For j = 1 To 5 a(i, j) = Int(90 * Rnd + 10) Next j Next i Print "按在内存中实际存放顺序输出二维数组:" For Each x In a Print x; Next End Sub '声明一个变体型
三维数组
0
……
8 6
1 0 4 8 6 7
0 0 0
3 0 2
行×列×层
7
1.数组的基本概念(续)
数组的分类
按维数分: 一维、二维、三维…… 数组的最大维数达60,而元素的多少受内存的制约
按在内存分配是否可变分: 定长(固定大小)数组(数组的维数和长度一旦定义, 不能改变) 动态数组(可动态重新定义数组的维数和长度)
数组db共有4行5列 4×5=20个元素
13
常量、数组、固定长度字符类型作用范围规定表
修饰符 Public 定义位置 标准模块 “通用部分” 申明 窗体 “通用部分” 申明 全局(建议) 本标准模块内 部 本窗体模块内 部 同private (建议) 同private (建议) 本过程内部 (建议) Private 缺省(Dim)
的大小 ,此后,可把m当作一个数组来使用 即m(0)=1、m(1)=3、m(2)=5、m(3)=7、m(4)=9
27
Array函数
举例
Dim v, k As Variant
v = Array(11, 22, 33, 44, 55)
单一的变量对于作为整体存在的数据的表达能力不足,并且 整体中的个体的变化规律无法表达
班级中每个人的名字无法确切记忆 解决:用班级名称代表整体,用班级内学号代表整体中
的个体
如:电信1班(3)
用一个名字代表同类个体集合 集合中个体的表示:集合名(集合内的代号)
3
引入数组(2)
S=1+2+3+…+30 For i = 1 To 30 s=s+i Next i S=a1+a2+a3+…+a30
15
2 定长数组的声明
数组正确定义后:
系统分配连续的内存空间,空间名称为数组名 数组中各个元素获得初始值 数值型为0 逻辑型为False 字符串型为"" 变体型为Empty 演示
16
2 定长数组的声明
内存中存放数组按“线性连续存储”的方式
一维数组在内存中的存放:
db(0,2) db(0,3) db(0,4) db(0,5)
数组元素——集合内的每一个成员
下标——数组元素在数组中的编号, 代表了该元素在数组中的位置
某个数组元素表示为:数组名(下标)
5
1.数组的基本概念(续)
数组——一组相同类型的变量 使用同一个(有意义)名字来组织 一个班(30个)学生的成绩 Score 3000种图书的名字 BookName 100种商品的价格 Cost 数组元素——数组中的各个变量 使用唯一的下标(索引)来标识 如:Score(1)、 Score(2)……Score(30) BookName(0)~ BookName(2999) Cost(0)~ Cost(99) 数组的长度——数组元素的个数
位置:模块的通用部分
如:
’元素a(1)~a(5) ’3行4列,b(1,1)~b(3,4)
22
3.用Option Base语句设定下界的默认值(续)
设定下界的默认值 格式:Option Base n
如: Option Base 1 …… Dim a(5) Dim b(3,4)
可使用“下界 To 上界” 格式定义个别维的下界
LBound——获取数组某个维的下界 UBound——获取数组某个维的上界 Dim a() As Integer
…… For I=Lbound(a) To Ubound(a) „访问每个数组元素 Print a(I) Next
ReDim Preserve a(Ubound(a)+1) 动态向计算机为数组a申请扩展一个数组元素空间
a1 a2 …… a30
a1 a2 …… a30
a(1) a(2) …… a(30)
则: For =1 To 30 则: For ii =1 To 30 s = s + a(i) s = s + ai Next i × Next i
√
找出一组数中的最大/小元素
4
1.数组的基本概念
数组——相同类型数据的集合 数组名——集合的名称
取得一维数组的维下界
取得多维数组某个维的下界
Dim a(5) as integer, b(3 to 8,200 to 208) Print Lbound(a) , Lbound(b,1) , Lbound(b,2) 0 3 200
24
数组有关的函数(2)
UBound——获取数组某个维的上界 格式:
10
定长数组的声明
1.一维数组
Dim
数组名(下标) [As 类型名]
Private 数组名(下标) [As 类型名] Public 数组名(下标) [As 类型名]
如:
Dim
Score(1 to 30) As Integer Private BookName(3000) As String Public Cost(100) As Single
6
1.数组的基本概念(续)
(
数组的维数
一维数组 行 (2,5,7,9,10,4,8) 多维数组 0 7 10 二维数组 行×列 8 2 5
6