Está en la página 1de 9

Programacin Estructurada

Prctica No. 3 Sentencias de iteracin

Objetivo
El alumno generar programas que incluyan estructuras de iteracin simples y anidadas en
lenguaje C++.
Introduccin terica
Una de las caractersticas de las computadoras que aumentan considerablemente su
potencia es su capacidad para ejecutar una tarea muchas veces con gran velocidad,
precisin y fiabilidad. Las tareas repetitivas es algo que los humanos encontramos difciles
y tediosas de realizar. En esta prctica se estudian las estructuras de control iterativas o
repetitivas que realizan la iteracin de acciones. C y C++ soporta tres tipos de estructuras
de control: los bucles while, for y do--while. Estas estructuras de control o sentencias
repetitivas controlan el nmero de veces que una sentencia o listas de sentencias se
ejecutan.
La sentencia while
Un bucle (ciclo) es cualquier construccin de programa que repite una sentencia o
secuencia de sentencias un nmero de veces. La sentencia (o grupo de sentencias) que se
repiten en un bloque se denomina cuerpo del bucle y cada repeticin del cuerpo del bucle
se llama iteracin del bucle. Las dos principales cuestiones de diseo en la construccin del
bucle son: Cul es el cuerpo del bucle? Cuntas veces se iterar el cuerpo del bucle? Un
bucle while tienen una condicin del bucle (una expresin lgica) que controla la secuencia
de repeticin. La posicin de esta condicin del bucle es delante del cuerpo del bucle y
significa que un bucle while es un bucle pretest de modo que cuando se ejecuta el mismo,
se evala la condicin antes de que se ejecute el cuerpo del bucle.

Fig. 1 Diagrama de flujo de la sentencia while


Sintaxis
while(condicin)
{
accin 1;
accin 2;
.
accin n;
}
El comportamiento o el funcionamiento de una sentencia while es:
1. Se evala la condicin.
2. Si condicin es verdadera:
a) La accin especificada, declarada en el cuerpo del bucle, se ejecuta.
b) Vuelve el control al paso 1.
3. En caso contrario: el control se transfiere a la sentencia siguiente.
Las sentencias del cuerpo del bucle se repiten while que la expresin lgica (condicin) sea
verdadera. Cuando se evala la expresin lgica y resulta falsa, se termina y se sale del bucle y se
ejecuta la siguiente sentencia del programa despus de la sentencia while.
/*Ejemplo 1*/
#include<iostream>
#include<cstdlib>
using namespace std;
main()
{
int i=1;
while(i<=10)
{
cout<<"Hola mundo cruel y despiadado.!!!\n";
i++; // tambin as: i=i+1;
}
system("Pause");
return 0;
}

Salida en pantalla:

/*Ejemplo 2*/
#include <iostream>
#include <cstdlib>
using namespace std;
main( )
{
int i,n;
cout<<"Cuantas veces deseas imprimir: ";
cin>>n;
i = 1;
while(i<=n)
{
cout<<i<<".-"<<"Bienvenido a la Programacion en C++!!!";
cout<<"\n";
i++;
}
system("Pause");
return 0;
}
Salida en pantalla:

La sentencia for
Adems del bucle while, C y C++ proporciona otros dos tipos de bucle: for y do/while. El
bucle for es el ms adecuado para implementar bucles controlados por contador que son
bucles en los que un grupo de sentencias se ejecutan una vez por cada valor de un rango
especificado, de acuerdo al algoritmo.

La sentencia for es un mtodo para ejecutar un bloque de sentencias un nmero fijo de


veces. El bucle for se diferencia del bucle while en que las operaciones de control de bucle
se sitan en un solo sitio: la cabecera de la sentencia.
for (inicializacin; condicin; incremento)
accin;

Fig. 2 Diagrama de flujo de la sentencia while


El bucle for contiene las siguientes partes:
1. Parte de inicializacin: inicializa las variables de control del bucle.
2. Condicin: Contiene una expresin lgica que hace que el bucle realice las iteraciones de las
sentencias, en tanto que la expresin se mantenga verdadera.
3. Parte de incremento: que incrementa o decrementa la variable de control del bucle.
4. Acciones: Acciones o sentencias que se ejecutarn por cada iteracin del bucle.
/*Ejemplo 3*/
#include <iostream>
#include <cstdlib>
using namespace std;
main()
{
int i;
for(i=1;i<=10;i++)
cout<<"Hola mundo ingrato!!!\n";
system("Pause");
return 0;
}
Salida en pantalla:

