Você está na página 1de 28

Centro de Sistemas

Programacin I
Lgica y Algoritmos
Estructuras Repetitivas

Ciclos

Al grupo de instrucciones que se repiten en un


programa se les llama bucle o ciclo.
Cada repeticin de las instrucciones del bucle se le
denomina una iteracin.
En repeticiones controladas por contador, se usa una
variable de control que permite contar el nmero de
iteraciones la cual aumenta en un nmero fijo. Cuando
la variable indica que se han ejecutado todas las
iteraciones, se termina el bucle. El programa contina
en la instruccin siguiente a la del fin de la estructura
de repeticin.

Instrucciones Repetitivas

En la elaboracin de programas es importante que


existan instrucciones que permiten que el computador
ejecute un grupo de instrucciones varias veces sin
tener que volverlas a escribir, estas son: la instruccin
mientras que y la instruccin para.

Bucles

Un bucle o ciclo es un trozo de algoritmo, cuyas


instrucciones se repiten un nmero determinado de
veces mientras se cumple una determinada condicin.
Una iteracin es la ejecucin de todas las
instrucciones del ciclo.

Bucles

Un bucle consta de tres partes fundamentales:


Decisin (simple o compuesta)
Cuerpo
Salida

Los bucles pueden ser sencillos o anidados (ciclos


dentro de otros ciclos).

Bucles

Contador

Los procesos repetitivos son la base del uso del


computador. Una forma de controlar un bucle es
mediante un contador.
Un contador es una variable cuyo valor se incrementa
o decrementa en una cantidad constante por cada
iteracin.

Contador

El formato general es:


Contador Contador + Cantidad Constante
Contador Contador * Cantidad Constante

Ejemplo:
ZZ+2

donde Z se incrementa en 2 en cada iteracin.

Acumulador

Es una variable cuya misin es almacenar por cada


iteracin, cantidades variables resultantes de sumas o
productos sucesivos.
El formato general es:
Acumulador Acumulador + Cantidad Variable,
Acumulador Acumulador * Cantidad Variable

Ejemplo:
S S+N,

donde N es una variable

Centinela

Las repeticiones controladas por centinela, se utilizan


cuando el nmero de iteraciones no es conocido o el bucle
incluye enunciados para obtener datos cada vez que se
ejecute.
El valor del centinela es proporcionado al programa para
terminar el bucle, una vez suministrado todos los datos
que requiere el programa. A este tipo de repeticin por
centinela, se le denomina repeticin indefinida, por que no
se sabe con anticipacin cuntas veces se necesitar
ejecutar el bucle. Si no se ingresa el centinela el programa
se ejecutara infinitas veces y no podra terminar.

Instruccin Mientras que

La instruccin mientras, permite ejecutar una


instruccin o un grupo de instrucciones un nmero
determinado de veces, mientras se cumple una
condicin. Esta instruccin es utilizada, cuando no se
sabe el nmero de veces que va a ocurrir el ciclo.
Se representa en pseudocdigo as:
mientras (condicin) hacer
instrucciones
fin_mientras

Sentencia FOR

Los operadores incrementales o decrementales son:


a++

cuando se desea incrementar en uno el contador

a--

cuando se desea restar en uno el contador

a+=2 cuando se desea incrementar en dos el contador

Los punto y coma son indispensables para separar la


inicializacin del contador, con la expresin lgica y el
incremento o decremento.

Sintaxis Sentencia For

Cuando el bucle contiene solo una sentencia, no son


indispensables las llaves { } en la sintaxis, as:
for (condicin)
sentencia;

Ejemplo:
int K;
for (k=1; k<=20; k+=2)
cout<< k;

Imprime los nmeros 1, 3,, 17 y 19. La variable k es


el contador e inicia en 1 y finaliza al llegar a 20. La
variable se puede declarar al inicializarla as:
for (int k=1; k <= 20; k+=2)

Ejemplo 1

Ejemplo: Sumar 10 nmeros enteros introducidos por


teclado
#include<iostream>
using namespace std;
int main()
{
int SU=0,NU;
cout<<"Ingrese 10 numeros "<<endl;
for(int i=1; i<=10; i++)
{
cin>>NU;
SU=SU+NU;
}
cout<<SU<<endl;
}

Sentencia while (mientras que)

La estructura de control while, genera bucles


controlados por centinela en los cuales se conoce la
condicin de terminacin del bucle, pero no se conoce
de antemano cuantas son las iteraciones del bucle.
Aunque con la estructura while podramos hacer
bucles for, por facilidad en el control del contador, es
ms utilizado el for para implementar los bucles
controlados por contador.

Sentencia while (mientras que)

Sintaxis de la instruccin:
while (condicin)
{
sentencia-1;
sentencia-2;
sentencia-3;
:
:
sentencia-n;
}

Sentencia while (mientras que)

En este caso las sentencias se repiten, mientras la


