Este documento describe diferentes estructuras de control repetitivas como bucles, ciclos y sentencias. Explica el uso de contadores, acumuladores y centinelas para controlar bucles. También cubre las sentencias for, while, do-while y las instrucciones break y continue, incluyendo ejemplos de su implementación.
Tutorial de JFLAP en español que explica paso a paso todas las funcionalidades de la herramienta y al final contiene varias prácticas que van de un nivel de dificultad bajo hacia uno más alto.
Este documento contiene una explicación del funcionamiento de los ciclos para, mientras y repetir hasta que, Así como también algunos ejercicios para desarrollar en este IDE.
Tutorial de JFLAP en español que explica paso a paso todas las funcionalidades de la herramienta y al final contiene varias prácticas que van de un nivel de dificultad bajo hacia uno más alto.
Este documento contiene una explicación del funcionamiento de los ciclos para, mientras y repetir hasta que, Así como también algunos ejercicios para desarrollar en este IDE.
3. Ciclos
Al grupo de instrucciones que se repiten en un programa se
les llama bucle o ciclo.
Cada repetición de las instrucciones del bucle se le
denomina una iteración.
En repeticiones controladas por contador, se usa una
variable de control que permite contar el número de
iteraciones la cual aumenta en un número fijo. Cuando la
variable indica que se han ejecutado todas las iteraciones, se
termina el bucle. El programa continúa en la instrucción
siguiente a la del fin de la estructura de repetición.
4. Instrucciones Repetitivas
En la elaboración 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 instrucción
mientras que y la instrucción para.
5. Bucles
Un bucle o ciclo es un trozo de algoritmo, cuyas
instrucciones se repiten un número determinado de veces
mientras se cumple una determinada condición.
Una iteración es la ejecución de todas las instrucciones del
ciclo.
6. Bucles
Un bucle consta de tres partes fundamentales:
– Decisión (simple o compuesta)
– Cuerpo
– Salida
Los bucles pueden ser sencillos o anidados (ciclos dentro de
otros ciclos).
8. 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
iteración.
9. Contador
El formato general es:
Contador Contador + Cantidad Constante
Ejemplo:
ZZ+2
donde Z se incrementa en 2 en cada iteración.
10. Acumulador
Es una variable cuya misión es almacenar por cada iteración,
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 y no una constante
11. Centinela
Las repeticiones controladas por centinela, se utilizan
cuando el número 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 repetición por
centinela, se le denomina repetición indefinida, por que no
se sabe con anticipación cuántas veces se necesitará
ejecutar el bucle. Si no se ingresa el centinela el programa se
ejecutaría infinitas veces y no podría terminar.
12. Instrucción mientras que
La instrucción mientras, permite ejecutar una instrucción o
un grupo de instrucciones un número determinado de veces,
mientras se cumple una condición. Esta instrucción es
utilizada, cuando no se sabe el número de veces que va a
ocurrir el ciclo.
Se representa en pseudocódigo así:
mientras (condición) hacer
instrucciones
fin_mientras
13. 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
inicialización del contador, con la expresión lógica y el
incremento o decremento.
14. Sintaxis Sentencia For
Cuando el bucle contiene solo una sentencia, no son
indispensables las llaves { } en la sintaxis, así:
for (condición)
sentencia;
Ejemplo:
int K;
for (k=1; k<=20; k+=2)
cout<< k;
Imprime los números 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=k+2)
15. Ejemplo
Ejemplo: Sumar 10 números 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;
}
16. Sentencia while (mientras que)
La estructura de control while, genera bucles controlados
por centinela en los cuales se conoce la condición de
terminación del bucle, pero no se conoce de antemano
cuantas son las iteraciones del bucle. Aunque con la
estructura while podríamos hacer bucles for, por facilidad en
el control del contador, es más utilizado el for para
implementar los bucles controlados por contador.
18. Sintaxis Sentencia For
En este caso las sentencias se repiten, mientras la expresión
lógica o condición del bucle sea verdadera.
La condición del bucle se evalúa antes de que se ejecuten las
sentencias. Si la condición es falsa, no se ingresará al bucle.
No se requiere el punto y coma (;) en la línea del while, de
hacerse no ejecutará el bucle.
Cuando se debe ejecutar solo una sentencia varias veces, no
son indispensables las llaves { }.
19. Ejemplo
Ejemplo:
int y=z=0;
while(y!=10)
{
cin>>y
z=z+y;
}
cout<<z<<endl;
El ciclo while, suma los números 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 terminación del ciclo.
20. Ejemplo
Ejemplo: Contar los números positivos que se ingresan por
teclado hasta que se ingrese un número negativo.
Variables:
X (centinela)
P (contador)
21. Ejemplo
#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");
}
22. Sentencia do while (haga mientras que)
Esta sentencia funciona de modo análogo a la instrucción
while, con la diferencia de que la condición se evalúa
después de ejecutar las primeras sentencias, esto significa
que el bucle se ejecuta por lo menos una vez.
Sintaxis de la instrucción:
do
{
sentencia-1;
sentencia-2;
sentencia-3;
:
sentencia-n;
} while (condición);
23. Sintaxis Sentencia do While
Comienza ejecutando las sentencias y se evalúa a
continuación el ciclo. Si la condición es verdadera, entonces
se repite la ejecución de las sentencias. Este proceso
continúa hasta que la condición sea falsa. Se debe escribir un
punto y coma (;), luego de la condición del while. El siguiente
ejemplo imprime los números del 1 al 9. Se ha utilizado una
variable contador x:
int x=1;
do
{
cout<<x<<endl;
x++;
} while(x<10);
.
24. Ejemplo
Hacer un programa que imprima la tabla de multiplicar de un
número dado por teclado
Tabla de multiplicar de un número 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);
}
26. Ejemplo
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");
}
27. Instrucciones Break Continue
Algunas veces es necesario interrumpir un bucle o no tomar en
cuenta una iteración, la instrucción break, obliga a una
terminación inmediata de la instrucción switch, while, for o do-
while y la instrucción continue, transfiere el control al inicio del
bucle.
La instrucción 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 división por cero.
29. Ejemplo
{ int x;
float y;
for (int contador=1;contador<=10;contador++)
{cout<<"Introduzca un numero "<<endl;
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");
}
30. Sintaxis Instrucción Continue
La instrucción continue, se aplica en los ciclos while, do-while o
for. Cuando continue aparece en una instrucción while, significa
que la ejecución se transferirá automáticamente a la parte
superior del ciclo y empezará a evaluar nuevamente la
condición.
Es útil la instrucción continue para no contabilizar datos
inválidos. 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
31. Ejemplo
{
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 las calificaciones es "<<suma/cuenta<<endl;
system("pause");
}