Tipos de Estructuras Iterativas

1- Estructura For

2- Estructura While

3- Estructura Do....While

 

1- La Estructura de Repetición for

Esta estructura de repetición es más utilizada cuando sabemos el número de repeticiones que deseamos ejecutar.
La notación de esta estructura es sencilla y se detalla a continuación

for ( condición de inicio ; expresión ; acción después de cada iteración )
       {
      
sentencia (s);
       }

La condición de inicio quiere decir que podemos inicializar una variable que vayamos a utilizar dentro el cuerpo de la estructura for.
La expresión nos indica que se seguirá iterando(repitiendo) mientras la condición sea verdadera.
La acción después de cada iteración viene a ser lo que queremos hacer variar después de cada iteración, esta variación podría ser un incremento en la variable definida en la condición de inicio.

Al igual que las demás estructuras de control el cuerpo de la estructura for lleva llaves si este contiene más de una sentencia o instrucción.

Ejemplo 6.1

Un ejemplo sencillo puede ser que quiero cantar 10 veces la canción del elefante, el código sería algo así:

#include <iostream>
using namespace std;
void main()
{
int i;
for( i = 1 ; i<=10 ; i++)
{
cout<<i<<" elefante(s) se balanceaba(n) sobre la tela de una araña\n”; 
cout<<”como veía(n) que resistía(n) fueron a llamar a otro elefante\n ";
}

}


El código anterior emitirá por pantalla 10 veces el mensaje de 1 elefante ....... hasta 10 elefantes......
El ejemplo anterior es muy sencillo pero nos muestra el funcionamiento de la estructura for.

* Practica los problemandos 37 al 49

 

2- Estructura de repetición do while

Esta estructura de control es muy parecida a la estructura while lo que la hace diferente es que siempre ejecuta por lo menos una ves el cuerpo de la estructura, por eso el do, y luego valida una expresión y en función a este resultado vuelve a iterar o no.
La notación de esta estructura es como sigue:

do
{
sentencias o instrucciones
}
while ( expresión );

Las estructura do/while lleva punto y coma a diferencia de la estructura while.

Ejemplo 6.2

Un ejemplo para este caso es el siguiente:
Se desea ingresar por lo menos un nombre de un estudiante por teclado hasta que el usuario presione '0' para salir o cualquier otro número para continuar.

#include <iostream>
using namespace std;

void main()
{
char nom[20]; //Cadena que puede contener 20 caracteres
int rpta=0;
do
{
cout<<"Ingrese el nombre de un estudiante \n";
cin>>nom;
cout<<"Desea continuar ingresando nombres: para salir '0'";
cin>>rpta;
}
while(rpta != 0); }

 

* Practica los problemandos 50 y 51

 

3- Estructura de repetición while

Dicha estructura repite una serie de acciones mientras se cumpla una condición.

while ( expresión )
{
sentencia (s);
}

La estructura while trabaja de la siguiente manera:

1. Evalúa la expresión o condición
2. Si el resultado de esta evaluación es verdadero la sentencia o sentencias se ejecutan, es decir, se ejecuta el cuerpo de la estructura.

Luego se vuelve a evaluar la expresión
3. Si el resultado de esta evaluación es falso no se ejecuta la sentencia o sentencias y sale del ciclo while.

Por ejemplo tengo que apagar 10 velas cuando cumpla 10 años, es decir, tengo que soplar 10 veces, entonces el problema escrito en Pseudocódigo sería:

Inicio
edad <-  0
mientras edad != 10 años
        soplar vela
        edad = edad + 1
Fin Mientras
Fin

Ejemplo 6.3

Otro ejemplo que nos demostrará iteraciones con límite conocido es: 
Tengo que mostrar la tabla de multiplicar del 9 por pantalla

#include <iostream>
using namespace std;
void main()
{
   int nro=1;
   while(nro <= 10 )
   {
      cout<<"9 * "<<nro<<" = "<<nro*9;
      nro++;
   }
}

Este programa nos mostrará lo siguiente:

9 * 1 = 9
9 * 2 = 18
9 * 3 = 27
9 * 4 = 36
9 * 5 = 45
9 * 6 = 54
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81
9 * 10 = 90

Se dice que tiene un límite conocido porque nunca irá más allá del 10, realizará exactamente 10 iteraciones.

Ejemplo 6.4

Un ejemplo con límite desconocido sería invertir un número entero ingresado por teclado.

#include <iostream>
using namespace std;
void main()
{
int nro=0, aux=0, rpta=0;
cout<<"Ingrese un numero entero";
cin>>nro;
while(nro > 0)
       { aux = nro % 10;
         nro = nro / 10;
         rpta = (rpta * 10) + aux;
       }
cout<<"El numero invertido es: "<<rpta;
}

Este problema tiene un límite desconocido porque no puedo decir con exactitud el número de iteraciones que hará, eso depende del número de cifras que tenga el número ingresado por teclado. Si el número ingresado tiene 3 cifras se harán 3 iteraciones y si tiene 6 se harán 6 iteraciones. En otras palabras el límite depende de la expresión que se evalúa.

* Practica los problemandos 52 al 55