E
INFORMTICA
Estudiante
TPICO GENERADOR
Qu relacin tienen las instrucciones repetitivas con los ciclos?
Meta de comprensin
Desarrolla comprensin acerca de las instrucciones de decisin. de GVR
Desempeos
Aplica decisiones de control de Guido de acuerdo a definiciones y lgica de uso.
Emplea condiciones en programas de GVR para reducir lneas de cdigo.
Meta de comprensin
Desarrolla comprensin sobre el uso de cdigos cclicos de GVR
Desempeos
Usa el ciclo mientras en ejercicios prcticos.
Disea programas y mundos en GVR con instrucciones cclicas.
HISTORIA DE GUIDO
2005-02-09
GvR 1.2 liberado! (Junto con un ligero rediseo del sitio web)
GvR
ahora
incluye
resalte
sintctico
y
buen
soporte
para
internacionalizacin, con versiones disponibles en francs, espaol, rumano,
cataln y dans.
2005-03-02
Se ha liberado GvR 1.2.1, que corrige un error que haca que GvR fallara en
algunas
computadoras
con
Windows
98.
GvR ha sido probado y se ha reportado su funcionamiento en
Win98/ME/2K/XP, Mac OS X, y varias distribuciones de GNU/Linux.
2005-04-04
GvR 1.2.1 ahora est disponible en Debian Sid!
2005-04-08
GvR 1.2.1 ahora est disponible en el depsito apt de Ubuntu Universe
("Hoary")!
2005-05-10
Se han liberado GvR 1.3.1 y las Lecciones GvR 0.4!
2005-09-30
GvR 1.3.2 ha sido liberado! Principalmente corrige errores de localizacin.
2005-11-02
Se ha liberado GvR 1.3.4. Esta versin agrega soporte para wxPython 2.6.
2006-02-04
Se agreg soporte para italiano, y se hicieron pequeas correcciones.
2006-04-17
GvR ha muerto, larga vida a GvRng!
GvRng, que quiere decir algo as como GvR prxima generacin, es un
rediseo de el gvr original para hacerlo ms fcil de mantener y ms
estable que el viejo.
Del punto de vista del usuario, el mayor cambio es que GvRng utiliza GTK
como GUI y GTK Sourceview como editor de mundos y programas.
La ltima versin es la 1.7.
La desventaja es que GvRng ya no es compatible con Windows.
Los usuarios de Windows pueden usar el viejo gvr, que est basado en
wxPython.
Hay planes para crear una interfaz en Windows para GvRng.
2006-07-14
GvRng funciona en Windows
Ahora GvRng est disponible tambin en la plataforma windows.
An no hay instalador, pero puedes probar el paquete zip una vez que
instales Python y GTK+.
El instalador estar disponible pronto.
2007-05-12
Ahora GvRng tiene un diseo con una ventana nica
GvRng est empacado en una ventana de manera que todo est al
alcance.
No ms extravos de las ventanas de edicin o de la ventana de
referencia, todo en un mismo lugar.
Cada archivo del mundo debe empezar con la lnea de ubicacin inicial del
robot de la forma
Robot 1 5 E 4
Donde los valores despus del comando Robot significan:
avenida (columna)
calle (fila)
direccin inicial (N, O, S, o E)
nmero de bocinas (opcional)
El formato de un descriptor de Pared(Wall) es:
Pared 4 4 N 2
Actividad 1
1. Coloca un robot con cuatro bocinas en la esquina de la primera avenida y calle
quinta mirando al este. l debera avanzar dos cuadras al este, soltar una bocina, y
luego continuar yendo una cuadra y soltando una bocina en cada interseccin
hasta que se le acaben las bocinas. Luego deber avanzar un paso ms y
apagarse. Cuando haya terminado, la pantalla debera verse as:
2. Inicia a Guido en la esquina inferior izquierda, mirando al este. Haz que de tres
pasos, gire a la izquierda, de tres pasos ms, gire a la izquierda de nuevo, y as
sucesivamente hasta que l est de regreso al punto de inicio mirando al este de
nuevo.
3. Construye un mundo con la siguiente apariencia:
Actividad 2
1. Define una instruccin devolver que hace que guido se devuelva un bloque
dejndolo mirando a la direccin inicial. A continuacin usa devolver en un
programa completo tal que Guido comience en la esquina de la segunda calle y
la tercera avenida, se mueva tres cuadras al norte, se devuelva una cuadra, gire
a la derecha y entonces se mueva dos bloques al este.
2. Cada da, Guido se despierta con el sonido del peridico "Tiempos Robticos"
golpeando el frente de la puerta de su casa. Guido desea mantenerse
actualizado en noticias acerca de robtica. Por lo tanto, sale y recoge el
peridico cada maana. Aqu hay una fotografa que muestra a Guido dormido
cuando el peridico, representado por una bocina, golpea la puerta. Escribe un
programa incluyendo la instruccin de girarderecha y una nueva instruccin de
giroalrededor, para hacerlo ir por el peridico y regresar a la cama, donde le
gusta leer.
Necesitars un lugar para colocar la bocina en el mundo, como se muestra en la
figura:
Haz que Guido empiece en la posicin mostrada hacia el oeste. Haz que
obtenga la bocina y despus regrese al mismo lugar, mirando a la misma
direccin donde comenz.
Instruccin para ubicar bocinas:
movimientos
Una vez que definas una nueva instruccin puedes usarla como si esta estuviera
incorporada en GvR
definir girarderecha:
girarizquierda
girariqzuierda
girariqzuierda
mover
girarderecha
mover
girarderecha
mover
girarderecha
mover
girarderecha
apagar
Aqu le estamos diciendo que si el frente est libre, se puede mover y tomar tres
zumbadores. O "sino" (si su frente no est libre), entonces queremos que gire a la
izquierda dos veces. Despus que se apague.
frente_libre(front_is_clear)
frente_bloqueada(front_is_blocked)
izquierda_libre(left_is_clear)
izquierda_bloqueado(left_is_blocked)
derecha_libre(right_is_clear)
derecha_bloqueado(right_is_blocked)
10
proximo_a_zumbador(next_to_a_beeper)
Verdadero
si
Guido
est
ubicado en una interseccin
que tiene una bocina. De lo
contrario falso.
no_proximo_a_zumbador(not_next_to_a_beep
er)
zumbadores_en_bolsa(any_beepers_in_beepe
r_bag)
sin_zumbadores_en_bolsa(no_beepers_in_bee
per_bag)
viendo_norte(facing_north)
no_viendo_norte(not_facing_north)
viendo_sur(facing_south)
no_viendo_sur(not_facing_south)
viendo_este(facing_east)
no_viendo_este(not_facing_east)
viendo_oeste(facing_west)
11
no_viendo_oeste(Not_facing_west)
12
Actividad 3
1. Guido no ha completado su servicio comunitario para graduarse de la
Haz que Guido vaya por la calle segunda recogiendo todas las bocinas que
encuentre. Recuerda que si no hay una bocina en una interseccin y le pides
a Guido que recoja una, l se quejar y se apagar. Despus de llegar a la
duodcima calle, el debera regresar con todas las bocinas a su posicin
original, debera mirar al este de nuevo y apagarse.
Con la posicin de inicio anterior, al terminar debera lucir as:
13
definir girarderecha:
hacer 3:
girarizquierda
definir
mover_diez_cuadros:
hacer 10:
mover
mover_diez_cuadros
girarderecha
mover_diez_cuadros
ponerzumbador
apagar
hacer 5:
mover
tomarzumbador
apagar
mover
tomarzumbador
mover
tomarzumbador
mover
tomarzumbador
mover
tomarzumbador
mover
14
Actividad 4
1. Guido vive en Colorado, donde la msica country es popular. A l le
gustara que le ensearas a bailar en lnea. Un baile de lnea se compone de
una serie de pasos, adelante y atrs, con giros y rotaciones. Cada secuencia
termina en una direccin diferente. Si el patrn de baile en lnea se repite,
eventualmente el bailarn acabar en el sitio inicial.
El baile en lnea que Guido quiere aprender es as: Desde la posicin inicial, da
2 pasos hacia delante, voltea, 3 pasos atrs. Entonces 3 veces: giro a la
derecha, paso. Guido queda en el punto de inicio, pero mirando en diferente
direccin. Se repite este patrn bsico de pasos 4 veces para que Guido baile
y se divierta un poco.
15
REPITIENDO -MIENTRASLa instruccin hacer le permite a Guido hacer una accin ms de una vez, pero
tiene una limitacin: debe saber previamente cuntas veces la accin debe
ejecutarse. Si est en una interseccin y necesita recoger varias bocinas pero no
sabe cuntos hay, no puede usar una estructura hacer. La estructura
mientras(while) puede funcionar en esta situacin.
El formato general de la instruccin mientras es:
mientras condicin-de-prueba-verdadera:
accin
Donde condicin-de-prueba-verdadera es un condicional que evala a
verdadero o falso, y la accin es un slo comando (como mover) o una
secuencia de comandos en bloque. Siempre y cuando la condicin evaluada
sea verdadera, la accin ser realizada. Por lo tanto mientras es similar a hacer
excepto que hacer especifica un nmero de veces para ejecutar una instruccin
y mientras especifica una condicin de prueba. Siempre y cuando la condicin
de prueba sea verdadera, las instrucciones sern ejecutadas una y otra vez.
Por ejemplo, para recoger una pila de bocinas puedes escribir:
mientras proximo_a_zumbador:
tomarzumbador
Esto dice que siempre y cuando hay bocinas en la interseccin, recoge uno y
revisa de nuevo. El resultado ser que no habr ninguna bocina en la interseccin
actual. Terminarn todos en la bolsa de bocinas de Guido.
Escribir un ciclo mientras es truculento; hay
muchos detalles para que est bien. Los pasos
generales son:
Identificar la condicin que debe ser verdadera,
cuando Guido termine con el ciclo.
Construir tu ciclo mientras con la condicin de
prueba opuesta a la cual debera terminar:
mientras condicin opuesta:
...instrucciones aqu...
Asegrate de que cualquier cdigo anterior est
completo antes de empezar el ciclo, para que
comiences en una condicin conocida. Si las
condiciones se especifican, se les llama
precondiciones.
Asegrate que cada iteracin del ciclo progresa
hacia la terminacin del mismo.
Asegrate de que la prueba para el ciclo
eventualmente sea falsa para que puedas salir.
Escribe cdigo para cualquier trabajo de limpieza
que necesite hacerse despus de ejecutar el
ciclo. Cuando sale del ciclo se especifican las
poscondiciones, se cumplirn si las precondiciones
eran vlidas cuando se entr al ciclo.
16
Actividad 5
1. Es lunes por la maana otra vez. Antes de ir al colegio. Guido tiene que sacar la
basura. No est seguro de cuantas bolsas de basura hay (representadas por
bocinas), pero l sabe que estn en el rincn de la habitacin representada en
esta vista del mundo:
17
18
19
hacer que Guido siga por todo el borde derecho del laberinto, doblando a la
derecha si puede, o ir hacia adelante si no puede o girando a la izquierda como
ltimo recurso. Escribe un programa usando una estructura si...no si...sino, de
modo que Guido pueda comer su almuerzo.
7. Realiza el siguiente escenario con mientras:
20
ZONA DE JUEGOS
1
10
11
12
13
14
15
16
17
18
21
19
20
21
22
23
24
25
26
27
28
29
30
22