PROGRAMACIÓN EN C++ – CLASE 08

(Creado por el analista de sistemas y docente Leonel Iván Saafigueroa)


Estructuras Repetitivas:

Mientras (while)

Los bucles o ciclos son procesos que se repiten un cierto número de veces hasta que se cumple una determinada condición.


UN CIRCULO VICIOSO

La instrucción while, ejecuta una secuencia de instrucciones mientras una condición sea verdadera.

¿El CÓDIGO ES CORRECTO?

Volvamos al ejemplo del código secreto: Podemos hacer que nos vuelva a pedir que ingresemos el código una y otra vez hasta que ingresemos el correcto.


Veamos el código:

Mientras la variable code sea distinta de secreto, nos volverá a pedir que ingresemos el código otra vez.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// ESTRUCTURAS REPETITIVAS WHILE (MIENTRAS).
#include <iostream>
using namespace std;
int secreto = 123456;
int code;
int main()
{
cout << "Ingrese código: ";
cin >> code;
while(secreto != code)
{
cout << "Código Incorrecto. Vuelva a intentar: ";
cin >> code;
}
cout << "Acceso Permitido.";
return 0;
}
// ESTRUCTURAS REPETITIVAS WHILE (MIENTRAS). #include <iostream> using namespace std; int secreto = 123456; int code; int main() { cout << "Ingrese código: "; cin >> code; while(secreto != code) { cout << "Código Incorrecto. Vuelva a intentar: "; cin >> code; } cout << "Acceso Permitido."; return 0; }
// ESTRUCTURAS REPETITIVAS WHILE (MIENTRAS).
#include <iostream>

using namespace std;

int secreto = 123456;
int code;

int main()
{
    cout << "Ingrese código: ";
    cin >> code;
    while(secreto != code)
    {
        cout << "Código Incorrecto. Vuelva a intentar: ";
        cin >> code;
        }
        cout << "Acceso Permitido.";
    return 0;
}

Vamos a analizar línea por línea este código en C++:

Línea 1: // ESTRUCTURAS REPETITIVAS WHILE (MIENTRAS).
Este comentario indica que el programa va a utilizar estructuras repetitivas (while) para realizar un bucle.

Línea 2: #include <iostream>
Esta línea incluye la biblioteca estándar de entrada/salida (iostream), lo que permite al programa interactuar con el usuario y mostrar mensajes en pantalla.

Línea 4: using namespace std;
Este statement utiliza el nombre de espacio (namespace) para importar todas las clases, funciones y variables definidas en el espacio std (estándar) del lenguaje C++. Esto permite acceder a funciones como cout y cin sin tener que especificar el espacio std.

Línea 6: int secreto = 123456;
Se declara una variable entera (int) llamada secreto con un valor inicial de 123456.

Línea 7: int code;
Se declara otra variable entera (int) llamada code, pero sin valor inicial.

Línea 9: int main() { ... }
La función principal del programa, que se llama main. La función main es la primera función que se ejecuta cuando el programa inicia. Devuelve un entero que indica el estado de finalización del programa (0 en este caso).

Línea 11: cout << "Ingrese código: ";
Se utiliza la función cout (de entrada/salida) para imprimir el mensaje “Ingrese código:” en pantalla.

Línea 12: cin >> code;
Se utiliza la función cin (de entrada/salida) para leer un entero del usuario y asignarlo a la variable code.

Línea 13-17: while(secreto != code) { ... }
Se inicia un bucle while que se repite mientras la condición secreto != code sea verdadera. En otras palabras, el bucle se repite hasta que el código ingresado por el usuario coincida con el valor de la variable secreto.

Línea 15: cout << "Código Incorrecto. Vuelva a intentar: ";
Si el código ingresado fue incorrecto se ejecuta este bloque que imprime el mensaje “Código Incorrecto. Vuelva a intentar:” en pantalla.

Línea 16: cin >> code;
Se lee un nuevo entero del usuario y se asigna a la variable code.

