Formas de programar Karel the Robot

Cristina Suárez

Inf102-1

Clase: 7 de mayo de 2013.

top_karel                                                                                                               credito de la fotografia

En la clase anterior se discutió los puntos básicos del programa de Karel. En esta clase seguimos viendo diferentes tipos de comandos o instrucciones que se pueden realizar además de los ya discutido. Utilizamos de ejemplo el ejercicio de la escalera donde el robot Karel (la flecha) debe subir tres escalones y recoger el beeper que se encuentra en cada escalón y para finalizar debe bajar. Al hacer este ejercicio con las instrucciones de la clase pasada (move; turnleft; pickbeeper; ) podemos ver que hay que repetir varias veces las mismas instrucciones y esto puede ocasionar alguna confusión. Como estos programas de programación se hacen con el propósito de facilitar estos comando vamos a aprender algunos “shortcuts” que son más sencillos. Tenemos la primera instrucción que es subir el primer es escalón que sería el siguiente:

karel1

Este paso se debe repetir tres veces en este ejercicio, pero en vez de escribir todos de nuevo de esta manera se puede crear un bloque de instrucciones. En un bloque de instrucciones uno puede crear una nueva acción y la nombra para identificarla y utilizarla luego. Aquí está el ejemplo de un bloque de instrucciones para girar hacia la derecha haciendo una nueva instrucción llamada “turnright” y se utiliza en este ejemplo para subir un escalón.

karel2

Estos bloques de instrucciones nuevas se colocan rápidamente después del “beginning-of-program”. Esto es porque estas instrucciones son definición nueva y deben ir antes del programa poder ejecutarlo.

Como puedes ver a diferencia de las instrucciones de antes ahora al escribir el programa puede ser más claro y se pueden evitar menos errores que pueden suceder cuando los programas son largos. Ahora con estos bloques se pueden realizar otros tipos de acciones. Comenzamos con las estructuras de control que se dividen en repeticiones y condiciones. La repetición es cuando uno quiere que se repita en una cantidad ya determinada una acción. Y se escribe de la forma “Iterate x times” donde x colocas las veces, ejemplo:

karel3

Aquí se especifica que se dé tres veces la instrucción de “turnleft;”. Para virar a la derecha se debe escribir tres veces “turnleft;” pero en este caso para lograr esta acción se escribe una sola vez y el “Iterate 3 times” para que se repita la acción tres veces.

Luego tenemos las condiciones donde las instrucciones son oraciones que pueden ser contestadas con un sí o no (cierto o falso). Aquí se encuentra una tabla de diferentes tipos de condiciones que se pueden añadir. Dependiendo de la condición el propósito de ella es si la condición se contesta con un si esta puede seguir con una acción indicada. Si se contesta con un no o falsa la acción no se puede lograr. Un ejemplo, la condición es si al frente de la flecha está bloqueado debe girar hacia la izquierda.

Si es cierto que está bloqueado esta inmediatamente gira hacia la izquierda, si la condición es falsa esta no va a girar hacia la izquierda. Pero en este caso solo se logra una acción. Para cuando uno quiere añadir dos acciones diferentes a una condición entonces utilizaría el “if/then/else statement” que sería el siguiente:

karel4

En este caso cuando la condición, que en este caso es “next-to-a-beeper”, si es cierta esta va hacer la acción de coger el beeper (pickbeeper;). Si es falso este se mueve a la acción después del “else” que en este caso sería moverse (move;). Esta forma de instrucción solo ocurre una vez si quiere repetir esta misma acción varias veces se utiliza el “Iterate x times”  luego añade la condición.

Por último se discutió el “while/do statement” que hace una acción mientras esta sea cierta. Esto se puede utilizar cuando no sabes la cantidad exacta de repetir una acción, como moverse, esta permite que siga haciendo la acción indicada hasta que la condición sea falsa y pare. Aquí se le añade “While condición do” y luego las instrucciones. A diferencia del “if/then/else statement” que solo hace la acción una sola vez, el “while/do statement” puede hacer la misma acción más de una vez cuando esta siempre sea cierta. El sigueinte video puede demostrar claramente como trabaja esta acción.

