Este documento presenta el código de solución para nueve prácticas de programación con Karel el Robot. Cada práctica describe un problema o tarea diferente para que Karel complete utilizando instrucciones básicas como avanzar, girar y recoger objetos. El código presentado muestra cómo aplicar secuencias de instrucciones, condiciones y bucles para resolver cada problema de manera efectiva.
1. Colegio de Estudios Científicos y tecnológicos del Estado de
Mexico
Plantel Tecamac
Aplica los principios de
programación en la
solución de problemas
Derian Jesús Muñoz Gómez
Omar González Gutiérrez
Grupo 404
2. Practica #1:
Descripción:
Karel debe recoger tres zumbadores y llevarlos todos al inicio. Los zumbadores se
encuentran al final del camino y Karel debe llevárselos uno por uno. Escribe el
código que sirve para que Karel cumpla estas condiciones.
Código de la solución:
iniciar-programa avanza; gira-izquierda;
inicia-ejecucion avanza; gira-izquierda;
avanza; avanza; repetir 3 veces gira-izquierda;
repetir 3 veces gira-izquierda; avanza; avanza; repetir 3 veces gira-izquierda;
repetir 3 veces gira-izquierda; avanza; avanza; gira-izquierda;
gira-izquierda; avanza; avanza; gira-izquierda;
gira-izquierda; avanza; avanza; repetir 3 veces gira-izquierda;
repetir 3 veces gira-izquierda; avanza; avanza; repetir 3 veces gira-izquierda;
repetir 3 veces gira-izquierda; avanza; avanza; gira-izquierda;
gira-izquierda; avanza; avanza; gira-izquierda;
gira-izquierda; avanza; avanza; repetir 2 veces gira-izquierda;
repetir 3 veces gira-izquierda;avanza; deja-zumbador;
repetir 3 veces gira-izquierda;avanza; avanza;
gira-izquierda; avanza; repetir 3 veces gira-izquierda; avanza;
coge-zumbador; repetir 2 veces gira- repetir 3 veces gira-izquierda; avanza;
izquierda; gira-izquierda; avanza;
avanza; repetir 3 veces gira-izquierda; gira-izquierda; avanza;
avanza; gira-izquierda; repetir 3 veces gira-izquierda; avanza;
avanza; gira-izquierda; repetir 3 veces gira-izquierda; avanza;
avanza; repetir 3 veces gira-izquierda; gira-izquierda; avanza;
avanza; repetir 3 veces gira-izquierda; gira-izquierda; avanza;
avanza; gira-izquierda; repetir 3 veces gira-izquierda;avanza;
avanza; gira-izquierda; repetir 3 veces gira-izquierda;avanza;
avanza; repetir 3 veces gira-izquierda; gira-izquierda; avanza;
avanza; repetir 3 veces gira-izquierda; coge-zumbador; repetir 2 veces gira-
avanza; gira-izquierda; izquierda;
avanza; gira-izquierda; avanza; repetir 3 veces gira-izquierda;
avanza; repetir 2 veces gira-izquierda; avanza; gira-izquierda;
deja-zumbador; avanza; gira-izquierda;
avanza; avanza; repetir 3 veces gira-izquierda;
repetir 3 veces gira-izquierda; avanza; avanza; repetir 3 veces gira-izquierda;
repetir 3 veces gira-izquierda; avanza; avanza; gira-izquierda;
gira-izquierda; avanza; avanza; gira-izquierda;
gira-izquierda; avanza; avanza; repetir 3 veces gira-izquierda;
repetir 3 veces gira-izquierda; avanza; avanza; repetir 3 veces gira-izquierda;
repetir 3 veces gira-izquierda; avanza; avanza; gira-izquierda;
gira-izquierda; avanza; avanza; gira-izquierda;
gira-izquierda; avanza; avanza; repetir 2 veces gira-izquierda;
repetir 3 veces gira-izquierda;avanza; deja-zumbador;
repetir 3 veces gira-izquierda;avanza;
gira-izquierda; avanza;
coge-zumbador; repetir 2 veces gira- apagate;
izquierda; termina-ejecucion
avanza; repetir 3 veces gira-izquierda; finalizar-programa
3. Antes después
Conclusiones:
Se pudo observar que Karel funciona con órdenes tan básicas como: avanza, gira-
izquierda, coge-zumbador; y que se le pueden además agregar sentencias repetir
N veces. Con tan solo estas instrucciones, Karel puede realizar diversas funciones.
4. Practica # 2: Abuelita
Descripción:
Karel quiere visitar a su abuelita la casa de su abuelita se encuentra siempre
delante de Karel en la primera posición que tiene la izquierda y se esta junto a un
zumbador.
Código de la solución
iniciar-programa
inicia-ejecucion
mientras izquierda-libre o no-junto-a-zumbador hacer inicio
avanza;
fin;
apagate;
termina-ejecucion
finalizar-programa
Antes después
Conclusión:
Llegar a saber como hacer que Karel sepa si esta parado junto a un zumbador y al
lado de un muro.
5. Practica #3: Norte.
Descripción:
Escribe un programa que tenga una instrucción llamada norte que tenga la finalidad
de orientar a Karel hacia el norte. Karel puede aparecer en cualquier parte del
mundo y puede aparecer en cualquier orientación.
Código de la solución:
iniciar-programa termina-ejecucion
inicia-ejecucion finalizar-programa
si orientado-al-norte entonces inicio
fin;
si orientado-al-sur entonces inicio
repetir 2 veces gira-izquierda;
fin;
si orientado-al-este entonces inicio
gira-izquierda;
fin;
si orientado-al-oeste entonces inicio
repetir 3 veces gira-izquierda;
FIN;
apagate;
Conclusiones:
Karel es capaz de procesar condiciones si-entonces, que sirven para que ejecute
una acción si se cumplen ciertas reglas. Estas condiciones se deben dictar junto
con las instrucciones básicas de Karel, ya que si solo se colocan en el programa,
por si solas no sirven
6. Pract #4: recoge
Descripción
Haz que Karel recoja los zumbadores del renglón y que los coloque en la pared que
esta frente a el:
Código solución:
iniciar-programa
inicia-ejecucion
mientras frente-libre o no-junto-a-zumbador hacer inicio
avanza;
mientras junto-a-zumbador hacer coge-zumbador;
si frente-bloqueado entonces inicio
mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
apagate;
fin;
fin;
termina-ejecucion
finalizar-programa
Antes después
Conclusiones
Poder saber cómo decirle a Karel que recoja lo que se encuentre y lo deje cuando
llegue al muro.
7. Practica #5: subiendo
Descripción:
Karel quiere asomarse por arriba de la barda para ver qué hay del otro lado.
Escribe un programa que lleve a Karel a la parte arriba de la barda. Karel aparece
siempre pegado ala parte inferior de la barda, mirando hacia el norte, la barda
tiene una altura que va desde 1 hasta 20.
Código de la solución:
iniciar-programa
inicia-ejecucion
mientras derecha-bloqueada hacer inicio
avanza;
fin;
apagate;
termina-ejecucion
finalizar-programa
Antes Después
Conclusiones:
Karel también es capaz de cumplir condiciones de mientras-hacer. Esta función
tiene el propósito de que Karel ejecute una acción mientras hace otra cosa, estas
funciones deben estar alternadas con los comandos básicos y pueden colocarse
con condiciones si-entonces para evitar escribir programas largos.
8. Pract# 6: crea nuevas instrucciones
Descripción
Realizar instrucciones con el comando “define nueva instrucción xxxxxx como
inicio”; para que cumplan las condiciones siguientes
1. Gira-derecha
2. Norte
3. Sur
4. Este
5. Oeste
6. Media-vuelta
7. Caminar-hasta-pared
8. Recoger-todo
9. Dejar-todo
Código solución
iniciar-programa fin;
define-nueva-instruccion gira-derecha como define-nueva-instruccion caminar-hasta-pared
inicio como inicio
repetir 3 veces gira-izquierda mientras frente-libre hacer avanza;
fin; fin;
define-nueva-instruccion norte como inicio define-nueva-instruccion recoger-todo como
mientras no-orientado-al-norte hacer gira- inicio
izquierda; mientras junto-a-zumbador
fin; hacer coge-zumbador
define-nueva-instruccion sur como inicio fin;
mientras no-orientado-al-sur hacer gira- define-nueva-instruccion dejar-todo como
izquierda; inicio
fin; mientras algun-zumbador-en-la-mochila
define-nueva-instruccion este como inicio hacer deja-zumbador
mientras no-orientado-al-este hacer gira- fin;
izquierda; inicia-ejecucion
fin; repetir 3 veces inicio
define-nueva-instruccion oeste como inicio repetir 2 veces avanza;
mientras no-orientado-al-oeste hacer gira- dejar-todo;
izquierda; apagate;
fin; fin;
define-nueva-instruccion media-vuelta como termina-ejecucion
inicio finalizar-programa
repetir 2 veces gira-izquierda
Conclusiones
Así podremos facilitar las otras prácticas ya que tenemos instrucciones más fáciles
de usar.
9. Practica #7: Amontonar Zumbadores
Descripción:
Por su naturaleza, Karel es un robot muy ordenado y le gusta tener todos sus
zumbadores acomodados en montones. Tras un fin de semana de juegos, Karel
tiene su cuarto lleno de zumbadores regados en columnas, por lo que ahora deberá
juntar los zumbadores de cada columna y hacer un montón con ellos en la base de
la misma. Tu tarea consiste en escribir un programa que ayude a Karel a
amontonar los zumbadores de cada columna en un montón en la base de la
misma.
Código de la solución:
iniciar-programa avanza;
fin;
define-nueva-instruccion come como inicio dejalotodo;
si no orientado-al-norte entonces gira-izquierda;
inicio avanza;
gira-izquierda; gira-izquierda;
fin; fin;
mientras junto-a-zumbador y no frente-
bloqueado hacer inicio inicia-ejecucion
mientras junto-a-zumbador y no frente- mientras junto-a-zumbador hacer hazlo;
bloqueado hacer coge-zumbador; apagate;
avanza; termina-ejecucion
mientras junto-a-zumbador y frente- finalizar-programa
bloqueado hacer coge-zumbador;
fin;
fin;
define-nueva-instrucciondejalotodo como
inicio
mientrasalgun-zumbador-en-la-mochila
hacer deja-zumbador;
fin;
define-nueva-instruccion vuelta-atras como
inicio
repetir 2 veces gira-izquierda;
fin;
define-nueva-instruccion hazlo como inicio
come;
vuelta-atras;
mientras frente-libre hacer inicio
10. Antes: Después:
CONCLUSIONES:
Para que Karel pueda obedecer instrucciones que no tiene contempladas en su
codificación tenemos que usar los definidores de nuevas instrucciones. Con ellos
podemos crear nuevas órdenes para Karel. Estos definidores tienen una función
muy importante ya que la codificación que los contiene puede servir en otros
mundos semejantes.
11. Practica #8: recoge basura
Descripción
Karel tiene que recoger todos los zumbadores que se encuentran regaos en un
campo de forma rectangular y al último tiene que dejarlos en la esquina ubicada en
1.1 tienes que tomar en cuenta que el campo puede tener cualquier tamaño.
Código de solución
iniciar-programa gira-izquierda; avanza; gira-izquierda;
define-nueva-instruccion esoeso como inicio fin;
mientras frente-libre o no-junto-a-zumbador si orientado-al-sur y izquierda-bloqueada y
hacer inicio frente-bloqueado entonces
avanza; repetir 3 veces gira-izquierda;
mientras junto-a-zumbador hacer coge- si frente-bloqueado entonces inicio
zumbador; repetir 2 veces gira-izquierda;
mientras algun-zumbador-en-la-mochila y fin; fin;
orientado-al-oeste y frente-bloqueado y si orientado-al-sur y frente-bloqueado
izquierda-bloqueada y derecha-libre hacer entonces inicio
inicio gira-izquierda; avanza;
deja-zumbador; fin; fin;
fin; inicia-ejecucion
mientras orientado-al-oeste y frente- esoeso;
bloqueado y izquierda-bloqueada y derecha- apagate;
libre termina-ejecucion
hacer apagate; finalizar-programa
si orientado-al-sur y frente-bloqueado y
izquierda-libre entonces inicio
Antes: Después:
Conclusión
aprendimos a ordenarle a Karel que recoja los zumbadores y que no se trabe en un
muro o ya no recoja zumbadores y a que los deje en un punto definido.
12. Practica #9: Laberintos
Descripción:
Nuestro querido Karel estuvo explorando unos laberintos y quería llegar al centro
de ellos, y para eso habían indicadores que lo llevarían al centro, ya recogidos esos
indicadores, Karel tenía el deber de juntarlos todos en la salida de cada laberinto.
Escribir un código que ayude a Karel a cumplir con lo anterior. Karel debe realizar
la misma acción en los tres laberintos con un SOLO CODIGO. Para hacerlo hay
que hacer los tres laberintos en un solo mundo e ir colocando a Karel en la entrada
de cada laberinto cada vez que acabe uno.
Código de la solución:
iniciar-programa mientras frente-libre
y izquierda-libre
define-nueva-instrucción makekarel como y derecha-libre
inicio yalgun-zumbador-en-la-mochila hacer
mientras junto-a-zumbador hacer deja-zumbador;
coge-zumbador; siningun-zumbador-en-la-mochila
mientras frente-libre hacer inicio entoncesapagate;
avanza; fin;
mientras junto-a-zumbador hacer si frente-bloqueado y izquierda-bloqueada
coge-zumbador; entonces
mientras frente-libre repetir 3 veces gira-izquierda;
yalgun-zumbador-en-la-mochila fin;
y izquierda-libre
y derecha-libre hacer inicia-ejecucion
deja-zumbador; repetir 100 veces makekarel;
siningun-zumbador-en-la-mochila apagate;
y derecha-libre termina-ejecucion
y izquierda-libre entonces finalizar-programa
apagate;
fin;
si frente-bloqueado
y derecha-bloqueada entonces
gira-izquierda;
si izquierda-bloqueada
y frente-bloqueado entonces
repetir 3 veces gira-izquierda;
mientras frente-libre hacer inicio
avanza;
mientras junto-a-zumbador hacer
coge-zumbador;
13. Antes: Después:
Conclusiones
Podemos crear un solo código de Karel para que lo haga en semejantes mundos o
composiciones, esto sirve para que no se tenga que escribir mucho código e
incluso el código serviría en otros mundos
14. Practica #10: Recoge Zumbadores
Descripción:
Karel tiene que recoger todos los zumbadores en una area con muros sin que
quiera pasar a través de ellos o que no como el area puede tener cualquier medida
y los tiene que dejar en un punto definido.
Código solución
iniciar-programa fin;
define-nueva-instruccion esoeso como inicio mientras orientado-al-oeste y frente-
mientras izquierda-bloqueada y frente- bloqueado y izquierda-bloqueada y derecha-
bloqueado y derecha-libre hacer libre
repetir 3 veces gira-izquierda; hacer apagate;
mientras frente-libre o no-junto-a-zumbador si orientado-al-sur y frente-bloqueado y
hacer inicio izquierda-libre entonces inicio
avanza; gira-izquierda; avanza; gira-izquierda;
mientras junto-a-zumbador hacer coge- fin;
zumbador; si orientado-al-sur y izquierda-bloqueada y
mientras algun-zumbador-en-la-mochila y frente-bloqueado entonces
orientado-al-oeste y frente-bloqueado y repetir 3 veces gira-izquierda;
izquierda-bloqueada y derecha-libre si frente-bloqueado entonces inicio
hacer inicio repetir 2 veces gira-izquierda;
deja-zumbador; fin; fin;
fin; si orientado-al-sur y frente-bloqueado
mientras orientado-al-sur y izquierda- entonces inicio
bloqueada y derecha-bloqueada y frente- gira-izquierda; avanza;
bloqueado hacer inicio fin;
repetir 3 veces gira-izquierda; fin;
mientras algun-zumbador-en-la-mochila y inicia-ejecucion
orientado-al-oeste y frente-bloqueado y esoeso;
izquierda-bloqueada y derecha-libre apagate;
hacer termina-ejecucion
deja-zumbador; finalizar-programa
si ningun-zumbador-en-la-mochila entonces
apagate;
fin;
mientras algun-zumbador-en-la-mochila y
orientado-al-oeste y frente-bloqueado y
izquierda-bloqueada y derecha-bloqueada
hacer inicio
deja-zumbador;
si ningun-zumbador-en-la-mochila entonces
apagate;
15. Antes: Después:
Conclusión:
la forma en la cual debemos fijarnos de que nuestro Karel coja zumbadores
aunque este encerrado totalmente.
16. Practica #11: La torre más alta.
Descripción:
Karel se ha ganado la fama de ser muy comelón y en Karelandia tienen el propósito
de hacer desaparecer una torre muy vieja y a punto de caerse, lo que tiene que
hacer Karel es ir a la parte más alta de Karelandia y empezar a destruir la torre.
Escribir el programa que ayudara a Karel a que haga la solución.
Código de la solución:
iniciar-programa finalizar-programa
define-nueva-instruccion vuela como inicio
si orientado-al-norte entonces inicio
mientras frente-libre hacer avanza;
si frente-bloqueado entonces repetir 3 veces
gira-izquierda;
fin;
fin;
define-nueva-instruccion ataca como inicio
si izquierda-bloqueada y frente-libre
entonces inicio
mientras no-junto-a-zumbador hacer avanza;
si junto-a-zumbador entonces coge-
zumbador;
fin;
fin;
define-nueva-instruccionkong como inicio
repetir 3 veces gira-izquierda;
mientras frente-libre hacer inicio
avanza;
mientras junto-a-zumbador hacer coge-
zumbador;
fin;
fin;
inicia-ejecucion
vuela;
ataca;
kong;
apagate;
termina-ejecucion
17. Antes Después
Conclusiones:
Se tuvo la finalidad de que Karel camine hasta la cima del mundo y que vaya
rectificando fila por fila hasta encontrar un zumbador y empiece a trabajar.
18. Practica #12: Sembrando
Descripción:
Se le ha pedido a Karel que siembre zanahorias en un terreno rectangular de un
mínimo de 3x1 hasta un máximo de 9x10.
Código solución:
iniciar-programa gira-izquierda;
define-nueva-instruccion hazlo como inicio avanza;
mientras izquierda-bloqueada y frente-libre gira-izquierda;
hacer avanza;
avanza; fin;
si izquierda-libre entonces mientras derecha-bloqueada y frente-libre
gira-izquierda; hacer
si izquierda-libre y derecha-libre y frente-libre avanza;
entonces mientras izquierda-libre y orientado-al-sur y
avanza; algun-zumbador-en-la-mochila hacer
fin; deja-zumbador;
define-nueva-instruccion deja como inicio si ningun-zumbador-en-la-mochila entonces
mientras frente-bloqueado hacer apagate;
gira-izquierda; fin;
mientras frente-libre hacer inicio inicia-ejecucion
mientras no-junto-a-zumbador hacer mientras no-orientado-al-este hacer
deja-zumbador; gira-izquierda;
avanza; mientras izquierda-libre hacer inicio
fin; avanza;
si frente-bloqueado entonces inicio fin;
si no junto-a-zumbador entonces mientras junto-a-zumbador hacer inicio
deja-zumbador; coge-zumbador;
gira-izquierda; fin;
gira-izquierda; mientras frente-libre hacer inicio
fin; hazlo;
mientras frente-libre hacer fin;
avanza; si frente-bloqueado entonces inicio
si frente-bloqueado y derecha-libre entonces gira-izquierda;
repetir 3 veces mientras frente-libre hacer
gira-izquierda; avanza;
si frente-libre entonces fin;
avanza; mientras algun-zumbador-en-la-mochila
mientras no-orientado-al-norte hacer hacer inicio
gira-izquierda; deja;
si izquierda-bloqueada y junto-a-zumbador fin;
entonces inicio apagate;
mientras izquierda-bloqueada hacer termina-ejecucion
avanza; finalizar-programa
si izquierda-libre entonces
19. Antes Después
Conclusión
Tenemos que tener en cuenta la forma en que Karel sepa como dejar zumbadores
y saber en que lugar hay muro y que nos se estrelle y también que sepa girar en
una esquina sin seguirse.
20. Practica #13: Paredes
Descripción:
Tú y tu vecino siempre se habían llevado muy bien, pero cierto día, descubriste
que tu vecino hablaba mal de ti a tus espaldas, por lo que decidiste construir una
pared entre las dos casas.
La empresa de construcción ya trajo los tabiques, pero los ha dejado en desorden
en el piso, en columnas de diferente altura.
Tu tarea consiste en acomodar los tabiques de manera que se forme la pared
deseada, haciendo que todas las columnas de tabiques tengan la misma altura.
Código solución:
iniciar-programa si frente-bloqueado y orientado-al-oeste
define-nueva-instruccion derecha como inicio entonces inicio
gira-izquierda; si no-junto-a-zumbador entonces deja-
gira-izquierda; zumbador;
gira-izquierda; derecha;
fin; avanza;
define-nueva-instruccion sur como inicio derecha;
mientras no-orientado-al-sur hacer gira- pared;
izquierda; fin;
fin; si frente-bloqueado y orientado-al-este
define-nueva-instruccion norte como inicio entonces inicio
mientras no-orientado-al-norte hacer gira- si no-junto-a-zumbador entonces deja-
izquierda; zumbador;
fin; gira-izquierda;
define-nueva-instruccion oeste como inicio avanza;
mientras no-orientado-al-oeste hacer gira- gira-izquierda;
izquierda; pared;
fin; fin;
define-nueva-instruccion este como inicio
mientras no-orientado-al-este hacer gira- fin;
izquierda; fin;
fin; apagate;
fin;
define-nueva-instruccion vuelta como inicio
repetir 2 veces gira-izquierda; define-nueva-instruccion regresa como inicio
fin; vuelta;
mientras frente-libre hacer avanza;
define-nueva-instruccion pared como inicio si frente-bloqueado y izquierda-bloqueada
entonces inicio
mientras algun-zumbador-en-la-mochila oeste;
hacer inicio pared;
deja-zumbador; fin;
si frente-libre entonces inicio gira-izquierda;
avanza; avanza;
fin si no-junto-a-zumbador entonces avanza;
sino inicio gira-izquierda;
21. recoge;
fin; fin;
fin;
define-nueva-instruccion recoge como inicio
mientras junto-a-zumbador hacer inicio inicia-ejecucion
coge-zumbador; norte;
avanza; recoge;
si no-junto-a-zumbador entonces inicio termina-ejecucion
regresa; finalizar-programa
recoge;
fin;
fin;
si no-junto-a-zumbador entonces inicio
este;
avanza;
norte;
Antes Después
Conclusión:
Nos enseñó a acomodar números de zumbadores correctamente y que no sobre
ni uno ni falte.
22. Practica #14: Medias pirámides
Descripción
Es bien sabido que en la ciudad de Karelotitlan todos los habitantes tienen sus
casas en forma de pirámides, sin embargo, el excéntrico Karelerac quiere ser
diferente a los demás y desea construir su casa con sólo la mitad de una pirámide.
Ayuda a Karelerac a construir una media pirámide creciente hacia la derecha con
los zumbadores que lleva en la mochila.
Código de la solución:
iniciar-programa norte;
define-nueva-instruccion derecha como inicio fin;
gira-izquierda;
gira-izquierda; define-nueva-instruccion checarlado como
gira-izquierda; inicio
fin; oeste;
define-nueva-instruccion sur como inicio si frente-libre entonces inicio
mientras no-orientado-al-sur hacer gira- avanza;
izquierda; si junto-a-zumbador entonces inicio
fin; este;
define-nueva-instruccion norte como inicio avanza;
mientras no-orientado-al-norte hacer gira- si ningun-zumbador-en-la-mochila entonces
izquierda; apagate;
fin; si no-junto-a-zumbador y algun-zumbador-
define-nueva-instruccion oeste como inicio en-la-mochila entonces deja-zumbador;
mientras no-orientado-al-oeste hacer gira- norte;
izquierda; avanza;
fin; checarlado;
define-nueva-instruccion este como inicio fin
mientras no-orientado-al-este hacer gira- sino inicio
izquierda; este;
fin; avanza;
si ningun-zumbador-en-la-mochila entonces
define-nueva-instruccion vuelta como inicio apagate;
repetir 2 veces gira-izquierda; si no-junto-a-zumbador y algun-zumbador-
fin; en-la-mochila entonces deja-zumbador;
regresa;
checarlado;
define-nueva-instruccion regresa como inicio fin;
sur; fin
mientras frente-libre hacer avanza; sino inicio
gira-izquierda; vuelta;
si frente-libre entonces inicio avanza;
avanza; norte;
fin si ningun-zumbador-en-la-mochila entonces
sino inicio apagate;
apagate; checarlado;
fin; fin;
fin;
23. define-nueva-instruccion piramide fin;
como inicio inicia-ejecucion
si ningun-zumbador-en-la-mochila entonces norte;
apagate; piramide;
si no-junto-a-zumbador y algun-zumbador- apagate;
en-la-mochila entonces deja-zumbador; termina-ejecucion
checarlado; finalizar-programa
Solución
Conclusiones:
Se vio como Karel puede empezar poniendo zumbadores en forma de pirámide
ascendente rectificando lados, orientación y zumbadores que trae y que no esté
sobre ellos.
24. Practica #15: Sedimarip Saidem.
El malvado Carelerak, hermano gemelo de Karelerac, ha descubierto que su
hermano ha construido una media pirámide en el otro extremo de la ciudad.
Enojado, ha decido construir su propia media pirámide, pero para evitar que lo
acusen de plagio, la va a hacer creciente hacia la izquierda, y le llamará Sedimárip
Saidem. Ayuda a Carelerak a construir su Sedimárip Saidem creciente hacia la
izquierda con los zumbadores que tiene en la mochila.
Código de solución:
Iniciar-programa
define-nueva-instruccion derecha como inicio sal-de-instruccion;
gira-izquierda; fin;
gira-izquierda; norte;
gira-izquierda; avanza;
fin; este;
define-nueva-instruccion sur como inicio si ningun-zumbador-en-la-mochila entonces apagate;
mientras no-orientado-al-sur hacer gira-izquierda; si no-junto-a-zumbador y algun-zumbador-en-la-
fin; mochila entonces deja-zumbador;
define-nueva-instruccion norte como inicio regresados;
mientras no-orientado-al-norte hacer gira-izquierda; fin;
fin;
define-nueva-instruccion oeste como inicio
mientras no-orientado-al-oeste hacer gira-izquierda;
fin; define-nueva-instruccion fijate como inicio
define-nueva-instruccion este como inicio este;
mientras no-orientado-al-este hacer gira-izquierda; mientras frente-libre y junto-a-zumbador hacer inicio
fin; si frente-bloqueado y orientado-al-este entonces
apagate;
define-nueva-instruccion vuelta como inicio avanza;
repetir 2 veces gira-izquierda; si ningun-zumbador-en-la-mochila entonces apagate;
fin; si no-junto-a-zumbador y algun-zumbador-en-la-
mochila entonces inicio
deja-zumbador;
define-nueva-instruccion regresa como inicio regresados;
sur; regresa;
mientras frente-libre hacer avanza; fin;
gira-izquierda; fin;
fin; si frente-bloqueado y orientado-al-este entonces
apagate;
define-nueva-instruccion regresados como inicio fin;
oeste;
si frente-libre entonces inicio define-nueva-instruccion piramide-rara como inicio
avanza; si ningun-zumbador-en-la-mochila entonces apagate;
fin si no-junto-a-zumbador y algun-zumbador-en-la-
sino inicio mochila entonces deja-zumbador;
25. fijate; piramide-rara;
fin; apagate;
inicia-ejecucion termina-ejecucion
norte; finalizar-programa
Solución
Conclusiones
Es el mismo problema pero a la inversa que el de medias pirámides, pero el código del
anterior no coincidió con este, asi que se tuvo que realizar otro código un poco mas
complejo.