canal visual basic .net

Recursos Visual Basic.NET, VB.NET, Manuales de programación, Tutoriales, Foros de programación, Comunidad de programadores

Usuarios activos:  88

Manuales : Solución ejemplo condicionales II

Posible solucion 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 posicion 1.

   Pasaremos a ver y comentar la primera de las dos soluciones:

Si BloqueEncima = "A" entonces Miramos si encima de la primera posicion 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 posicion a la derecha, ahora estamos en la plataforma 2.
        Si BloqueEncima = "A" entonces Miramos si encima de la segunda posicion 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 posicion a la derecha, ahora estamos en la plataforma 3.
                CogerBloque Como no queda otra posible colocacion, 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 instruccion.

   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, (ejecucion del programa línea a línea), que el Robot conseguiría su objetivo. Cuando veamos que una misma instruccion se repite muchas veces nos deberíamos pensar que puede ser que exista alguna otra solucion que sea un poco más corta y con menos repeticion de instrucciones. No pienses que esto siempre es así, ya que puede haber casos en los que la repeticion 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 instruccion 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 posicion a la derecha. Posicion 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 posicion a la derecha. Posicion 3.
        Fin Si Terminamos el segundo Si.
Fin Si Terminamos el primer Si.
CogerBloque Nos encontrásemos en la situacion que fuese cogeríamos el bloque.

   Si te fijas en este ejemplo la instruccion 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 posicion 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.

Visual Studio .VisualBasic.net .ADO.NET .ASP.NET .Framework .Crystal report
[Visual Basic .NET · Información legal · Condiciones de uso · Publicidad · Contacto · RSS novedades Foro · Inicio]
Un sitio web de Internelia (Ontecnia) © Copyright 2013 canalvisualbasic.net. Todos los derechos reservados