文档介绍:第七章数组
§ 数组的基本概念
§ 静态数组与动态数组
§ 控件数组
§ 数组的基本操作
§ 数组的应用
设想:
(1)设置两个简单的数值型变量 EnglishS、MathsS 来分别存储学生的英语、数学成绩, 利用循环便可实现所有成绩的输出。
【引例】备份并输出某班所有学生(共30人)的英语、数学考试成绩。
然而,这里要求成绩备份,即所有成绩仍然保存。显然,上面的两个变量在每次循环执行完毕值都发生了改变,无法满足要求。
虽然能够实现程序功能,但显然存在了 30×2 个变量,输出与操作都显得不便。(English_1,English_2,…,English_30 和 Maths_1,Maths_2,…,Maths_30)
(2)对于每个学生的英语、数学成绩都设置数值型变量 English、Maths,用下划线加数字 1,2,…29,30 来区别,然后逐个存储和输出。
实际应用中,常常遇到类似处理相同类型的大量相关数据的情况。对这些数据,若使用相同的名称、辅以序号(数值变量)来区分代替,处理将变得清晰简便得多。
注意:
(1)数组是由一定数目的同类元素按一定顺序排列而成的结构类型数据;
(2)同其他变量一样,要求先定义再使用,以便在内存中得到数据存储区域,这个区域就是“数组名”,各个不同数据单元用“下标”加以区别;
(3)使用不同的关键字进行数组定义,将使得其使用范围不相同。
数组:一组具有同一名字、不同下标的数据元素。
§ 数组的基本概念
类型: 按长度可分成固定大小的数组和动态数组;
按维数可分成一维数组和多维数组。
§ 数组的定义
一维数组的定义格式:
Dim 数组名( [下标下界 To] 下标上界) As 类型名称
格式说明:
(1)数组名命名规则与简单变量相同;
(2)类型名称为标准或用户定义的数据类型;
(3)下标为整型常数或常量表达式,其下界的默认值是 0;
(4)使用 Dim 语句定义数组,数组元素初始化为“0”(数值数组)或“空字符串”(字符串数组)。
(5)下标的范围可以是-32768~32767。
【例】定义一个一维数组用来存储一个35人的班级的同学的名字。
Dim Student (34) As String
Student(0)
Student(1)
…………
Student(33)
Student(34)
数组名称
下标上界
Student(1) =”李琼“
Student(33) =”张三“
李琼
张三
二维数组的定义格式:
Dim 数组名( [第一维下标下界 To] 第一维下标上界, _
[第二维下标下界 To] 第二维下标上界) _
As 类型名称
前面我们学习了一维数组,这种数组适用于存放一系列没有层次关系的一维数据,如姓名,单据等记录,但如果数据中有层次关系,例如要记录一个学校所有班级的学生记录,该怎么办呢?
张伟
刘伟
孙权
……0
齐秦
非儿
孔明
……1
王真
孙楠
关羽
……2
……0
……1
……2
……
班级1
班级2
班级3
列
行
Student(2,1)
【例1】分别定义一个一维数组和一个二维数组。
Dim EnglishS(29) As Integer
数组名称
下标上界
数据元素的类型
EnglishS(1) =85: EnglishS(28) =63
数组中的一个数据元素
数据元素的下标值
EnglishS(0)
EnglishS(1)
…………
EnglishS(28)
EnglishS(29)
85
63
Dim StuScore(1 To 30,1 To 2) As Integer
数组名称
第 1维下标上界
第 1维下标下界
第 2维下标下界
第 2维下标上界
StuScore(1,1)
StuScore(1,2)
StuScore(2,1)
StuScore(2,2)
……
……
StuScore(29,1)
StuScore(29,2)
StuScore(30,1)
StuScore(30,2)
行下标
列下标
Private mand1_Click( )
Dim I, n As Integer
Dim EnglishS(1 To 30) As Integer
For I = 1 To 30
EnglishS(I) = Val(InputBox("请输入学生成绩"))
Next I
For I = 1 To 30
Print "学号为"; I; " 的学生英语成绩是"; EnglishS(I)