|
|
|
|
|
|
CarlosPes.com
> Curso
de Diseño de Algoritmos
> Repetitiva Para en Pseudocódigo |
|
Instrucción
Repetitiva Para en
Pseudocódigo
|
|
|
|
|
¿Qué es
una instrucción de control repetitiva para?
|
|
En
pseudocódigo, para escribir una instrucción
repetitiva para se utiliza la sintaxis: |
|
para <variable>
← <valor_inicial> hasta
<valor_final>
[ incremento <valor_incremento> ] hacer
<bloque_de_instrucciones>
fin_para |
|
|
En
una instrucción repetitiva para, siempre se utiliza una
<variable> a la que se debe asignar un
<valor_inicial>. En cada iteración del bucle,
al valor de la <variable> se le suma el
<valor_incremento> y, cuando la <variable>
supera el <valor_final>, el bucle finaliza.
En consecuencia, cuando el flujo de un algoritmo llega a un bucle para,
en primer lugar, se asigna el <valor_inicial> a la
<variable> y, a partir de ese instante, existen dos
posibilidades:
Si el valor de la <variable> es mayor que el
<valor_final>, entonces no se ejecuta el bloque de
instrucciones, y el bucle para finaliza sin realizar ninguna
iteración.
Si el valor de la <variable> es menor o igual que el
<valor_final>, entonces, se ejecuta el bloque de
instrucciones y, después, se le suma el
<valor_incremento> a la <variable>,
volviéndose, de nuevo, a comparar el valor de la
<variable> con el <valor_final>. Y
así sucesivamente, hasta que, el valor de la
<variable> sea mayor que el <valor_final>.
En resumen, una instrucción repetitiva para
permite
ejecutar, repetidamente, un bloque de instrucciones, en base a un valor
inicial y a un valor final.
El bucle para es ideal usarlo cuando, de antemano, ya se sabe el
número de veces (iteraciones) que tiene que ejecutarse un
determinado bloque de instrucciones.
El bucle para es una variante del bucle mientras y, al igual que
éste, puede iterar cero o más veces. Sin embargo,
el bucle para sólo se suele usar cuando se conoce el
número exacto de veces que tiene que iterar el bucle.
Éste es el caso del problema planteado en el ejemplo del
apartado "Variable Contador", en el cual, se sabe de antemano que
el bucle tiene que iterar, exactamente, diez veces.
Ejemplo 1: Por tanto, dicho problema, se puede
resolver con una
instrucción repetitiva para de la siguiente forma: |
|
algoritmo Numeros_del_1_al_10
variables
entero contador
inicio
para contador ← 1 hasta 10 incremento 1
hacer
escribir( contador )
fin_para
fin |
|
|
Ejemplo
2: Cuando el
incremento es 1, se puede omitir la palabra reservada incremento, y su
valor. |
|
algoritmo Numeros_del_1_al_10
variables
entero contador
inicio
/* Al no aparecer el valor del incremento,
se entiende que es
1. */
para contador ← 1 hasta 10 hacer
escribir( contador )
fin_para
fin |
|
|
|
La
traza de ambos algoritmos es la misma: |
|
|
|
Explicación
de la traza:
- Primeramente,
se le asigna el valor 1 a contador (acción 1).
- A
continuación, se comprueba si contador es menor o igual que
10 (acción 2) y, puesto que esto es verdadero, se ejecuta el
bloque de instrucciones del bucle para (una sola instrucción
en este caso).
- Así
pues, se muestra por pantalla el valor de contador (acción
3).
- Después,
se incrementa en 1 el valor de la variable contador (acción
4).
- Posteriormente,
se vuelve a comprobar si contador es menor o igual que 10
(acción 5).
- Y
así sucesivamente, mientras que, el valor de contador sea
menor o igual que 10, o dicho de otro modo, hasta que, el valor de
contador sea mayor que 10.
- En
este algoritmo, el bloque de instrucciones del bucle para se ejecuta
diez veces (iteraciones).
Ejemplo
3: Para resolver
el problema del ejemplo del apartado "Cambios en
un Bucle Mientras",
utilizando un bucle para, debe utilizarse un
incremento negativo. |
|
algoritmo Numeros_del_10_al_1
variables
entero contador
inicio
para contador ← 10 hasta 1 incremento -1
hacer
escribir( contador )
fin_para
fin |
|
|
En
este algoritmo, el <valor_inicial> y el
<valor_final> son el 10 y el 1, respectivamente, al
revés que en el algoritmo anterior. De manera que, el bucle
iterará, hasta que, el valor de contador sea menor que 1, o
dicho de otro modo, mientras que, el valor de contador sea mayor o
igual que 1.
Ejemplo 4: Por otra parte, también es posible omitir la
palabra reservada incremento y su valor, entendiéndose, en
ese caso, que es -1, ya que, el <valor_inicial> es mayor
que el <valor_final> y, por tanto, sólo es
razonable un incremento negativo. |
|
algoritmo Numeros_del_10_al_1
variables
entero contador
inicio
/* Al no aparecer el valor del incremento,
se entiende que es -1. */
para contador ← 10 hasta 1 hacer
escribir( contador )
fin_para
fin |
|
|
Para
los casos en que el incremento es negativo, también se puede
utilizar la sintaxis: |
|
para <variable>
← <valor_inicial> hasta
<valor_final>
[ decremento <valor_decremento> ] hacer
<bloque_de_instrucciones>
fin_para |
|
|
Ejemplo
5: Así,
podemos escribir: |
|
algoritmo Numeros_del_10_al_1
variables
entero contador
inicio
para contador ← 10 hasta 1 decremento 1
hacer
escribir( contador )
fin_para
fin |
|
|
Por
consiguiente, la sintaxis completa de una instrucción
repetitiva para es: |
|
para <variable>
← <valor_inicial> hasta
<valor_final>
[ incremento <valor_incremento> |
decremento <valor_decremento> ] hacer
<bloque_de_instrucciones>
fin_para |
|
|
El
carácter tubería ( | ) se utiliza para indicar
que, o bien se escribe
incremento
<valor_incremento>
o bien se escribe
decremento
<valor_decremento>
pero, no ambos. |
|
|
|
|
|
|
|
|