Está en la página 1de 19

ESTRUCTURAS

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 E ITERACIONES
Un bucle o ciclo es un pedazo de algoritmo, cuyas instrucciones se repiten un nmero
determinado de veces mientras se cumple una determinada condicin.
Un bucle consta de tres partes fundamentales: DECISION (simple o compuesta), CUERPO

UNIVERSIDAD MILITAR NUEVA GRANADA

DEL BUCLE y la SALIDA DEL BUCLE.


Una iteracin es la ejecucin de todas las instrucciones del ciclo.
Los bucles pueden ser sencillos o anidados (ciclos dentro de otros ciclos).

Contador
Los procesos repetitivos son la base del uso del computador. En estos procesos se
necesita normalmente contar los sucesos o acciones internas del bucle. 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.
El formato general es:

CONTADOR CONTADOR + CANTIDAD CONSTANTE

Ejemplo:
Z Z + 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:

15

MANUAL DE PROGRAMACIN EN C++

S S+N, donde N es una variable y no una constante.

INSTRUCCIN MIENTRAS QUE


La instruccin mientras, nos 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.
La representamos en pseudocdigo de la siguiente forma:
mientras (condicin) hacer
instrucciones
fin_mientras
En los diagramas de flujo la representamos con un rectngulo terminado en puntas:

Ejemplo 1.
Sumar una serie de nmeros, el programa solicita los nmeros por teclado hasta que se
digite el numero -1
Variables: SU: Acumulador (suma de los nmeros), NU: Numero

16

UNIVERSIDAD MILITAR NUEVA GRANADA

PSEUDOCODIGO D

IAGRAMA DE FLUJO

Inicio
SU 0
Leer NU
mientras (NU != -1) hacer
SU SU + NU
leer NU
fin_mientras
Escribir SU
Fin

17

MANUAL DE PROGRAMACIN EN C++

Ejemplo 2.
Calcular el promedio de las notas de un grupo de alumnos. El programa finaliza el ingreso
de notas cuando se digite el cdigo 999.
Variables:

N: Nota, SN: Suma de notas, C: Cdigo, CN: Cantidad de notas,


PN: Promedio de notas
PSEUDOCODIGO DI

AGRAMA DE FLUJO

Inicio
SN 0
CN 0
Leer C
mientras ( C != 999) hacer
leer N
SN SN + N
CN CN + 1
leer C
fin_mientras
PN SN / CN
Escribir PN
Fin

18

UNIVERSIDAD MILITAR NUEVA GRANADA

INSTRUCCIN PARA
La instruccin para permite repetir una instruccin o un grupo de instrucciones un
nmero determinado de veces. Esta instruccin solo es utilizada cuando se sabe el
nmero exacto de veces que va a ocurrir un ciclo.
La representamos en el pseudocdigo de la siguiente forma:
para Variable valor_inicial , valor_final , incremento haga
instrucciones
fin_para
En los diagramas de flujo la representamos con un rectngulo terminado en puntas:

19

MANUAL DE PROGRAMACIN EN C++

Ejemplo 1.
Sumar 10 nmeros introducidos por teclado:
Variables: SU: Acumulador (Suma de los nmeros), NU: Numero que es introducido por
teclado, i: Contador que controla el ciclo para

PSEUDOCODIGO DIAGR

AMA DE FLUJO

Inicio
SU 0
para i 1, 10, 1 haga
Leer NU
SU SU + NU
fin_para
Escribir SU
Fin

20

UNIVERSIDAD MILITAR NUEVA GRANADA

Ejemplo 2.
Calcular y escribir el factorial de un nmero dado por el usuario.
Variables:

NUM: Numero, F: Factorial


PSEUDOCODIGO

DIAGRAMA DE FLUJO

Inicio
F0
Leer NUM
para X 1, NUM, 1 haga
FF*X
fin_para
escribir F
Fin

21

MANUAL DE PROGRAMACIN EN C++

Ejemplo 3
Leer 10 nmeros, calcular y escribir la cantidad de nmeros positivos y la cantidad de
nmeros negativos.
Variables:
NUM: Numero, CP: Cantidad de nmeros positivos, CN: Cantidad de
nmeros negativos.
PSEUDOCODIGO D

IAGRAMA DE FLUJO

Inicio
CP 0
CN 0
para X 1, 10, 1 haga
Leer NUM
si (NUM>=0)
Entonces CP CP +
1
sino CN CN + 1
fin_si
fin_para
Escribir CP, CN
Fin

22

UNIVERSIDAD MILITAR NUEVA GRANADA

ANIDACIN DE ESTRUCTURAS
Cuando tenemos que evaluar ms de dos condiciones es necesario emplear estructuras
selectivas anidadas o mltiples, es decir tener un si dentro de otro si y seguir anidando
segn sea el tipo de problema.
En algunos casos es necesario emplear ms de un ciclo, en estos algoritmos se deben
crear estructuras repetitivas anidadas. Cada vez que se ejecuta una iteracin del ciclo
externo se ejecuta todo el ciclo interno. Podemos encontrar los siguientes esquemas de
ciclos anidados:

Las estructuras que se pueden anidar son las selectivas o condicionales y las repetitivas.

CONDICIONALES ANIDADOS
En ocasiones es necesita tener la posibilidad de controlar las instrucciones que se deben
ejecutar entre ms de una alternativa, en cumplimiento de dos o ms condiciones. La
instruccin si, puede incluir otras instrucciones si. En este caso se dice que las
instrucciones si estn anidadas.
Esta instruccin si anidada, tiene la siguiente forma:
si (condicin1)
entonces instrucciones
sino
si (condicin2)
entonces instrucciones
sino instrucciones
fin_si
fin_si

