• Miércoles 15 de Mayo de 2024, 07:42

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - eb8cxw

Páginas: [1]
1
ADA / Usar Un Paquete Que Hereda De Otro Paquete
« en: Viernes 20 de Mayo de 2005, 22:22 »
Hola a tod@s:

Desearia en un paquete  que usa otro paquete y este último hereda de otro. Por ejemplo: Paquete contenedor_Estudiantes (imprementado con un árbol binario), usa un Paquete Persona.Estudiante que hereda de Persona. Bueno en el paquete Persona esta el DNI de cada persona, que es heredado por el paquete Persona.Estudiante.

En el paquete contenedor_Estudiante tengo una clave de tipo Estudiante, bueno lo que quiero es que esa clave sea el DNI del Estudiante, que como he dicho antes esta en el paquete Persona.
¿Como lo puedo hacer?

Espero haberme explicado, os agradeceria una ayudita, gracias

Un cordial saludo
      José Manuel
        Gran Canaria

2
ADA / Problemas Con Una Practica
« en: Jueves 5 de Mayo de 2005, 17:32 »
Hola a tod@s:

Soy estudiante de 1º de Ingenería Técnica de Informática de Gestión, y en la asignatura de Estructura de Datos I, tengo que hacer una práctica, de Listas Secuenciales y tengo problemas ya que lo que he hecho a copilarlo me da errores, les adjunto los ficheros de especificaciones y de imprementación, por si me pueden ayudar a encontrar los fallos, Bueno no se si es demasiado lo que estoy pediendo, si es así pido disculpas por ello, pero es que estoy desesperado debo entregar la practica el día 15 y solo he realizado la mitad, y esa mitad me da errores. Os doy la gracias de antemano.

Perdona parece que solo puedo adjuntar un fichero, por lo que les pongo a continuación el código de las especificaciones (fichero: listas_Secuenciales.ads) y les adjunto el de la imprementación (fichero: listas_Secuenciales.adb):

