Publicado el 25 de Junio del 2017
1.648 visualizaciones desde el 25 de Junio del 2017
276,7 KB
20 paginas
Creado hace 17a (16/10/2007)
Fundamentos de Programación http://programandoenc.webcindario.com
EESSTTRRUUCCTTUURRAASS IITTEERRAATTIIVVAASS
1
Fundamentos de Programación http://programandoenc.webcindario.com
EESSTTRRUUCCTTUURRAASS IITTEERRAATTIIVVAASS
OBJETIVOS
Aprender a resolver problemas mediante la ejecución repetida de una secuencia de
proposiciones llamados bucle o estructuras repetitivas o iterativas.
Distinguir las diferentes estructuras de repetición utilizadas en problemas con bucles:
mientras, repetir… mientras, para.
Analizar las diferencias entre cada una de las estructuras de repetición.
Analizar la correspondencia entre cada una de las estructuras de repetición.
INTRODUCCION
Las estructuras ITERATIVAS o de repetición, permiten la ejecución de una instrucción o
una secuencia de instrucciones (<bloque de instrucciones>) tantas veces como sea
necesario. El número de veces que el bloque de instrucciones se ejecutará se puede especificar
de manera explícita, o a través de una condición lógica que indica cuándo se ejecuta de nuevo y
cuándo no. A cada ejecución del bloque de instrucciones se le conoce como una iteración.
11.. TTIIPPOOSS DDEE IITTEERRAACCIIÓÓNN
Existen tres tipos principales de sentencias de repetición:
• Bucle MIENTRAS…
• Bucle REPETIR… MIENTRAS
• Bucle PARA
A continuación se describe cada una de ellas.
BBUUCCLLEE MMIIEENNTTRRAASS
11..11
El bucle mientras permite ejecutar un bloque de instrucciones mientras que una
expresión lógica dada se cumpla, es decir, mientras su evaluación dé como resultado
verdadero.
La expresión lógica se denomina condición y siempre se evalúa antes de ejecutar el
bloque de instrucciones. Si la condición NO se cumple, el bloque NO se ejecuta. Si la condición
SÍ se cumple, el bloque SÍ se ejecuta, después de lo cual la instrucción vuelve a empezar, es
decir, la condición se vuelve a evaluar.
En el caso en que la condición se evalúe la primera vez como falsa, el bloque de
instrucciones no será ejecutado, lo cual quiere decir que el número de repeticiones o iteraciones
de este bloque será cero. Si la condición siempre evalúa como verdadera, la instrucción se
ejecutará indefinidamente, es decir, un número infinito de veces.
2
Fundamentos de Programación http://programandoenc.webcindario.com
La forma general del bucle mientras es la siguiente:
DIAGRAMA DE FLUJO
PSEUDOCODIGO
mientras <condición> hacer
<bloque instrucciones>
fin_mientras
Donde, <condición> es la expresión lógica que se evalúa para determinar la ejecución o
no del bloque de instrucciones, y <bloque instrucciones> es el conjunto de instrucciones que
se ejecuta si la condición evalúa a Verdadero.
EEjjeemmppllooss..
Ejemplo 1. Dado un número natural n se desea calcular la suma de los números naturales desde
1 hasta n.
ANALISIS DEL PROBLEMA:
Variables Conocidas
Variables Desconocidas
Un número natural.
Un número natural.
Condiciones
ESPECIFICACIÓN:
Entradas
Salidas
El número buscado es la suma de los naturales empezando en uno hasta el
número dado.
n ∈ Enteros, n ≥ 0 (n es el número dado).
suma es la sumatoria de los primeros n números naturales.
suma ∈ Enteros, suma ≥ 0
3
Fundamentos de Programación http://programandoenc.webcindario.com
DISEÑO:
Primera Aproximación:
Inicio
Paso 1. Leer el número.
Paso 2. Recorrer los números desde cero hasta el número dado e irlos sumando.
Paso 3. Imprimir la suma
Fin
Refinamiento:
1
2
3
n: entero /* se define la variable para el número */
suma: entero /* se define la variable para la suma */
i: entero /* se define la variable para recorrer los números entre 0 y n */
4
5
6
7
8
9
10
11
12
escribir ( “Escriba el numero: ” )
leer (n) /* lee el primer número */
suma = 0 /* inicia la suma en cero */
i :=1 /* empieza la variable que recorre los números en 1 */
mientras (i <= n) hacer
suma = suma + i /* en cada iteración suma el número i */
i = i + 1 /* para tomar el siguiente número en la próxima iteración */
fin_mientras
escribir (“La suma es: ”, suma)
Diagrama de Flujo:
4
Fundamentos de Programación http://programandoenc.webcindario.com
ANÁLISIS DEL ALGORITMO:
Este algoritmo cuenta con doce (12) líneas, las tres primeras, son para definir las
variables usadas y las últimas nueve son las instrucciones que son aplicadas sobre dichos datos.
Veamos las instrucciones entre las líneas 4 y 12, suponiendo que el usuario introduzca el valor 5:
5
Fundamentos de Programación http://programandoenc.webcindario.com
1
2
3
n: entero /* se define la variable para el número */
suma: entero /* se define la variable para la suma */
i: entero /* se define la variable para recorrer los números entre 0 y n */
4
5
6
7
8
9
10
11
12
LINEA
4
5
6
7
8
9
10
11
8
9
10
11
8
9
10
11
8
9
10
11
8
9
10
11
8
12
escribir ( “Escriba el numero: ” )
leer (n) /* lee el primer número */
suma = 0 /* inicia la suma en cero */
i =1 /* empieza la variable que recorre los números en 1 */
mientras (i <= n) hacer
suma := suma + i /* en cada iteración suma el número i */
i = i + 1 /* para tomar el siguiente número en la próxima iteración */
fin_mientras
escribir (“La suma es: ”, suma)
suma
ENTRADA
SALIDA
i
1
n
5
La condición es evaluada a verdadero, por lo tanto se ejecuta el bloque de acciones del bucle, es
Escriba el numero
0
5
2
1
decir, pasa a la línea 9.
Se salta hasta la línea que contiene la condición del bucle mientras en ejecución, es decir, hasta la
línea 8
La condición es evaluada a verdadero, por lo tanto se ejecuta el bloque de acciones del bucle, es
3
3
decir, pasa a la línea 9.
Se salta hasta la línea que contiene la condición del bucle mientras en ejecución, es decir, hasta la
línea 8
La condición es evaluada a verdadero, por lo tanto se ejecuta el bloque de acciones del bucle, es
4
6
decir, pasa a la línea 9.
Se salta hasta la línea que contiene la condición del bucle mientras en ejecución, es decir, hasta la
línea 8
La condición es evaluada a verdadero, por lo tanto se ejecuta el bloque de acciones del bucle, es
decir, pasa a la línea 9.
5
10
Se salta hasta la línea que contiene la condición del bucle mientras en ejecución, es decir, hasta la
línea 8
La condición es evaluada a verdadero, por lo tanto se ejecuta el bloque de acciones del bucle, es
decir, pasa a la línea 9.
6
15
Se salta hasta la línea que contiene la condición del bucle mientras en ejecución, es decir, hasta la
línea 8
La condición evalúa a falso, por lo tanto no se ejecuta el bloque de acciones del bucle y este
termina, es decir, pasa a la línea 12, la línea siguiente a la línea del fin_mientras del bucle.
La suma es: 15
6
Fundamentos de Programación http://programandoenc.webcindario.com
11..22
BBUUCCLLEE RREEPPEETTIIRR…… MMIIEENNTTRRAASS
El bucle REPETIR… MIENTRAS es similar al bucle mientras, la diferencia radica en el
momento de evaluación de la condición.
En el bucle REPETIR… MIENTRAS la condición se evalúa después de ejecutar el
bloque de instrucciones, por lo tanto, el bloque se ejecuta por lo menos una vez. Este bloque se
ejecuta nuevamente si la condición evalúa como verdadero, y no se ejecuta más si se evalúa
como falso.
La forma general del bucle REPETIR… MIENTRAS es la siguiente:
repetir
<bloque instrucciones>
mientras <condición>
Donde, <bloque instrucciones> es el conjunto de instrucciones que se ejecuta y
<condición> es la expresión lógica que determina si el bloque se ejecuta. Si la <condición> se
evalúa como verdadero el bloque es ejecutado de nuevo y si es evaluada como falso no es
ejecutado. Después de ejecutar el bloque de acciones se evalúa la <condición>.
EEjjeemmppllooss
Ejemplo 1.
El problema de calcular la suma de los números naturales desde 1 hasta n (enunciado
anteriormente), se puede solucionar usando el bucle REPETIR… MIENTRAS.
A continuación se describe el algoritmo solución:
7
Fundamentos de Programación http://programandoenc.webcindario.com
1
2
3
4
5
6
7
8
9
10
11
12
n: entero /* se define la variable para el número */
suma: entero /* se define la variable para la suma */
i: entero /* se define la variable para recorrer los números entre 0 y n */
escribir ( “Introduzca el número: ” )
leer (n) /* lee el primer número */
suma :=0 /* inicia la suma en cero */
i =1 /* empieza la variable que recorre los números en 1 */
haga
suma := suma + i /* en cada iteración suma el número i */
i = i + 1 /* incrementa i en 1 para tomar el siguiente número en la próxima iteración */
mientras (i <= n)
escribir ( “La suma es: ”, suma )
Diagrama de Flujo:
Comentarios de: Estructuras iterativas (0)
No hay comentarios