Estructura condicional.

Introducción al concepto de condición.
Estructura básica de una condición.
Funcionamiento
Ejemplos
Ejemplo 1
Ejemplo 2
Ejemplo 3

Introducción al concepto de condición.

Una instrucción condicional es aquella que nos permite "preguntar" sobre el entorno que nos rodea, pudiendo así actuar según la respuesta obtenida. Estas respuestas siempre serán Verdadero o Falso, pudiendo así tomar, en un principio, dos caminos diferentes.

Pongamos un pequeño ejemplo.
Imagina que tenemos nuestro robot subiendo las escaleras y le indicamos lo siguiente: Si estás en el escalón 200 entonces no continúes subiendo, sino continua tu ascensión. Como puedes ver aquí se nos presenta una condición y según en el punto de la escalera en la que se encuentre nuestro robot se parará o continuará subiendo.

Estructura básica de una condición.

En nuestro curso esta estructura se representará de la siguiente manera:

Estructura Si

Explicaremos línea a línea la estructura condicional:

Primera línea: En esta línea pondremos la <condición> que nos interesa evaluar.
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: A partir de aquí tendremos las instrucciones que se ejecutarán cuando la condición sea FALSA.
Cuarta línea: Línea o líneas donde pondremos las instrucciones a efectuar en caso de que la condición sea FALSA.
Quinta línea: Línea que nos indica el final de la estructura condicional.

La tercera y cuarta línea son opcionales, ya que puede haber un momento en el que al mirar una condición nos interese solo una de las posibles respuestas.

Funcionamiento.

 Ahora veremos los dos casos que se pueden dar con esta estructura básica.

  Veamos los pasos que podemos seguir en caso de que la condición planteada sea Verdadera.

Observa los pasos que seguiríamos, en el supuesto que la condición fuera Verdadera. En este caso solo hace tres de las cinco líneas de la estructura básica.

Observa que las líneas que cambia de color no se ejecuta.

Siguiendo nuestro ejemplo del Robot, este sería el caso en el que el robot se encontraría en el escalón 200 y por lo tanto tendría que detener su ascensión.

  Veamos ahora los pasos que podemos seguir en caso de que la condición planteada sea Falsa.

Observa los pasos que seguiríamos, en el supuesto que la condición fuera Falsa. En este caso se pasa por cuatro de las 5 líneas de la estructura básica.

Observa que la línea que cambia de color no se ejecuta.

Mirando ahora el ejemplo del Robot, sería el caso en el que el Robot NO se encuentra en el escalón 200 y que por lo tanto debe continuar ascendiendo por la escalera.

Ejemplo 1. (Subiendo escaleras hasta el escalón 200).

Ahora veremos como podemos poner nuestro ejemplo en esta estructura, tal y como lo haríamos si estuviésemos creando un pequeño algoritmo.

Recordemos el ejemplo: Tenemos nuestro pequeño Robot que sube una escalera. En un momento determinado queremos que tome una decisión según el punto en el que se encuentra. La decisión es la siguiente: si se encuentra en el escalón 200 debe detener el ascenso, mientras que si está en cualquier otro sitio debe continuar subiendo.

Ante un problema así debemos plantearnos cual es la estructura que debemos utilizar, en este caso es fácil ya que solo hemos estudiado una, ;-) Cuando tenemos clara la estructura debemos mirar que es lo que debemos poner en cada lugar y cuales son las instrucciones que debemos utilizar.

Vamos a definir las instrucciones que nos hacen falta para este ejemplo:

Escalón Nos devolverá el número de escalón en el que se encuentra en este momento nuestro Robot.
Subir Hará que el Robot continúe su ascensión.
Parar Detendrá el Robot.

Estas "instrucciones" están hechas a medida porque estamos utilizando un pseudocódigo, pero podrían ser sustituidas por instrucciones reales en el momento en el que nosotros decidiéramos en que lenguaje realizar nuestro programa.

Una vez hemos definido las instrucciones y mirado cual es la estructura que queremos utilizar pasaremos a pensar construir el código. Quiero decir que al principio puede ser que te cueste un poco encontrar una solución lógica. Pero piensa que esto, como la mayoría de las cosas, requieren mucha paciencia, mucha práctica y algo de concentración.

Pasemos a implementar el ejemplo:

Si Escalón = 200 entonces
       
Parar
Sino
       
Subir
Fin Si

Observa detenidamente la implementación del código y mira cuales serían los pasos que deberíamos seguir cuando se dieran los dos posibles casos de nuestro problema. Recuerda que para un mismo problema pueden existir diferentes soluciones

Ejemplo 2. (Moverse de una posición a otra).

Una vez visto el ejemplo anterior vamos a plantear otros que nos ayudarán a entender y a familiarizarnos con esta estructura.

Este es un ejemplo un poco tonto pero nos puede servir para acabar de entender como funciona esta estructura condicional.

Imagina que tenemos a nuestro Robot en una plataforma móvil que tiene dos posiciones posibles: la   1 o la 2 (Observa el dibujo).

Lo que nosotros queremos que haga el Robot es lo siguiente: si el Robot se encuentra en la posición 1 debe moverse a la 2, y si se encuentra en la posición 2 se deberá mover a la 1.

Para este ejemplo definiremos unas nuevas instrucciones que iremos utilizando en futuros ejemplos:

MoverDer Moverá el Robot a la derecha una posición.
MoverIzq Moverá el Robot a la izquierda una posición.
Posición Nos devolverá la posición en la que se encuentra el Robot en el momento de hacer la "pregunta".

   Antes de mirar la posible solución, piensa un poco y plantéate una posible solución.

Ejemplo 3. (Coger el bloque y moverse).

Ahora que ya sabemos como hacer que nuestro Robot se mueva según la posición en la que se encuentra vamos ha realizar un ejercicio que nos haga lo siguiente:

Tenemos a nuestro Robot en la plataforma móvil definida anteriormente, pero esta vez con tres posiciones (Observa el dibujo).

Y encima de una de estas tres posiciones pondremos un bloque (caja) llamada "A".

Lo que queremos que realice nuestro Robot es lo siguiente: El Robot siempre partirá de la posición 1, pero no conocerá donde está situado el bloque y este siempre debe estar en una de las 3 posiciones. Nosotros deberemos hacer que es Robot se desplace por la cinta mirando si el bloque se encuentra en la nueva posición. Si el bloque está en la posición en la que se encuentra el Robot, este debe cogerlo.

Como siempre vamos a definir las nuevas instrucciones que necesitaremos para solucionar este problema, recuerda que si necesitas alguna de las instrucciones definidas anteriormente puedes hacerlo. Eso sí, no puedes inventarte ninguna instrucción nueva. Si no recuerdas las instrucciones que hemos definido hasta ahora mira la lista de instrucciones.

BloqueEncima Nos devolverá el nombre del bloque que está encima del Robot.
CogerBloque El Robot cogerá el bloque.

Sería muy recomendable que antes de mirar la solución lo intentaras tu solito.

Intenta ampliar los ejemplo que hemos dado hasta este momento y buscar una implementación del código lo más sencilla posible. En próximas lecciones pondremos más ejemplos y algunos ejercicios a realizar. Si tiene alguna pregunta no dudes en hacerla.