Tienes que utilizar en este caso una estructura de datos un poquito mas compleja, los registros. Pero creo que es la mejor solucion.
Veamos.... vamos a crear un registro de Gallinas.
type
gallina = record
numero : integer;
nombre : string[10];
yemas : integer;
end;
un registro , como en este caso gallinas , almacena en un mismo "paquete" datos de diferentes tipos.
Ya declaramos el registro , ahora vamos a asignar
un array con el tipo gallina
var
agallina : array[1..5] of gallina;
aqui tenes el super array que estas buscando!!!
Como se utiliza este registro???
muy sencillo ... ;)
for i := 1 to 5 do
begin
writeln ( ´digame el numero´);
readln ( agallina[i].numero );
writeln ( ´digame el nombre´);
redln ( agallina[i].nombre );
writeln ( ´digame las yemas´);
readln ( agallina[i].yemas );
end;
se asignan los datos de los registros ,
introduciendo el nombre , el indice y el nombre
del campo .
Espero haber ayudado.