Pascal - Tableau multidimensionnel

Le langage de programmation Pascal autorise les tableaux multidimensionnels. Voici la forme générale d'une déclaration de tableau multidimensionnel -

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

Par exemple, la déclaration suivante crée un 5 en trois dimensions. dix . 4 tableau d'entiers -

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

Tableaux bidimensionnels

La forme la plus simple du tableau multidimensionnel est le tableau à deux dimensions. Un tableau à deux dimensions est, par essence, une liste de tableaux à une dimension. Pour déclarer un tableau d'entiers à deux dimensions de taille x, y, vous écririez quelque chose comme suit -

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

element-typepeut être n'importe quel type de données Pascal valide et arrayName sera un identifiant Pascal valide. Un tableau à deux dimensions peut être visualisé sous forme de tableau, qui aura x nombre de lignes et y nombre de colonnes. Un tableau à 2 dimensions qui contient trois lignes et quatre colonnes peut être affiché comme ci-dessous -

Ainsi, chaque élément du tableau a est identifié par un nom d'élément de la forme a [i] [j], où a est le nom du tableau, et i et j sont les indices qui identifient de manière unique chaque élément de a.

Initialisation de tableaux bidimensionnels

Les tableaux multidimensionnels, comme les tableaux unidimensionnels, sont initialisés via une affectation, soit en spécifiant un indice particulier, soit en utilisant une boucle for-do.

Par exemple,

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;

Accès aux éléments de matrice bidimensionnelle

Un élément d'un tableau à 2 dimensions est accessible en utilisant les indices, c'est-à-dire l'index de ligne et l'index de colonne du tableau. Par exemple -

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

L'instruction ci-dessus prendra le 4ème élément de la 3ème ligne du tableau. Vous pouvez le vérifier dans le diagramme ci-dessus. Vérifions ci-dessous le programme où nous avons utilisé une boucle imbriquée pour gérer un tableau à deux dimensions -

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.

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

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

Comme expliqué ci-dessus, vous pouvez avoir des tableaux avec n'importe quel nombre de dimensions, bien qu'il soit probable que la plupart des tableaux que vous créez soient d'une ou deux dimensions.