Pascal - Matrices dinámicas

En el caso de un tipo de matriz dinámica, la longitud inicial de la matriz es cero. La longitud real de la matriz debe establecerse con el estándarSetLength función, que asignará la memoria necesaria para almacenar los elementos de la matriz.

Declaración de matrices dinámicas

Para declarar matrices dinámicas, no menciona el rango de la matriz. Por ejemplo

type  
   darray = array of integer;
var
   a: darray;

Antes de usar la matriz, debe declarar el tamaño usando el setlength función -

setlength(a,100);

Ahora, la matriz a tiene un rango de índice de matriz válido de 0 a 99: el índice de matriz siempre está basado en cero.

El siguiente ejemplo declara y usa una matriz dinámica bidimensional:

program exDynarray; 
var
   a: array of array of integer; (* a 2 dimensional array *)
   i, j : integer;  

begin  
   setlength(a,5,5);  
   for i:=0 to 4 do  
      for j:=0 to 4 do  
         a[i,j]:= i * j;  
   
   for i:=0 to 4 do  
   begin  
      for j:= 0 to 4 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
0 1 2 3  4
0 2 4 6  8
0 3 6 9  12
0 4 8 12 16