lunes, 30 de marzo de 2026

01J.- Programación I - Primera Evaluación (26 de marzo de 2026) - semestre 2026 - II (Solución del Profesor)

 

Video Explicativo


El dilema del Planificador


El jefe de la empresa para la cual ustedes trabajan es un adicto a la planificación, él desea que el grupo al cual Ud. pertenece elabore un programa que presente en pantalla cual día de la semana corresponde una fecha ingresada entre el 26 de marzo de 2026 y el 31 de diciembre de 2040, tal como se indica en las siguientes graficas:




El profesor seleccionara a uno de los integrantes del grupo para que pase al laboratorio y defienda el programa, la defensa consistirá en modificar el programa según instrucciones del profesor. La calificación del estudiante será la calificación del grupo.

Nota: Asegúrese de que su programa considere los años bisiestos (Años con 29 de febrero)

El Programa final 

(Según cambio a ultima hora del profesor)

1ro de enero de 1900 a 31 de diciembre de 2036


/* 

Programa del Planificador 

elaborado por: Carlos Ferrer

Rev. del 30 de marzo de 2026

*/



#include<iostream>

#include<locale.h>

using namespace std;


main()

{

int dia_b,mes_b,anio_b;

int dia_s=1; //lunes = 1 hasta domingo = 7 (día de inicio Jueves)

int dia=1,mes=1,anio=1900; //fecha de inicio

int bisiesto; // bisiesto = 1 No Bisiesto = 0

int aux; //variable de uso general

string aux2[13]={"","Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septimbre","Octubre","Noviembre","Diciembre"};

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

setlocale(LC_ALL,"spanish");

//Validación de datos de entrada

do

{

cout <<"Ingrese el año a buscar (1900 a 2036) = ";

    cin >>anio_b;

    if (anio_b<1900 or anio_b>2036)

    {

    cout <<endl<<"Valor fuera de rango!!!"<<endl<<endl;

}

    

}

while (anio_b<1900 or anio_b>2036);

do

{

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

    cin >>mes_b;

    if (mes_b<1 or mes_b>12)

    {

    cout <<endl<<"Valor fuera de rango!!!"<<endl<<endl;

}

    

}

while (mes_b<1 or mes_b>12);

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

{

bisiesto=1;

}

else

{

bisiesto=0;

}

if (mes_b==2 and bisiesto==1)

{

aux=29;

}

else if (mes_b==2 and bisiesto==0)

{

aux=28;

}

else if (mes_b==11 or mes_b==6 or mes_b==4 or mes_b==9)

{

aux=30;

}

else

{

aux=31;

}

do

{

cout <<"Ingrese el día a buscar (1 a "<<aux<<") = ";

    cin >>dia_b;

    if (dia_b<1 or dia_b>aux)

    {

    cout <<endl<<"Valor fuera de rango!!!"<<endl<<endl;

}

    

}

while (dia_b<1 or dia_b>aux);

/*

  Buscamos el día de la semana de la fecha a buscar, no movemos en el calendario

  hasta conseguir la fecha solicitada

*/ 

while (dia!=dia_b or mes!=mes_b or anio!=anio_b )

{

dia_s=dia_s+1;

if (dia_s==8)

{

dia_s=1;

}

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

{

bisiesto=1;

}

else

{

bisiesto=0;

}

dia=dia+1;

if (mes==2 and bisiesto==1 and dia==30)

{

dia=1;

mes=mes+1;

}

if (mes==2 and bisiesto==0 and dia==29)

{

dia=1;

mes=mes+1;

}

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

{

dia=1;

mes=mes+1;

}

if (dia==32)

{

dia=1;

mes=mes+1;

}

if (mes==13)

{

mes=1;

anio=anio+1;

}

}

//Presentamos el resultado

cout <<endl<<endl<<"Solución = El "<<día<<" del mes de "<<aux2[mes];

cout <<" de "<<anio<<" corresponderá a un día = "<<aux1[dia_s]<<endl<<endl;

}




jueves, 26 de marzo de 2026

01i.- Programación I - Primera Evaluación (26 de marzo de 2026) - semestre 2026 - II

El dilema del Planificador


