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");

}

miércoles, 18 de marzo de 2026

01e.- Programación I - Programa Laboratorio 19 de marzo (Semestre 2026 - II)

Ustedes deberán elaborar un programa  que ordene de mayor a menor los números contenidos en un arreglo de 11 posiciones, usted deberá ignorar la posición cero del arreglo.

Deberá presentarse en la consola (tal como muestra la figura):

  • Los números del arreglo original: De la posición 1 a la 10
  • El ordenamiento final

Por ejemplo si el arreglo corresponde a:

double num[11]={0, -100, 1.1, M_P I, -20, 14, 1.2, 15, -30, -2.2, -3};


El resultado debería ser el siguiente:


El programa deberá ser presentado en grupos de máximo 4 personas y mínimo 3. El profesor elegirá un integrante del grupo para que defienda el programa en el laboratorio. El profesor solicitará al estudiante seleccionado que aplique un cambio al programa. El éxito del estudiante es el éxito del grupo. 

Nota: Todos los estudiantes deberán estar presentes en el momento que el profesor elija quien defenderá el programa. 

Éxitos

viernes, 13 de marzo de 2026

01d.- Programación I - Programa para determinar los números primos de un rango que terminen en un digito fijo (Semestre 2026 - II)

Pueden ver el video explicativo de como se elaboro este programa en el siguiente enlace:


VIDEO EXPLICATIVO


Programa


/* Este programa presenta en pantalla nro. primos

en un rango especifico, pero presentando

únicamente los números primos que terminan

en uno (1)


Elaborado por: Carlos Ferrer

Rev. marzo de 2026

*/


#include <iostream>


using namespace std;


main()

{

int rg_menor,rg_mayor; // rangos a estudiar

int numero; //numero a estudiar

int div=2; //divisor para determinar si el numero es primo

int dig_final; //digito final de los números primos a presentar en pantalla


// Ingresamos el rango a estudiar


reiniciar:

cout <<"Ingrese el valor del rango menor a estudiar = ";

cin >>rg_menor;


cout <<"Ingrese el valor del rango mayor a estudiar = ";

cin >>rg_mayor;


//Ingresamos el valor del digito final que deben tener los números primos


cout <<"Ingrese el digito de finalizacion de los numeros primos (0-9) = ";

cin >>dig_final;



// revisamos si el rango es correcto de lo contrario repetimos

if (rg_menor>=rg_mayor)

{

system ("cls");

cout <<"Los rangos ingresados incorrectos"<<endl<<endl;

goto reiniciar;

}


numero=rg_menor;


cout <<endl<<endl<<"***** Numeros primos que terminan en ("<<dig_final<<") ****"<<endl<<endl;


repetir:


// verificamos que el numero termina en el digito solicitado


if((numero+(10-dig_final))%10==0)

  {

  //revisa si el numero es primo, dividimos entre todos los divisores desde 2 hasta el numero

repetir2:

if(numero%div==0)

{

if (div<numero)

{

//El numero NO es primo - Avanzamos al siguiente numero

goto seguir;

}

if (div==numero)

{

// El numero es primo - Lo imprimimos y colocamos un espacio en blanco

cout<<numero<<" ";

goto seguir;

}

}

 

// Aumentamos el valor del divisor y repetimos el chequeo

div=div+1;

goto repetir2;

  }


seguir:

// reseteamos el divisor y pasamos al numero siguiente

div=2;

numero=numero+1;

 

 if (numero<=rg_mayor)

 {

  //repite el procedimiento;

  goto repetir;

  } 

 

}





jueves, 12 de marzo de 2026

01c.- Programación I - Introducción al Dev C++ - Depuración (Semestre 2026 - II)

A continuación se indica el enlace asociado al video introductorio de Dev C++ + Depuración:


Video Introducción a Dev C++ - Depuración

Éxito 

01b.- Programación I - Operadores (Semestre 2026 - II)

Operadores Aritméticos

Un operador aritmético toma dos operandos como entrada, realiza un cálculo y devuelve el resultado.


Nota: Para obtener el resultado en tipo flotante, uno de los operandos también debe ser de tipo flotante.

Operadores Relacionales

Un operador relacional se emplea para comparar y establecer la relación entre ellos. Devuelve un valor booleano (true o false) basado en la condición.



Operadores Lógicos

Se utiliza un operador lógico para tomar una decisión basada en múltiples condiciones lógicas.


NOTA1: Existen mas operadores, los mismos los estaremos explicando en la medida que se vaya requiriendo su uso.

NOTA2: Existen otras operaciones como: Raíz cuadrada, Seno, Coseno, etc. están incorporadas como métodos de módulos externos, los mismos los estaremos explicando en la medida que se vaya requiriendo su uso.