• Lunes 29 de Abril de 2024, 05:34

Autor Tema:  Probrema En Un Procedimiento  (Leído 2308 veces)

eb8cxw

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Probrema En Un Procedimiento
« en: Viernes 15 de Abril de 2005, 23:03 »
0
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

gandalfelgris

  • Miembro activo
  • **
  • Mensajes: 53
    • Ver Perfil
Re: Probrema En Un Procedimiento
« Respuesta #1 en: Sábado 16 de Abril de 2005, 10:19 »
0
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.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
gandalfelgris

gandalfelgris

  • Miembro activo
  • **
  • Mensajes: 53
    • Ver Perfil
Re: Probrema En Un Procedimiento
« Respuesta #2 en: Sábado 16 de Abril de 2005, 10:20 »
0
2º Cuerpo del paquete

Aitor
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
gandalfelgris

gandalfelgris

  • Miembro activo
  • **
  • Mensajes: 53
    • Ver Perfil
Re: Probrema En Un Procedimiento
« Respuesta #3 en: Sábado 16 de Abril de 2005, 10:22 »
0
3º Procedimiento principal
Aitor
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
gandalfelgris

eb8cxw

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Probrema En Un Procedimiento
« Respuesta #4 en: Jueves 5 de Mayo de 2005, 17:50 »
0
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