Bloque de Adsense

Posible solución al ejemplo 3  

Posted by Danny in

Vamos a dar dos posibles soluciones para el problema que se nos plantea, en este e-mail y en el siguiente. Recordemos que el Robot siempre partirá de la posición 1 tal y como indica el enunciado.

Primera solución.-

1.- Si BloqueEncima = "A" entonces
2.-
CogerBloque
3.-
Sino
4.-
MoverDer
5.-
Si BloqueEncima = "A" entonces
6.-
CogerBloque
7.-
Sino
8.-
MoverDer
9.-
CogerBloque
10.-
Fin Si
11.-
Fin Si

Explicación del ejemplo.-

1.- Miramos si encima de la primera posición, posición en la que sabemos que se encuentra seguro al iniciar el programa, está el bloque A.

2.- Si es así, verdadera lo cogemos. En este caso, hemos terminado el programa. Ya que continuaría con la línea 3, punto donde se separa la parte de la respuesta a la condición verdadera y falsa, y al haberse cumplido la parte Verdadera saltaríamos hasta la línea 11.

3.- Si no se cumple la puesta en la línea 1, continuamos el programa.

4.- Hacemos desplazar al Robot hacia la derecha. Hecho esto, nos encontramos en la posición 2 de nuestra plataforma.

5.- Miramos si encima de esta posición (segunda posición) está el bloque A.

6.- Si es así, verdadera la cogemos. En este caso, hemos terminado el programa; ya que continuaría con la línea 7, punto donde se separa la parte de la respuesta a la condición verdadera y falsa, y al haberse cumplido la parte Verdadera saltaríamos hasta la línea 10.

7.- Si no se cumple la puesta en la línea 5, continuamos el programa.

8.- Hacemos desplazarse el Robot a una posición derecha. Hecho esto, nos encontramos en la posición 3 y última de nuestra plataforma.

9.- Como sabemos seguro que el bloque "A" está en alguna de las 3 posiciones y ya hemos visto que no estaba ni en la 1, ni en la 2. Sin mirar qué bloque hay en esta posición podemos cogerlo.

10.- Fin del segundo Si.

11.- Fin del primer Si.

Observe como dentro de un Si hemos puesto otro Si. Con lo que hemos podido hacer una pregunta después de haber visto que la primera era falsa.

Observe 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 al final conseguiría su objetivo. Cuando veamos que una misma instrucción se repite muchas veces nos deberíamos plantear que puede ser que exista alguna otra solución que sea un poco más corta y con menos líneas repetidas.

0 comentarios

Publicar un comentario