Está en la página 1de 10

Universidad Catlica los ngeles de Chimbote

Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas

Asignatura: Algoritmos y Programacin

Estructuras Repetitivas
Las computadoras estn diseadas para aquellas aplicaciones en las cuales una operacin o
conjunto de ellas deben repetirse muchas veces. Un tipo muy importante de estructura es el
algoritmo necesario para repetir una o varias acciones por un nmero determinado de veces, a
est estructura se la llama Estructura Repetitiva.
Las estructuras repetitivas se utilizan cuando se desea que una instruccin o bloque de
instrucciones se repita un nmero determinado de veces o hasta que una condicin de
terminacin se cumpla.
Las estructuras que repiten una secuencia de instrucciones un nmero determinado de veces se
denominan bucles, y se llama iteracin al hecho de repetir la ejecucin de una secuencia de
acciones. Iterar es repetir una vez el bucle.
Se debe tener en cuenta lo siguiente para la construccin de una estructura repetitiva:

El cuerpo del bucle: Es el grupo de instrucciones que se van a repetir. Dentro del cuerpo
del bucle debe existir una instruccin que modifique la condicin lgica de terminacin.
Las sentencias de inicializacin. Son instrucciones que inicializan contadores y
acumuladores.
Las condiciones para la terminacin del bucle: Expresiones lgicas que controlan la
terminacin del bucle.

A continuacin se detallan tres estructuras repetitivas bsicas:


1.
2.
3.

Estructura Repetitiva Desde / Para. (FOR)


Estructura Repetitiva Hacer Mientras. (DO WHILE)
Estructura Repetitiva Mientras. (WHILE)

Para poder entender cmo funciona un proceso repetitivo, se necesita conocer el concepto de dos
expresiones: Qu es un contador? y Qu es un acumulador?
CONTADOR
En un proceso repetitivo cuya funcin es contar los sucesos o acciones internas del bucle, como
pueden ser el nmero de iteraciones del bucle, la cantidad de elementos que tiene un archivo, un
vector, una matriz, etc. 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 o
fija en cada iteracin.
La forma de representar un contador es:
contador =

contador

La expresin anterior se debe interpretar como asignar a la variable contador el valor que tenia
anteriormente ms uno o menos uno, dependiendo del caso si se quiere incrementar o
decrementar.

Universidad Catlica los ngeles de Chimbote


Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas

Asignatura: Algoritmos y Programacin

Nota:
En todo contador es necesario que exista una instruccin que inicializa la variable que va a tener
la funcin de contador y esta variable puede ser cualquier identificador.
Ejemplo 1: Contador que incrementa de uno en uno.
La variable contador va a tener la funcin de ser el contador.
contador =

// Inicializacin de la variable contador con el valor 1

contador =

contador + 1

// la variable contador incrementa a 2 por la suma

1
Ejemplo 2: Contador que decrementa de uno en uno
La variable cont va a tener la funcin de ser el contador.
cont

10

// Inicializacin de la variable cont con el valor 10

cont

cont - 1

// la variable cont decrementa a 9 por la resta

10
Nota:
Un contador puede ser positivo (incrementos, uno a uno) o negativo (decrementos, uno a uno). Un
contador tambin puede incrementar o decrementar de dos en dos, tres en tres, cuatro en cuatro y
as sucesivamente, dependiendo de la tarea que est realizando el bucle.
Ejemplo 3: Contador que incrementa de dos en dos
c

// Inicializacin de la variable c con el valor 0


+

// la variable c incrementa a 2 por la suma

0
Ejemplo 4: Contador que decrementa de cinco en cinco
contador =

57

// la variable contador es igual a 57

contador =

contador - 5

// el contador decrementa a 52

57

Universidad Catlica los ngeles de Chimbote


Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas

Asignatura: Algoritmos y Programacin

ACUMULADOR
Un acumulador es una variable cuya misin es almacenar cantidades variables. Realiza la misma
funcin que un contador pero con la diferencia de que el incremento o decremento es variable y
no constante como en el contador.
La forma de representar un acumulador es:
S = S + valorVariable
Nota:
En todo acumulador es necesario que exista una instruccin que inicializa la variable que va a
tener la funcin de acumulador y esta variable puede ser cualquier identificador.
Ejemplo 5:
Calcular el promedio de notas de 10 alumnos, primero debemos utilizar una variable acumulador
para ir sumando las 10 notas (cantidades variables) y luego dividir este valor entre diez. La
variable S va a tener la funcin de ser el acumulador.
Solucin del ejemplo 5.
S=0
leer(nota)
S=S+nota
Prom=S/10
La explicacin del algoritmo es el siguiente:
S =

