Bucles.

Introducción al concepto de bucle.
Estructura básica de un bucle (Mientras).
Funcionamiento.
Ejemplos.
Ejemplo 1
Ejemplo 2
Ejemplo 3
Ejercicio.

Introducción al concepto de bucle.

Un bucle no es más que una serie de instrucciones que se repiten.

Podemos tener dos tipos de bucles según lo que nos interese comprobar. Tenemos un bucle que se repite mientras se cumple una condición determinada, y otro que se realiza hasta que se cumple la condición que marcamos. En esta lección nos encargaremos del primer tipo.

A la hora de utilizar un bucle, sea del tipo que sea, debemos ir con cuidado y pensar cuando debe acabar ya que si no tuviéramos en cuenta esto podríamos entrar en un bucle sin fin, osea que iríamos repitiendo las mismas líneas teniendo que abortar la aplicación, para poderla finalizar. Por esto es de suma importancia que pensemos, antes de hacer nada, en que momento, como, donde y porque debe acabar el bucle. 

Estructura básica.

En nuestro curso esta estructura básica de un bucle Mientras se representará de la siguiente manera:

Explicaremos línea a línea este bucle:

Primera línea: En esta línea pondremos la <condición> que se debe dar para que se ejecute el bucle. En el momento que la condición sea Falsa se terminará el bucle y se continuará con las siguientes instrucciones.
Segunda línea: Línea o líneas donde pondremos las instrucciones a efectuar en caso de que la condición sea VERDADERA.
Tercera línea: Fin del bucle Mientras. De aquí se pasa a la primera línea del bucle para volver a mirar la condición.

En esta estructura no tenemos ninguna línea que sea opcional.

Funcionamiento.

Ahora veremos cuales son los pasos que se sigue cuando se utiliza esta estructura.

Recuerda que estas líneas se irán repitiendo hasta que la condición se cumpla.

Ejemplo 1. (Situarse en la última posición de nuestra plataforma).

Ahora haremos un pequeño ejemplo para ver exactamente como funciona esta nueva estructura.

Imagina que tenemos a nuestro Robot en la plataforma móvil que definimos en la lección anterior.

Nuestro Robot lo podemos tener situado en la primera o segunda posición y nosotros queremos que se desplace hasta la tercera posición. 

Antes de hacer nada vamos a pensar que instrucciones utilizaremos y donde las pondremos. Recuerda que instrucciones tenemos definidas hasta el momento.

Pasemos a implementar el ejemplo:

Mientras Posición <> 3 hacer
       
MoverDer
Fin Mientras

Observa detenidamente la implementación del código. Vamos a seguir paso a paso como miraríamos si hemos realizado bien la implementeción del código en los dos posibles casos: en el caso de que el Robot se encuentre en la posición 1 o en la posición 2.

A este proceso que acabamos de realizar le llamaremos Traza. La traza, realizar paso por paso un código, es muy importante en el momento de poder detectar posibles errores en nuestra implementación del código, ya que nos podemos dar cuenta si nuestro código falla o realiza alguna acción que no deseamos. Es muy importante que al realizar la traza hagamos todos y cada uno de los pasos indicados y no demos nada por supuesto. En el momento de realizar la traza debemos actuar como si nosotros fuéramos la máquina que realizará el código.

Ejemplo 2. (Bucle infinito).

Vamos a ver un pequeño ejemplo en el que el bucle sería infinito, con lo que nos podría provocar un error en el momento de ejecutar el programa.

Imagina que tenemos el siguiente código. (Este código no tiene enunciado)

Mientras Posición > 1 hacer
       
MoverDer
Fin Mientras

Fíjate que si nuestro Robot en un principio estuviera situado en la posición 2, ¿que pasaría?. Pues que comenzaría a desplazarse hacia la derecha y como a partir de este momento todas las posiciones son mayores de 1, él siempre se movería una posición a la derecha con el peligro de salirse del raíl en el que está trabajando, produciendo así un ERROR. Si realizáramos la traza correspondiente a nuestro código veríamos cual es el error y como lo podríamos solucionar.  

Ejemplo 3. (Bloque sobre la plataforma).

En este ejemplo vamos a utilizar las dos estructuras que hemos visto hasta este momento.

El enunciado sería el siguiente: Tenemos, otra vez, a nuestro Robot montado en la plataforma móvil pero un poco ampliada ya que esta vez tenemos 5 posiciones. Nosotros inicialmente podemos encontrar el Robot en una de las 4 posiciones iniciales y un bloque llamado A en una de estas 4 posiciones. (La colocación del Robot y del bloque será aleatoria). El bloque siempre estará situado en alguna posición. Nosotros queremos encontrar ese bloque, esté donde esté y llevarlo hasta la quinta posición.

Antes de mirar la solución intenta encontrar una solución correcta. Una vez la tengas realiza una traza para ver si los pasos que has pensado realizan lo que queremos. Mira la lista de instrucciones por si no recuerdas alguna.

Ejercicio.

Ahora te ha llegado el momento de demostrar todo lo que has aprendido hasta el momento, ya que te vamos a plantear un ejercicio que deberás solucionar y enviar su solución para que yo vea lo que has aprendido. Inténtalo hacer lo mejor que puedas en breve te enviaré un comentario y una posible respuesta al ejercicio.