Línea 18 (fin bucle): } cout << "Acceso Permitido.";
El bucle while termina aquí. Se imprime el mensaje “Acceso Permitido.” en pantalla cuando el bucle finaliza, lo que indica que se ingreso el código correcto. La variable code ya no es distinta a la variable secreto.

Línea 19: return 0;
La función main devuelve un entero cero (0), lo que indica que el programa se ejecutó correctamente y sin errores.


Otro ejemplo para darle un buen uso a la estructura while es crear un contador.


Veamos el código:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// ESTRUCTURAS REPETITIVAS - CONTADOR CON WHILE (MIENTRAS).
#include <iostream>
using namespace std;
int A = 1;
int main()
{
while(A<11)
{
cout << A << endl;
A++; // Esto es como hacer A = A + 1.
}
cout << "Terminé de contar.";
return 0;
}
// ESTRUCTURAS REPETITIVAS - CONTADOR CON WHILE (MIENTRAS). #include <iostream> using namespace std; int A = 1; int main() { while(A<11) { cout << A << endl; A++; // Esto es como hacer A = A + 1. } cout << "Terminé de contar."; return 0; }
// ESTRUCTURAS REPETITIVAS - CONTADOR CON WHILE (MIENTRAS).
#include <iostream>

using namespace std;

int A = 1;

int main()
{
    while(A<11)
    {
        cout << A << endl;
        A++; // Esto es como hacer A = A + 1.
        }
        cout << "Terminé de contar.";
    return 0;
}

Vamos a analizar línea por línea este código en C++:

Línea 1: // ESTRUCTURAS REPETITIVAS - CONTADOR CON WHILE (MIENTRAS).
Este comentario indica que el programa va a utilizar estructuras repetitivas (while) para realizar un bucle y contar desde el valor 1 hasta 10.

Línea 2: #include <iostream>
Esta línea incluye la biblioteca estándar de entrada/salida (iostream), lo que permite al programa interactuar con el usuario y mostrar mensajes en pantalla.

Línea 4: using namespace std;
Este statement utiliza el nombre de espacio (namespace) para importar todas las clases, funciones y variables definidas en el espacio std (estándar) del lenguaje C++. Esto permite acceder a funciones como cout y cin sin tener que especificar el espacio std.

Línea 6: int A = 1;
Se declara una variable entera (int) llamada A con un valor inicial de 1.

Línea 8: int main() { ... }
La función principal del programa, que se llama main. La función main es la primera función que se ejecuta cuando el programa inicia. Devuelve un entero que indica el estado de finalización del programa (0 en este caso).

Línea 10: while(A<11) { ... }
Se inicia un bucle while que se repite mientras la condición A < 11 sea verdadera.

Línea 12: cout << A << endl;
Se imprime el valor actual de la variable A en pantalla, seguido de un salto de línea (endl).

Línea 13: A++; // Esto es como hacer A = A + 1.
La variable A aumenta en 1 unidad utilizando el operador de incremento (++). Esto es equivalente a asignar el valor actual de A a sí mismo más 1.

Línea 15 (fin bucle): } cout << "Terminé de contar.";\
El bucle while termina aquí. Se imprime el mensaje “Terminé de contar.” en pantalla, lo que indica que se ha completado la cuenta.

Línea 16: return 0;
La función main devuelve un entero cero (0), lo que indica que el programa se ejecutó correctamente y sin errores.

En resumen, el programa utiliza un bucle while para contar desde el valor 1 hasta 10, imprimiendo cada valor en pantalla. Luego, imprime un mensaje final indicando que ha terminado la cuenta.


TAREA PARA EL HOGAR

  1. Crear un programa que pida una clave alfanumérica para poder ingresar, y al hacerlo ejecute un segundo programa que muestre una cuenta regresiva del número 10 al 1.
  2. Crear un programa que nos pregunte hasta cuanto queremos que cuente, y luego muestre en pantalla el resultado.