Problem

1/10

数组(列表)。介绍

Theory Click to read/hide

数据存储

假设您开发了一款名为“User Hostile”的计算机游戏,玩家在其中与复杂且不友好的计算机界面竞争。现在您需要编写一个程序来跟踪该游戏在五年内的月销售额。或者假设您需要清点 Hacker Hero Trading Cards。
很快您就会得出结论,您需要的不仅仅是简单的基本数据类型来存储和处理信息。
 

数组(列表)。简介

为了方便处理大量数据,一组单元格被赋予一个通用名称。这样的一组单元格称为数组
数组 –它是一组相同类型的存储单元,并排放置并具有共同的名称。组中的每个单元格都有一个唯一的编号。

使用数组时,您需要学习如何解决三个任务:
X为数组分配所需大小的内存
X将数据写入所需的单元格
X从单元格中读取数据


Pascal 中的数组


传统上 Pascal 使用像

这样的静态数组 <前> var a: array [1..10] of integer;

数组的边界必须由常量设置,并且您不能在程序运行期间更改数组的大小。但是您不仅可以为整数创建索引,还可以为字符或枚举类型创建索引。例如,要计算每个字母的出现次数,可以使用数组

<前> var LettersCount: array ['a'..'z'] of integer;

并随心所欲地使用它:

<前> LettersCount['z'] := 1; LettersCount['d'] := LettersCount['d'] + 1;

这种数组的缺点是众所周知的:如果事先不知道需要使用多少元素,那么会为数组分配最大大小的内存。结果,在大多数情况下,我们“为未来储备”,有时这种“储备”事实证明还不够。这就是为什么这样的数组被称为  static 的原因:它们的大小是静态的,必须在程序编译阶段设置。但是,在Pascal 中有  动态数组,其大小不仅可以设置,还可以在程序运行过程中改变。将进一步讨论这些阵列以及使用它们的优势。

创建数组

创建数组时,在内存中分配空间(一定数量的单元格) <前> 1) 数组可以是通过简单地列出元素创建: <前> var a:整数数组; 设置长度(一,3); [0] := 1; 一个 [1] := 2; a[2] := 3;
2) 数组可以由任何类型的数据组成——整数或实数、字符串  <前> var a: 字符数组; 设置长度(一,3); a[0] := 'a'; a[1] := 'b'; a[2] := 'c'; 3) 数组总是“知道”你的尺码。  length 函数用于确定数组的大小。通常数组的大小存储在一个单独的变量中,以便可以轻松更改程序以使用不同的数组大小。例子: <前> N := 10; // 在变量 N 中,我们存储数组的大小 SetLength(a, N); // 设置数组和大小 N writeln(长度(a)); //显示数组的大小 数组的大小可以通过键盘设置。

Problem

修改程序,第五行从键盘输入变量N的值,第六行创建一个大小为N的数组(数组元素的值可以是任意的)