jueves, 25 de septiembre de 2025

01e.- Programación I - Programa para presentar en la consola Números Primos en un rango especifico que terminen en una cifra especifica

Inicialmente se les entrego a los estudiantes un programa elaborado por el profesor que presenta en pantalla todos los números primos contenidos en un rango a partir del numero 2. (Números primos son números que solo pueden ser divididos exactamente entre 1 y ellos mismos)

Programa Inicial

 /* Programa elaborado: Carlos Ferrer 

Este programa presenta en la consola todos los números primos

en un rango especifico

fecha: 25-sep-2025

*/


#include<iostream> //Biblioteca para manejar la consola

using namespace std; // Instrucción para evitar escribir std constantemente


main()

{

int menor,mayor; //Rango a estudiar

int n; //Numero a estudiar

int div; //Divisor


// Se solicita el rango a estudiar


cout <<"ingrese el limite inferior del rango a estudiar (>=2) = ";

cin >>menor;


cout <<"ingrese el limite superior del rango a estudiar (>=limite menor) = ";

cin >>mayor;


//Se imprime el encabezado


cout <<endl<<"NUMEROS primos ENTRE "<<menor<<" Y "<<mayor<<endl<<endl;


// Se determina si el numero n es primo


n=menor;

evaluar_otro_numero:

div=2;


seguir_dividiendo:

if (n%div==0) //Se verifica si la división fue exacta

{

/*Se verifica si el divisor es menor que el numero de estudio

  de ser así el numero no es primo*/ 

if (div<n)  

{

        n=n+1; //Se pasa al numero siguiente

        }

else // El numero es primo y se presenta en la consola

cout <<n<<" "; 

n=n+1;

}

goto evaluar_otro_numero; //se pasa al numero siguiente

}


//Si el divisor no divide exactamente aumentamos el divisor


if (n<mayor) 

   {

div=div+1;

goto seguir_dividiendo;

   }



Posteriormente el profesor les indico a los estudiantes que modificaran el programa para presentar los números primos que finalizaran en siete (7).

Uno de los estudiantes propuso la idea de que: Se le sumara al numero primo 3 y posteriormente se dividiera entre 10, si esa operación no presentaba residuo el numero terminaba en siete (7), al profesor le gusto la idea del estudiante y les solicito a los alumnos que la pusieran en marcha. Veamos como lo programó el profesor: 

 

2do Programa - Solo los que terminan en 7


 /* Programa elaborado: Carlos Ferrer 

Este programa presenta en la consola todos los números primos que terminan en 7

en un rango especifico

fecha: 25-sep-2025

*/


#include<iostream> //Biblioteca para manejar la consola

using namespace std; // Instrucción para evitar escribir std constantemente


main()

{

int menor,mayor; //Rango a estudiar

int n; //Numero a estudiar

int div; //Divisor


// Se solicita el rango a estudiar


cout <<"ingrese el limite inferior del rango a estudiar (>=2) = ";

cin >>menor;


cout <<"ingrese el limite superior del rango a estudiar (>=limite menor) = ";

cin >>mayor;


//Se imprime el encabezado


cout <<endl<<"NUMEROS primos que terminan en 7 ENTRE "<<menor<<" Y "<<mayor<<endl<<endl;


// Se determina si el numero n es primo


n=menor;

evaluar_otro_numero:

div=2;


seguir_dividiendo:

if (n%div==0) //Se verifica si la división fue exacta

{

/*Se verifica si el divisor es menor que el numero de estudio

  de ser así el numero no es primo*/ 

if (div<n)  

{

        n=n+1; //Se pasa al numero siguiente

        }

else // El numero es primo y se presenta en la consola

            if((n+3)%10==0) //Verificamos que termine en 7

                {

        cout <<n<<" "; 

                }

n=n+1;

}

goto evaluar_otro_numero; //se pasa al numero siguiente

}


//Si el divisor no divide exactamente aumentamos el divisor


if (n<mayor) 

   {

div=div+1;

goto seguir_dividiendo;

   }


Luego el profesor les indico a los estudiantes que modificaran que solicitara el numero de finalización al principio.
 Veamos como lo programó el profesor: 

3er Programa  - Solicitando el nro. de finalización

 /* Programa elaborado: Carlos Ferrer 

Este programa presenta en la consola todos los números primos que terminan

en una cifra especifica en un rango especifico

fecha: 25-sep-2025

*/


#include<iostream> //Biblioteca para manejar la consola

using namespace std; // Instrucción para evitar escribir std constantemente


main()

{

int menor,mayor; //Rango a estudiar

int n; //Numero a estudiar

int div; //Divisor

int cifra_final; //cifra final de los números primos a presentar


// Se solicita el rango a estudiar


cout <<"ingrese el limite inferior del rango a estudiar (>=2) = ";

cin >>menor;


cout <<"ingrese el limite superior del rango a estudiar (>=limite menor) = ";

cin >>mayor;


//solicitamos la cifra de finalización

cout <<"ingrese la cifra de final de los numeros primo = ";

cin >>cifra_final;

//Se imprime el encabezado


cout <<endl<<"NUMEROS primos que terminan en "<<cifra_final<<" ENTRE "<<menor<<" Y "<<mayor<<endl<<endl;


// Se determina si el numero n es primo


n=menor;

evaluar_otro_numero:

div=2;


seguir_dividiendo:

if (n%div==0) //Se verifica si la división fue exacta

{

/*Se verifica si el divisor es menor que el numero de estudio

  de ser así el numero no es primo*/ 

if (div<n)  

{

        n=n+1; //Se pasa al numero siguiente

        }

else // El numero es primo y se presenta en la consola

            if((n+(10-cifra_final))%10==0) //Verificamos que termine en la cifra exigida

                {

        cout <<n<<" "; 

                }

n=n+1;

}

goto evaluar_otro_numero; //se pasa al numero siguiente

}


//Si el divisor no divide exactamente aumentamos el divisor


if (n<mayor) 

   {

div=div+1;

goto seguir_dividiendo;

   }


LO MAS IMPORTANTE ES QUE PARA HACER ESAS MODIFICACIONES EL PROFESOR USO LA TÉCNICA DE LA DEPURACIÓN (DEBUGGING) DE FORMA DE CORREGIR LO QUE IMPLEMENTABA HASTA LOGRAR EL RESULTADO ESPERADO.

INTENTE HACERLO UD. SIN VER EL PROGRAMA ORIGINAL.

EXITO!!!!!! 

No hay comentarios.:

Publicar un comentario