El jefe de la empresa para la cual ustedes trabajan es un adicto a la planificación, él desea que el grupo al cual Ud. pertenece elabore un programa que presente en pantalla cual día de la semana corresponde una fecha ingresada entre el 26 de marzo de 2026 y el 31 de diciembre de 2040, tal como se indica en las siguientes graficas:




El profesor seleccionara a uno de los integrantes del grupo para que pase al laboratorio y defienda el programa, la defensa consistirá en modificar el programa según instrucciones del profesor. La calificación del estudiante será la calificación del grupo.

Nota: Asegúrese de que su programa considere los años bisiestos (Años con 29 de febrero)


lunes, 23 de marzo de 2026

01h.- Programación I - EJEMPLO - Primera Evaluación semestre 2026 - I

Los estudiantes de Ingeniería de la USM se asociaron con el celebre doctor Hannibal Lecter e inauguraron el 01 de Enero de 2025 la farmacia mejor equipada de Caracas, FARMACIA USM PROG I, el plan es que la farmacia opere en horario normal todos los días y de noche cada 5 días.


El primer mes la farmacia estuvo de turno nocturno los días indicados en la siguiente imagen:


Se requiere que usted elabore un programa en el cual se ingrese cualquier fecha posterior al 1ro de enero de 2025 y el programa determine si la farmacia esta de turno.

NOTA 1: El profesor todavía no ha explicado como escribir las letras acentuadas y la letra ñ en C++, para cualquier efecto sustituya la letra ñ por #.

NOTA 2: El programa debe considerar los años bisiestos, o sea, años de 366 días (años con 29 de febrero), los años bisiestos son aquellos que cumplen con cualquiera de las siguientes condiciones:
  • (1) Son divisible de forma exacta entre cuatro y no lo son entre 100
  • (2) Son divisibles de forma exacta entre 400
El programa deberá ser desarrollado en grupos de mínimo 2 y máximo 3 estudiantes. 

El profesor escogerá a uno de los estudiantes del grupo para que pase al laboratorio con el programa y ejecute una pequeña modificación que será solicitada por el profesor. De hacerlo bien todo el grupo será calificado positivamente, de hacerlo mal ninguno miembro del grupo obtendrá punto alguno.

NOTA 3: Si el grupo no esta completo el día de la defensa ninguno de los integrantes podrá defender el programa.

RESULTADOS ESPERADOS





01g.- Programación I - EJEMPLO - Primera Evaluación semestre 2025 - I

Elabore un programa que   que calcula los primeros 200 números divisibles entre tres (3) que terminan en siete (7) en un rango ingresado por el usuario para guardarlos posteriormente en un arreglo y presentarlos en pantalla.


Resultados Esperados




viernes, 20 de marzo de 2026

01f.- Programación I - Ejemplos de Ciclos (For - Do While - While - if+Goto) Semestre 2026 - II


VIDEO EXPLICATIVO


Para explicar los arreglos y los ciclos elaboramos tres (3) programas de ordenamiento usando el método de la burbuja.


1.- Hacemos el programa usando únicamente ciclo FOR y ARREGLOS 


/* Este programa ordena 10 elementos ubicados en las posiciones desde la 1 a la 10 de un arreglo de 11 posiciones, aplicando el método de la burbuja usando básicamente ciclos FOR

 

Elaborado por Carlos Ferrer - Rev. marzo 2026*/

 

 #include <iostream>

double num [11]={0};

double aux;

int i,z;

using namespace std;

 

main()

{

         

  for (i=1;i<=10;i=i+1)    

        {

        cout <<"Ingrese num["<<i<<"]= "<<endl;

        cin >>num[i];

        }

     

    for (z=1;z<=10;z=z+1)   // Cantidad de veces que se repite el método

         {

                   for(i=1;i<=9;i=i+1) // 9 comparaciones para 10 elementos, en caso de de requerir se intercambian

                   {

                   if (num[i]>num[i+1])

                            {

                            aux=num[i];

                            num[i]=num[i+1];

                            num[i+1]=aux;

                            }       

            

                   }

         }

 

 

//imprimimos resultados

         cout <<endl<<num[1];

         for (i=2;i<=10;i=i+1)

         {

         cout <<" < "<<num[i];

         }

        

         cout <<endl<<endl;

         system("pause");

}


