Programación en C++: el bucle for

En este artículo quiero mostrarte uno de los bucles más utilizados en el mundo de la programación. Te voy a enseñar como funciona y como se usa el bucle for. Lee el artículo las veces que puedas para entender el 100% y realiza los ejercicios que te voy a proponer. Vas a descubrir una potente forma de controlar los bucles y de facilitar la programación.

El  bucle for se utiliza para repetir un conjunto de sentencias un número de veces fijado de antemano. Se necesita una variable contadora, un valor inicial, un valor final y un incremento.

En este código que te pongo a continuación, es un programa que realiza la media de 5 números introducidos por el usuario. Este código esta realizado en c++ y utilizo un bucle while para resolverlo. Para que comprendas los elementos mencionados anteriormente te los he comentado. Copia este código y prueba el programa con devc++.

#include <iostream>
#include <conio.h>

using namespace std;
int main(){
int contador, valor, suma, inicio, final;
double media;
inicio = 1;//valor inicial
final = 5;// valor final
suma = 0;
contador = inicio; // contador
while (contador <= final){ // v_c <= Vfinal
cout << "Introduce el número " << contador << ": \n";
cin >> valor;
suma = suma + valor;
contador++; // incremento v_c = v_c + 1
}
media = suma / (final *1.0);
cout << "La media es " << media << endl;
}

La sentencia for permite la construcción de una forma compacta de los ciclos controlados por contador, aumentando la legibilidad del código. Su sintaxis es la siguiente:

for (i=valor inicial; i<=valor final; i++){
sentencias
}

Suponemos que i es una variable entera, tenemos un valor inicial un valor final y un incremento. En lenguaje convencional esto se diría de la siguiente manera: para i igual a valor inicial hasta i menor o igual que valor final, realiza las sentencias luego aumenta i y revisa la condición.

Como ejemplo te voy a poner el programa anterior pero realizado con el blucle for:

 

#include <iostream>
using namespace std;
int main(){
int contador, valor, suma, inicio, final;
double media;
inicio = 1;
final = 5;
suma = 0;
for (contador=inicio ; contador <= final ; contador++){
cout << "Introduce el número " << contador << "o: \n";
cin >> valor;
suma = suma + valor;
}
media = suma / (final*1.0);
cout << "La media es " << media << endl;
}

Copia este ejercicio y compilalo con el devc++, estudialo bien. Vas a comprobar que el bucle for se repite 5 veces y realizarás la media de 5 números.

¿De que depende que el bucle se repita 5 veces? Como puedes comprobar las veces que se repite depende del programador. Él decide el valor inicial, el valor final y el operador relacional (según el que pongas variará las veces que se repita el bucle, no es lo mismo < que <=).

Ejemplo: Programa que escribe 9 veces «hola»

int i;
for (i = 1; i <= 9; i++)
cout << "Hola \n";

Este ejemplo hace lo mismo pero, cambio los valores iniciales y finales y la condición:

int i;
for (i = 0; i < 10; i++)
cout << "Hola \n";

Comprueba que los dos ejemplos anteriores tienen el mismo resultado, utiliza el devc++ para ello. Cuando compruebes esto realiza un programa genérico para realizar la media. El usuario introducirá a cuantos números le quiere hacer la media, los introducirá y el programa hará los cálculos.

Quiero que me comentes este artículo si o si, dime que te ha parecido, si has tenido dificultad y sobre todo coméntame tus dudas. Cuéntame si has realizado el ejercicio y pon tu código para que te lo corrija y que otros compañeros lo vean. Yo responderé a todo con mucha ilusión.

Un saludo,

Javi Pizarro

Acerca de Javi Pizarro

Ingeniero informático dedicado a la docencia, con experiencia en creación de programas de gestión y desarrollo de aplicaciones web.
Esta entrada fue publicada en Programacion y etiquetada , , , , , , , , , , , , . Guarda el enlace permanente.

