martes, 7 de octubre de 2025

01m.- Programación I - Parcial Nro. 1 - Solución del Profesor

Los días feriados en Venezuela (excluyendo Carnavales y Semana Santa) del año 2024 corresponden a:

01 de enero: Año Nuevo. (Lunes)

19 de abril: Declaración de la Independencia. (Viernes)

01 de mayo día del trabajador. (Miércoles)

24 de junio: Aniversario de la Batalla de Carabobo. (Lunes)

05 de Julio: Inicio de la firma del acta de la independencia. (Viernes)

24 de Julio Natalicio de Simón Bolívar. (Miércoles)

12 de octubre: Día de la resistencia indígena. (Sábado)

24 de diciembre: Víspera de Navidad. (Martes)

25 de diciembre: Navidad (Miércoles)

31 de diciembre: Fin de año (Martes)

 

Elabore un programa en el cual usted ingrese un año entre el 2024 y el 2099. El programa deberá mostrar que día de la semana corresponderá a estos días feriados para ese año específico.

Por ejemplo

Ingrese al año a buscar (2024 - 2099) = 2035

 

Los días feriados para 2035 corresponderán a:

 

01 de enero = Lunes

19 de abril = Jueves

01 de mayo = Martes

24 de jun = Domingo

05 de jul = Jueves

24 de jul = Martes

12 de oct = Viernes

24 de Dic = Lunes

25 de Dic = Martes

31 de Dic = Lunes


Solución


El siguiente enlace los llevara a un vídeo explicativo de como se elaboró el programa asociado:


Video explicativo elaboración del programa Parcial Nro. 1


Programa


/* 

Programa para determinar que día de la semana caen 

los feriados en Venezuela para cualquier año entre 

2024 y 2025 (No incluye semana santa ni carnavales)


Elaborado por Carlos Ferrer.

Rev. 09 de Octubre de 2024

*/



// Agregamos la biblioteca requerida

#include <iostream>

using namespace std;


main()

{

/*Creamos una variable por día festivo y la

inicializamos con el día de la semana del 2024*/

int ene01=1;

int abr19=5;

int may01=3;

int jun24=1;

int jul05=5;

int jul24=3;

int oct12=6;

int dic24=2;

int dic25=3;

int dic31=2;


// Año a buscar

int a_b;


// Contador

int i;


// Arreglo para impresión

string d_s[8]={"","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado","Domingo"};


// Ciclo para recibir el año a buscar

do

{

system ("cls");

cout <<"Ingrese el a#o requerido para "; 

cout <<"revisar dias festivos (2024 - 2099) = ";

cin >>a_b;

}

while (a_b<2024 or a_b>2099);



/* 

Al 01 de enero se le suma dos si el año anterior fue

bisiesto de lo contrario se le suma 1.


Los días feriados después del 29 de febrero

se le suman 2 si el año en curso es bisiesto y 

1 si no lo es.

*/



i=2025;


while (i<=a_b)

{

if (((i-1)%4==0 and (i-1)%100!=0) or ((i-1)%4==0 and (i-1)%100==0 and (i-1)%400==0))

{

ene01=ene01+2;

}

else

{

ene01=ene01+1;

}

if ((i%4==0 and i%100!=0) or (i%4==0 and i%100==0 and i%400==0))

{

abr19=abr19+2;

may01=may01+2;

jun24=jun24+2;

jul05=jul05+2;

jul24=jul24+2;

oct12=oct12+2;

dic24=dic24+2;

dic25=dic25+2;

dic31=dic31+2;

}

else

{

abr19=abr19+1;

may01=may01+1;

jun24=jun24+1;

jul05=jul05+1;

jul24=jul24+1;

oct12=oct12+1;

dic24=dic24+1;

dic25=dic25+1;

dic31=dic31+1;

}

/* Los días de semana van de 1 a 7 si al incrementar

el contador da 8 se debe resetear el contador a 1,

si da 9 debe hacerse a 2.*/


if (ene01>7)

{

ene01=ene01-7;

}

if (abr19>7)

{

abr19=abr19-7;

}

if (may01>7)

{

may01=may01-7;

}

if (jun24>7)

{

jun24=jun24-7;

}

if (jul05>7)

{

jul05=jul05-7;

}

if (jul24>7)

{

jul24=jul24-7;

}

if (oct12>7)

{

oct12=oct12-7;

}

if (dic24>7)

{

dic24=dic24-7;

}

if (dic25>7)

{

dic25=dic25-7;

}

if (dic31>7)

{

dic31=dic31-7;

}

i=i+1;

}


// Presentamos resultados

system ("cls");

cout <<"Los dias feriados para "<<a_b;

cout << " corresponderan a:"<<endl<<endl;


cout <<"01 de enero = "<<d_s[ene01]<<endl;

cout <<"19 de abril  = "<<d_s[abr19]<<endl;

cout <<"01 de mayo  = "<<d_s[may01]<<endl;

cout <<"24 de jun  = "<<d_s[jun24]<<endl;

cout <<"05 de jul  = "<<d_s[jul05]<<endl;

cout <<"24 de jul  = "<<d_s[jul24]<<endl;

cout <<"12 de oct  = "<<d_s[oct12]<<endl;

cout <<"24 de Dic  = "<<d_s[dic24]<<endl;

cout <<"25 de Dic  = "<<d_s[dic25]<<endl;

cout <<"31 de Dic  = "<<d_s[dic31]<<endl;


}


No hay comentarios.:

Publicar un comentario