Está en la página 1de 3

Algoritmo bisiesto (formula y calculo)

Un ao es bisiesto si es divisible por 4, excepto aquellos divisibles por 100 pero no por 400. En programacin, el algoritmo para calcular si un ao es bisiesto es un algoritmo til para la realizacin de calendarios. En lgica proposicional se resolver a del siguiente modo. !ea"

p" Es divisible entre 4 q" Es divisible entre 100 r" Es divisible entre 400

#a $rmula lgica que indica si un ao es bisiesto ser a [p y q] [r] Es decir los aos que sean divisibles por 4 ser%n bisiestos& aunque no ser%n bisiestos si son divisibles entre 100 'como los aos 1(00, 1)00, 1*00 + ,100- a no ser que sean divisibles por 400 'como los aos 1.00, ,000 ,400-. En 400 aos debe /aber *( aos bisiestos, de esa manera el ao del calendario gregoriano se mantiene mu+ parecido al ao solar. 0s el ao gregoriano dura 1.2 d as 3144 514100 314400 6 1.2,,4,2 d as 'm%s que el ao trpico que dura 1.2,,4,, d as-. Lenguaje de Programacin 78todo programado en 9: bool anio;isiesto'int +ear- < return '+ear = 4 66 0 >> +ear = 100 ?6 0- @@ +ear = 400 66 0& A 78todo programado en BCB D/o+ 6 getdate'-& 44 Eeneramos el arreglo con la $ec/a actual Dinicio 6 getdate'mFtime'0,0,0,D/o+GmonH,1,D/o+G+earH--& 44 Eeneramos el arreglo con el primer d a del mes i$''DinicioG+earH=4660 >> DinicioG+earH=100?60 -@@ DinicioG+earH=40066044evaluamos

< A

return true& 44 devolvemos si es verdadero

78todo programado en Ielp/i 2. !ea 0 una variable Jnteger 6 0o a analizar. !ea ; una variable ;ooleana cu+o valor Krue6;isiesto, Lalse6Mo bisiesto. If 0 mod 460 then If 0 mod 10060 then If 0 mod 40060 then ;"6True else ;"6False else ;"6True else ;"6False

9omo todo lenguaNe de programacin de alto nivel, Ielp/i tiene una $uncin para resolver lo anterior" Js#eapOear'0-, que es una $uncin ;ooleana cu+o valor Krue6;isiesto, Lalse6Mo bisiesto.

78todo programando en 933 :include PiostreamQ 44cargamos librer a using namespace std& 44Bara no tener que escribir a cada rato std int main'< int bisiesto& 44declaramos la variable bisiesto coutPPRJngrese el ao a consultarRPPendl& 44Iesplegamos en pantalla Jngrese el ao a consultar cinQQ bisiesto& 44Bedimos la variable bisiesto por teclado al usuario i$''bisiesto=4660 >> bisiesto=100 ?6 0- @@ bisiesto=400660- 44Semos si el ao es bisiesto < coutPPREs bisiestoRPPendl& 44Iesplegamos en pantalla es bisiesto A

else 44!i la condicional anterior es $alsa entonces el ao no es bisiesto < coutPPRMo es bisiestoRPPendl& 44Iesplegamos en pantalla no es bisiesto A return 0& 44retornamos 0 para saber que el programa termino correctamente A Diagrama de flujo

También podría gustarte