expresin lgica o condicin del bucle sea verdadera.
La condicin del bucle se evala antes de que se
ejecuten las sentencias. Si la condicin es falsa, no se
ingresar al bucle.
No se requiere el punto y coma (;) en la lnea del
while, de hacerse no ejecutar el bucle.
Cuando se debe ejecutar solo una sentencia varias
veces, no son indispensables las llaves { }.

Ejemplo 2

Ejemplo:
int y = z = 0;
while(y != 10)
{
cin >> y
z = z + y;
}
cout<<z<<endl;

El ciclo while, suma los nmeros que se ingresan por teclado


en la variable z, hasta que se digite el valor del centinela que
en este caso es 10 y que permite la terminacin del ciclo.

Ejemplo 3
Ejemplo: Contar los nmeros positivos que se ingresan por teclado hasta
que se ingrese un nmero negativo.
Variables:
X (centinela)
P (contador)

#include <iostream>
using namespace std;
int main()
{
int X=0,P=-1;
cout<<"Ingrese positivos, para terminar
ingrese un negativo"<<endl;
while(X>=0)
{
P++;
cin>>X;
}
cout<<"Ingreso "<<P<<" numeros"<<endl;
system("pause");
}

Sentencia do while
(haga mientras que)

Esta sentencia funciona de modo anlogo a la instruccin while,


con la diferencia de que la condicin se evala despus de
ejecutar las primeras sentencias, esto significa que el bucle se
ejecuta por lo menos una vez. Sintaxis de la instruccin:
do
{
sentencia-1;
sentencia-2;
sentencia-3;
:
:
sentencia-n;
}
while (condicin)

Sintaxis Sentencia do While


Primero se ejecutan las sentencias y a continuacin se
evala el ciclo. Si la condicin es verdadera, se repite
la ejecucin de las sentencias. El proceso contina
hasta que la condicin sea falsa. Se debe escribir un
punto y coma (;), luego de la condicin del while.
Ejemplo: imprimir los nmeros del 1 al 9. Usar una
variable contador x:
int x=1;
do
{
cout<<x<<endl;
x++;
} while(x<10);

Ejemplo 4

Hacer un programa que imprima la tabla de multiplicar de un


nmero dado por teclado
#include<iostream>
using namespace std;
int main()
{
int y, n;
cout<<"Cual tabla desea imprimir? "<<endl;
cin>>n;
do
{
cout<<y<<" * "<<n<<" = "<<y*n<<endl;
y++;
}
while(y<=10);
}

Bucles Anidados

Ejemplo 5

Ejemplo: Escribir las tablas de multiplicar de la 1 a la 5,


con 10 multiplicandos cada una.
#include<iostream>
using namespace std;
int main()
{
for(int i=1 ;i<=5 ;i++)
{
cout<<"\n tabla del "<<i<<endl;
for(int j=1 ;j<=10 ;j++)
cout<<i<<" * "<<j<< = "<<i*j<<endl;
}
system("pause");
}

Instrucciones Break - Continue

Algunas veces es necesario interrumpir un bucle o no


tomar en cuenta una iteracin, la instruccin break,
obliga a una terminacin inmediata de la instruccin
switch, while, for o do-while y la instruccin continue,
transfiere el control al inicio del bucle.
La instruccin break, se utiliza por lo general, cuando
se detecta que va a suceder algo fuera de lo normal en
un programa, como por ejemplo cuando se introduce
un dato que puede ocasionar una divisin por cero.

Sintaxis Instruccin Break


int main()

Se desea resolver la
ecuacin:

{
int x;
float y;
for (int contador=1;contador<=10;contador++)
{
cout<<"Introduzca un numero"<<endl;

para 10 nmeros
introducidos por
teclado.

cin>>x;
if (x==7)
{
cout<<"No es posible dividir por cero, se interrumpe el bucle
"<<endl;

break;
}
y = (3 * x + 2) / (x 7);
cout<<"Solucion de la ecuacion"<<y<<endl;
}
system("pause");
}

Sintaxis Instruccin Continue

La instruccin continue, se aplica en los ciclos while,


do-while o for. Cuando continue aparece en una
instruccin while, significa que la ejecucin se
transferir automticamente a la parte superior del
ciclo y empezar a evaluar nuevamente la condicin.
Es til la instruccin continue para no contabilizar
datos invlidos. Por ejemplo las notas erradas de un
grupo de estudiantes cuando se desea el promedio y se
ingresan datos por fuera del rango 1 a 5

Ejemplo 6
{
const int TOPE=100;
float cuenta=0, calificacion, suma=0;
cout<<"Inserte las calificaciones, para terminar digite 100 "<<endl;
while(calificacion!=TOPE)
{
cin>>calificacion;
if(calificacion < 0 || calificacion > 5)
continue;
suma=suma+calificacion;
cuenta++;
}
cout<<"El promedio de calificaciones es "<<suma/cuenta<<endl;
system("pause");
}

Você também pode gostar