Pascal - 多维数组


Pascal 编程语言允许多维数组。这是多维数组声明的一般形式 -

type 
   array-identifier = array [index-type1, index-type2, ...] of element-type;
var
   a1, a2, ... : array-identifier;

例如,以下声明创建一个三维 5 。10. 4 整数数组 -

var
   threedim: array[1..5, 1..10, 1..4] of integer;

二维数组

多维数组最简单的形式是二维数组。二维数组本质上是一维数组的列表。要声明大小为 x, y 的二维整数数组,您可以编写如下内容 -

var
   arrayName: array[1..x, 1..y] of element-type;

其中element-type可以是任何有效的 Pascal 数据类型,而arrayName将是有效的 Pascal 标识符。二维数组可以可视化为一个表格,其中有 x 行和 y 列。包含三行四列的二维数组如下所示 -

Pascal 中的二维数组

因此,数组 a 中的每个元素都由 a[ i ][ j ] 形式的元素名称来标识,其中 a 是数组的名称,i 和 j 是唯一标识 a 中每个元素的下标。

初始化二维数组

多维数组与一维数组一样,通过赋值来初始化,可以通过指定特定的下标或使用 for-do 循环。

例如,

var
   a: array [0..3, 0..3] of integer;
   i, j : integer;

begin  
   for i:= 0 to 3 do  
      for j:= 0 to 3 do  
         a[i,j]:= i * j;  
   ...
end;  

访问二维数组元素

二维数组中的元素是通过下标来访问的,即数组的行索引和列索引。例如 -

var
   val: integer;
   val := a[2, 3];

上述语句将从数组的第 3 行中取出第 4 个元素。大家可以通过上图来验证一下。让我们检查下面的程序,其中我们使用嵌套循环来处理二维数组 -

program ex2dimarray;
var 
   a: array [0..3, 0..3] of integer;
   i,j : integer;  

begin  
   for i:=0 to 3 do
      for j:=0 to 3 do
         a[i,j]:= i * j;  
   
   for i:=0 to 3 do
   begin  
      for j:=0 to 3 do  
         write(a[i,j]:2,' ');  
      writeln;  
   end;  
end.

当上面的代码被编译并执行时,它会产生以下结果 -

0 0 0 0
0 1 2 3
0 2 4 6
0 3 6 9

如上所述,您可以拥有任意维数的数组,尽管您创建的大多数数组可能都是一维或二维的。

pascal_arrays.htm