Para obtener más información o repasar puede ir la siguiente página web donde están las lecciones que explican cada una de estas acciones y formas de programacion de Karel the Robot.

Karel, una manera fácil de aprender a programar

Gloria Barrientos

201-00-1685

Clase del jueves 25 de abril, 2013

Image

“Karel, el robot” imagen de http://hts.stevenwood.com

En la clase de hoy empezamos hablando sobre lo que son los programas de computadora y como hay diferentes tipo. Hablamos, por ejemplo, de que los programas complicados toman meses o años de desarrollo y un equipo de programadores. Para crear un buen programa hay que primero estudiar el problema y luego analizar los datos para asi finalmente sentarse a trabajar en el desarrollo del programa.

Hoy en clase nos adentramos mas en lo que es Karel y como nos va a servir. Karel es un lenguaje de programación educacional para principiantes creado por Richard Pattis. Karel sirve para hacer sistemas simples y lo presenta de manera visual. Consiste de un lenguaje de solamente 5 instrucciones:

  • move;
  • pickbeeper;
  • putbeeper;
  • turnleft;
  • turnoff;

Como ven, Karel solo se puede mover hacia la izquierda por lo que es necesario darle ese comando varias veces para que se de una vuelta y se dirija en cualquier otra dirección. Al abrir el mundo de Karel uno se da cuenta que Karel, un robot, vive en una cuadricula de calles, avenidas, paredes y beepers.

karel 1

En la clase hicimos un programa básico en Karel donde subía a una montaña, depositaba un beeper en la cima y luego descendía.

  1. Crear un mundo: El primer paso es crear el mundo de Karel. En este mundo se encuentran los beepers, que Karel puede llevar consigo o pueden estar por el mundo. En el ejercicio de la clase le dimos un beeper a Karelkarel 2 También se encuentran las paredes, estas bloquean el paso de Karel. Las paredes son creadas donde esta el cursor y pueden ser posicionadas de acuerdo a las 4 puntos cardinales. En el ejercicio de la clase hicimos una montaña.  
  2. Para poner a Karel en el mundo se selecciona ‘Place in cursor’ y en que dirección se desea que Karel mire. Una vez terminado de crear el mundo se selecciona ‘Save world’. Un mundo es salvado con la extensión .kw mientras que un programa se salva con la extensión .kp por lo que se puede usar el mismo nombre para ambos. Otras opciones disponibles son ‘Load world”que permite abrir un mundo grabado y ‘Clear world ‘que borra el mundo creado.
  3. Crear el programa: en una segunda pestaña en Karel esta la opción de crear el programa.karel 3  Aquí es donde se utilizaran las 5 direcciones que se le pueden dar a Karel para hacer que este interactué con el mundo creado. Antes de empezar a crear el programa se pedira que lo salves. Luego que se ha salvado y que se le ha dado nombre aparecera ‘beginning-of-program’, ‘beginning-of-execution’, ‘turnoff;’, ‘end-of-execution’ y ‘end-of-program’. karel4 Es entre  ‘beginning-of-execution’ y  ‘turnoff;’ que se escribirá el programa. El programa que hicimos en clase consistía en Karel subiendo a la montaña, dejando el beeper en la cima y luego bajando la montaña otra vez. Se tuvo que escribir el comando ‘turnleft;’ varias veces para que Karel pueda darse una vuelta y virar en otras direcciones.Ademas se usaron las otras instrucciones de Karel. Una vez se termina de escribir el programa se le debe dar ‘Save program’ y luego ‘Compile’, esto indicara si hay errores ortográficos en el programa. 
  4. “Execute”: en la pestaña de ‘Execute’ se ejecutara el programa. Cambiamos los steps per minute a 600 y click a ‘Start’ y después a ‘Run’ karel5