Pascal - Matrice compressée

Ces tableaux sont remplis de bits, c'est-à-dire que chaque caractère ou valeur de vérité est stocké dans des octets consécutifs au lieu d'utiliser une unité de stockage, généralement un mot (4 octets ou plus).

Normalement, les caractères et les valeurs booléennes sont stockés de telle manière que chaque caractère ou valeur de vérité utilise une unité de stockage comme un mot. C'est ce qu'on appelle le mode de stockage de données décompressé. Le stockage est pleinement utilisé si les caractères sont stockés dans des octets consécutifs. C'est ce qu'on appelle le mode compact de stockage de données. Pascal permet aux données du tableau d'être stockées en mode compressé.

Déclaration de baies empaquetées

Les tableaux compressés sont déclarés à l'aide des mots-clés packed arrayau lieu de array. Par exemple -

type
   pArray: packed array[index-type1, index-type2, ...] of element-type;
var
   a: pArray;

L'exemple suivant déclare et utilise un tableau compact à deux dimensions -

program packedarray; 
var
   a: packed 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