Tutorial
de
Karel
Tutorial de Karel
Autor: Dra. Karina Mariela Figueroa Mora Introduccin El robot Karel es una herramienta de aprendizaje que presenta los conceptos de programacin de una forma visual adems de tener un nivel de abstraccin bajo. El robot Karel fue introducido por Richard Pattis en 1981, en el libro Karel the Robot: A Gentle Introduction to the Art of Programming with Pascal, John Wiley & Sons, Inc. El mundo de Karel Karel puede orientarse en una de las cuatro direcciones: Este, Oeste, Norte y Sur. Slo gira 90 cada vez. En el mundo de Karel, las calles van de sur a norte, y son numeradas comenzando por 1. No hay nmeros de calle igual a 0 o negativos. Las avenidas van de oeste a este, y tambin estn numeradas empezando por 1. Tampoco hay nmeros de avenida igual a 0 o negativos. Se le llama esquina a la interseccin de una calle con una avenida. Karel va de una esquina a la siguiente en un solo movimiento. En el mundo de Karel slo existen los muros (entre una esquina y otra, vertical u horizontal), y los zumbadores. Un zumbador es una marca que Karel puede escuchar slo cuando se encuentra en la misma esquina que el zumbador. Karel tiene una mochila que puede utilizar para poner los zumbadores que va recolectando o dejando. Es posible ajustar el nmero inicial de zumbadores en la mochila. Comandos bsicos de Karel Hay cinco comandos bsicos para Karel, estos son: <instrucciones> 1.
avanza
(avanza
una
esquina)
2.
gira-izquierda
(gira
a
la
izquierda)
3.
coge-zumbador
(recoge
un
zumbador)
4.
deja-zumbador
(deja
un
zumbador)
5.
apagate
(desconecta
al
robot)
Tambin se consideran instrucciones a las sentencias de control.
Karel no realizar una accin que no sea exitosa, es decir, el robot no avanzar si tiene una pared enfrente o no recoger un zumbador si no lo hay en esa esquina. Cuando el robot no realiza una accin enva una notificacin al programador y se detiene la ejecucin del programa. Programa
Muestra
iniciar-programa
inicia-ejecucion
gira-izquierda;
apagate;
termina-ejecucion
finalizar-programa
Iniciar-programa
Inicia-ejecucion
<instrucciones>
apagate;
termina-ejecucion
finalizar-programa
Tutorial
de
Karel
Sentencias de Control de KAREL Las sentencias de control se usan para elegir qu hacer, y/o cuantas veces hacerlo. Sin embargo, por si solos no causan que ocurra algo. Simplemente controlan la ejecucin de otras sentencias o fragmentos de cdigo. A continuacin se lista una serie de sentencias de control de Karel: Si/Entonces repite/No de veces Si/Entonces/Sino Mientras/Hacer
Toma de decisiones Muchas veces Karel necesita tomar decisiones, de acuerdo a las situaciones en las que se encuentre. Las situaciones que Karel puede detectar se listan a continuacin: <condiciones> frente-libre
junto-a-zumbador
orientado-al-este
frente-bloqueado
no-junto-a-zumbador
orientado-al-oeste
izquierda-libre
algun-zumbador-en-la-mochila
no-orientado-al-norte
izquierda-bloqueada
ningun-zumbador-en-la-mochila
no-orientado-al-sur
derecha-libre
orientado-al-norte
no-orientado-al-este
derecha-bloqueada
orientado-al-sur
no-orientado-al-oeste
"libre" significa que no hay ningn muro, mientras que "bloqueado" significa que hay un muro en esa direccin. Karel puede detectar si hay o no algn zumbador en la esquina en la que se encuentra actualmente, as como detectar si tiene algn zumbador en la mochila o no. Tambin tiene una brjula para detectar hacia qu direccin est orientado. Decisiones simples Karel puede hacer una serie de instrucciones, si es que se cumple con la condicin establecida, que puede ser cualquiera de las que se mencionaron anteriormente. Por ejemplo Programa
Muestra
iniciar-programa
inicia-ejecucion
si
junto-a-zumbador
entonces
inicio
coge-zumbador;
fin;
apagate;
termina-ejecucion
Tutorial
de
Karel
finalizar-programa
Este ejemplo escenifica que para recoger un zumbador sin obtener un error de Karel, es necesario revisar si existe un zumbador en el suelo utilizando la condicin junto-a-zumbador, al ejecutar esta instruccin. Si
<condicin>
entonces
incio
<instrucciones>
fin;
Decisiones en otro caso En este tipo de decisiones, Karel, puede hacer una serie de instrucciones si se cumple la condicin y si no se cumple, puede llevar a cabo otra serie de instrucciones diferentes.
Si
<condicin>
entonces
incio
<instrucciones>
fin
Sino
inicio
<instrucciones>
fin;
Definiciones de funciones En este lenguaje es posible definir nuevas funciones por ejemplo, girar a la derecha es una tarea muy habitual para el robot. A continuacin se muestra un ejemplo de esta nueva instruccin. La definicin de cualquier funcin debe ir entre iniciar-programa e inicia-ejecucin. define-nueva-instruccin
gira-derecha
como
inicio
gira-izquierda;
gira-izquierda;
gira-izquierda;
fin;
Define-nueva-instruccin
<nombre>
como
Inicio
<instrucciones>
fin;
Repeticiones
Tutorial
de
Karel
Muchas veces, Karel necesita repetir una serie de instrucciones varias veces. A una repeticin se le llama ciclo. Si se desea que Karel ejecute la misma instruccin varias veces se puede utilizar la instruccin repetir x veces Repetir
#
veces
Inicio
<instrucciones>
fin;
Programa
Muestra
iniciar-programa
inicia-ejecucion
repetir
3
veces
gira-izquierda;
apagate;
termina-ejecucion
finalizar-programa
Repeticiones condicionadas Si necesitas que Karel repita una serie de instrucciones mientras se cumpla una condicin se usa la sentencia mientras. hacer. Esto es:
Mientras
<condicin>
hacer
Inicio
<instrucciones>
fin;