数据存储
假设您开发了一款名为“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)); //显示数组的大小
数组的大小可以通过键盘设置。