Bloque de Adsense

ads
Mostrando entradas con la etiqueta Solucion de Problemas. Mostrar todas las entradas

Ejemplo 1 - Situarse en la última posición de nuestra plataforma (II)  

Posted by Danny in

Continuamos con el ejemplo que planteamos en la lección anterior.

-Tenemos el Robot en la posición 2.

a)Miramos la condición que nos pone la estructura Mientras, como no nos encontramos en la posición 3, entramos en el bucle.

b)Nos movemos una posición hacia la derecha (MoverDer).

c)Vamos a la última línea del bucle. (Fin Mientras), la cual nos manda a la primera línea del bucle.

d)Volvemos a mirar si se cumple la condición. Vemos que ya nos encontramos en la tercera posición. Ya no hace falta que entremos en el bucle. Ya podemos seguir con las instrucciones que tenemos después del bucle.

A este proceso que acabamos de realizar le llamaremos Traza. La traza, realizar paso por paso un código, es muy importante en el momento de poder detectar posibles errores en nuestra implementación del código; ya que nos podemos dar cuenta si nuestro código falla o realiza alguna acción que no deseamos. Es muy importante que al realizar la traza hagamos todos y cada uno de los pasos indicados y no demos nada por supuesto. En el momento de realizar la traza debemos actuar como si nosotros fuéramos la máquina que realizará el código.



Ejemplo 1 - Situarse en la última posición de nuestra plataforma (I)  

Posted by Danny in

Imagine que tenemos a nuestro Robot en la plataforma móvil que definimos en lecciones anteriores, con tres posibles posiciones 1 - 2 - 3.

Nuestro Robot lo podemos tener situado en la primera o segunda posición y nosotros queremos que se desplace hasta la tercera posición.

Pasemos a implementar el ejemplo:

Mientras Posición <> 3 hacer
MoverDer

Fin Mientras

Observe el código que hemos propuesto para la resolución de este primer ejemplo con bucles. Vamos a seguir paso a paso cómo miraríamos si hemos realizado bien la solución del código en los dos posibles casos (Robot posicionado en la posición 1 ó en la 2).

-Tenemos el Robot en la posición 1

a)Miraríamos la primera línea, la que marca la condición. La condición nos dice que entremos en el bucle mientras no estemos en la posición 3 (Mientras Posición <> 3 hacer). Como en este caso no estamos en la posición indicada, ya sabemos lo que nos toca, entrar en el bucle.

b)Nos movemos una posición a la derecha (MoverDer).

c)Vamos a la última línea del bucle. (Fin Mientras).

d)Volvemos a mirar si se cumple la condición. Como todavía no se cumple, ya que nos encontramos en la posición 2, entraríamos otra vez dentro del bucle.

e)Nos volveríamos a desplazar una posición a la derecha.

f)Volveríamos al final del bucle donde nos mandaría otra vez a la primera línea de éste para así volver a comprobar la condición.

g)Ahora, como ya nos encontramos en la posición deseada, no entraríamos dentro de nuestro bucle y seguiremos con la instrucción que encontrásemos después de (Fin Mientras); en este caso finalizamos el programa.

Otra posible solución al ejemplo 3  

Posted by Danny in

Ahora veremos una solución al mismo problema en el que sólo se utilizan 7 líneas.

1.- Si BloqueEncima <> "A" entonces
2.-
MoverDer
3.-
Si BloqueEncima <> "A" entonces
4.-
MoverDer
5.-
Fin Si
6.-
Fin Si
7.-
CogerBloque

1.- Preguntamos si el posible bloque que hay en esta posición es diferente a "A". De esta forma, si el bloque fuera el "A", saldríamos del bucle en la línea 6.

2.- Nos moveríamos una posición a la derecha, con lo que ya estaríamos situados en la segunda posición.

3.- Preguntamos si el posible bloque que hay en esta posición es diferente a "A".

4.- Si estamos en esta línea quiere decir que el bloque "A" no estaba en la primera posición, ni en la segunda; con lo que nos desplazaremos otra posición a la derecha para situarnos en la tercera posición.

5.- Línea que nos indica el final del segundo Si.

6.- Línea que nos indica el final del primer Si.

7.- En esta línea, sería el momento en el que cogemos el bloque que existe en la posición que nos encontramos.

Si se fija 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, ha sido situar el Robot en la posición en la que se encuentra el bloque A.

Observe 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.

Aquí le muestro una lista de operadores lógicos que podemos utilizar:

- = Igual que

- < Menor que

- > Mayor que

- <> Diferente que

Intente ampliar los ejemplo que hemos dado hasta este momento y buscar una implementación del código lo más sencilla posible. En próximas lecciones, pondremos más ejemplos y algunos ejercicios a realizar.

Formas de solucionar posibles problemas  

Posted by Danny in

Para solucionar posibles problemas de repetición de la misma instrucción o de códigos interminables, disponemos de diferentes instrucciones que nos permiten reducir el número de líneas de un programa facilitando así la compresión, la modificación del código y un posible error en la ejecución del programa.

Observe una posible solución para nuestro problema. (Piense que para un mismo problema no sólo existe una solución, yo le ofreceré una, pero eso no quiere decir que sea la mejor). Las instrucciones que aparecen en esta solución se irán explicando a lo largo del curso.

Repetir hasta que NúmeroEscalón = 5
LevantePieIzquierdo

LevantePieDerecho

Sume 1 a N
úmeroEscalón
Fin Repetir

Lo que hemos creado es una repetición de código hasta que se cumple una determinada condición. Compare las dos posibles soluciones al mismo programa.

Seguramente, al no conocer las instrucciones de la segunda solución, le parecerá mucho más fácil la primera solución, pero estoy seguro que cuando haya realizado alguna lección más del curso comprenderá que la segunda es mucho más fácil de comprender y de modificar que la primera. Ya intentaré demostrárselo a lo largo de todo el curso.

Contenido

Adsense