yo definiría lo siguiente:
type codigo is array(1..4) of character; -- Aquí se almacena un código de 4 caracteres (no lo especifica la práctica) que corresponde al tipo de telefono (movil ("MOVI"), casa ("CASA") o trabajo ("WORK")).
type num_telf is array(1..9) of character; -- Aquí almacenaremos los nº de telefono como character.
type Reg_telf is record telf: integer; -- El tipo num_telf que contiene el numero de telefono;
cod: codigo; -- El tipo codigo que contiene el código que indica casa, trabajo o movil;
end record;-- Este registro que hemos declarado justo antes contiene 2 campos: el nº de telefono seguido del código que lo distingue.
pues bien, ahora creamos un array de registros, donde, en cada posición de este array se almacenará un nº de telefono con el código de este.
type num_telefonos is array (1..20) of Reg_telf;Ahora nos falta crear otro arrays de registros, dónde, en cada posición del array, habrá el nuevo registro que vamos a declarar y que contendrá el nombre de la persona seguido de todos sus numeros de telefono.
Primero, declaramos el array donde se almacenará el nombre de la persona:
type nombre_persona is array (1..100) of character;Y ahora pasamos a declarar el nuevo registro que lo llamaremos reg_agenda.
type reg_agenda is record
nombre: nombre_persona;
telefonos: num_telefonos;
end record;finalmente, declaramos el array que contendrá en cada posición, el registro reg_agenda que contiene el nombre de la persona junto a todos sus telefonos:
type tipo_agenda is array (1..Max) of reg_agenda;Esta es toda la estructura del programa. Creo que es un poco demasiado densa. Haver si a alguien se le ocurre algo mejor. Podríamos eliminar el reg_telf si metes en un mismo array el numero de telefono seguido del código.
Gracias por publicar aquí tu problema. Espero que me haya servido a mi también para aprender y por eso me gustaría que si alguien te enseña algo más optimo, me lo mostraras.
Un Saludo
P.D: intenta implementar la función
.