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 resolvera 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 sera [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 das 3144 514100 314400 6 1.2,,4,2 das 'm%s que el ao trpico que dura
1.2,,4,, das-.
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 da del mes
i$''DinicioG+earH=4660 >> DinicioG+earH=100?60 -@@ DinicioG+earH=400660-
44evaluamos
<
return true& 44 devolvemos si es verdadero
A
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 librera

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