Programación General > ADA
Probrema En Un Procedimiento
(1/1)
eb8cxw:
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 --- -- 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:
--- Código: Text --- 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
gandalfelgris:
Hola Jose Manuel
No se lo que te pasará con tu codigo, pero yo he cogido tu codigo, le he añadido un par de cosas y funciona correctamente. Te adjunto a este mensaje y a los sucesivos dos los ficheros tal y como a mi me funcionan
Si otro particular Atentamente
Aitor
1º Declaracion del paquete.
gandalfelgris:
2º Cuerpo del paquete
Aitor
gandalfelgris:
3º Procedimiento principal
Aitor
eb8cxw:
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
Navegación
Ir a la versión completa