|
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.
Mensajes - eb8cxw
Páginas: [1]
1
« en: Viernes 20 de Mayo de 2005, 22:34 »
Hola Aitor
Perdona la tardanza en contestar, Gracias por la ayuda, me sirvio bastante, tenía algunos errores que con tu ayuda los corregi. reitero mi agradecimiento
Un cordial saludo José Manuel Gran Canaria/España
2
« 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
3
« en: Viernes 6 de Mayo de 2005, 00:47 »
Gacias Gneunomante por la información,
No me quita todas las dudas, pero me ha ayudado a disminuirlas, gracias. Por ejemplo una de mis dudas es con las listas secuenciales.
Un cordial saludo José Manuel Gran Canaria
4
« en: Jueves 5 de Mayo de 2005, 17:50 »
Aitor, perdona aunque tarde te doy las gracias , por la ayuda, ya entregue la práctica y la aprobe.
Ahora estoy con la segunda de Lista secuenciales, en otra disculsión tengo puesto los dos ficheros .ads y .adb, pues me da errores, la verdad que me esta constando y he estado buscando y pregunte en este foro por tutorias, pero no he encontrado.
Un cordial saludo José Manuel Gran Canaria
5
« en: Jueves 5 de Mayo de 2005, 17:35 »
Perdon, parece que no se adjunto el fichero, por lo que se lo pongo a continuación: with Unchecked_Deallocation; package body Listas_Secuenciales is procedure Libera is new Unchecked_Deallocation(Nodo_Lista, TNodo_Lista); -- El procedimiento Insertar, inserta el elemento indicado por el -- segundo parámetro en la lista indicada por el primero. Si el -- elemento a insertar ya se encuentra en la lista, lo sustituirá -- por el nuevo si el tercer parámetro tiene el valor True o lanzará -- la excepción Error_Repetido si tiene el valor False. Los elementos -- en la lista estarán organizados secuencialmente según el orden de llegada, -- salvo en caso de sustitución que se mantiene la posición original. El -- elemento recién insertado se convierte en el actual a efectos de acceso. Si, -- cuando se intenta insertar, la lista está llena, se lanza la excepción -- predefinida Constraint_Error y la lista queda como estaba. procedure Insertar(Lis: in out Lista; ELista: in ElementoLista; NoExiste: in Boolean) is begin if Lis.Tamaño = 0 then Lis.Actual:= Lis.Inicio; Lis.Fin:= Lis.Inicio; Lis.Tamaño := Lis.Tamaño + 1; END IF; IF lis.tamaño /= 0 THEN if Lis.Tamaño /= Lis.TamañoMaximo then if NoExiste = True then Lis.Actual:= Lis.ELista; else raise Error_Repetido; end if; else raise Constraint_Error; end if; end if; end Insertar; -- El procedimiento Inicial, designa como actual al elemento -- más antiguo de la lista. Si la lista está vacía el actual -- queda indefinido. procedure Inicio(Lis: in out Lista) is begin if Lis.Tamaño = 0 then Lis.Actual:= Lis.Inicio; end if; end Inicio; -- El procedimiento Siguiente, prepara la lista para -- acceder al elemento siguiente al actual, según el -- orden secuencial de la misma. Si actual ya está -- en el último elemento, queda indefinido. Si la -- lista está vacía o el actual está indefinido, actual -- queda indefinido. procedure Siguiente(Lis: in out Lista) is begin if Lis.Tamaño /= 0 then if Lis.Actual /= Lis.Fin then Lis.Actual:= Nodo_Lista.sig; else Lis.Actual:= null; end if; else Lis.Actual:= null; end if; end Siguiente; -- la Función Examinar devuelve el elemento actual -- de la lista. Si el elemento actual está indefinido -- se lanzará la excepción Constraint_Error. function Examinar(Lis: in Lista)return Lista is begin if Lis.Actual /= null then return Lis.Actual; else raise Constraint_Error; end if; end Examinar; -- La función Fin_Lista, devuelve True si actual está indefinido. function Fin_Lista(Lis: in Lista)return boolean is begin if Lis.Actual = null then return True; else return False; end if; end Fin_Lista; -- El procedimiento Extraer, elimina de la lista el -- elemento actual. Si actual está indefinido no se -- producirá ningún efecto apreciable. Tras la -- extracción, actual debe quedar situado en el -- elemento siguiente al extraído; si el elemento -- que se extrae es el último de la lista, actual -- queda indefinido. procedure Extraer(Lis: in out Lista) is Aux: Nodo_Lista; begin if Lis.Actual /= null then if Lis.Actual /= Lis.Fin then Aux:= Nodo_Lista.sig; Libera(Lis.Actual); Lis.Actual:= Aux; Lis.Tamaño := Lis.Tamaño - 1; end if; if Lis.Actual = Lis.Fin then Libera(Lis.Actual); Lis.Actual:= Null; Lis.Tamaño := Lis.Tamaño - 1; end if; end if; end Extraer; end Listas_Secuenciales;
Un cordial saludo José Manuel Gran Canaria
6
« 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): generic type ElementoLista is private; with function "="(ELista1 , ELista2: ElementoLista) return Boolean; package Listas_Secuenciales is -- Tipo Lista: Asignable (:=) y comparable (=, /=). Representa un -- contenedor (lista secuencial) limitado en tamaño cuyo -- contenido serán elementos no repetidos del tipo del -- parámetro genérico del paquete. Se implementará como un -- record variante con un parámetro de tipo Positive que -- servirá para establecer el tamaño máximo de la lista. type Lista(TamañoMaximo: Positive) is private; Error_Repetido: exception; --| Se utilizará para señalar que se intenta insertar un -- elemento que ya está en la lista, para el caso en que se -- quiera sustituir. procedure Insertar(Lis: in out Lista; ELista: in ElementoLista; NoExiste: in Boolean); -- El procedimiento Insertar, inserta el elemento indicado por el -- segundo parámetro en la lista indicada por el primero. Si el -- elemento a insertar ya se encuentra en la lista, lo sustituirá -- por el nuevo si el tercer parámetro tiene el valor True o lanzará -- la excepción Error_Repetido si tiene el valor False. Los elementos -- en la lista estarán organizados secuencialmente según el orden de llegada, -- salvo en caso de sustitución que se mantiene la posición original. El -- elemento recién insertado se convierte en el actual a efectos de acceso. Si, -- cuando se intenta insertar, la lista está llena, se lanza la excepción -- predefinida Constraint_Error y la lista queda como estaba. procedure Inicio(Lis: in out Lista); --| -- El procedimiento Inicial, designa como actual al elemento -- más antiguo de la lista. Si la lista está vacía el actual -- queda indefinido. procedure Siguiente(Lis: in out Lista); -- El procedimiento Siguiente, prepara la lista para -- acceder al elemento siguiente al actual, según el -- orden secuencial de la misma. Si actual ya está -- en el último elemento, queda indefinido. Si la -- lista está vacía o el actual está indefinido, actual -- queda indefinido. function Examinar(Lis: in Lista)return Lista; -- la Función Examinar devuelve el elemento actual -- de la lista. Si el elemento actual está indefinido -- se lanzará la excepción Constraint_Error. function Fin_Lista(Lis: in Lista)return boolean; -- La función Fin_Lista, devuelve True si actual está indefinido. procedure Extraer(Lis: in out Lista); -- El procedimiento Extraer, elimina de la lista el -- elemento actual. Si actual está indefinido no se -- producirá ningún efecto apreciable. Tras la -- extracción, actual debe quedar situado en el -- elemento siguiente al extraído; si el elemento -- que se extrae es el último de la lista, actual -- queda indefinido. private -- -- Estructura de representación del tad Listas_Secuenciales type Nodo_Lista; type TNodo_Lista is access Nodo_Lista; type Nodo_Lista is record dato:ElementoLista; sig:TNodo_Lista; end record; type Lista(TamañoMaximo: Positive) is record Actual: TNodo_Lista; Inicio: TNodo_Lista; Fin: TNodo_Lista ; Tamaño: Natural:= 0; end record; end Listas_Secuenciales;
Un cordial saludo José Manuel Domenech Gran Canaria
7
« 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
8
« 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: -- Procedimiento Fechar que inicializa una fecha en el primer -- parámetro, usando el segundo parámetro como día, el tercero como -- mes y el cuarto como año. Si los parámetros diesen lugar a una -- fecha incorrecta, se lanzará la excepción Fecha_Incorrecta. procedure Fechar(F: out Fecha; Di, Me, An: in Positive) is begin if ((Me = 4) or (Me = 6) or (Me = 9) or (Me = 11)) and (Di >30) then raise Fecha_Incorrecta; --lanza una excepción end if; if (Me = 2) and (Di > 29)then raise Fecha_Incorrecta; --lanza una excepción end if; if (Me = 2) and (Di = 29)then if (An rem 4 = 0) then if ((An rem 100 = 0) and (An rem 400 /= 0)) then raise Fecha_Incorrecta; --lanza una excepción end if; end if; if (An rem 4 /= 0) then raise Fecha_Incorrecta; --lanza una excepción end if; end if; f.D:= Di; F.M:= Me; F.A:= An; end Fechar;
En el fichero ads tengo la siguiente especificación: private -- -- Estructura de representación del tad fechas type Fecha is record D: Positive range 1..31; M: Positive range 1..12; A: Positive range 1..9999; end record; end Fechas;
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]
|
|
|