La Resurrección de Freddy Krueger |
Freddy
Krueger quiere conocer, para su resurrección, cuál es la
fecha exacta a partir de hoy (miércoles 03 de abril de 2024) cuándo se produce
por décima tercera vez (13ra) la combinación: martes 13.
Elabore
un programa que ayude a Freddy.
Indique según los resultados del programa en qué fecha a partir de hoy se produce:
a.- La
décima tercera (13ra) vez que se combina día martes 13.
Resultado:
Dia 13
del mes _________ del año ________
b.- La
vigésima novena (29na) vez que se combina día viernes 20.
Resultado:
Dia 13
del mes _________ del año ________
c.- La
sexagésima (60ma) vez que se combina sábado 21.
Resultado:
Dia 21
del mes _________ del año ________
Programa en C++
/* Programa: Este programa determina cual es la fecha exacta
en la cual se produce una combinación día y día de semana
según el nro de veces que especifique el usuario, a partir del
miércoles 03 de abril de 2024
Elaborado por Carlos Ferrer
Fecha 4 abril del 2024
Rev. 0
*/
#include <iostream>
#include <locale.h> //Biblioteca de idiomas
using namespace std;
main()
{
//Seteamos el lenguaje en español para que los cout puedan imprimir áéíóú y ñ
setlocale(LC_ALL, "spanish");
// Limpiamos Pantalla
system("cls");
// Establecemos la fecha de hoy
int dia = 3;
int mes = 4;
int anio = 2024;
// establecemos (Lunes 1, Martes 2 ....Domingo 7)
int dia_s = 3;
// Detector de año bisiesto
bool Bisiesto;
string dias_s[7] = {"Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado", "Domingo"};
string meses [12] = {"Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"};
int dia_buscar = 0; // Establecemos dia a buscar
while (dia_buscar < 1 or dia_buscar > 31) {
cout << "Ingrese día a buscar = ";
cin >> dia_buscar;
if (dia_buscar < 1 or dia_buscar > 31)
{
system("cls");
cout << "Alerta día fuera de rango!!"<<endl;
cout << "Los días deben estar en el rango de 1 a 31"<<endl;
cout << endl;
}
}
int dia_s_buscar = 0;
while (dia_s_buscar < 1 or dia_s_buscar > 7)
{
cout << "Ingrese día de semana a buscar (Lunes=1 a Dom=7)= ";
cin >> dia_s_buscar;
if (dia_s_buscar < 1 or dia_s_buscar > 7)
{
system("cls");
cout << "Alerta día de semana fuera de rango!!"<<endl;
cout << "Los días deben estar en el rango de 1 a 7"<<endl;
cout << endl;
}
}
int combinacion_a_buscar = 0;
while (combinacion_a_buscar < 1) {
cout << "Ingrese la combinación a buscar= ";
cin >> combinacion_a_buscar;
if (combinacion_a_buscar < 1) {
system("cls");
cout << "Alerta combinación a buscar fuera de rango!!"<<endl;
cout << "La combinación a buscar debe ser mayor que cero"<<endl;
cout << endl;
}
}
/* Barremos todas las fechas desde el 03 de Abril de 2024
Hasta conseguir la combinación buscada*/
int contador_de_combinaciones = 0;
while (contador_de_combinaciones < combinacion_a_buscar)
{
// Determinamos si el año en movimiento es bisiesto
if ((anio % 4 == 0 and anio % 100 != 0) or (anio % 4 == 0 and anio % 100 == 0 and anio % 400 == 0))
{
Bisiesto=true;
}
else
{
Bisiesto=false;
}
// Si la fecha es igual a la buscada incrementamos el contador
if (dia == dia_buscar and dia_s == dia_s_buscar)
{
contador_de_combinaciones=contador_de_combinaciones+1;
}
if(contador_de_combinaciones == combinacion_a_buscar)
{
break;
}
dia=dia+1;
dia_s=dia_s+1;
// Verificamos un cambio de mes
if ((dia == 31 and (mes == 11 or mes == 6 or mes == 4 or mes == 9)) or
(dia == 29 and mes == 2 and Bisiesto==false) or
(dia == 30 and mes == 2 and Bisiesto==true) or
(dia == 32))
{
dia = 1;
mes = mes+1;
}
// Verificamos un cambio de año
if (mes == 13)
{
mes = 1;
anio=anio+1;
}
// Verificamos el reseteo del ciclo de la semana
if (dia_s == 8)
{
dia_s = 1;
}
}
// Imprimimos el resultado
cout << endl;
cout << "La Combinación nro. " << contador_de_combinaciones << " de " << dias_s[dia_s - 1] << " " << dia << " ocurrira:"<<endl;
cout << "El " << dia << " del mes de " << meses[mes - 1] << " del año " << anio << endl;
cout << endl;
system("pause");
}
Programa Python
|

No hay comentarios.:
Publicar un comentario