// Inicializacin de la variable S acumulador con el


valor 0
// el bucle; tiene dos instrucciones.

leer (nota)

// 1. Se lee la 1era nota

S =

// Se suma la 1era nota + el valor de S que es cero


0
// Imaginemos que la 1era nota = 13, ahora S vale 13
// terminado regresa el bucle a su primera instruccin
//
// 2. Leer la 2da nota en la misma variable nota
// imaginamos ahora nota=08, ahora S vale 13+8=21
//
// 3. Leer nota por tercera vez
// imaginamos ahora nota=17, ahora S vale 21+17=38
// 4. Leer nota por cuarta vez
// nota=11, ahora S vale 38+11=49
// y asi sucesivamente hasta leer las 10 notas,
// terminado en la varible acumuladora esta el total de
// la suma de las 10 notas.
// 5. Hallar el promedio = S / 10

S + nota

Prom = S/10

Esto es la forma como trabaja un acumulador.


3

Universidad Catlica los ngeles de Chimbote


Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas

Asignatura: Algoritmos y Programacin

Estructura Repetitiva Desde/Para


En muchas ocasiones se conoce de antemano el nmero de veces que se desean ejecutar las
acciones o instrucciones de un bucle. En estos casos en los que el nmero de iteraciones es fijo,
se debe usar la estructura desde/para. Por ejemplo, ingresar 10 notas, 100 nmeros, etc.
La representacin grfica de la estructura repetitiva desde/para en un Diagrama de Flujo es el
siguiente:

Figura 37. Diagrama de flujo de la estructura repetitiva Desde/Para

En su forma ms tpica y bsica, esta estructura requiere una variable entera que cumple la
funcin de un contador de vueltas. En la seccin indicada como inicializacin, se suele colocar
el nombre de la variable que har de contador, asignndole a dicha variable un valor inicial. En la
seccin de condicin se coloca la condicin que deber ser verdadera para que el ciclo contine
(en caso de falso el ciclo se detendr). Y finalmente, en la seccin modificacin se coloca una
instruccin que permite modificar el valor de la variable que hace de contador (para permitir que
alguna vez sea falsa).
Ejemplo: Queremos que se repita 50 veces el bloque de instrucciones.
Describiremos el siguiente ejemplo por etapas:
Nota: El smbolo de la flecha apuntando a la izquierda (
) significa = (igual)
1era Etapa (c=1): Cuando el ciclo comienza antes de dar la primera vuelta, la variable de
inicializacin toma el valor indicado en la seccin de inicializacin.
1era Etapa

Universidad Catlica los ngeles de Chimbote


Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas

Asignatura: Algoritmos y Programacin

2da. Etapa (c<=50): Inmediatamente se verifica en forma automtica, si la condicin es


verdadera. En caso de serlo se ejecuta el bloque de instrucciones del ciclo, es decir, si el bloque
tuviera 5 instrucciones esas se realizan una por una.
2da Etapa

3era. Etapa (c=c+1): Al finalizar de ejecutarse el bloque de instruccines del bucle, la ejecucin
de la estructura repetitiva se regresa a la seccin de modificacin. Se incrementa en una unidad
en contador.
3era Etapa

4ta Etapa (c<=50): Seguidamente, se vuelve a comprobar la condicin si es verdadera, y si lo es,


vuelve a realizar las instrucciones del ciclo, as prosigue ejecutndose todo el bucle hasta que la
condicin es falsa y sale del bucle.

Universidad Catlica los ngeles de Chimbote


Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas

Asignatura: Algoritmos y Programacin

4ta Etapa

