Programación en c++: El bucle while

Esta es la fase de la programación en la que el 80% de las personas se pierde, voy a darte varias claves para que te resulte más fácil comprender los bucles y hacertelos ver en el lenguaje c++. En el artículo “Introducción a las sentencias repetitivas” vimos una pequeña reseña de lo que son los bucles y su significado. En este artículo voy a mostrarte el uso del bucle while y el potencial que tiene en la programación.

El bucle while repite una serie de instrucciones o sentencias un número de veces determinado por una condición de parada. Dicha condición de parada la determina la expresión lógica del while. La sintáxis de la estructura es la siguiente:

1     while (<condición>){
2            SENTENCIAS;
3   }

Como he dicho una estructura while funcionaría de la siguiente manera: se evalua la condición y se verifica si es verdadera o falsa. En el caso de que fuese falsa, el compilador se saldría del bucle y seguiría compilando las sentencias que hubiese a continuación. Si la condición es verdadera, el compilador ejecutaría las sentencias, al terminar las sentencias volvería a evaluar la condición, y así, sucesivamente hasta que esta fuese falsa.

Para que practiques este bucle y lo entiendas de verdad voy ha ponerte un pequeño ejercicio:  ¿Que realiza el programa de la figura?

Si consigues averiguarlo escribeme un comentario poniendome el resultado, si lo logras habrás comprendido el funcionamiento del bucle while.

Te voy a dejar un programa que lo que realiza es la sumatoria de los numeros desde el cero hasta un número introducido por el usuario. Haz la traza del programa (escribe el código que te muestro en devc++) y compruebalo suponiendo que el usuario introduce el 5.

Quiero que de verdad te pongas en acción y realices los ejercicios que te mando, estamos en unos temas cruciales y si no los comprendes te vas a desmotivar. Lucha por no tirar la toalla y practica mucho, preguntame tus dudas, yo te respondere a ellas y quiero ayudarte a conseguirlo.

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.

