Pascal - Matriz empaquetada

Estas matrices están empaquetadas en bits, es decir, cada carácter o valor de verdad se almacena en bytes consecutivos en lugar de usar una unidad de almacenamiento, generalmente una palabra (4 bytes o más).

Normalmente, los caracteres y los valores booleanos se almacenan de tal manera que cada carácter o valor de verdad utiliza una unidad de almacenamiento como una palabra. Esto se denomina modo de almacenamiento de datos sin empaquetar. El almacenamiento se utiliza por completo si los caracteres se almacenan en bytes consecutivos. A esto se le llama modo empaquetado de almacenamiento de datos. Pascal permite que los datos de la matriz se almacenen en modo empaquetado.

Declaración de matrices empaquetadas

Las matrices empaquetadas se declaran utilizando las palabras clave packed arrayen lugar de matriz. Por ejemplo

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

El siguiente ejemplo declara y usa una matriz empaquetada bidimensional:

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.

Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:

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