Código: Text
  1.  
  2.  
  3. generic
  4.  
  5.   type ElementoLista is private;
  6.   with function "="(ELista1 , ELista2: ElementoLista) return Boolean&#59;
  7.  
  8. package Listas_Secuenciales is
  9.  
  10.    -- Tipo Lista: Asignable (:=) y comparable (=, /=). Representa un
  11.    -- contenedor (lista secuencial) limitado en tamaño cuyo
  12.    -- contenido serán elementos no repetidos del tipo del
  13.    -- parámetro genérico del paquete. Se implementará como un
  14.    -- record variante con un parámetro de tipo Positive que
  15.    -- servirá para establecer el tamaño máximo de la lista.  
  16.    type Lista(TamañoMaximo: Positive) is private;    
  17.  
  18.    Error_Repetido: exception;  --| Se utilizará para señalar que se intenta insertar un
  19.                     -- elemento que ya está en la lista, para el caso en que se
  20.                  -- quiera sustituir.
  21.  
  22.  
  23.   procedure Insertar(Lis: in out Lista; ELista: in ElementoLista&#59; NoExiste: in Boolean)&#59;
  24.   -- El procedimiento Insertar, inserta el elemento indicado por el
  25.   -- segundo parámetro en la lista indicada por el primero. Si el
  26.   -- elemento a insertar ya se encuentra en la lista, lo sustituirá
  27.   -- por el nuevo si el tercer parámetro tiene el valor True o lanzará
  28.   -- la excepción Error_Repetido si tiene el valor False. Los elementos
  29.    -- en la lista estarán organizados secuencialmente según el orden de llegada,
  30.     -- salvo en caso de sustitución que se mantiene la posición original. El
  31.     -- elemento recién insertado se convierte en el actual a efectos de acceso. Si,
  32.     -- cuando se intenta insertar, la lista está llena, se lanza la excepción
  33.   -- predefinida Constraint_Error y la lista queda como estaba.
  34.  
  35.   procedure Inicio(Lis: in out Lista);  --|
  36.   -- El procedimiento Inicial, designa como actual al elemento
  37.   -- más antiguo de la lista. Si la lista está vacía el actual
  38.   -- queda indefinido.
  39.  
  40.   procedure Siguiente(Lis: in out Lista)&#59;                                  
  41.   -- El procedimiento Siguiente, prepara la lista para
  42.   -- acceder al elemento siguiente al actual, según el
  43.   -- orden secuencial de la misma. Si actual ya está
  44.   -- en el último elemento, queda indefinido. Si la
  45.   -- lista está vacía o el actual está indefinido, actual
  46.   -- queda indefinido.
  47.  
  48.   function Examinar(Lis: in Lista)return Lista&#59;                                  
  49.     -- la Función Examinar devuelve el elemento actual
  50.     -- de la lista. Si el elemento actual está indefinido
  51.     -- se lanzará la excepción Constraint_Error.
  52.  
  53.   function Fin_Lista(Lis: in Lista)return boolean&#59;                            
  54.     -- La función Fin_Lista, devuelve True si actual está indefinido.                
  55.  
  56.      procedure Extraer(Lis: in out Lista)&#59;                                  
  57.      -- El procedimiento Extraer, elimina de la lista el
  58.     -- elemento actual. Si actual está indefinido no se
  59.     -- producirá ningún efecto apreciable. Tras la
  60.     -- extracción, actual debe quedar situado en el
  61.     -- elemento siguiente al extraído; si el elemento
  62.     -- que se extrae es el último de la lista, actual
  63.     -- queda indefinido.
  64.  
  65.  
  66. private
  67.   -- -- Estructura de representación del tad Listas_Secuenciales
  68.  
  69.   type Nodo_Lista&#59;
  70.   type TNodo_Lista is access Nodo_Lista&#59;
  71.     type Nodo_Lista is record
  72.          dato:ElementoLista;
  73.          sig:TNodo_Lista;
  74.      end record;
  75.  
  76.   type Lista(TamañoMaximo: Positive)  is record
  77.     Actual: TNodo_Lista&#59;  
  78.     Inicio:  TNodo_Lista&#59;
  79.     Fin: TNodo_Lista &#59;
  80.     Tamaño: Natural:= 0&#59;
  81.   end record;  
  82.  
  83. end Listas_Secuenciales&#59;
  84.  
  85.  

Un cordial saludo
        José Manuel Domenech
             Gran Canaria

3
ADA / Tutoriales De Tad
« en: Jueves 5 de Mayo de 2005, 15:19 »
Hola a tod@s:

Estoy estudiando Ingeneria técnica de Informática de Gestión, y en la asignatura de Estructura de Datos I, tengo problemas, sobre la implementación en ADA de un TAD de una Lista secuencial, me podian indicar algun tutorial o sitio Web que me orientaran sobre esta materia, se lo agardeceria. gracias de antemano

Un cordial saludo
      José Manuel
      Gran Canaria

4
ADA / Probrema En Un Procedimiento
« en: Viernes 15 de Abril de 2005, 23:03 »
Hola a tod@s:

Soy nuevo en la lista, estudio Ingeneria Técnica en informática de gestión, tengo que realizar una páctica, pero me da problemas en el siguiente procedimiento:
Código: Text
  1.  
  2. -- Procedimiento Fechar que inicializa una fecha en el primer
  3.    -- parámetro, usando el segundo parámetro como día, el tercero como
  4.      -- mes y el cuarto como año. Si los parámetros diesen lugar a una
  5.    -- fecha incorrecta, se lanzará la excepción Fecha_Incorrecta.    
  6.   procedure Fechar(F: out Fecha; Di, Me, An: in Positive) is
  7.    
  8.   begin
  9.    
  10.       if ((Me = 4) or (Me = 6) or (Me = 9) or (Me = 11)) and (Di >30) then              
  11.           raise Fecha_Incorrecta&#59;  --lanza una excepción
  12.     end if&#59;
  13.  
  14.     if (Me = 2) and (Di > 29)then
  15.        raise Fecha_Incorrecta&#59;  --lanza una excepción
  16.     end if&#59;
  17.  
  18.     if (Me = 2) and (Di = 29)then
  19.       if (An rem 4 = 0) then
  20.         if ((An rem 100 = 0) and (An rem 400 /= 0)) then
  21.            raise Fecha_Incorrecta&#59;  --lanza una excepción
  22.         end if;
  23.       end if&#59;
  24.       if (An rem 4 /= 0) then
  25.         raise Fecha_Incorrecta&#59;  --lanza una excepción
  26.       end if;
  27.         end if;
  28.              
  29.     f.D:= Di;              
  30.     F.M:= Me&#59;              
  31.     F.A:= An&#59;
  32.  
  33.   end Fechar&#59;
  34.  
  35.  
En el fichero ads tengo la siguiente especificación:
Código: Text
  1.  
  2. private
  3.   -- -- Estructura de representación del tad fechas
  4.   type Fecha is record
  5.     D: Positive range 1..31&#59;
  6.     M: Positive range 1..12&#59;
  7.     A: Positive range 1..9999;
  8.   end record;
  9. end Fechas;
  10.  
  11.  

El procedimiento lo que hace es inicializar la fecha, comprueba que no hay error en la fecha es decir que los meses que solo tienen 30 dias no se ponga 31,
que el mes de febrero no tengan más de 28 días, salvo que sea bisiesto que entonces no puede tener más de 29 dias,
Bueno el problema es que al mandarlo a la universidad vía internet, hay un programa que copila y te poner la nota y te indica los erroes que tienes, en mi caso me pone que en este procedimiento Falla, lanza una excepción inesperada.
Espero haberme explicado, os agradeceria una ayuda al respecto, yo no veo donde puede estar el error. Gracias de antemano

Un cordial saludo
           José Manuel
         Gran Canaria/España

Páginas: [1]