Cómo funciona JustAnswer:
  • Preguntar a un Experto
    Los expertos tienen muchos conocimientos valiosos y están dispuestos a ayudar en cualquier pregunta. Credenciales confirmadas por una empresa de verificación perteneciente a Fortune 500.
  • Obtener una respuesta profesional
    Por correo electrónico, mensaje de texto o notificación mientras espera en su sitio.
    Haga preguntas de seguimiento si lo necesita.
  • Garantía de satisfacción plena
    Garantizamos tu satisfacción.
Formule su propia pregunta a Albertillo
Albertillo
Albertillo, Ingeniero Superior en Informática
Categoría: Informática
Clientes satisfechos: 25
Experiencia:  Último curso de carrera
52794814
Escriba su pregunta sobre Informática aquí...
Albertillo está en línea ahora

Proponer un algoritmo que reciba una fecha (DD MM AAAA) y determine

Pregunta del cliente

Proponer un algoritmo que reciba una fecha (DD MM AAAA) y determine si es correcta o no. /en "pseudocodigos"

Ejemplo:
Entrada: 13 12 1945
Resultado: Fecha correcta
Ejemplo 2
Entrada: 29 02 2000
Resultado: Fecha correcta
Ejemplo 3
Entrada: 29 02 2011
Resultado: Fecha incorrecta
Ejemplo 4
Entrada: 15 15 2222
Resultado: Fecha incorrecta
Enviada: hace 6 año.
Categoría: Informática
Experto:  Albertillo escribió hace 6 año.
Buenas noches,

A continuación le propongo el siguiente pseudocódigo:


//Comprobacion de errores simples

//Un año debe ser positivo

si (año<0) return error;


//Un mes debe estar entre 1 y 12. Es un error si es menor que 1 o mayor que 12

si mes menor que 1 O mes menor que 12 return ERROR;


//Comprobamos si se trata de un mes con 31 dias.
si ((mes==1)O(mes==3)O(mes==5)O(mes==7)O(mes==8)O(mes==10)O(mes==12)){

si ((dia>=1)Y(dia<=31)) return OK;

}

//Caso de año bisiesto

si (mes==2){

SI ((año divisible por 4) Y ((año no divisible por 100) O (año divisible por 400))){

si ((dia>=1)Y(dia<=29)) return OK;

}

SINO{

si ((dia>=1)Y(dia<=28)) return OK;

}

//Comprobamos mes de 30 dias
si ((dia>=1)Y(dia<=30)) return OK;

//Si no se ha cumplido ninguna condicion que diera como resultado OK se sale con error puesto que no es una fecha valida.
SINO return ERROR;





Espero que le sirva este pseudocódigo.

Un saludo.



























Editado por Albertillo el 02/02/2011 a las 1:29 EST
Experto:  Albertillo escribió hace 6 año.
Buenos días,

¿Le ha resultado de utilidad este algoritmo?

Por favor, en caso de cualquier duda o problema no dude en consultarlo. Asimismo si está de acuerdo con la respuesta le rogaría que la aceptara.

Quedo a la espera de su respuesta,

Un saludo.



Albertillo y otros otros especialistas en Informática están preparados para ayudarle
Cliente: escribió hace 6 año.
podria desarroyarlo mejor porfavor??
Experto:  Albertillo escribió hace 6 año.
¿Me podría decir en que lenguaje de programación quiere realizarlo?
Experto:  Albertillo escribió hace 6 año.
Buenas tardes de nuevoa,
No se preocupe, intentaré explicárselo con mas detalle:

SI AÑO MENOR QUE 0 ENTONCES FECHA_INCORRECTA

SI MES MENOR QUE 1 O MES MAYOR QUE 12 ENTONCES FECHA_INCORRECTA


SI MES = 1,3,5,7,8,10,12 (SE TRATA DE UN MES DE 31 DIAS) ENTONCES
SI DIA ES MAYOR O IGUAL A 1 Y MENOR O IGUAL A 31 ENTONCES FECHA_CORRECTA

SI MES = 2 (SE TRATA DE FEBRERO) ENTONCES
SI AÑO ES DIVISIBLE POR 4 Y [(AÑO ES NO DIVISIBLE POR 100) O (AÑO DIVISIBLE POR 400)] ENTONCES
SI DIA ES MAYOR O IGUAL A 1 Y MENOR O IGUAL A 29 ENTONCES FECHA_CORRECTA
SINO SI DIA ES MAYOR O IGUAL A 1 Y MENOR O IGUAL A 28 ENTONCES FECHA_CORRECTA

(SI SE LLEGA A ESTE PUNTO ES PORQUE LA FECHA INCLUYE UN MES DISTINTO DE FEBRERO Y DE 30 DIAS POR TANTO)

SI DIA ES MAYOR O IGUAL A 1 Y MENOR O IGUAL A 30 ENTONCES FECHA_CORRECTA
SINO FECHA_INCORRECTA.

Espero que esta vez haya quedado mas claro.
Un saludo.

Editado por Albertillo el 02/02/2011 a las 15:44 EST
Experto:  Albertillo escribió hace 6 año.
Buenas tardes de nuevo,
No se preocupe, intentaré explicárselo con mas detalle:

SI AÑO MENOR QUE 0 ENTONCES FECHA_INCORRECTA

SI MES MENOR QUE 1 O MES MAYOR QUE 12 ENTONCES FECHA_INCORRECTA


SI MES = 1,3,5,7,8,10,12 (SE TRATA DE UN MES DE 31 DIAS) ENTONCES
SI DIA ES MAYOR O IGUAL A 1 Y MENOR O IGUAL A 31 ENTONCES FECHA_CORRECTA

SI MES = 2 (SE TRATA DE FEBRERO) ENTONCES
SI AÑO ES DIVISIBLE POR 4 Y [(AÑO ES NO DIVISIBLE POR 100) O (AÑO DIVISIBLE POR 400)] ENTONCES
SI DIA ES MAYOR O IGUAL A 1 Y MENOR O IGUAL A 29 ENTONCES FECHA_CORRECTA
SINO SI DIA ES MAYOR O IGUAL A 1 Y MENOR O IGUAL A 28 ENTONCES FECHA_CORRECTA

(SI SE LLEGA A ESTE PUNTO ES PORQUE LA FECHA INCLUYE UN MES DISTINTO DE FEBRERO Y DE 30 DIAS POR TANTO)

SI DIA ES MAYOR O IGUAL A 1 Y MENOR O IGUAL A 30 ENTONCES FECHA_CORRECTA
SINO FECHA_INCORRECTA.

Espero que esta vez haya quedado mas claro.
Un saludo.

Preguntas relacionadas con Informática