280 likes | 649 Views
KAREL EL ROBOT SICI-3011. Preparado por: Prof. Nelliud D. Torres. Instrucciones para el Robot Karel.
E N D
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: • Vocabulario básico • Vocabulario extendido • Instrucciones condicionales • Instrucciones de repetición
Encabezamiento. Cada programa comenzará con la instrucción begin { Comentarios } begin move pickbeeper move turnleft move putbeeper end Instrucciones Conclusión. Cada programa terminará con la instrucción end FORMATO DEL LENGUAJE DE KAREL EL lenguaje que se utiliza para programar a Karel, va a tener el siguiente formato: 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 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. Nueva instrucción para karel turnright turnleft turnleft turnlef end Requiere un end al final.
INSTRUCCIONES CONDICIONALES 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: ifpredicate <then-instrucciones end if predicate <then-instrucciones> else <else-clause statement(s)> end 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.
INSTRUCCIONES DE REPETICIÓN iterate 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
while Tiene el siguiente formato: whilepredicate <loop body statement(s)> end 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. 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.
EL MUNDO DE KAREL Permite 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 CORRIDA Dele click al mouse para que vea la simulación de la corrida del programa que se muestra en este slide.
EJEMPLO DE UNA CORRIDA Este mensaje indica que el programa termino de ejecutarse