Analicemos el ejemplo:
La variable c toma inicialmente el valor 1.
Se controla automticamente el valor de la condicin: como c vale 1 y esto es menor que
50, la condicin da verdadero.
Como la condicin fue verdadera, se ejecutan la(s) instruccion(es).
Al finalizar de ejecutar todas las instrucciones, se retorna a la instruccin c = c + 1, por lo
que la variable c se incrementa en uno.
Se vuelve a controlar automticamente si c es menor o igual a 50. Como ahora su valor es
2 y sigue siendo menor que 50, se ejecuta nuevamente el bloque de instrucciones e
incrementa nuevamente la variable del contador c.
El proceso se repetir hasta que la variable c sea incrementada al valor 51. En ese
momento la condicin ser falsa, el ciclo se detendr y saldr del bucle repetitivo.
La variable c puede ser inicializada y finalizar en cualquier valor. Adems, no es obligatorio que la
instruccin de modificacin sea un incremento de tipo contador c = c + 1. Puede ser tambin c = c
+ 2, en lugar de c = c + 1, el valor de c ser incrementado de a 2 en cada vuelta, y no de a uno.
En este caso, esto significar que el ciclo no efectuar las 50 vueltas sino solo 25 Por qu?
La instruccin de modificacin no solamente puede ser un incrementador, tambin puede ser un
decrementador, es decir, la variable de inicializacin decrementar a lo que se desea, esto se
puede hacer siempre y cuando la variable de inicializacin comienza en un valor mayor que el de
la condicin, por ejemplo:

Universidad Catlica los ngeles de Chimbote


Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas

Asignatura: Algoritmos y Programacin

Analicemos el ejemplo:
La variable c toma inicialmente el valor 100.
El valor de la condicin es c >= 1.
La variable c decrementa de dos en dos.
Esto quiere decir que el bucle se repite 50 veces, que comienza en un valor de contador =
100, decrementa de dos en dos, hasta que la condicin es falsa.
La representacin grfica de la estructura repetitiva desde/para en el diagrama estructurado y
pseudocdigo son los siguientes:

estructura repetitiva
desde/para

Figura 38. Diagrama estructurado de la estructura repetitiva Desde/Para

condicin

modificacin

inicializacin

desde c = vi hasta vf inc|dec valor hacer


instruccin 1
instruccin 2
.
.
instruccin n
fin_desde
Figura 39. Pseudocdigo de la estructura repetitiva Desde/Para

Universidad Catlica los ngeles de Chimbote


Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas

Asignatura: Algoritmos y Programacin

Ejemplo 1:
Realizar un algoritmo que permita hallar la suma de los 10 primeros nmeros enteros positivos, y
su promedio.

Cuerpo del bucle

Figura 40. Diagrama de flujo del ejemplo 1

Cuerpo del bucle

Figura 41. Diagrama estructurado del ejemplo 1

Universidad Catlica los ngeles de Chimbote


Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas

algoritmo Ejemplo1
var
entero: c , suma
real: prom
inicio
suma = 0
desde c = 1 hasta 10 inc 1 hacer
suma = suma + c
fin_desde
prom = suma/10
escribir(La suma es : ,suma)
escribir(El promedio es : ,prom)
fin

Asignatura: Algoritmos y Programacin

Cuerpo del bucle

Figura 42. Pseudocdigo del ejemplo 1

Nota:
En Pseudocdigo si la instruccin de incremento es en uno, se puede obviar la instruccin inc 1, y
solamente se puede colocar: desde c = 1 hasta 10 hacer . Porque en algoritmo se
sobrentiende que aumenta en 1.
Ejemplo 2:
Realizar un algoritmo que permita hallar la suma y promedio de 20 nmeros enteros ingresados
por teclado.

Cuerpo del bucle

Figura 43. Diagrama de flujo del ejemplo 2

Universidad Catlica los ngeles de Chimbote


Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas

Asignatura: Algoritmos y Programacin

Cuerpo del bucle

Figura 44. Diagrama estructurado del ejemplo 2

algoritmo Ejemplo2
var
entero: n, c, suma
real: prom
inicio
suma = 0
desde c = 1 hasta 20 inc 1
leer(n)
suma = suma + n
fin_desde
prom = suma/20
escribir(La suma es : ,suma)
escribir(El promedio es : ,prom)
fin

Cuerpo del bucle

Figura 45. Pseudocdigo del ejemplo 2

Ejemplos de autoaprendizaje:
Resuelva en diagrama de flujo, estructurado y pseudocdigo.
Ejemplo 3: Realizar un algoritmo que me permita leer 10 nmeros positivos y negativos, e imprima
solamente los nmeros positivos.
Ejemplo 4:
Realizar un algoritmo que me permita leer 20 nmeros e imprimir cuntos son positivos, negativos
y neutros.
Dato: Neutro se le conoce al cero 0

10