3. ALGORITMOS CON ESTRUCTURAS
CICLICAS
3
Es todos los algoritmos realizados hasta este punto, cada instrucción se ha
ejecutado sólo una vez ya sea en forma secuencias o en forma selectiva. Sin
embargo, con frecuencia, cierto tipo de problemas requieren de la ejecución
reiterada o repetida de un grupo de instrucciones.
Para la ejecución repetida de un conjunto de instrucciones, los lenguajes de
programación ofrecen una variedad de sentencias o códigos, los que se denominan
estructuras repetitivas, estructuras iterativas o simplemente bucles.
• Contadores y acumuladores
Existen dos conceptos asociados a las estructuras
repetitivas: Contadores y Acumuladores.
• Un contador es una variable auxiliar o de proceso, cuyo propósito es llevar la
cuenta del número de veces que se está ejecutando un conjunto de sentencias o
un determinado proceso. Estas variables generalmente se verifican para salir
del bucle.
4. ALGORITMOS CON ESTRUCTURAS
CICLICAS
Como funciona un contador en una estructura
secuencial. Ej.: Escribimos un algoritmo
secuencial que permita mostrar 5 veces la frase
‘Programar computadoras es fácil’.
INICIO {escribir 5 veces la frase – Programar computadoras es
facil-}
Escribir ‘Programar computadoras es fácil’
Escribir ‘Programar computadoras es fácil’
Escribir ‘Programar computadoras es fácil’
Escribir ‘Programar computadoras es fácil’
Escribir ‘Programar computadoras es fácil’
FIN
4
5. ALGORITMOS CON ESTRUCTURAS CICLICAS
AL programa anterior, le podemos agregar un
contador, K, el cual nos servirá para contar el número de
veces que se va repitiendo la instrucción que nos permite
mostrar el mensaje ‘Programar computadoras es fácil’.
Inicio
{Escribir la frase por primera vez}
K = 1
Escribir ‘Programar computadoras es fácil’
{Escribir la frase por segunda vez} K = 2
Escribir ‘Programar computadoras es fácil’
{Escribir la frase por tercera vez} K = 3
Escribir ‘Programar computadoras es fácil’
{Escribir la frase por cuarta vez}
K = 4
Escribir ‘Programar computadoras es fácil’
{Escribir la frase por quinta vez} K = 5
Escribir ‘Programar computadoras es fácil’
Fin
5
6. ALGORITMOS CON ESTRUCTURAS
CICLICAS
Para mejorar la presentación, podemos uniformar el esquema de
presentación de este algoritmo, modificándolo de manera que todos los
bloques de instrucciones sean similares:
Inicio
K = 0
{Escribir la frase por primera vez (K= 0+1)} K = K +1
Escribir ‘Programar computadoras es fácil’
{Escribir la frase por segunda vez (K= 1+1)} K = K +1
Escribir ‘Programar computadoras es fácil’
{Escribir la frase por tercera vez (K= 2+1)}
K = K +1
Escribir ‘Programar computadoras es fácil’
{Escribir la frase por cuarta vez (K= 3+1)} K = K +1
Escribir ‘Programar computadoras es fácil’
{Escribir la frase por quinta vez (K= 4+1)} K = K +1
Escribir ‘Programar computadoras es fácil’
Fin
6
Recordemos que en la
instrucciones de asignación
tal como K=K+1, primero
se ejecuta la expresión
del lado derecho (en este
caso: K+1), por tanto, si K
tiene el valor inicial de
cero, entonces el
resultado de la expresión K
+ 1 será igual a 1 y este
valor se asignará a la
variable del lado izquierdo,
en este caso, también K.
Ahora K tiene el valor 1.
7. ALGORITMOS CON ESTRUCTURAS
CICLICAS
7
En conclusión con la instrucción: K = K + 1, incrementamos
el valor de K en 1. Así mismo, si K almacena inicialmente el
valor de 0 y ejecutamos 5 veces la instrucción K= K + 1,
al final K tendrá el valor de 5.
A esta variable auxiliar K se le denomina contador.
Acumulador El acumulador es también una variable
auxiliar o de proceso, cuyo propósito es sumar (acumular)
diferentes valores del mismo tipo.
8. ALGORITMOS CON ESTRUCTURAS
CICLICAS
10
Generalmente la implementación de los procesos con un
acumulador tiene el siguiente formato.
En esta expresión, S es el acumulador y <Variable> es el
valor que se desea agregar a S. Ej.:
En este ejemplo la variable suma es un acumulador.
S = S + <Variable>
Suma = 0 {Suma tiene un valor de cero}
Suma = Suma + 5 {Suma tienen ahora el valor 5}
Suma = Suma + 8{Suma tienen ahora el valor 13}
Suma = Suma + 2 {Suma tienen ahora el valor 15}
9. ALGORITMOS CON ESTRUCTURAS CICLICAS
9
TIPOS DE ESTRUCTURAS REPETITIVAS.
En forma indistinta se utiliza estructuras repetitivas,
estructura iterativa o bucle para referirse a la
repetición de un proceso un número fijo o variable de
veces.
En el desarrollo de los procesos iterativos se distinguen
los siguientes tipos de bucles.
Bucles variable:
Estructura Repetir Hasta que
Estructura Mientras Hacer
Bucles fijos
Estructura Para .
10. ALGORITMOS CON ESTRUCTURAS
CICLICAS
10
Toda estructura repetitiva tiene las siguientes partes:
Inicialización, en la cual se asigna valores iníciales a las
variables que intervienen en el test de salida.
Actualización, en la que se actualizan las variables que
intervienen en el test de salida.
Instrucción de proceso, parte del bucle en el que se
escriben las instrucciones que se deben repetir.
Test de salida, es la que se controla si el bucle
continua o se sale del bucle.
11. ALGORITMOS CON ESTRUCTURAS
CICLICAS
11
Bucles variables
Son estructuras repetitivas en las que no se conoce el
número de veces que se ejecutarán las instrucciones que
se encuentran dentro del bucle. Por ejemplo, si se trata se
contar el numero de dígitos de un número entero positivo
no sabemos cuántos dígitos tendrá el número;
consiguientemente no se sabe cuantas veces se realizara
el proceso de contar. Otro ejemplo es el número de
clientes que debe atender un cajero de banco, quien no
sabe a priori cuantas personas existen e cola para ser
atendidos.
12. ALGORITMOS CON ESTRUCTURAS
CICLICAS
12
Bucles fijos
Son estructuras repetitivas en la cual se conoce a priori
el número de veces que se ejecutaran las instrucciones que
se encentran dentro del bucle. Ejemplo si se trata de
ingresar 5 notas a priori se sabe que se debe leer
repetidamente 5 notas; consiguientemente el proceso de
leer se repetirá 5 veces.
14. ALGORITMOS CON ESTRUCTURAS CICLICAS
20
Formato de Codificación a C++ : Estructura do/while
Expresado en palabras , esto significa : ejecute las
sentencias, luego repita la ejecución mientras
expres_bool dé un resultado CIERTO. La diferencia
fundamental entre esta iteración y el WHILE es que el
DO-WHILE se ejecuta siempre AL MENOS una vez , sea
cual sea el resultado de expresión.
do
<sec_sent>
while (<expres_bool>)
do
{
cout << "Introduzca un numero
entre 1 y 10" << endl;
cin >> numero 5;
}
while (!((1<=numero) &&
( numero<= 10)));
15. Ejemplo: Calcula la suma de los cuadrados de los números
naturales.
#include<conio.h>
#include<iostream.h>
void main()
{
clrscr();
int N,R;
do
{
cout<<"Ingrese La Cantidad de Números:";
cin>>N;
}
while(N<0);
R=N*(N+1)*
(2*N+1)/6;
cout<<"La Suma de los Cuadrados de los Números
Es:a"<<R<<endl;
getch(); 15
16. Estructura hacer-mientras ("do-while")
El bucle hacer-mientras al igual que el bucle desde/para que se verá con
posterioridad, evalúan la expresión al comienzo del bucle de repetición;
siempre se utilizan para crear bucle pre-test. Los bucles pre-test se
denominan también bucles controlados por la entrada. En numerosas
ocasiones, se necesita que el conjunto de sentencias que componen el
cuerpo del bucle, se ejecuten al menos una vez, sin importar el valor de la
expresión o condición de evaluación. Estos bucles se denominan bucles
post-test o bucles controlados por la salida. Un caso típico es el bucle
hacer-mientras (do-while) existente en lenguajes como C/C++, Java o C#.
El bucle hacer-mientras es análogo al bucle mientras, y el cuerpo del
bucle se ejecuta una y otra vez mientras la condición (expresión
booleana) sea verdadera. Existe, sin embargo, una gran diferencia y es
que el cuerpo del bucle está encerrado entre las palabras reservadas
hacer y mientras. Todas las sentencias en el interior del bucle se
ejecutan al menos una vez antes de que la expresión o condición