|
Estructuras
condicionales (II).
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.
|