25 respuestas a Programación en C++: el bucle for

  1. redcash dijo:
    # include <iostream>
    # include <conio.h>
    
    using namespace std;
    
    int main(){
     
     int contador,valor,valor1,suma,inicio,final;
     double media;
     final = valor1;
     suma = 0;
     inicio = 1;
     
        cout<<"Cuantos valores vas a introducir?: ";
        cin>>valor1;
        
        for (contador=inicio ; contador <= final; contador++){
        cout<<"\nIntroduce el valor "<<contador<<": ";
        cin>>valor;
        suma=suma+valor;}
        
        media = (suma / (final*1.0));
        cout<<"\nLa media es : "<<media<<endl;
        
           
        
        getch();
    }
    

    Hazme un favor javi borra todos los demas…

    • avile dijo:

      tienes un error en la variable «final» ya que no te esta reconociendo el valor que introduces, solo esta tomando el inicio que son dos valores del 0 al 1, si lo colocas de esta forma si te tomara como referencia el numero ingresado.

      int contador,valor,valor1,suma,inicio,final;
      double media;
      suma = 0;
      inicio = 1;
      cout<>valor1;
      final = valor1;

  2. PANCHITO dijo:

    Que tal.
    Me estaba preguntando ¿porque multiplicar finalpor 1.0?
    Y descubri que es para darle decimales a final, el cual esta declarado como entero int), ¿cierto?
    Despues descubri que si cambio final y suma a double, la media da decimales, sin tener que multiplicar final por 1.0, pero….. el problema esta en que el usuario podria querer hacer la media de ……talvez 4.5 numeros y el programa solo pediria 4, lo que daria un error en la media.

    Aqui mi codigo:

    #include <iostream>
    #include <conio.h>
    
    using namespace std;
    int main(){
        
        int inicio=1, final, valor,suma=0, contador=1;
        double media;
        
        cout<<"MEDIA\n A cuantos numeros le quieres hacer la media? ";
        cin>>final;
            
        for(contador=inicio; contador<=final; contador++){
                             cout<<"Inserta el numero "<<contador<<": ";
                             cin>>valor;
                             suma=suma+valor;
                             }
    
    media=suma/(final*1.0);
    cout<<"La media de estos "<<final<<" numeros es: "<<media;    
    
    getch();
    }
    
  3. Daniel hdez dijo:

    #include
    #include
    #include

    using namespace std;
    int main()
    {
    int i;
    int num;
    int suma;
    int Tdnum;
    double media;
    Tdnum = 10;
    suma = 0;
    for (i=1 ; i <= Tdnum ; i++)
    {
    cout << "Introduce el numero " << i <> num;
    suma = suma + num;
    }
    media = suma / (Tdnum*1.0);
    cout << "La media es " << media << endl;
    getch ();
    }

  4. Daniel hdez dijo:

    otra vez no pude wsubir mi codigo..como le hago para subir mi codigo alguin me puede apoyar

  5. Daniel hdez dijo:

    #include

  6. Daniel hdez dijo:

    <![CDATA[
    /**
    * SyntaxHighlighter
    */
    #include
    #include
    #include

    using namespace std;
    int main()
    {
    int i;
    int num;
    int suma;
    int Tdnum;
    double media;
    Tdnum = 10;
    suma = 0;
    for (i=1 ; i <= Tdnum ; i++)
    {
    cout << "Introduce el numero " << i <> num;
    suma = suma + num;
    }
    media = suma / (Tdnum*1.0);
    cout << "La media es " << media <

  7. Daniel hdez dijo:
    #include 
    #include 
    #include 
    
    	 
    using namespace std;
    int main()
    {
     int i;
     int num;
     int suma;
     int Tdnum;
     double media;
     Tdnum = 10;
     suma = 0;
     for (i=1 ; i <= Tdnum ; i++)
        {
          cout << "Introduce el numero " << i <> num;
          suma = suma + num;
        }
     media = suma / (Tdnum*1.0);
     cout << "La media es " << media << endl;
     getch ();
    }
    
  8. Daniel hdez dijo:

    Hello SyntaxHighlighter

    SyntaxHighlighter.all();

    
    function helloSyntaxHighlighter()
    
     {
    	
      #include 
    #include 
    #include 
    
    	 
    using namespace std;
    int main()
    {
     int i;
     int num;
     int suma;
     int Tdnum;
     double media;
     Tdnum = 10;
     suma = 0;
     for (i=1 ; i <= Tdnum ; i++)
        {
          cout << "Introduce el numero " << i <> num;
          suma = suma + num;
        }
     media = suma / (Tdnum*1.0);
     cout << "La media es " << media << endl;
     getch ();
    }
    
     
    }
    
    
  9. PANCHITO dijo:

    es muy facil, veras…..

    [sourcecode language=”cpp”]

    tu codigo fuente
    tu codigo fuente
    tu codigo fuente

    [/sourcecode]

    resultado

    tu codigo fuente
    tu codigo fuente
    tu codigo fuente

    saludos

    • PANCHITO dijo:

      ah caray! parece que ya no sirve el truco este… ya no salen las guias de colores ni la numeracion…
      ultimo intento:

      #include <iostream>
      #include <conio.h>

      using namespace std;
      int main(){

      int inicio=1, final, valor,suma=0, contador=1;
      double media;

      cout<<"MEDIA\n A cuantos numeros le quieres hacer la media? ";
      cin>>final;

      for(contador=inicio; contador<=final; contador++){
      cout<<"Inserta el numero "<<contador<<": ";
      cin>>valor;
      suma=suma+valor;
      }

      media=suma/(final*1.0);
      cout<<"La media de estos "<<final<<" numeros es: "<<media;

      getch();
      }

      se vio?

  10. HANNIE dijo:

    psss esta es una propuesta para sacar la media ….
    para que no se compliquen la vida como yooo…
    cuando apenas empezeee….

    //programa para calcular la media de las notas
    #include
    #include
    main (){
    //declaro mis variables
    int numerodenotas,contador =1;
    float valordelasnotas, media, suma =0;

    //pido y guaddo notas
    printf («NUMERO DE NOTAS QUE DESEO CONOCER:\n»);
    scanf («%d»,&numerodenotas);

    do{
    printf («VALOR DE LA NOTA = «);
    scanf («%f»,&valordelasnotas);

    suma += valordelasnotas;
    ++contador;

    }

    while (contador <= numerodenotas);

    media= suma/numerodenotas;
    printf ("LA MEDIA DE LAS NOTAS ES = %f", media);

    getch();

    }

    espero que les sirva

    saludoss….

  11. luciana dijo:

    por casualidad nadie sabe como calcular el cuadrado y el cubo de un numero utilizando el bucle for?

  12. David dijo:

    Buenos dias a todos

    Aqui dejo mi codigo

    #include
    #include
    using namespace std;
    int main(){
    int contador, valor, suma, inicio, final;
    double media;
    char numeral=167;
    inicio=1;
    suma=0;

    cout<>final;

    for (contador=inicio ; contador<=final ; contador++){
    cout<<"Introduce el "<<contador<<numeral<>valor;
    suma=suma+valor;
    }
    media=suma/(final*1.0);
    cout<<"La media de estos "<<final<<" valores es : "<<media<<endl;
    getch();
    }

    Mira que me esta gustando el aprender a programar.

    Un saludo

  13. Ludyn Danilo Reyes dijo:

    calidad… aqui se aprende mucho…

  14. anahi dijo:

    Siempre pense que a la hora de ejecutar se realizaba linea por linea. Aqui explicaste que en el for se ejecutan primero las senecias dentro del siclo y al final el incremento. Muy util gracias!

  15. Manuel dijo:

    #include
    #include
    #include

    using namespace std;
    int main()
    {
    int i;
    int num;
    int suma;
    int Tdnum;
    double media;
    Tdnum = 10;
    suma = 0;
    for (i=1 ; i <= Tdnum ; i++)
    {
    cout << "Introduce el numero " << i <> num;
    suma = suma + num;
    }
    media = suma / (Tdnum*1.0);
    cout << "La media es " << media << endl;
    getch ();
    }

  16. leonardo plaza dijo:

    #include
    #include
    #include
    using namespace std;
    int main(){
    int cont,suma,inicio,final,valor;
    double media;
    inicio=0;
    suma=0;
    cout<<"ingrese la cantidad de numeros a los que quieres realizar la media: "<>final;
    for(cont=1 ; cont<=final ; cont++){
    cout<<"introduce el numero " << cont <>valor;
    suma=suma + valor;
    }
    media= suma / (final*1.0);
    cout<<"La media es: "<<media<<endl;
    getch();
    }

  17. kelly dijo:

    #include
    #include
    #include
    main()
    {
    float N1,N2,N3,PN1,PN2,PN3,ND;
    int i,n,aprovado=0,reprovado=0;
    printf(«\n ingrese el numero de estudiantes»);
    scanf(«%d», &n);
    for(i=1; i= 2.65);
    {
    aprovado++;
    printf(«\n aprovo la materia: %d» ,aprovado);
    }
    else(ND < 2.65);
    {
    reprovado++;
    printf("\n reprovo la materia: %d" ,reprovado);

    }
    printf("\n aprobaron %d estudiantes y reprobaron…%d estudiantes..:",aprobado,reprobado);
    getch();
    }
    }

  18. pablo dijo:

    hola mi nombre es Pablo y me gustaría que me pudieras dar una mano para resolver este programita: espero alguna solución inmediata desde ya gracias y muy buena info!
    Diseñar un programa que realice las siguientes operaciones:
    1. Inicializar un primer array de 10 elementos con los siguientes valores:
    {2.36, 9.32, 8.96, 2.33, 5.6, 5.89, 9.83, 8.95, 6.99, 11.2}
    El array se deberá llamar “array1”.

    2. Cargar un segundo array de 10 elementos desde el teclado pidiendo consecutivamente cada uno de los valores del array. (ej. “ingrese el elemento número 1:”, “ingrese el elemento número 2:”, etc. Hasta 10.)
    El array se deberá llamar “array2” y será de tipo flotante.

    3. Calcular el promedio del” array1”.
    Mostrar el resultado al final del programa con la siguiente lectura: “el promedio del array1 es:”

    4. Sumar el séptimo elemento del” array2” con el segundo elemento del “array1”.
    Mostrar el resultado al final del programa con la siguiente lectura:” la suma del séptimo elemento del array2 mas el segundo elemento del array1 es:”

    5. Encontrar el mayor de los 10 elementos del “array2”.
    Mostrar el resultado al final del programa con la siguiente lectura:” el número: x es el mayor numero del “array2”, (x es el numero mayor del array2).

    6. cuadriplicar el valor de todas las componentes del “array1” y guardarlas en un nuevo array “array3”.

    7. Imprimir en pantalla array1, array 2, array3, en columnas.

  19. Oliver mendez cartolin dijo:

    Los dudas k tenía me a puesto en claro,gracias a este sitio .yotro duda k tengo en fort

  20. isa dijo:

    necesito un que alguien me ayude a crear un programa que lea un número y devuelva su tabla de multiplicar pero con CICLO FOR porfavooor!!!

  21. juanjo dijo:

    alguien podria enviarme el codigo para hacer un programa para encontrar los numeros primos del 1 al 100 en c++ con el bucle for?? saludos

  22. andres dijo:

    #include
    using namespace std;
    int main(){
    int contador, valor, suma, numeros ;
    double media;
    cout<>numeros;
    suma = 0;
    for (contador=1 ; contador <=numeros ; contador++){
    cout << "Introduce el número " << contador <> valor;
    suma = suma + valor;
    }
    media = suma / (numeros*1.0);
    cout << "La media es " << media << endl;
    }

  23. Jordi enrique Reyes dijo:

    Por casualidad alguien me puede dar un ejemplo con el siclo for y char en forma de contador por que necesito hacer algo así:
    Se requiere conoce el detalle de pago para 10 empleados.
    Cada empleado gana un monto por hora que se conoce como horas normales y una cantidad de horas normales, también trabaja horas extra, cada hora extra vele tiempo y medio el valor de una hora normal que se le paga.
    Además gana bonificaciones que se introducen por teclado.
    El monto ganado por horas normales mas horas extra mas bonificaciones se conoce como salario bruto.
    Una vez calculado el salario bruto se deberá hacer las siguientes deducciones:
    Seguro de enfermedad 5.5% del salario bruto
    Invalidez vejez y muerte 3.84% del salario bruto
    Aporte del trabajador al Banco Popular 1% del salario bruto
    Cuota prestamos se digita desde teclado.
    La suma de Seguro de enfermedad más Invalidez vejez y muerte más aporte del trabajador al Banco Popular se conoce como deducciones y deben rebajárseles al salario bruto para obtener el salario neto o paga del empleado. 30%

Replica a Daniel hdez Cancelar la respuesta