SICI 3011 El Robot Karel
-
Upload
mario-rinaldi -
Category
Documents
-
view
31 -
download
4
description
Transcript of SICI 3011 El Robot Karel
KAREL EL ROBOTSICI-3011
Preparado por:
Prof. Nelliud D. Torres
Instrucciones para el Robot Karel
El propósito de estudiar a Karel en adición a Otto es para familiarizarnos más con la programación estructurada y facilitar la adaptación a estilos de programación mas avanzados de los que nos puede ofrecer Otto. Otra razón 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 adaptación al mundo de la programación y del manejo de errores, tanto de sintaxis como de lógica. Otro punto importante es que estaremos tomando ejemplos de los comandos de Otto y Karel según nos adentremos más en los conceptos de programación.
Instrucciones de Karel
Las intrucciones de Karel se pueden dividir en los siguientes tópicos:
a) Vocabulario básico
b) Vocabulario extendido
c) Instrucciones condicionales
d) Instrucciones de repetición
FORMATO DEL LENGUAJE DE KAREL
EL lenguaje que se utiliza para programar a Karel, va a tener el siguiente formato:
{ Comentarios }begin
move
pickbeeper move
turnleft move
putbeeperend
Encabezamiento. Cada programa comenzará con
la instrucción begin
Conclusión. Cada programa terminará con
la instrucción end
Instrucciones
Lo que se ponga entre llaves ({})
se considera comentario, no
instrucción.
Vocabulario Básico
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 ejecución.
VOCABULARIO EXTENDIDO
turnright turnleft turnleft turnlef
end
Podemos “inventarnos” instrucciones en Karel. Por ejemplo paracrear un comando que haga que Karel vire a la derecha, podemosescribir las siguientes intrucciones antes del begin.
Requiere un end al final.
Nueva instrucción para karel
INSTRUCCIONES CONDICIONALES
if predicate <then-instrucciones
end
if predicate <then-instrucciones>
else <else-clause statement(s)>
end
Karel posee una instrucción 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:
Predicate es la condición por la que se va a preguntar. En el próximo slide, se van a mostrar esas condiciones. Note que siempre termina con end. En el ejemplo tienen dos formatos distintos para la misma instrucción. En la clase se abundará más 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 REPETICIÓN
Tiene el siguiente formato:
iterate iteration-amount
<loop body statement(s)>
end
Nos permite ejecutar una o mas instrucciones en más de una ocasión. De este modo nos permite minimizar la cantidad de instrucciones a escribir cuando son repetitivas.
Ejemplo: Es similar a:
iterate 4 move
move move
end move
move
iterate
whileTiene 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 más instrucciones en ninguna o varias ocasiones mientras una condición (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 KARELPermite rotar la dirección 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 CORRIDADele click al mouse para que vea la simulación 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 CORRIDAEste mensaje indica que el programa termino de ejecutarse