2.- Hacemos el programa usando únicamente ciclo DO WHILE y ARREGLOS 


/* Este programa ordena 10 elementos ubicados en las posiciones desde la 1 a la 10 de un arreglo de 11 posiciones, aplicando el método de la burbuja usando básicamente ciclos WHILE

 

Elaborado por Carlos Ferrer - Rev. marzo 2026*/

 

 #include <iostream>

double num [11]={0};

double aux;

int i=1,z=1;

using namespace std;

 

main()

{

        do

        {

        cout <<"Ingrese num["<<i<<"]= "<<endl;

        cin >>num[i];

        i=i+1;

        }

        while (i<=10);

         

          do

          

         {

                     i=1;

                     do 

                   {

                   if (num[i]>num[i+1])

                            {

                            aux=num[i];

                            num[i]=num[i+1];

                            num[i+1]=aux;

                            }       

                     i=i+1;

                   }

                    while(i<=9); // 9 comparaciones para 10 elementos, en caso de de requerir se intercambian

          z=z+1;

         }

          while (z<=10);   // Cantidad de veces que se repite el método

 

//imprimimos resultados

         cout <<endl<<num[1];

        i=2; 

        do

         {

         cout <<" < "<<num[i];

         i=i+1;

        }

         while (i<=10);

         cout <<endl<<endl;

         system("pause");

}


3.- Hacemos el programa usando únicamente ciclo WHILE y ARREGLOS 


/* Este programa ordena 10 elementos ubicados en las posiciones desde la 1 a la 10 de un arreglo de 11 posiciones, aplicando el método de la burbuja usando básicamente ciclos WHILE

 

Elaborado por Carlos Ferrer - Rev. marzo 2026*/

 

 #include <iostream>

double num [11]={0};

double aux;

int i,z;

using namespace std;

 

main()

{

    i=1;      

    while (i<=10);  

        {

        cout <<"Ingrese num["<<i<<"]= "<<endl;

        cin >>num[i];

        i=i+1;

        }

 

         z=1;

          while (z<=10)   // Cantidad de veces que se repite el método

         {

                     i=1;

                     while(i<=9) // 9 comparaciones para 10 elementos, en caso de de requerir se intercambian

                   {

                   if (num[i]>num[i+1])

                            {

                            aux=num[i];

                            num[i]=num[i+1];

                            num[i+1]=aux;

                            }       

                     i=i+1;

                   }

          z=z+1;

         }

 

 

//imprimimos resultados

         cout <<endl<<num[1];

        i=2; 

        while (i<=10)

         {

         cout <<" < "<<num[i];

         i=i+1;

        }

        

         cout <<endl<<endl;

         system("pause");

}


4.- Hacemos el programa usando únicamente ciclo IF+ GOTO y ARREGLOS 


/* Este programa ordena 10 elementos ubicados en las posiciones desde la 1 a la 10 de un arreglo de 11 posiciones, aplicando el método de la burbuja usando básicamente ciclos IF GOTO

Elaborado por Carlos Ferrer - Rev. marzo 2026*/


 #include <iostream>

double num [11]={0};

double aux;

int i,z;

using namespace std;


main()

{

 i=1;

 repetir:    

 cout <<"Ingrese num["<<i<<"]= "<<endl;

 cin >>num[i];

     if (i<10)

         {

        i=i+1;    

        goto repetir;

        }          

   z=1;

   Repetir1:

   if (z<=10)   // Cantidad de veces que se repite el método

         {

                     i=1;

                     Repetir2:

                     if(i<=9) // 9 comparaciones para 10 elementos, en caso de de requerir se intercambian

                   {

                   if (num[i]>num[i+1])

                            {

                            aux=num[i];

                            num[i]=num[i+1];

                            num[i+1]=aux;

                            }       


                     i=i+1;

                     goto Repetir2;

                   }

          z=z+1;

          goto Repetir1;

         }


//imprimimos resultados

         cout <<endl<<num[1];

        i=2; 

        Repetir3:

        if (i<=10)

         {

         cout <<" < "<<num[i];

         i=i+1;

         goto Repetir3;

        }

         cout <<endl<<endl;

         system("pause");

}