viernes, 17 de octubre de 2025

1n.- Programación I - Parcial Nro. 1 - Solución del Profesor (Semestre 2026 - I)

 1)   Elabore un programa que permita determinar en que años desde el 2025 hasta el 2099 se repite la misma combinación de Mes, día y día de semana, por ejemplo:

Programa para determinar en que años se cumple la combinación día + mes + día de semana

Ingrese Mes = 7

Ingrese Dia de Mes = 20 

Ingrese Dia de Semana (Dom=1 Lun=2 Mar=3 Mie=4 Jue=5 Vie=6 Sab=7) = 3

Los años que se presentan esta combinación entre 2025 y 2099 corresponden a:

2027 2032 2038 2049 2055 2060 2066 2077 2083 2088 2094

--------------------------------

Process exited after 10.41 seconds with return value 0

Presione una tecla para continuar . . .


 12) Dado el siguiente programa indique en sus propias palabras que hace el programa




Solución

1)


/*Parcial Nro. 1 Semestre 2026-I 

  Programa para determinar años desde el 2025 hasta 2099 donde

  se da la misma combinación día, mes y día de semana

  

  Elaborado por Carlos Ferrer

  Rev.: Oct 2025

*/


//Biblioteca para recibir datos y enviar datos a la consola (Pantalla negra)

#include <iostream> 

using namespace std;


main()

{

int dia=1,mes=1,a=2025,Dia_s=4;

int diab,mesb,Dia_sb;

int bisiesto;


//Validamos el mes a ingresar

cout<<"Programa para determinar que a#os se cumple la combinación dia + mes + dia de semana"<<endl<<endl;

do

{

cout <<"Ingrese el mes a validar (1-12) = ";

cin >>mesb;

if (mesb<1 or mesb>12)

{

cout <<endl<<endl<<"Error.. el rango es de 1 a 12 !!!!"<<endl<<endl;

}

}

while (mesb<1 or mesb>12);


//Validamos el día a ingresar

do

{

cout <<"Ingrese el dia a validar (1-31) = ";

    cin >>diab;

    

if (diab<1 or diab>31)

{

cout <<endl<<endl<<"Error.. el rango es de 1 a 31 !!!!"<<endl<<endl;

diab=32;

}

if (diab>30 and (mesb==4 or mesb==6 or mesb==9 or mesb==11))

{

cout <<endl<<endl<<"Error.. el mes indicado solo tiene 30 dias !!!!"<<endl<<endl;

diab=32;

}

else if (diab>29 and mesb==2)

{

cout <<endl<<endl<<"Error..  febrero solo tiene 28 dias o 29 días"<<endl<<endl;

diab=32;

}

}

while (diab<1 or diab>31);


//Validamos el día de la semana a ingresar

do

{

cout <<"Ingrese el dia de la semana a validar (Dom=1 Lun=2 Mar=3 Mie=4 Jue=5 Vie=6 Sab=7) = ";

cin >>Dia_sb;

if (Dia_sb<1 or Dia_sb>7)

{

cout <<endl<<endl<<"Error.. el rango es de 1 a 7 !!!!"<<endl<<endl;

}

}

while (Dia_sb<1 or Dia_sb>12);

system("cls");

cout <<"Programa para determinar que a#os se cumple la combinación dia + mes + dia de semana"<<endl<<endl;

cout <<"Dia = "<<diab<<"  Mes = "<<mesb<<endl;

cout <<"Dia de Semana (Dom=1 Lun=2 Mar=3 Mie=4 Jue=5 Vie=6 Sab=7) = "<<Dia_sb<<endl<<endl;


//Determinamos los años en los cuales se cumple las mismas combinaciones

while(a<2099)

{

// bisiesto= divisible entre 4 y no es divisible entre 100 o es divisible entre 100 y 400

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

{

bisiesto=1;

}

else

{

bisiesto=0;

}

    //Incrementamos el día a revisar

dia=dia+1;

Dia_s=Dia_s+1;

/* Si es el octavo día activamos el turno (turno=1) de lo contrario

   incrementamos el contador de 8 dias (1 día de turno siete libres)*/

if (Dia_s==8)

    {

    Dia_s=1;

}

   /*Verificamos si el mes de 31 días se cumplió y 

  nos pasamos al mes siguiente*/

if (dia==31 and (mes==11 or mes==6 or mes==4 or mes==9))

{

dia=1;

mes=mes+1;

}

/*Verificamos si el mes de 28 dias + año Bisiesto 

  se cumplió y nos pasamos al mes siguiente*/

else if (dia>28 and mes==2 and bisiesto==0)

{

dia=1;

mes=mes+1;

}

/*Verificamos si el mes de 29 días + año Bisiesto 

  se cumplió y nos pasamos al mes siguiente*/

else if (dia>29 and mes==2 and bisiesto==1)

{

dia=1;

mes=mes+1;

}

/*Verificamos si el mes de 31 días  

  se cumplió y nos pasamos al mes siguiente*/

else if (dia==32)

{

dia=1;

mes=mes+1;

}

//Verificamos el cambio de año y nos cambiamos de año

if (mes==13)

{

mes=1;

a=a+1;

}

//Presentamos los resultados

if (dia==diab and mes==mesb and Dia_s==Dia_sb)

{

cout <<a<<" ";

}

}

}


2) 


El programa presenta en pantalla los primeros veinte (20) números a partir de 100000 que al sacarle la raíz cuadrada el resultado genere un numero:


a.- Entero (sin parte decimal)


b.- Primo


c.- Que termine siete (7).



No hay comentarios.:

Publicar un comentario