Electronica
PRESENTADO POR
ROBERTO CARLOS GUZMAN
COD. 93409254
CURSO
ALGORITMOS
TUTOR
IVAN ARTURO LOPEZ
IBAGUE
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA
2011SEGUNDA PARTE
11. Sabiendo que el día 1 de enero de 1.583 fue sábado y que desde entonces no se han producido modificaciones en el calendario, elaborar un algoritmo para calcular el día de la semanaen que cayó o caerá una fecha cualquiera posterior al 1 de enero de 1.583. Nota: Un año se considera bisiesto cuando es divisible por 400 o bien es divisible por 4 pero no por 100.
moduloes_bisiesto
parametros_entrada: año: ENTERO
parametros_salida: bisiesto: LÓGICO
inicio
si (año mod 400 = 0) OR ((año mod 4 = 0) AND (año mod 100 <>0)) entonces
bisiesto VERDADERO
si_nobisiesto FALSO
fin_si
fin
modulo dias_año
parametros_entrada: A: ENTERO
parametros_salida: num: ENTERO
variables: B: LÓGICO
inicio
es_bisiesto (A; B)
si B entonces
num 366
si_nonum 365
fin_si
fin
modulo dias_mes
parametros_entrada: M, A : ENTERO
parametros_salida: num: ENTERO
variables: B: LÓGICO
inicio
según_el_caso M
caso 1: num 31
caso 2: inicioes_bisiesto (A; B)
si B entonces
num 29
si_no
num 28
fin_si
fin
caso 3: num 31
caso 4: num 30
caso 5: num 31
caso 6: num 30
caso 7: num 31
caso 8: num 31
caso 9: num 30caso 10: num 31
caso 11: num 30
caso 12: num 31
fin_según_el_caso
fin
modulo dias_entre_fechas
parametros_entrada: DI, MI, AI, DF, MF, AF: ENTERO
parametros_salida: num: ENTEROvariables: dias, mes, año: ENTERO
inicio
num 0
si (AI+1) <= (AF-1) entonces
año (AI+1)
mientras año <= (AF-1) hacer
dias_año (año; dias)
num num + días
año año + 1
fin_mientrasfin_si
si (AI<>AF) entonces
si (MI<12) entonces
mes (MI+1)
mientras mes <= 12 hacer
dias_mes (mes, AI; dias)
num num + días
mes mes + 1
fin_mientras
fin_si
si (MF>1)...
Regístrate para leer el documento completo.