23

MANUAL DE PROGRAMACIN EN C++

En la forma anterior, se tienen dos condiciones para tres posibilidades de instrucciones.


Ntese que en la negacin de la primera condicin, resulta el segundo si, que nos permite
evaluar las dos posibilidades de la segunda condicin.
Otra forma sera que el segundo si, estuviera por la afirmacin de la primera condicin,
con lo cual tendra la siguiente apariencia:
si (condicin1)
entonces si (condicin2)
entonces instrucciones
sino instrucciones
fin_si
sino instrucciones
fin_si
Se acepta un nmero indeterminado de si anidados, que depende de la habilidad del
programador para controlar todas las posibilidades. A continuacin se presenta un
ejemplo de cuatro condicionales:
si (condicin1)
entonces si (condicin2)
entonces si (condicin3)
entonces si (condicin4)
entonces instrucciones1
sino instrucciones2
fin_si
sino instrucciones3
fin_si
no instrucciones4

si
sino
fin_si

fin_si
instrucciones5

Ejemplo 1:
Leer un nmero y escribir si es menor que cero, igual a cero o mayor que cero.
Variable: NUMERO

24

UNIVERSIDAD MILITAR NUEVA GRANADA

PSEUDOCODIGO
Inicio
leer NUMERO
si (NUMERO < 0)
entonces escribir menor que cero
sino si (NUMERO = 0)
entonces
escribir igual a cero
sino escribir mayor que cero
fin_si
fin_si
fin
DIAGRAMA DE FLUJO

25

MANUAL DE PROGRAMACIN EN C++

Ejemplo 2:
Leer un carcter, determinar si es una letra, un nmero, otro carcter.
Variables: C: Carcter
PSEUDOCODIGO
Inicio
leer C
si (C>=a y C<=z)
entonces escribir LETRA
sino si (C>=0 y C<=9)
entonces escribir NUMERO
sino escribir OTRO CARACTER
fin_si
fin_si
fin

DIAGRAMA DE FLUJO

26

UNIVERSIDAD MILITAR NUEVA GRANADA

Ejemplo 3:
Leer tres nmeros, determinar cul es el mayor.
Variables: A: Numero 1, B: Numero 2, C: Numero 3
PSEUDOCODIGO
Inicio
leer A, B, C
si (A > B y A>C)
entonces escribir A
sino
si (B>A y B>C)
entonces escribir B
sino
escribir C
fin_si
fin_si
fin
DIAGRAMA DE FLUJO

27

MANUAL DE PROGRAMACIN EN C++

REPETITIVAS ANIDADAS
Es posible anidar ciclos o bucles. Los bucles anidados constan de un bucle externo con
uno o ms bucles internos. Cada vez que se repite el bucle externo, los bucles internos se
repiten.
Ejemplo 1:
Calcular y escribir las tablas de multiplicar del 1 al 5
Variables: i: Variable del ciclo externo (multiplicando), j: Variable del ciclo interno
(multiplicador), R: Resultado del producto

PSEUDOCODIGO

DIAGRAMA DE FLUJO

Inicio
para i 1, 5, 1 haga
para j 1, 10, 1 haga
Ri*j
escribir i, j, R
fin_para
fin_para
Fin

28

UNIVERSIDAD MILITAR NUEVA GRANADA

EJEMPLO 2:
Calcular y escribir el factorial de 5 nmeros dados por el usuario.
Variables: NUM: Numero,
F: Factorial, X: Variable del ciclo externo (cantidad de
nmeros), Y: Variable del ciclo interno (clculo del factorial)

PSEUDOCODIGO

DIAGRAMA DE FLUJO

Inicio
para X 1, 5, 1 haga
F1
leer NUM
para Y 1, NUM, 1 haga
FF*X
fin_para
escribir F
fin_para
fin

29

MANUAL DE PROGRAMACIN EN C++

EJEMPLO 3:
Para un conjunto de nmeros, calcular y escribir la suma de 1 hasta cada nmero. El
programa termina cuando se digite el numero 111.
Variables: N: Numero, SUM: Suma, X: Variable del ciclo interno (de 1 hasta el numero).

PSEUDOCODIGO

DIAGRAMA DE FLUJO

Inicio
Leer N
Mientras (N!=111) hacer
SUM 0
para Y 1, NUM, 1 haga
FF*X
fin_para
escribir SUM
leer N
fin_mientras
fin

30

UNIVERSIDAD MILITAR NUEVA GRANADA

EJEMPLO 4:
Calcular y escribir el resultado de las tablas de multiplicar del 1 hasta el 5 con
multiplicador hasta 10.
Variables: X: Multiplicando, Y: Multiplicador, R: Resultado de la multiplicacin.

PSEUDOCODIGO

DIAGRAMA DE FLUJO

Inicio
X1
mientras (X <= 5) hacer
Y1
mientras Y <=10 hacer
RX*Y
escribir R
YY+1
fin_mientras
XX+1
fin_mientras
fin

31

MANUAL DE PROGRAMACIN EN C++

EJEMPLO 5:
Se tiene un grupo de 20 alumnos, se necesita calcular y escribir el promedio de las notas
de cada uno, sabiendo que cada alumno tiene 5 notas.
Variables: A: Variable de ciclo externo (numero de alumnos), N: Variable del ciclo interno
(cantidad de notas), NO: Nota, SNO: Suma de notas, PROM: Promedio

PSEUDOCODIGO

DIAGRAMA DE FLUJO

Inicio
para A 1, 20, 1 haga
N1
SNO 0
mientras (N<=5) hacer
Leer NO
SNO SNO + NO
N N +1
fin_mientras
PROM SNO/5
escribir PROM
fin_para
fin

32