33 respuestas a Programación en c++: El bucle while

  1. josé vecca dijo:

    hola! en la primera imagen se inicializa resultado y no se usa y en la segunda imagen se usa y creo que la salida de resultado siempre va a ser igual al numero que se lee!

    • Javi Pizarro dijo:

      Hola Jose, como dices en el primer ejemplo pongo la variable solución inicializada a cero y luego no la uso, ha sido un error mio. La solución que das no es la correcta. Prueba el código, coge tu devc++ y comprueba el resultado de los programas, ponte en ACCIÓN. Muchos ánimos.
      Atentamente,
      Javi Pizarro

      • Tutankamon madafaca dijo:

        Hola Jose, como dices en el primer ejemplo pongo la variable solución inicializada a cero y luego no la uso, ha sido un error mio. La solución que das no es la correcta. Prueba el código, coge tu devc++ y comprueba el resultado de los programas, ponte en ACCIÓN. Muchos ánimos.
        Atentamente,
        Tutankamon madafaca.

  2. raul galvez cachairo dijo:

    hola
    puede ser?
    el resultado es siempre un numero mas del que se introduce por que “i” tiene el valor cero asignado entonces si (i<=numero) a no ser que se introduzca un cero o un numero negativo no dara cero no?

    • Javi Pizarro dijo:

      Hola raúl, tu respuesta es muy lógica y la solución esta muy bien pero, piensa en cuantas veces se va a repetir la estructura while (cuantas veces se repetirán las sentencias) según el número que introduzca el usuario. Dije de hacer la prueba suponiendo que el usuario introduzca un 5.

      Hay que tener en cuenta como el compilador ejecuta la estructura while. Te lo voy a repetir y tenlo en cuenta a la hora de probarlo.
      1. Evalúa la condición
      2.- Si es falsa, se sale del while
      3.- Si es verdadera realiza las sentencias (en esas sentencias se cambiarán los valores de las variables, ojo con esto!!)
      4.- Se vuelve al punto 1.

      Míralo de nuevo y dime que hace el programa.
      Saludos.

  3. raul galvez cachairo dijo:

    he hecho pruevas y creo que el while se ejecuta seis veces ,por que evalua el numero que introducimos, en este caso el 5 y al ser mas grande k “i” que tiene valor cero asignado le suma una y evalua la eperacion otra vez y asi asta que el 5 que hemaos introducido sea
    mayor k “i”
    no creo k lo ke este bien lo k digo por que estoi muy liado, esta es la conclusion que yo he sacado
    otra cosilla te queria dar las gracias por el tiempo que dedicas a la gente desinteresadamente ya casi no kedan personas asi GRACIAS

  4. raul galvez cachairo dijo:

    si avanzamos es gracias a ti
    un saludo.

  5. Samu dijo:

    que significaba la operacion “++”?

    • Javi Pizarro dijo:

      El operador ++ aplicado a una variable entera, un int, lo que hace es aumentar el valor de esa varia ble en 1.
      int i=0;
      i=i+1;// aumenta el valor de esa variable en 1
      i++; // Hace lo mismo que la línea anterior, aumenta la variable en 1.

      Saludos

  6. Samu dijo:

    lo que hace el programa es mostrarte por pantalla todos los numeros que hay hasta el q tu has intoducido
    por ejemplo
    introduzco 5
    1
    2
    3
    4
    5
    es eso?

  7. Daniel hdez dijo:

    Una pregunta el segundo programa , me da como respuesta 6, el primero si me dio 0 1 2 3 4 5, pero el segundo es mi duda, no se supone que es la sumatoria de los numeros desde el cero hasta un número introducido en este caso 5… pero me avienta 6
    ayuda…

    • Javi Pizarro dijo:

      Buenas Daniel,
      Mira bien el código que has puesto, la mente nos puede jugar malas pasadas cuando copiamos. Si no es ese el problema mándame el código y lo reviso sin problema y comentamos lo que no comprendas.
      También intenta interpretar los códigos, debes de controlar lo que programas y entenderlo, hacer una traza de un programa etc… De todas maneras estaros atentos a los próximos artículos pues os mostrare una técnica para saber, dado un código fuente en c++, que hace un programa.
      Un saludo

      • Daniel hdez dijo:

        ya que el codigo.. mira aqui esta, pero me sigue mandando 6 no entiendo por que??

        #include
        #include

        using namespace std;
        //PROGRAMA PRINCIPAL
        int main ()
        {
        int numero; //variable que guarda el numero que introducira el usuario
        int i=0; //variable que va a controlar el bucle. Mira bien la condicion del while
        int solucion=0; //solucion al final inicializada en 0
        cout<> numero;
        while (i<=numero){
        solucion=solucion+1;
        i++;
        }
        cout< “<<solucion;
        getch ();
        }

      • Daniel hdez dijo:

        ya encontre mi error… gracias y disculpa las molestias..jejej

  8. Pingback: AprendeCPP.com » Blog Archive » Aprende C++: Estructuras repetitivas (BUCLES)

  9. christopher dijo:

    ola que tal mira por ejm yo quiero que mi pidan un numero y ese numero este dentro de un intervalo que le asigno yo y si no esta dentro de ese intervalo que vuelva a pedir y así las veces que se necesario hasta que lo introduzca un valor que se encuentre dentro del intervalo que le asigne.

    seria de mucha ayuda si me ayudas en esto

    gracias de antemano

  10. christopher dijo:

    ola me sirvio mucho el video pero tengo un problema en el cual no tengo ni idea de como empezar a resolverlo… es el siguiente:
    elaborar un algoritmo que permite ingresar los siguientes datos de varias personas; DNI, Edad;Estado Civil.Se debe imprimir el porcentaje de solteros, el porcentaje de casados y quienes tienen el mayor promedio de edad(los solteros o casados). El ingreso de datos se realizara hasta que para el DNI se ingrese el numero cero.

    seria de mucha ayuda que me orientes en este problema… gracias

    • Javi Pizarro dijo:

      Hola christopher,
      Necesito que me especifiques más el problema. También necesito que me digas si es un trabajo para la universidad
      o es algo particular puesto que necesito saber que habeis dado y de que medios dispongo. En cuanto sepa esto te podré orientar de cómo hacerlo.
      me puedes enviar un correo a javipiz@aprendecpp.com

  11. harold dijo:

    hola me podri explicar la funcion del contador gracias

  12. Pingback: ingenieriainformatica.info - c++

  13. Migu dijo:

    Hola Javi, primeramente saludarte y agradecerte la tan grande labor de enseñarnos el hermoso lenguaje C++🙂

    Quiero decirte algo, en el segundo código, si lo que quieres sumar es cada uno de los numeros de 0 al 5(si es que el usuario introduce 5), la suma será: 0+1+2+3+4+5=15

    Entonces la condicion sería:

    while(i<=num) {
    suma=suma+i;
    i++; }

    Por que la condición que exones tú es:

    while(i<=num) {
    suma=suma+1;
    i++; }

    Que significaría, que cada vez que se cumple la condición la suma irá de 1 en 1, es decir:

    0<=5 Sí
    Entonces: suma=suma+1= 1

    1<=5 Sí
    Entonces: suma=suma+1; =1+1=2

    2<=5 Sí
    Entonces: suma=suma+1 = 2+1= 3

    3<=5 Sí
    Entonces: suma=suma+1 = 3+1 = 4

    4<=5 Sí
    Entonces: suma=suma+1 = 4+1 = 5

    5<=5 Sí
    Entonces: suma=suma+1 = 5+1 = 6

    6<=5 No
    Entonces: Fin del bucle.

    Resultado de la suma: 6

    A cuál te referías?

    Gracias y que Dios te bengia.

  14. David dijo:

    Por favor es muy importante que me diga, por que la solucion me da 15
    si yo introduzco el codigo como me indica en la imagen.
    Muchas gracias.

  15. David dijo:

    Perdon, pero por mas que intento buscar el fallo no lo encuentro, e introduciendo este codigo, cuando meto 5 me devuelve “La solucion es –>15”.

    #include
    #include
    using namespace std;
    int main(){
    int numero;
    int i=0;
    int solucion=0;
    cout<>numero;
    while (i<=numero){
    solucion=solucion+i;
    i++;
    }
    cout<“<<solucion;
    getch();
    }
    Muchas gracias y un saludo.

  16. David dijo:

    Ya lo he solucionado yo solo, de todas formas muchas gracias.

  17. Jazmin dijo:

    tengo este problema como puedo solucionarlo usando las estructuras selectivas y las repetitivas…?

  18. Jazmin dijo:

    Problema 1.-Una compañía cuenta con sucursales en las siguientes zonas de la República Mexicana:
    Zona centro: 2 sucursales
    Zona sur: 3 sucursales
    Se requiere un programa que capture tres meses de ingresos de todas las sucursales. El programa deberá imprimir el total de ventas por cada una de las zonas, así como las ventas totales en toda la República durante este periodo.

  19. anthony dijo:

    disculpe que lo moleste …. ayudeme con este problema nose como hacerlo :
    Calcular la suma siguiente : 100+98+96+94+…..0+ en este orden
    como lo hago porfavor ayudeme en C++

  20. hola Javi necesito que me ayudes ha poder mostrar asteriscos en pantallas por favor no puedo hacerlo

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s