sici 3011 el robot karel
DESCRIPTION
Karel el robotTRANSCRIPT
![Page 1: SICI 3011 El Robot Karel](https://reader036.vdocuments.pub/reader036/viewer/2022081506/55cf914f550346f57b8c7a6d/html5/thumbnails/1.jpg)
KAREL EL ROBOTSICI-3011
Preparado por:
Prof. Nelliud D. Torres
![Page 2: SICI 3011 El Robot Karel](https://reader036.vdocuments.pub/reader036/viewer/2022081506/55cf914f550346f57b8c7a6d/html5/thumbnails/2.jpg)
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.
![Page 3: SICI 3011 El Robot Karel](https://reader036.vdocuments.pub/reader036/viewer/2022081506/55cf914f550346f57b8c7a6d/html5/thumbnails/3.jpg)
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
![Page 4: SICI 3011 El Robot Karel](https://reader036.vdocuments.pub/reader036/viewer/2022081506/55cf914f550346f57b8c7a6d/html5/thumbnails/4.jpg)
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.
![Page 5: SICI 3011 El Robot Karel](https://reader036.vdocuments.pub/reader036/viewer/2022081506/55cf914f550346f57b8c7a6d/html5/thumbnails/5.jpg)
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.
![Page 6: SICI 3011 El Robot Karel](https://reader036.vdocuments.pub/reader036/viewer/2022081506/55cf914f550346f57b8c7a6d/html5/thumbnails/6.jpg)
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
![Page 7: SICI 3011 El Robot Karel](https://reader036.vdocuments.pub/reader036/viewer/2022081506/55cf914f550346f57b8c7a6d/html5/thumbnails/7.jpg)
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.
![Page 8: SICI 3011 El Robot Karel](https://reader036.vdocuments.pub/reader036/viewer/2022081506/55cf914f550346f57b8c7a6d/html5/thumbnails/8.jpg)
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
![Page 9: SICI 3011 El Robot Karel](https://reader036.vdocuments.pub/reader036/viewer/2022081506/55cf914f550346f57b8c7a6d/html5/thumbnails/9.jpg)
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
![Page 10: SICI 3011 El Robot Karel](https://reader036.vdocuments.pub/reader036/viewer/2022081506/55cf914f550346f57b8c7a6d/html5/thumbnails/10.jpg)
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.
![Page 11: SICI 3011 El Robot Karel](https://reader036.vdocuments.pub/reader036/viewer/2022081506/55cf914f550346f57b8c7a6d/html5/thumbnails/11.jpg)
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.
![Page 12: SICI 3011 El Robot Karel](https://reader036.vdocuments.pub/reader036/viewer/2022081506/55cf914f550346f57b8c7a6d/html5/thumbnails/12.jpg)
EJEMPLO DE UNA CORRIDADele click al mouse para que vea la simulación de la corrida del programa que se muestra en este slide.
![Page 13: SICI 3011 El Robot Karel](https://reader036.vdocuments.pub/reader036/viewer/2022081506/55cf914f550346f57b8c7a6d/html5/thumbnails/13.jpg)
EJEMPLO DE UNA CORRIDA
![Page 14: SICI 3011 El Robot Karel](https://reader036.vdocuments.pub/reader036/viewer/2022081506/55cf914f550346f57b8c7a6d/html5/thumbnails/14.jpg)
EJEMPLO DE UNA CORRIDA
![Page 15: SICI 3011 El Robot Karel](https://reader036.vdocuments.pub/reader036/viewer/2022081506/55cf914f550346f57b8c7a6d/html5/thumbnails/15.jpg)
EJEMPLO DE UNA CORRIDA
![Page 16: SICI 3011 El Robot Karel](https://reader036.vdocuments.pub/reader036/viewer/2022081506/55cf914f550346f57b8c7a6d/html5/thumbnails/16.jpg)
EJEMPLO DE UNA CORRIDA
![Page 17: SICI 3011 El Robot Karel](https://reader036.vdocuments.pub/reader036/viewer/2022081506/55cf914f550346f57b8c7a6d/html5/thumbnails/17.jpg)
EJEMPLO DE UNA CORRIDA
![Page 18: SICI 3011 El Robot Karel](https://reader036.vdocuments.pub/reader036/viewer/2022081506/55cf914f550346f57b8c7a6d/html5/thumbnails/18.jpg)
EJEMPLO DE UNA CORRIDA
![Page 19: SICI 3011 El Robot Karel](https://reader036.vdocuments.pub/reader036/viewer/2022081506/55cf914f550346f57b8c7a6d/html5/thumbnails/19.jpg)
EJEMPLO DE UNA CORRIDA
![Page 20: SICI 3011 El Robot Karel](https://reader036.vdocuments.pub/reader036/viewer/2022081506/55cf914f550346f57b8c7a6d/html5/thumbnails/20.jpg)
EJEMPLO DE UNA CORRIDA
![Page 21: SICI 3011 El Robot Karel](https://reader036.vdocuments.pub/reader036/viewer/2022081506/55cf914f550346f57b8c7a6d/html5/thumbnails/21.jpg)
EJEMPLO DE UNA CORRIDA
![Page 22: SICI 3011 El Robot Karel](https://reader036.vdocuments.pub/reader036/viewer/2022081506/55cf914f550346f57b8c7a6d/html5/thumbnails/22.jpg)
EJEMPLO DE UNA CORRIDA
![Page 23: SICI 3011 El Robot Karel](https://reader036.vdocuments.pub/reader036/viewer/2022081506/55cf914f550346f57b8c7a6d/html5/thumbnails/23.jpg)
EJEMPLO DE UNA CORRIDA
![Page 24: SICI 3011 El Robot Karel](https://reader036.vdocuments.pub/reader036/viewer/2022081506/55cf914f550346f57b8c7a6d/html5/thumbnails/24.jpg)
EJEMPLO DE UNA CORRIDA
![Page 25: SICI 3011 El Robot Karel](https://reader036.vdocuments.pub/reader036/viewer/2022081506/55cf914f550346f57b8c7a6d/html5/thumbnails/25.jpg)
EJEMPLO DE UNA CORRIDA
![Page 26: SICI 3011 El Robot Karel](https://reader036.vdocuments.pub/reader036/viewer/2022081506/55cf914f550346f57b8c7a6d/html5/thumbnails/26.jpg)
EJEMPLO DE UNA CORRIDA
![Page 27: SICI 3011 El Robot Karel](https://reader036.vdocuments.pub/reader036/viewer/2022081506/55cf914f550346f57b8c7a6d/html5/thumbnails/27.jpg)
EJEMPLO DE UNA CORRIDA
![Page 28: SICI 3011 El Robot Karel](https://reader036.vdocuments.pub/reader036/viewer/2022081506/55cf914f550346f57b8c7a6d/html5/thumbnails/28.jpg)
EJEMPLO DE UNA CORRIDAEste mensaje indica que el programa termino de ejecutarse