[ Foro de Pascal ]
Me piden que haga un programa, con los siguientes parametros pero no se por donde empezar a meterle mano ni consolidar todo bien, si me pudieran echar una mano estaria muy agradecido.
Escribir un programa en Pascal que:
Lea desde el teclado una fecha (con su día, mes y año) y realice las comprobaciones necesarias para que la fecha introducida sea una fecha válida.
En caso de que la fecha introducida sea correcta, muestre por pantalla a qué estación del año se corresponde la fecha introducida.
En caso contrario el programa muestra un mensaje de error y se acaba la ejecución.
Detecte los posible errores en tiempo de ejecución a través del mecanismo try-except visto en clase: en caso de que el usuario introduzca mal un dato de entrada, el programa visualizará un mensaje apropiado y terminará (sentencia exit).
Hola.
No conozco la sentencia "try...except", aunque puede intuirse su significado.
Primero ten en cuenta que consideras por una fecha adecuada. Supongamos que te basas en el calendario gregoriano (el "normal"). Así, tienes que, para comprobar si una fecha es correcta:
- Mirar el año. Ver si es bisiesto. No puede ser negativo, etc.
- Mirar el mes (1-12). Cada mes tiene un nº de días, y recuerda que febrero es especial.
- El día, (1-nº de días del mes correspondiente).
Estas comprobaciones son condicionales, quiero decir: si falla el año, no compruebes el mes, y si falla éste último, no compruebes el día (como si hubiese un orden de prioridades).
Si es incorrecta, muestras el mensaje, y si es correcta, la estación. Para determinar la estación yo utilizaría sentencias del tipo "if...then...else" sobre la variable del mes y la variable del día. Escribir en una hoja de papel todos los casos ayuda mucho.
Para esto último hay que tener en cuenta que hay meses en los que hay dos estaciones, como es marzo (invierno-primavera).
Con respecto a las variables, creo que con tres basta:
anno : word;
mes : byte;
dia : byte;
Pueden acotarse más aún los dominios de las anteriores variables:
anno : word;
mes : 1..12;
dia : 1..31;
Pero entonces no se podrían meter fechas incorrectas del tipo "70/5/2014" (donde falla el día). Eso a tu gusto.
Espero haberte servido más o menos de ayuda.
¡Ciao!
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)