|
Estructura
condicional.
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:

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.
|