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í, <CONDICIÓN> 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 <CONDICIÓN> 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í, <CONDICIÓN> 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 <CONDICIÓN> 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.
Hay 436 opiniones. Opina sobre este curso.
| Cursos | Valoración | Alumnos | Vídeo | |
|---|---|---|---|---|
|
Introducción al lenguaje Pascal Pascal es un lenguaje de alto nivel y de propósito general (es aplicable a un gran número de aplicaciones diversas) desarrollado por el profesor suizo Niklaus Wirth como ... [01/03/06] |
|
9.829 | ||
|
Conmutación. Líneas de acceso (primera parte) En este curso sobre líneas de acceso conmutado aprenderás qué es la conmutación y por qué surge. Conocerás la evolución histórica de estas tecnologías y los principales s... [31/10/08] |
|
741 | ||
|
Sistema operativo. Windows 98 Aprende con nuestro curso acerca del sistema operativo Windows 98, te enseñaremos las variadas funciones que tiene este software y que te ayudará a... [28/04/09] |
|
841 | ||
Publicar en
del.icio.us
digg
meneame