Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Que el estudiante conozca cmo resolver problemas lgicos mediante el uso de las estructuras repetitivas.
Algoritmos con repeticiones.
En la prctica, aparecen con frecuencia situaciones en las que se necesita que un conjunto de instrucciones se ejecute
repetidamente. En este caso se debe contar con estructuras de control que permitan la iteracin o repeticin de dicho
conjunto de instrucciones. Estas estructuras deben permitir la verificacin de condiciones que determinan si el conjunto
de instrucciones debe seguir siendo repetido o si debe detenerse dicha repeticin o iteracin
Ciclos con precondicin.
Como su nombre lo indica, en este ciclo la verificacin de la condicin ocurre antes de la ejecucin de la secuencia de
instrucciones que se desea iterar.
En seudo cdigo, esta instruccin tiene la sintaxis siguiente:
Mientras <condicin>
<secuencia de instrucciones>
Fin
En diagrama en bloques:
Si
<Condicin>
Observaciones:
Si la condicin nunca se hace falsa estamos en
presencia de un ciclo infinito, lo cual es
sinnimo de pasos infinitos, lo cual atenta
contra el concepto de algoritmo.
En el bloque de <Instrucciones> debe
garantizarse que la condicin se haga falsa en
algn momento.
Puede que nunca se ejecute el bloque de
instrucciones.
<Instrucciones>
No
Ejemplo1: Dado un nmero , calcular su factorial.
Motivacin: Con las estructuras que se han estudiado hasta este momento no se puede abordar este problema. Su
modelo matemtico es el siguiente:
= ! =
= ( )
=
Note que resolver este problema podra ser trivial si de antemano se conoce , pero en este caso se desea hacer un
algoritmo lo suficientemente general como para resolver el factorial de cualquier
Este problema se puede resolver expresando el factorial de la siguiente forma:
! = !
Suponga =
Obtener este resultado sera
! =
! = !
! = !
! = !
! = !
Observaciones:
Note que cada siguiente paso depende del anterior, mientas que el primer
paso queda definido claramente.
Solo necesitamos saber hasta cuando hay que repetirlo y esto queda
definido por
Necesitamos una variable entera que tome valores entre y . Esta la llamaremos y usualmente se denomina variable
de ciclo o de iteracin. Adems, necesitamos una variable para almacenar el resultado parcial de cada factorial hasta
llegar al valor de . Esta variable la llamaremos
El clculo anterior se puede expresar utilizando y de la siguiente forma:
Observaciones:
Es evidente que hay una repeticin de cdigo en las instrucciones
+
La cantidad de veces que se repite es
Utilizando un ciclo con precondicin se puede elaborar el algoritmo que da solucin al problema:
Algoritmo: Clculo de factorial
Observaciones:
Descripcin: calcula el factorial de cualquier nmero
Debemos comprobar el algoritmo utilizando una
natural:
tabla de iteraciones y un valor tpico de :
Precondiciones:
<
Poscondiciones: !
Iteracin
5
1
1
V
Entrada:
1
5
2
2
V
Salida:
2
5
3
6
V
Seudocdigo:
3
5
4
24
V
Entrar:
4
5
5
120
F
de
Mientras <
+
Fin
Mostrar:
hacer
<secuencia de instrucciones>
mientras <condicin>
En diagrama en bloques:
<Instrucciones>
<Instrucciones>
No
Si
<Condicin>
<Condicin>
Si
No
Observaciones:
Persiste el peligro de construir una secuencia de pasos infinita.
Aqu se garantiza que al menos una vez se ejecute el bloque de <instrucciones>
Ejemplo2: Dado un nmero , determinar si es primo o no
Observaciones:
Debemos comprobar el algoritmo
utilizando una tabla de iteraciones y
un valor tpico de :
= > 3.87
Iter 15 1
1
15 2 F
F
2
15 3 V
F
Repetir
+
Hasta ( > )
si ( > )
sino
fin
Mostrar:
Entrar:
Hacer
+
Mientras ( < )
si ( > )
sino
fin
Mostrar:
Iter
1
2
3
4
17
17
17
17
17
1
2
3
4
5
=
F
F
F
F
> 4.12
F
F
F
V
Si
< > < >
<Instrucciones>
+
No
Observaciones:
Para no hacer una secuencia infinita de pasos se debe:
o Garantizarse que el valor final sea mayor que el valor inicial si el incremento es positivo.
o Garantizarse que el valor final sea menor que el valor inicial si el incremento es negativo.
Ejemplo 3: Calcular la suma de los nmeros enteros positivos que se encuentran en un determinado intervalo [, ].
Considere que > .
Algoritmo: Calcular suma
Descripcin: Para determinar la suma de nmeros
Precondiciones: , , >
Poscondiciones:
Entrada: ,
Salida:
Seudocdigo:
Entrar: ,
Para = hasta
+
Fin
Mostrar: -
Observaciones:
Debemos comprobar el algoritmo utilizando una
tabla de iteraciones y un valor tpico de , :
Iter
1
2
3
4
5
3
4
5
3
3
3
3
3
3
3
3
3
10
10
10
10
10
10
10
10
10
3
4
5
6
7
8
9
10
0
3
7
12
18
25
33
42
52
Estudio independiente
1.
2.
3.
4.
5.
Realizar una versin de los algoritmos estudiados con cada tipo ciclo estudiado
Modificar el Ejemplo 3 para no tener en cuenta la precondicin >
Realizar un algoritmo que permita calcular la potencia de cualquier numero , ,
Realizar un algoritmo que sea capaz de obtener el de dos nmeros utilizando el algoritmo de Euclides.
Realizar los algoritmos que calculen las series para un valor dado :
=1
=
=1
1
2 2 1
4
2 1