Posible solución Ejemplo 3
Posible
solución Ejemplo 3
Vamos a dar dos posibles soluciones para el problema que se
nos plantea de coger un bloque que tenemos colocado en una de
las tres posiciones. Antes de nada recordemos que el Robot
siempre partirá de la posición 1.
Pasaremos a ver y comentar la primera de las dos soluciones:
Si BloqueEncima = "A" entonces
Miramos si
encima de la primera posición está el bloque A.
CogerBloque
Si es verdad
lo cogemos. En este caso hemos terminado el programa.
Sino
Si no está
el bloque A, continuamos el programa.
MoverDer
Nos movemos
una posición a la derecha, ahora estamos en la
plataforma 2.
Si BloqueEncima = "A" entonces
Miramos si
encima de la segunda posición está el bloque A.
CogerBloque
Si es verdad
lo cogemos. En este caso terminaríamos el programa.
Sino
Si no está
el bloque A, continuamos el programa.
MoverDer
Nos movemos
una posición a la derecha, ahora estamos en la
plataforma 3.
CogerBloque
Como no queda
otra posible colocación, cogemos el bloque.
Fin
Si
Fin del
segundo Si.
Fin
Si
Fin del
primer Si.
Observa como dentro de un Sino hemos puesto
otro Si, con lo que hemos podido hacer una
pregunta después de haber realizado una instrucción.
Observa que para este ejemplo hemos necesitado 11 líneas y
muchas de estas líneas están repetidas varias veces. Esto
no quiere decir que no funcionaría, ya que hemos visto en la
traza, (ejecución del programa línea a línea), que el
Robot conseguiría su objetivo. Cuando veamos que una misma
instrucción se repite muchas veces nos deberíamos pensar
que puede ser que exista alguna otra solución que sea un
poco más corta y con menos repetición de instrucciones. No
pienses que esto siempre es así, ya que puede haber casos en
los que la repetición de instrucciones no se pueda evitar.
Ahora veremos un ejemplo en el que solo se utilizan 7 líneas
y que en ellas solo se repite una instrucción 2 veces.
Si BloqueEncima <> "A" entonces
Preguntamos
si el bloque es diferente de A. Si fuera
A saldríamos del Si.
MoverDer
Si fuera
diferente de A nos moveríamos una
posición a la derecha. Posición 2.
Si BloqueEncima <> "A" entonces
Preguntamos
si el bloque es diferente de A. Si fuera
A saldríamos del Si.
MoverDer
Si fuera
diferente de A nos moveríamos una
posición a la derecha. Posición 3.
Fin Si
Terminamos el
segundo Si.
Fin
Si
Terminamos el
primer Si.
CogerBloque
Nos
encontrásemos en la situación que fuese cogeríamos el
bloque.
Si te fijas en
este ejemplo la instrucción CogerBloque está fuera del Si ya
que lo que hemos conseguido, con todas las instrucciones que
tenemos dentro de nuestra estructura condicional, a sido
situar el Robot en la posición en la que se encuentra el
bloque A. Observa que en este caso desde un
principio preguntamos por diferente (<>) y no por igual
(=) con lo que conseguimos que la forma de plantearnos el
código sea un poco diferente. Mira la lista
de operadores lógicos.
Volver
Wyszukiwarka
Podobne podstrony:
solución ejemplo 2solución ejemplo 3 MientrasSolucionari SisplauCómo se dice Sugerencias y soluciones a las actividades del manual de A2arcoiris soluciones nagrania i odpowiedziSolución Variables 1La amenaza del buen ejemploejemplos? recuperacion??toswięcej podobnych podstron