/*Ejemplo 4*/
#include<iostream>
#include<cstdlib>
using namespace std;
main()
{
int i,n;
cout<<"Cuantas veces deseas imprimir: ";
cin>>n;
for(i=1;i<=n;i++)
cout<<i<<".-"<<"Hola mundo cruel!!!\n";
system("Pause");
return 0;
}
Salida en pantalla:

El bucle do--while
La sentencia do--while se utiliza para especificar un bucle condicional que se ejecuta al menos una
vez aunque la condicin que evala sea falsa. Esta situacin suele dar en algunas circunstancias en
las que se ha de tener la seguridad de que una determinada accin se ejecutar una o varias veces
por lo menos una vez.
Sintaxis
do
{
accin;
} while (condicin);
La construccin do comienza ejecutando accin. Se evala a continuacin condicin. Si condicin
es verdadera, entonces se
repite la ejecucin de accin. Este proceso contina hasta que condicin sea falsa. La semntica del
bucle do se representa grficamente en la siguiente figura 3:

Fig. 3 Diagrama de flujo de la sentencia do--while


/*Ejemplo 5*/
#include <iostream>
#include <cstdlib>
using namespace std;
main()
{
int i;
i = 1;
do
{
cout<<"Hola mundo desquiciado!!!\n";
i++;
}while(i<=10);
system("Pause");
return 0;
}
Salida en pantalla:

/*Ejemplo 6*/
#include <iostream>
#include <cstdlib>
using namespace std;
main()
{
int i,n;
cout<<"Cuantas veces deseas imprimir: ";
cin>>n;
i = 1;

do
{
cout<<i<<".-"<<"Hola mundo desquiciado!!!\n";
i++;
}while(i <= n);
system("Pause");
return 0;
}
Salida en pantalla:

Desarrollo Prctico
1. Realizar un programa que determine si un nmero introducido por pantalla es primo o no, se
sugiere utilizar el ciclo while y un if.
2. Hacer un programa en C++ que muestre en pantalla la tabla de multiplicar de un nmero
introducido por el usuario. El nmero a ingresar solo es permitido entre 1 y 9, si no, se muestra un
mensaje de error y termina el programa. A continuacin se muestra parte del programa, es
necesario acompletarlo.
//Programa que muestra tabla de multiplicar.
#include<iostream>
#include<cstdlib>
#include<cmath>
using namespace std;
main( ){
/*Numero para ver su tabla de multiplicar (TM)*/

/*Contador usado para generar TM del N anterior. */

/* Valor de multiplicar contador por N */

cout<<"Ver tabla de multiplicar\n\n";
cout<<"Ingrese un numero entre 1 y 9:\t";
cin>>N;
if((N>=1)&&(N<=9)){
cout<<"Tabla de multiplicar del "<<N;
/* La estructura for controla la cantidad de veces que se realizar la operacin */
/* multiplicacin.*/

{

/*Operacin o proceso de multiplicacin.*/
cout<<"\n"<<N<<" por "<<i<<" es="<<mul; /*Mostrando la salida.*/

}/* Fin for i.*/


}else{
cout<<"\n\nError, numero incorrecto.!!!";
}/*fin if */
cout<<"\n";
system("Pause");
return 0;
}
3. Escribe un programa que calcule la serie de ULAM para cualquier entero positivo.
/*Prctica */
#include <iostream>
#include <cstdlib>
using namespace std;
main()
{
int n,i;
cout<<"Teclea un numero: ";
cin>>n;
cout<<"Serie de ULAM:\n";
do
{
cout<<n<<" ";
if(n%2==0)
n=n/2;
else
n=(n*3)+1;
}while(n>1);
cout<<"\n";
system("Pause");
return 0;
}
Salida en pantalla:

Cuestionario
Llene cada uno delos siguientes espacios en blanco.
1. La estructura de repeticin ( ) especifica que un enunciado o grupo de enunciados debe ser
ejecutado de forma repetidamente, en tanto cierta condicin se mantenga verdadera.
2. La repeticin de un conjunto de instrucciones un nmero especfico de veces, se conoce como
una repeticin ( ).

3. Cuando no se conoce por anticipado cuantas veces debe repetirse un conjunto de enunciados, se
puede utilizar un valor ( ) para terminar la repeticin.
4. La repeticin controlada por contador tambin se conoce como repeticin ( ), por que se sabe por
anticipado cuntas veces se ejecutar el ciclo.
5. La repeticin controlada por centinela tambin se conoce como ( ), por que no se sabe con
anticipacin cuntas veces se ejecutar el ciclo.
6. Investigar qu es la serie de ULAM.
Conclusiones Individuales.