You are on page 1of 28

KAREL EL ROBOT

SICI-3011
Preparado por:
Prof. Nelliud D. Torres

Instrucciones para el Robot Karel


El propsito de estudiar a Karel en adicin a Otto es para
familiarizarnos ms con la programacin estructurada y
facilitar la adaptacin a estilos de programacin mas
avanzados de los que nos puede ofrecer Otto. Otra razn
es que Karel tiene un compilador en donde el estudiante
puede escribir las instrucciones, validarlas y ejecutarlas
visualmente en la pantalla. De este modo se facilita la
adaptacin al mundo de la programacin y del manejo de
errores, tanto de sintaxis como de lgica. Otro punto
importante es que estaremos tomando ejemplos de los
comandos de Otto y Karel segn nos adentremos ms en
los conceptos de programacin.

Instrucciones de Karel
Las intrucciones de Karel se pueden dividir en los siguientes
tpicos:
a) Vocabulario bsico
b) Vocabulario extendido
c) Instrucciones condicionales
d) Instrucciones de repeticin

FORMATO DEL LENGUAJE DE


KAREL
EL lenguaje que se utiliza para programar a Karel, va a tener el
siguiente formato:
Lo que se ponga
{ Comentarios }
Encabezamiento. Cada
entre llaves ({})
begin
programa comenzar con
se considera
move
la instruccin begin
comentario, no
instruccin.
pickbeeper
move
Instrucciones
turnleft
Conclusin. Cada
move
programa terminar con
putbeeper
la instruccin end
end

Vocabulario Bsico
move - Karel puede moverse un paso hacia el frente. Si hay una
pared, choca y el programa aborta.
turnleft - Karel vira 90 grados hacia la izquierda. Tiene el mismo
problema de Otto con la diferencia de que es zurdo.
pickbeeper - Karel recoje un beeper y lo coloca en su bolsa. Tiene
que haber un beeper la lado de el. De no ser as, el
programa aborta.
putbeeper - Karel saca un beeper de su bolsa y lo pone en el piso.
De nuevo, si no hay beeper en la bolsa, el programa
aborta y Karel detiene su ejecucin.

VOCABULARIO EXTENDIDO
Podemos inventarnos instrucciones en Karel. Por ejemplo para
crear un comando que haga que Karel vire a la derecha, podemos
escribir las siguientes intrucciones antes del begin.
turnright
turnleft
turnleft
turnlef
end

Nueva instruccin para karel

Requiere un end al
final.

INSTRUCCIONES CONDICIONALES
Karel posee una instruccin llamada if que le permite saber el status
de ciertas condiciones. Con eso podemos especificarle que haga una
cosa o la otra. El formato del if es el siguiente:
if predicate
<then-instrucciones
end
if predicate
<then-instrucciones>
else
<else-clause statement(s)>
end

Predicate es la condicin por la


que se va a preguntar. En el
prximo slide, se van a mostrar
esas condiciones. Note que
siempre termina con end. En el
ejemplo tienen dos formatos
distintos para la misma
instruccin. En la clase se
abundar ms sobre eso.

Condiciones (Predicate)
front_is_clear

not front_is_clear

left_is_clear

not left_is_clear

right_is_clear

not right_is_clear

facing_north

not facing_north

facing_south

not facing_south

facing_east

not facing_east

facing_west

not facing_west

next_to_a_beeper

not next_to_a_beeper

any_beepers_in_beeper_bag

not beepers_in_beeper_bag

INSTRUCCIONES DE REPETICIN
iterate
Tiene el siguiente formato:
iterate iteration-amount
<loop body statement(s)>
end
Ejemplo:
iterate 4
move
end

Es similar a:
move
move
move
move

Nos permite ejecutar


una o mas
instrucciones en ms
de una ocasin. De
este modo nos permite
minimizar la cantidad
de instrucciones a
escribir cuando son
repetitivas.

while
Tiene el siguiente
formato:
while predicate
<loop body statement(s)>
end
Ejemplo:
while next_to_a_beeper
pickbeeper
move
end
Mientras Karel este parado al lado de
un beeper, lo va a recoger y va a dar
un paso adelante. Note que no coteja
si al frente hay una pared o no.

Nos permite ejecutar una


o ms instrucciones en
ninguna o varias
ocasiones mientras una
condicin (predicate) se
cumpla. A difirencia del
iterate, no se puede saber
con certeza cuantas veces
se va ejecutar las
intrucciones dentro del
while. El rango es de
cero (0) a indefinido (n)
veces.

EL MUNDO DE KAREL
Permite
rotar la
direccin a
la que Karel
est mirando

Nos permite ver


por donde Karel
va. Es necesario
ponerlo antes de
correr el
programa.

Nos permite
editar el mapa.
Poner paredes,
los beepers y a
Karel.

EJEMPLO DE UNA CORRIDA


Dele click al mouse para que vea la simulacin de la corrida del
programa que se muestra en este slide.

EJEMPLO DE UNA CORRIDA

EJEMPLO DE UNA CORRIDA

EJEMPLO DE UNA CORRIDA

EJEMPLO DE UNA CORRIDA

EJEMPLO DE UNA CORRIDA

EJEMPLO DE UNA CORRIDA

EJEMPLO DE UNA CORRIDA

EJEMPLO DE UNA CORRIDA

EJEMPLO DE UNA CORRIDA

EJEMPLO DE UNA CORRIDA

EJEMPLO DE UNA CORRIDA

EJEMPLO DE UNA CORRIDA

EJEMPLO DE UNA CORRIDA

EJEMPLO DE UNA CORRIDA

EJEMPLO DE UNA CORRIDA

EJEMPLO DE UNA CORRIDA


Este mensaje indica que el
programa termino de ejecutarse

You might also like