Pascal - 多維陣列



Pascal 程式語言允許使用多維陣列。以下是多維陣列宣告的一般形式:

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

例如,以下宣告建立了一個三維 5 x 10 x 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 列。一個包含三行四列的二維陣列可以顯示如下:

Two Dimensional Arrays in 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
廣告

© . All rights reserved.