• Viernes 29 de Marzo de 2024, 15:16

Autor Tema:  Agenda Telefonica  (Leído 8415 veces)

jocker212

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Agenda Telefonica
« en: Sábado 29 de Diciembre de 2007, 15:51 »
0
hola muy buenas soy estuiante de informatica y este e smi primer año, la cuestion es que tengo un hacer un programa el cual no tengo ni idea de como hacer, en este se me pide hacer lo siguiente:


Agenda Telefónica: Se necesita realizar un programa para gestionar una agenda de teléfonos en la que para cada entrada se guarda el nombre de una persona y todos sus teléfonos. Cada teléfono se define como una tupla formada por una secuencia de caracteres numéricos (el número de teléfono) y un código que lo identifica como móvil personal, del domicilio particular o del trabajo. Cada persona puede tener cero o más teléfonos de cada tipo.

A partir del enunciado del ejercicio anterior, se pide:

   1. Definir el tipo Tipo_Agenda en Ada.
   2. Especificar e implementar una función en Ada que reciba como argumentos un elemento de tipo Tipo_Agenda y un prefijo de tres caracteres numéricos y devuelva la lista formada por todos aquellos usuarios de la agenda que posean algún teléfono móvil cuyo número comience por ese prefijo.



si alguien pudiera ayudarme se lo agradeceria.
un saludo

Itimag

  • Nuevo Miembro
  • *
  • Mensajes: 14
    • Ver Perfil
Re: Agenda Telefonica
« Respuesta #1 en: Sábado 29 de Diciembre de 2007, 20:52 »
0
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 ;) .

jocker212

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Agenda Telefonica
« Respuesta #2 en: Domingo 30 de Diciembre de 2007, 16:02 »
0
muchas gracias de verdad, me pondre con ellos a ver si sale, y si finalmente lo consigo lo posteare.
de nuevo muchas gracias :D

Itimag

  • Nuevo Miembro
  • *
  • Mensajes: 14
    • Ver Perfil
Re: Agenda Telefonica
« Respuesta #3 en: Domingo 30 de Diciembre de 2007, 22:08 »
0
de nada.