第七章数组 §71数组的基本概念 §72静态数组与动态数组 §73数组的基本操作 §74控件数组 §75数组的应用
第七章 数 组 §7.1 数组的基本概念 §7.2 静态数组与动态数组 §7.4 控件数组 §7.3 数组的基本操作 §7.5 数组的应用
引例】备份并输出某班所有学生(共30人)的英语、数 学考试成绩。 设想: (1)设置两个简单的数值型变量 Englishs、 Maths 来分别存储学生的英语、数学成绩,利用循环便可实现所 有成绩的输出。 然而,这里要求成绩备份,即所有成绩仍然保存。显然,上面 的两(玪号孚学至的锗数学戒绩都置数型变 量 English、 Maths,用下划线加数字1,2,,29,30来 区别,然后逐个存储和输出。 虽然能够实现程序功能,但显然存在了30×2个变量,输出与操 作都显得不便。( English1, English2,…, English-3和 Maths 1, Maths 2..., Maths 30)
设想: (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 来 区别,然后逐个存储和输出
§7际组的藁撅禽处理相回类型的大量相关数据的情况。 双達韬的学球不下的数完票分代 类型:按长度可分成固定大小的数组和动态数组; 按维数可分成一维数组和多维数组。 >注意: (1)数组是由一定数目的同类元素按一定顺序排列而 成的结构类型数据 (2)同其他变量一样,要求先定义再使用,以便在内 存中得到数据存储区域,这个区城就是“数组名”,各个 不同数据单元用“下标”加以区别 (3)使用不同的关键字进行数组定义,将使得其使用 范围不相同
实际应用中,常常遇到类似处理相同类型的大量相关数据的情况。 对这些数据,若使用相同的名称、辅以序号(数值变量)来区分代替, 处理将变得清晰简便得多。 ➢ 注意: (1)数组是由一定数目的同类元素按一定顺序排列而 成的结构类型数据; (2)同其他变量一样,要求先定义再使用,以便在内 存中得到数据存储区域,这个区域就是“数组名”,各个 不同数据单元用“下标”加以区别; (3)使用不同的关键字进行数组定义,将使得其使用 范围不相同。 ➢ 数组:一组具有同一名字、不同下标的数据元素。 §7.1 数组的基本概念 ➢ 类型: 按长度可分成固定大小的数组和动态数组; 按维数可分成一维数组和多维数组
§711数组的定义 维数组的定义格式 Dim数组名([下标下界To]下标上界)As类型名称 格式说明: (1)数组名命名规则与简单变量相同; (2)类型名称为标准或用户定义的数据类型; (3)下标为整型常数或常量表达式,其下界的默认值是0 (4)使用Dm语句定义数组,数组元素初始化为“0”(数 值数组)或“空字符串”(字符串数组) (5)下标的范围可以是-32768~32767
§7.1.1 数组的定义 ➢ 一维数组的定义格式: Dim 数组名 ( [下标下界 To] 下标上界) As 类型名称 格式说明: (1)数组名命名规则与简单变量相同; (2)类型名称为标准或用户定义的数据类型; (3)下标为整型常数或常量表达式,其下界的默认值是 0; (4)使用 Dim 语句定义数组,数组元素初始化为 “0” (数 值数组)或 “空字符串”(字符串数组)。 (5)下标的范围可以是-32768~32767
【例】定义一个一维数组用来存储一个35人的班级的同学的名字 Dim Student ( 34)As String 数组名称下标上界 Studen(1)=”李琼“ Studento3)=”张三“ Student(O) Student(1) Student(33) Student(34) 李琼 张
【例】定义一个一维数组用来存储一个35人的班级的同学的名字。 Dim Student (34) As String Student(0) Student(1) ………… Student(33) Student(34) 数组名称 下标上界 Student(1) =”李琼“ Student(33) =”张三“ 李 琼 张 三
前面我们学习了一维数组,这种数组适用于存放一系列没有层次 关系的一维数据,如姓名,单据等记录,但如果数据中有层次关系, 例如要记录一个学校所有班级的学生记录,该怎么办呢? 班级1张伟刘伟孙权 ●。●●● 班级2齐秦非儿孔明 ●●●●●● 班级3王真孙楠、关羽 012 0 ●。●●。● Student(2, 1) 二维数组的定义格式 Dim数组名([第一维下标下界To]第一维下标上界, 第二维下标下界T]第二维下标上界 As类型名称
➢ 二维数组的定义格式: 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(o) EnglishS(1) EnglishS(28) English S(29) 85 63
【例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 TT T 数组名称 第1维下第2维下 标上界 标上界 第1维下第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) 行下标 列下标
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 Sub Commandl Click Dim I, n As Integer Dim Englishs(I To 30)As Integer For I=1 To 30 Englishs(I)=Val( nput Box("请输入学生成绩") Next I For I=1 To 30 Pint"学号为";I,"的学生英语成绩是"; EnglishS(I Next I End sub
Private Sub Command1_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) Next I End Sub 对数组进行定义了以后,就可使用了,如:
定义数组时应该注意的问题: >在同一个过程中,数组名不能与变量同名 >在定义数组时,下标可以是常数,也可以是变量或表达式, 但变量的值必须在执行数组定义语句之前给出 n= inputbox(输入n的值”) Dim array1(10), array2 (n), array3(n+5) 下界必须小于上界
定义数组时应该注意的问题 : ➢ 在同一个过程中,数组名不能与变量同名 ➢ 在定义数组时,下标可以是常数,也可以是变量或表达式, 但变量的值必须在执行数组定义语句之前给出 – n=inputbox(“输入n的值”) – Dim array1(10), array2(n), array3(n+5) ➢ 下界必须小于上界