Cprog-UNCA

Anuncio
Primer Concurso de Programación de la Región Cañada
Cprog-UNCA
SOLUCIONES
ETAPA I
Problema 3.
Descripción: Karel y su hermanita Gretel fueron a la feria, a los dos hermanos se les ocurrió entrar
al juego del laberinto en el cual se tenían escondidas 8 monedas (zumbadores). Si ellos recogían
todas las monedas podrían quedarse con ellas y juntaba menos tendría qque
ue devolverlas.
Problema: Se presenta un mundo delimitado por paredes, dentro de este se encuentran 8
zumbadores, Karel tiene que recoger todos los zumbadores y salir.
Consideraciones: Karel debe recoger todas las monedas utilizando las estructuras de ccontrol de
repetición y decisión.
Entrada:
Mundo: Compuesto
ompuesto por los elementos
elementos que se muestran en la imagen “Mundo Inicial”.
Mochila: Contiene 0 zumbadores.
zumbador
Posición: (2,2)
Orientación: oeste.
Mundo Inicial
1
Salida:
Mundo:: Se mostrará como en la imagen “Mundo Final”.
Mochila: Contiene 8 zumbadores.
Posición: (1,2)
Orientación: oeste.
Mundo Final
2
SOLUCION:
iniciar-programa
instruccion gira-derecha
gira
como inicio
define-nueva-instruccion
repetir 3 veces gira-izquierda;
izquierda;
fin;
inicia-ejecucion
repetir 2 veces inicio
gira-izquierda;
fin;
mientras frente-libre
libre hacer avanza;
mientras frente-bloqueado
bloqueado hacer gira
gira-izquierda;
mientras frente-libre
libre hacer avanza;
mientras frente-bloqueado
bloqueado hacer gira
gira-derecha;
avanza;
gira-derecha;
avanza;
coge-zumbador;
mientras frente-bloqueado
bloqueado hacer gira
gira-izquierda;
avanza;
gira-derecha;
si frente-libre
libre entonces avanza;
gira-izquierda;
mientras frente-libre
libre hacer avanza;
repetir 2 veces inicio
si frente-bloqueado
bloqueado entonces gira-derecha;
gira
mientras frente-libre
libre hacer avanza;
fin;
si frente-bloqueado
bloqueado entonces gira-izquierda;
gira
avanza;
gira-izquierda;
avanza;
coge-zumbador;
mientras derecha-bloqueada
bloqueada hacer avanza;
si derecha-libre
libre entonces gira
gira-derecha;
mientras frente-libre
libre hacer avanza;
3
mientras frente-bloqueado
bloqueado hacer gira
gira-derecha;
repetir 2 veces inicio
mientras frente-libre
libre hacer avanza;
ava
mientras frente-bloqueado
bloqueado hacer gira
gira-izquierda;
fin;
mientras derecha-bloqueada
bloqueada hacer avanza;
si derecha-libre
libre entonces gira
gira-derecha;
mientras frente-libre
libre hacer avanza;
si frente-bloqueado
bloqueado entonces gira-derecha;
gira
mientras frente-libre
libre hacer avanza;
si frente-bloqueado
bloqueado entonces gira-izquierda;
gira
repetir 2 veces inicio
mientras frente-libre
libre hacer avanza;
si frente-bloqueado
bloqueado entonces gira-derecha;
gira
fin;
mientras frente-libre
libre hacer avanza;
coge-zumbador;
repetir 2 veces inicio
gira-izquierda;
fin;
mientras frente-libre
libre hacer avanza;
si frente-bloqueado
bloqueado entonces gira-izquierda;
gira
mientras frente-libre
libre hacer avanza;
coge-zumbador;
repetir 2 veces inicio
gira-izquierda;
fin;
mientras derecha-bloqueada
bloqueada hacer avanza;
si derecha-libre
libre entonces gira
gira-derecha;
mientras frente-libre
libre hacer avanza;
si frente-bloqueado
bloqueado entonces gira-derecha;
gira
mientras frente-libre
libre hacer avanza;
si frente-bloqueado
bloqueado entonces gira-izquierda;
gira
mientras derecha-bloqueada
bloqueada hacer avanza;
si derecha-libre
libre entonces gira
gira-derecha;
mientras frente-libre
libre hacer avanza;
si frente-bloqueado
bloqueado entonces gira-izquierda;
gira
4
avanza;
gira-izquierda;
avanza;
coge-zumbador;
repetir 2 veces inicio
gira-izquierda;
fin;
mientras frente-libre
libre hacer avanza;
si frente-bloqueado
bloqueado entonces gira-izquierda;
gira
avanza;
bloqueada hacer avanza;
mientras izquierda-bloqueada
si izquierda-libre
libre entonces gira-izquierda;
gira
mientras frente-libre
libre hacer avanza;
si frente-bloqueado
bloqueado entonces gira-izquierda;
gira
mientras frente-libre
libre hacer avanza;
si frente-bloqueado
bloqueado entonces gira-derecha;
gira
avanza;
gira-derecha;
avanza;
coge-zumbador;
repetir 2 veces gira-izquierda;
izquierda;
repetir 2 veces inicio
mientras frente-libre
libre hacer avanza;
si frente-bloqueado
bloqueado entonces gira-izquierda;
gira
fin;
libre hacer avanza;
mientras frente-libre
si frente-bloqueado
bloqueado entonces gira-derecha;
gira
mientras frente-libre
libre hacer avanza;
si frente-bloqueado
bloqueado entonces gira-izquierda;
gira
avanza;
gira-izquierda;
libre hacer avanza;
mientras frente-libre
si frente-bloqueado
bloqueado entonces gira-derecha;
gira
avanza;
coge-zumbador;
mientras frente-libre
libre hacer avanza;
si frente-bloqueado
oqueado entonces gira-izquierda;
gira
5
mientras frente-libre
libre hacer avanza;
si frente-bloqueado
bloqueado entonces gira-derecha;
gira
mientras frente-libre
libre hacer avanza;
si frente-bloqueado
bloqueado entonces gira-izquierda;
gira
repetir 2 veces avanza;
gira-izquierda;
mientras frente-libre hacer
acer avanza;
si frente-bloqueado
bloqueado entonces gira-izquierda;
gira
mientras frente-libre
libre hacer avanza;
coge-zumbador;
izquierda;
repetir 2 veces gira-izquierda;
mientras frente-libre
libre hacer avanza;
si frente-bloqueado
bloqueado entonces gira-derecha;
gira
mientras frente-libre
libre hacer avanza;
si frente-bloqueado
bloqueado entonces gira-izquierda;
gira
mientras frente-libre
libre hacer avanza;
si frente-bloqueado
bloqueado entonces gira-derecha;
gira
repetir 3 veces avanza;
zumbador;
repetir 8 veces deja-zumbador;
apagate;
termina-ejecucion
finalizar-programa
6
Descargar