第 4章 数组程序设计本章要点:
理解数组的概念
掌握一维数组和二维数组的含义与定义方法
掌握引用数组元素的方法
掌握与数组有关的常用算法
4.1 循序渐进学理论
4.1.1 数组的概念数组是一些具有相同类型的元素按一定顺序组成的序列。其中每个元素由其对应的位置来指定,这个位置就是数组的索引号
(又称下标),数组元素与索引号是一一对应的,用户可以通过这个索引号来存取数组的每个元素。数组中的各元素是顺序地安排在内存中一段连续的存储空间中。按照数组在定义时是否确定了元素个数可以将数组分为静态数组和动态数组。
4.1.2 一维静态数组的定义与使用
1,一维静态数组类型的定义一维静态数组类型的定义格式如下 。
[格式 ],Type
数组类型名 =array[下标类型 ] of 基类型
N u m 1 [ 1 ] N u m 1 [ 2 ] N u m 1 [ 3 ] N u m 1 [ 4 ] N u m 1 [ 5 ] N u m 1 [ 6 ] N u m 1 [ 7 ] N u m 1 [ 8 ] N u m 1 [ 9 ] N u m 1 [ 1 0 ]
数组 num1各元素排列位置示意图
2.一维静态数组元素的使用程序中一般并不整体地使用数组,而是使用数组元素,引用数组元素的格式如下 。
[格式 ]:数组名 [下标 ]
【 例 4-1】 随机产生 5个两位正整数并存放到一维数组中,然后找出其中的最大值及其下标 。 程序设计界面如图 4-2所示,程序运行界面如图 4-3所示 。
图 4-2 程序设计界面 图 4-3 程序运行界面
4.1.3 二维数组及多维数组的定义与使用
1,二维静态数组类型的定义二维静态数组比一维静态数组多一个下标,其定义格式如下 。
[格式 1],Type
数组类型名 =Array[下标类型 1,下标类型
2]of 基类型
[格式 2],Type
数组类型名 =Array[下标类型 1] of Array
[下标类型 2] of 基类型
2.二维静态数组的使用引用二维数组的数组元素的格式如下 。
[格式 ]:二维数组名 [下标 1,下标 2]
【 例 4-2】 编写程序实现下面的功能:
输入两个学生三门功课的成绩,并统计每个学生的总成绩 。 程序设计界面如图
4-4所示,程序运行界面如图 4-5所示 。
图 4-4 程序设计界面 图 4-5 程序运行界面
4.1.4 动态数组的定义与使用
1.动态数组的定义一维动态数组的定义格式如下。
[格式 ],Type
数组类型名 =Array of 基类型多维动态数组的定义格式如下。
[格式 ],Type
数组类型名 =Array of Array of …
Array of ( 基类型 )
注意:
关于动态数组,应注意以下几点 。
( 1) 动态数组的下标是从零开始 。
( 2) 动态数组各行的长度可以不相等 。
( 3) 无论是静态数组还是动态数组,都可以调用标准函数 Low,High和 Length
来返回数组的最小下标值,最大下标值和数组的长度 。
2.动态数组的使用
【 例 4-3】 设计一个程序,程序的设计界面如图 4-6所示,程序运行界面分别如图 4-7和 4-8所示 。 程序运行时单击
【 一维数组 】 按钮,将随机生成一个一维数组 ( 长度为 1-9中的某个数 ),并显示;单击 【 二维数组 】 按钮,将会随机生成一个具有两行的二维数组 ( 每行长度为 1-9中的某个数 ),两个数组的元素值都是 100以内的非负整数 。
图 4-6 程序设计界面 图 4-7 程序运行界面图 4-8 程序运行界面
4.2 典型实例练能力
4.2.1 典型实例一:冒泡法排序
【 实例题目 】
编写一个冒泡法排序程序,程序的设计界面如图 4-9所示 。 程序运行时,单击 【 输入 】
按钮将从键盘上输入任意 10个整数并显示在第一个编辑框中,然后单击 【 冒泡排序 】 按钮,10个整数将按照从小到大的顺序重新排列,如图 4-10所示 。
图 4-9 程序设计界面图 4-10 程序运行界面
4.2.2 典型实例二:二维数组的“鞍点”
【 实例题目 】
所谓二维数组的,鞍点,是指在本行中最大但在本列中最小的数组元素,
有的数组有,鞍点,,有的数组没有 。
编程寻找一个从键盘上输入的 3行 4列数组的,鞍点,。 程序设计界面如图 4-11
所示,程序运行界面如图 4-12和图 4-13
所示 。
图 4-11 程序设计界面 图 4-12 程序运行界面(一)
图 4-13 程序运行界面(二)
4.3 上机练习重应用
4.3.1 上机练习一:选择法排序
【 练习题目 】
编写一个选择法排序程序,程序的设计界面如图
4-14所示 。 程序运行时单击 【 输入整数 】 按钮,将允许用户输入 5个整数,并以逗号隔开的形式显示在第一个编辑框中 。 单击 【 选择法排序 】 按钮,则排好序的 5个整数将显示在第二个编辑框里 ( 从小到大排列 ),程序运行界面如图 4-15所示 。
图 4-14 程序设计界面 图 4-15 程序运行界面
4.3.2 上机练习二:求学生的平均成绩
【 练习题目 】
某班有 M名同学,本学期开了 N门课,期末考试后,要统计每个学生的平均分 。 请你编写一个程序实现该功能,程序的设计界面如图 4-16所示,程序运行时单击 【 形成学号与成绩 】 按钮将生成有序的学号并随机产生成绩,然后单击 【 计算平均分 】 按钮,将计算出每个学生的平均分,如图 4-17所示 。
图 4-16 程序设计界面图 4-17 程序运行界面
理解数组的概念
掌握一维数组和二维数组的含义与定义方法
掌握引用数组元素的方法
掌握与数组有关的常用算法
4.1 循序渐进学理论
4.1.1 数组的概念数组是一些具有相同类型的元素按一定顺序组成的序列。其中每个元素由其对应的位置来指定,这个位置就是数组的索引号
(又称下标),数组元素与索引号是一一对应的,用户可以通过这个索引号来存取数组的每个元素。数组中的各元素是顺序地安排在内存中一段连续的存储空间中。按照数组在定义时是否确定了元素个数可以将数组分为静态数组和动态数组。
4.1.2 一维静态数组的定义与使用
1,一维静态数组类型的定义一维静态数组类型的定义格式如下 。
[格式 ],Type
数组类型名 =array[下标类型 ] of 基类型
N u m 1 [ 1 ] N u m 1 [ 2 ] N u m 1 [ 3 ] N u m 1 [ 4 ] N u m 1 [ 5 ] N u m 1 [ 6 ] N u m 1 [ 7 ] N u m 1 [ 8 ] N u m 1 [ 9 ] N u m 1 [ 1 0 ]
数组 num1各元素排列位置示意图
2.一维静态数组元素的使用程序中一般并不整体地使用数组,而是使用数组元素,引用数组元素的格式如下 。
[格式 ]:数组名 [下标 ]
【 例 4-1】 随机产生 5个两位正整数并存放到一维数组中,然后找出其中的最大值及其下标 。 程序设计界面如图 4-2所示,程序运行界面如图 4-3所示 。
图 4-2 程序设计界面 图 4-3 程序运行界面
4.1.3 二维数组及多维数组的定义与使用
1,二维静态数组类型的定义二维静态数组比一维静态数组多一个下标,其定义格式如下 。
[格式 1],Type
数组类型名 =Array[下标类型 1,下标类型
2]of 基类型
[格式 2],Type
数组类型名 =Array[下标类型 1] of Array
[下标类型 2] of 基类型
2.二维静态数组的使用引用二维数组的数组元素的格式如下 。
[格式 ]:二维数组名 [下标 1,下标 2]
【 例 4-2】 编写程序实现下面的功能:
输入两个学生三门功课的成绩,并统计每个学生的总成绩 。 程序设计界面如图
4-4所示,程序运行界面如图 4-5所示 。
图 4-4 程序设计界面 图 4-5 程序运行界面
4.1.4 动态数组的定义与使用
1.动态数组的定义一维动态数组的定义格式如下。
[格式 ],Type
数组类型名 =Array of 基类型多维动态数组的定义格式如下。
[格式 ],Type
数组类型名 =Array of Array of …
Array of ( 基类型 )
注意:
关于动态数组,应注意以下几点 。
( 1) 动态数组的下标是从零开始 。
( 2) 动态数组各行的长度可以不相等 。
( 3) 无论是静态数组还是动态数组,都可以调用标准函数 Low,High和 Length
来返回数组的最小下标值,最大下标值和数组的长度 。
2.动态数组的使用
【 例 4-3】 设计一个程序,程序的设计界面如图 4-6所示,程序运行界面分别如图 4-7和 4-8所示 。 程序运行时单击
【 一维数组 】 按钮,将随机生成一个一维数组 ( 长度为 1-9中的某个数 ),并显示;单击 【 二维数组 】 按钮,将会随机生成一个具有两行的二维数组 ( 每行长度为 1-9中的某个数 ),两个数组的元素值都是 100以内的非负整数 。
图 4-6 程序设计界面 图 4-7 程序运行界面图 4-8 程序运行界面
4.2 典型实例练能力
4.2.1 典型实例一:冒泡法排序
【 实例题目 】
编写一个冒泡法排序程序,程序的设计界面如图 4-9所示 。 程序运行时,单击 【 输入 】
按钮将从键盘上输入任意 10个整数并显示在第一个编辑框中,然后单击 【 冒泡排序 】 按钮,10个整数将按照从小到大的顺序重新排列,如图 4-10所示 。
图 4-9 程序设计界面图 4-10 程序运行界面
4.2.2 典型实例二:二维数组的“鞍点”
【 实例题目 】
所谓二维数组的,鞍点,是指在本行中最大但在本列中最小的数组元素,
有的数组有,鞍点,,有的数组没有 。
编程寻找一个从键盘上输入的 3行 4列数组的,鞍点,。 程序设计界面如图 4-11
所示,程序运行界面如图 4-12和图 4-13
所示 。
图 4-11 程序设计界面 图 4-12 程序运行界面(一)
图 4-13 程序运行界面(二)
4.3 上机练习重应用
4.3.1 上机练习一:选择法排序
【 练习题目 】
编写一个选择法排序程序,程序的设计界面如图
4-14所示 。 程序运行时单击 【 输入整数 】 按钮,将允许用户输入 5个整数,并以逗号隔开的形式显示在第一个编辑框中 。 单击 【 选择法排序 】 按钮,则排好序的 5个整数将显示在第二个编辑框里 ( 从小到大排列 ),程序运行界面如图 4-15所示 。
图 4-14 程序设计界面 图 4-15 程序运行界面
4.3.2 上机练习二:求学生的平均成绩
【 练习题目 】
某班有 M名同学,本学期开了 N门课,期末考试后,要统计每个学生的平均分 。 请你编写一个程序实现该功能,程序的设计界面如图 4-16所示,程序运行时单击 【 形成学号与成绩 】 按钮将生成有序的学号并随机产生成绩,然后单击 【 计算平均分 】 按钮,将计算出每个学生的平均分,如图 4-17所示 。
图 4-16 程序设计界面图 4-17 程序运行界面