|
Bucles (III).
Recapitulemos.
En muchos de los ejemplos en los que hemos utilizado bucles
creábamos una variable que teníamos que irla incrementando nosotros en el momento que
nos interesase. Observa el ejemplo siguiente:
| Mientras Indice < 11 Entonces |
Valor[Indice] = Valor[Indice] * 2
|
Indice = Indice + 1
|
| Fin Mientras |
En este ejemplo hemos creado una variable llamada Indice que nos servía para irnos moviendo por las diferentes posiciones de una
tabla llamada Valor. Para que la instrucción se repitiera un número determinado de
veces utilizábamos un bucle Mientras... Entonces que nos permitía
repetir unas instrucciones determinado número de veces mientras no se
cumple la condición indicada.
Para ir incrementando la posición en la
tabla, teníamos que ir indicando que la variable que habíamos creado debía aumentar.
Esto lo hacíamos utilizando la instrucción Indice = Indice + 1 con lo
que utilizábamos una línea más de código.
Como ya hemos dicho en otra muchas ocasiones el número de
líneas que ocupe un programa es muy importante, ya que deberemos ahorrar espacio en el
momento de programar. Siempre deberemos pensar que al hacer un programa con menos líneas
este ocupará menos espacio y seguramente funcione más deprisa.
Vamos a explicar una nueva estructura de repetición que
nos resolverá este pequeño problema y nos facilitará la programación en muchos casos.
Nueva estructura de
bucles.
Ahora vamos a ver el mismo ejemplo que hemos
puesto antes pero utilizando una nuevas estructura de repetición. Primero veamos la estructura
y después como la podemos aplicar.
| Desde <Variable> =
<ValorInicial> Hasta <ValorFinal> |
<instrucciones>
|
| Fin Desde |
Vamos a ver las partes de esta
nueva estructura.
<Variable> será el nombre
de la variable que se utilizará para que el ordenador utilice como contador.
Es exactamente igual que en el caso de la estructura del ejemplo anterior.
<ValorInicial> aquí
indicaremos el valor que deseamos que tome inicialmente la variable que
hemos creado. Puede ser cualquier valor, dependerá del caso.
<ValorFinal> aquí
indicaremos el último valor que podrá tomar la variable
anteriormente definida. Cuando esta variable llegue al ValorFinal no se
volverán ha realizar las instrucciones que aparecen en el interior de la estructura de
repetición.
Vamos a ver el mismo ejemplo del principio,
pero utilizando esta nueva estructura.
| Desde Indice = 1 Hasta 11 |
Valor[Indice] = Valor[Indice] * 2
|
| Fin Desde |
Veamos como funcionaría esta
ejemplo.
Al entrar al bucle por primera vez
se crearía una variable nueva llamada Indice. A esta variable se le
daría como valor inicial 1. Se comprobaría la segunda
parte de la definición del bucle para mirar si se cumple la condición o
no. Vemos que la condición (Hasta que la variable tenga valor 11)
no se cumple, con lo que se realizan las instrucciones del interior del bucle.
Al finalizar las instrucciones se llega al Fin Desde, allí se incrementa
en 1 el valor de la variable Indice y se volvería a
mirar si se cumple la condición o no.
En el momento que no se cumple la condición
no se realizarán las instrucciones del interior del bucle.
Observa que a partir de la primera vez
que se repite este bucle no se vuelve a iniciar la variable
Indice, simplemente se incrementa.
Nueva
estructura de bucles con saltos.
En muchas ocasiones nos puede interesar que la
variable no se incremente de 1 en 1,
sino que lo haga con un incremento determinado.
Esto antes lo solucionábamos haciendo que en
la línea: Indice = Indice + 1 en lugar de poner un 1 poníamos el valor que
quisiéramos. Por ejemplo Indice = Indice + 3 nos aumentaría el contador Indice de 3
en 3.
Vamos a ver como podemos hacer esto con
nuestra nueva instrucción.
Simplemente deberemos poner un valor de incremento.
La estructura de repetición quedaría de la siguiente forma:
| Desde <Variable> =
<ValorInicial> Hasta <ValorFinal> Incremento <ValorIncremento> |
<instrucciones>
|
| Fin Desde |
Observa como hemos introducido
un nuevo valor: <ValorIncremento>. De esta forma podemos hacer que
la variable del bucle en lugar de ir de 1 en 1,
vaya según el valor que hayamos introducido en el nuevo valor.
Observa que si no tenemos ningún tipo de valor
el incremento se realiza de uno en uno. Este incremento
también puede ser valores negativos, con lo que conseguiremos que el bucle
en lugar de incrementar, decremente.
Te recomiendo busques alguno de
los ejemplos que hemos realizado en lecciones anteriores y modifiques
el bucle que teníamos por este nuevo.
|