Estructuras condicionales (II).

Recapitulemos.
Nueva estructura condicional.
Ejemplo.

Recapitulemos.

Vamos a repasar la estructura condicional que conocemos hasta este momento Si, con un pequeño ejercicio.

Vamos a hacer que nuestro ya conocido Robot se vuelva a pasear entre las plataformas móviles. El robot lo situaremos en la primera de 10 posiciones posibles y encima de cada una de ellas habrá colocado uno de los conocidos bloques con un nombre determinado (A, B, o C), lo que queremos es lo siguiente: el Robot debe pasearse por todas las posiciones hasta llegar a la última (en la última no existirá ningún bloque), mirando que bloque está en la posición en la que se encuentre, contabilizando las veces que aparecen los bloques. Cuando llegue a la última posición nos debe indicar el nombre del bloque que ha aparecido más veces.

BloqueA: texto
BloqueB: texto
BloqueC: texto
Mientras Posición <> 10 hacer

Si BloqueEncima = "A" entonces

BloqueA = BloqueA + 1

Fin Si

Si BloqueEncima = "B" entonces

BloqueB = BloqueB + 1

Fin Si

Si BloqueEncima = "C" entonces

BloqueC = BloqueC + 1

Fin Si

MoverDer

Fin Mientras
Si BloqueA > BloqueB entonces

Si BloqueA > BloqueC entonces

Mostrar "Hay más bloques A"

Si no

Mostrar "Hay más bloques C"

Fin si

Si no

Si BloqueB > BloqueC entonces

Mostrar "Hay más bloques B"

Si no

Mostrar "Hay más bloques C"

Fin si

Fin si

No explico el funcionamiento del código ya que es bastante sencillo de entender y supongo que todos los que habéis seguido el curso hasta este punto lo podréis comprender con facilidad, si no acabas de entenderlo o tienes alguna duda házmelo saber, plis.

Fijaos que en este ejemplo para poder saber que bloque es el que se encuentra encima y incrementar su variable hemos tenido que utilizar 9 líneas en las que hay tres estructuras Si, una para cada bloque. Imagina que en lugar de existir tres tipos de bloques hubiéramos podido encontrar 20, ¿que hubiera pasado con el número de líneas y el número de instrucciones Si?

Para facilitar esto existe una nueva estructura llamada En caso de, veamos su estructura.

Nueva estructura condiciona.

Ahora veremos como es la nueva estructura condicional. Esta estructura, como ya hemos dicho anteriormente es muy útil en el momento en el que debemos tomar diferentes decisiones de una misma condición. La estructura sería la siguiente:

En caso <condición> hacer

<valor 1>

<instrucciones>

<valor 2>

<instrucciones>

...

Fin caso

Vamos a explicar como funciona esta nueva estructura condicional. En el lugar donde aparece la palabra condición pondremos lo que nosotros queremos evaluar, puede ser una variable, una instrucción o cualquier cosas que en nuestro programa tome diferentes valores.
En el lugar de <valor 1>, <valor 2>, etc. pondremos los diferentes valores que puede tomar la decisión según los cuales el programa debe hacer una u otra cosa. (Recuerda que pueden existir tantos valores como a nosotros nos convenga).
Después de las líneas donde pondremos los diferentes valores que puede tomar la condición colocaremos las instrucciones que queremos que se realicen. Piensa que estas instrucciones pueden ser solo una operación o todo una serie de instrucciones anidadas, tan complejas como lo requiera el programa que estamos realizando.

Ejemplo.

Vamos a aplicar esta estructura al ejemplo del principio de la lección:

BloqueA: texto
BloqueB: texto
BloqueC: texto
En caso BloqueEncima hacer

"A"

BloqueA = BloqueA + 1

"B"

BloqueB = BloqueB + 1

"C"

BloqueC = BloqueC + 1

Fin Caso
Si BloqueA > BloqueB entonces

Si BloqueA > BloqueC entonces

Mostrar "Hay más bloques A"

Si no

Mostrar "Hay más bloques C"

Fin si

Si no

Si BloqueB > BloqueC entonces

Mostrar "Hay más bloques B"

Si no

Mostrar "Hay más bloques C"

Fin si

Fin si

Observa detenidamente las líneas en las que aparece la nueva estructura y compárala con las líneas correspondientes del primer ejemplo. Observa que aquí según el valor que toma la condición BloqueEncima se realizan unos u otros pasos. (La diferencia de utilización entre una y otra instrucción sería mucho más evidente si las opciones a encontrar fueran más numerosas).

En esta lección no vamos a plantear ningún otro ejercicio extra, lo haremos en próximas lecciones donde explicaremos como deberemos plantearnos problemas un poco más complejos, donde crearemos una nueva lista de instrucciones y donde utilizaremos la mayoría de las instrucciones planteadas hasta el momento.