La

Páginas: 2 (337 palabras) Publicado: 21 de agosto de 2015
La Congruencia de Zeller es un algoritmo que se atribuye al matemático alemán Julius Christian Johannes Zeller que vivió en el siglo XIX.

Este algoritmo nos permite determinar el día de lasemana que le corresponde a una fecha determinada del calendario Gregoriano.

La fórmula que nosotros usaremos (con algunas modificaciones respecto de la original para poder usarla en informática) es la siguiente:



Donde h es el día de la semana (entre 0 y 6), J es año/100 (la centuria) y K es año mod 100 (el año de la centuria). Y hay que tener en cuenta que los meses deenero y febrero cuentan como el mes 13 y 14 del año anterior.

Ahora que tenemos la fórmula, programemos el algoritmo en C mediante el uso de una función:




Analicemos el código paso a paso:Tenemos en cuenta el caso de enero y febrero: Dijimos que estos meses corresponden a los meses 13 y 14 del año anterior por lo que los asignamos como corresponde (mes + 12 , que dará 13 paraenero y 14 para febrero) y le restamos 1 al año ya que son meses del año anterior. En caso contrario al mes le restamos dos para que marzo sea el mes 1 y así sucesivamente.
Calculamos K yJ: Al momento de escribir la fórmula dijimos que K es año mod 100 y J es año div 100 por lo que realizamos estos dos cálculos.
Aplicamos la fórmula: Copiamos la fórmula que copiamos al comienzo.Ahora si quisiéramos que el programa nos muestre por pantalla el día correspondiente al entero entre 0 y 6 que obtuvimos con esta función podríamos simplemente hacer un switch como éste:Donde dependiendo del entero que nos devolvió la función Zeller, escribe el día correspondiente, teniendo en cuenta que el 0 corresponde al domingo


Luego se llama a las funciones comocorresponde dentro del main y tendríamos nuestro programa listo. Para finalizar veamos qué día es hoy según el programa cuando lo ejecutamos:



Y, en efecto, es viernes...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS