Programación IIExtendiendo el Lenguaje de Karel Ing. José Rubén Campos Alfaro     Company     LOGO
Extendiendo el Lenguaje Podemos enseñar nuevas instrucciones  que ejecutan intrucciones mas simples. Imagine que queremo...
Extendiendo el Lenguaje Subiendo la escalera Karel se encuentra  frente a una escalera  como se muestra en la  figura 3.1...
Extendiendo el Lenguaje Para que karel caminara sobre la  escalera, nuestro código para subir un  escalón sería el siguie...
Extendiendo el Lenguajeclass program {                    Programa completoprogram(){      move();      turnleft();      t...
Definición de una Nueva Instrucción.Sintaxis para definir una nueva instrucción                para Karel                 ...
Definición de una Nueva Instrucción. Las instrucción puede ser una sola  instrucción o un bloque de instrucciones  creado...
Definición de una Nueva Instrucción. Definamos la instrucción turnright. define turnright() { turnleft() turnleft() turnl...
Definición de una Nueva Instrucción.•Empleemos la instrucción turnright en ladefinición de la instrucción subeEscalon()   ...
Definición de una Nueva Instrucción.class program{                           program()define turnright()                  ...
Razones para crear                 nuevas instrucciones Es un buen hábito de programación de  programación, el tener las ...
Razones para crear                  nuevas instrucciones La claridad en el código es de suma  importancia cuando estamos ...
Razones para crear                               nuevas instrucciones  Ej.   Redefiniendo                  define ponBipe...
Razones para crear                nuevas instrucciones                                                       Ok, I got    ...
Ambientes de KarelPosible estado inicial del mundo     Posible estado final del mundo
Razones para crear                         nuevas instrucciones Al crear nuevas instrucciones con una  labor específica, ...
Razones para crear                          nuevas instrucciones                              Podemos modificar la función...
Razones para crear                   nuevas instrucciones Siempre es aconsejable seccionar nuestro  problema en pequeñas ...
Ejercicios Re escribir los siguientes problemas. Deberá utilizar las nuevas  instrucciones creadas.      1. Karel debe i...
Ejercicios 2. Karel tiene como actividad recoger un zumbador que se  encuentra en las coordenadas (9,2) regresar con el  ...
Ejercicios   3. Karel tiene la siguiente actividad. Karel debe recoger los    zumbadores (beepers) que están en el laberi...
Tarea
Upcoming SlideShare
Loading in …5
×

Extendiendo el Lenguaje

583 views
432 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
583
On SlideShare
0
From Embeds
0
Number of Embeds
70
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Extendiendo el Lenguaje

  1. 1. Programación IIExtendiendo el Lenguaje de Karel Ing. José Rubén Campos Alfaro Company LOGO
  2. 2. Extendiendo el Lenguaje Podemos enseñar nuevas instrucciones que ejecutan intrucciones mas simples. Imagine que queremos que Karel gire a la derecha entonces tendríamos que indicarle que diera tres giros a la izquierda. Entonces sería de gran utilidad contar con una instrucción turnright (gira a la derecha).
  3. 3. Extendiendo el Lenguaje Subiendo la escalera Karel se encuentra frente a una escalera como se muestra en la figura 3.1 compuesta por tres escalones de subida. Lleva a karel hasta el último Figura 3.1 escalón.
  4. 4. Extendiendo el Lenguaje Para que karel caminara sobre la escalera, nuestro código para subir un escalón sería el siguiente: move(); Este código lo tendremos que repetir turnleft(); 3 veces ya que es el número de escalones que Karel va a subir. turnleft(); turnleft(); move();
  5. 5. Extendiendo el Lenguajeclass program { Programa completoprogram(){ move(); turnleft(); turnleft(); turnleft(); move() ; turnleft(); move(); turnleft(); turnleft(); turnleft(); move(); turnleft(); move(); turnleft(); turnleft(); turnleft(); move(); turnoff();}}
  6. 6. Definición de una Nueva Instrucción.Sintaxis para definir una nueva instrucción para Karel La palabra reservada define laDefine <nombre_nueva_instrucción>() empleamos para decirle a Karel que le enseñamos una nueva{ instrucción.<instrucciones><instrucciones> Posteriormente viene el nombre de. la nueva instrucción, la cual no debe. ser igual al nombre de alguna otra. Instrucción nativa o ya definida.<instrucciones>} Por último, viene el código que deseamos que Karel Ejecute a través de la nueva instrucción. Nota: No hay ; después de la primera línea.
  7. 7. Definición de una Nueva Instrucción. Las instrucción puede ser una sola instrucción o un bloque de instrucciones creado con “{“ y “}”. Esto crea lo que se conoce como una entrada al diccionario de karel, que es donde está todo lo que karel puede y sabe ejecutar.
  8. 8. Definición de una Nueva Instrucción. Definamos la instrucción turnright. define turnright() { turnleft() turnleft() turnleft() }
  9. 9. Definición de una Nueva Instrucción.•Empleemos la instrucción turnright en ladefinición de la instrucción subeEscalon() define subeEscalon() { turnleft(); move(); turnright(); move(); }
  10. 10. Definición de una Nueva Instrucción.class program{ program()define turnright() { { subeEs;calon() turnleft(); subeEs;calon() turnleft(); subeEs;calon() turnleft(); turnof() } }define subeEscalon() } { turnleft(); move(); turnright(); move(); }
  11. 11. Razones para crear nuevas instrucciones Es un buen hábito de programación de programación, el tener las nuevas instrucciones definidas en forma más clara y concisa posible. Posibilidad de reutilización en futuros programas escritos. Contar con una biblioteca de múltiples funciones de uso variado.
  12. 12. Razones para crear nuevas instrucciones La claridad en el código es de suma importancia cuando estamos programando. Una aplicación sencilla es renombrar las instrucciones nativas (move, putbeeper, etc), para tenerlas de manera más clara y evitar errores a la hora de escribirlas.
  13. 13. Razones para crear nuevas instrucciones  Ej. Redefiniendo define ponBiper() una { Instrucción de Karel. putbeeper(); }La claridad en un código nos ayuda a comprender que estamos haciendo ycómo estamos dividiendo nuestra tarea en tareas más pequeñas.
  14. 14. Razones para crear nuevas instrucciones Ok, I got it!program () What!! program () { { tr(); iniciaPosicion(); move(); move(); pon(); colocaPila(); c(); cambiaDeAvenida(); pon(); colocaPila(); c(); cambiaDeAvenida(); rb(); recogeBeepers(); } } Programa poco claro Programa entendible
  15. 15. Ambientes de KarelPosible estado inicial del mundo Posible estado final del mundo
  16. 16. Razones para crear nuevas instrucciones Al crear nuevas instrucciones con una labor específica, podemos reutilizar esa move(); misma instrucción en nuevos programas. turnleft(); Ej turnleft();  Pensemos que deseamos construir turnleft(); escalones de beepers sobre el mismo move(); mundo de la fig.2.1.1 Entonces nuestro programa solo estaría levemente Fig. 2.1.1 modificado en la función principal de la siguiente manera:
  17. 17. Razones para crear nuevas instrucciones Podemos modificar la funciónprogram() subeEscalon agregándole al final { La instrucción pubbeeper. putbeeper(); subeEscalon(); program() putbeeper(); { subeEscalon(); turnleft(); putbeeper(); move(); turnoff(); turnright(); } move(); putbeeper(); Modificación de un }programa para una nueva tarea.
  18. 18. Razones para crear nuevas instrucciones Siempre es aconsejable seccionar nuestro problema en pequeñas tareas. La creatividad de un programador se basa en poder dividir una tarea en varias tareas de menor complejidad. Esto se llama top-down .- tratamos de llevar a cabo una tarea por medio de realizarla desde lo general, seccionándola y simplificándola hasta llevarla a las instrucciones más simples (nativas) de Karel.
  19. 19. Ejercicios Re escribir los siguientes problemas. Deberá utilizar las nuevas instrucciones creadas.  1. Karel debe ir al norte coordenadas (14,2) durante su camino deberá recoger los zumbadores(beepers) que encuentre a su paso y llevarlos a su destino. Recuerda que los mundos están en el blog de la clase. Descargarlos.
  20. 20. Ejercicios 2. Karel tiene como actividad recoger un zumbador que se encuentra en las coordenadas (9,2) regresar con el zumbador(beeper) y depositarlo en el lugar donde inicio su recorrido.
  21. 21. Ejercicios 3. Karel tiene la siguiente actividad. Karel debe recoger los zumbadores (beepers) que están en el laberinto. Karel debe iniciar a recoger los zumbadores iniciando su recorrido hacia el Norte y terminando su recorrido para recoger los zumbadores hacia el Este. Una vez levantado el último zumbador debe colocar los zumbares uno a uno desde las coordenadas (1,10 hasta la 1,3). Karel debe llegar a su punto de partida y quedar mirando hacia el Norte.
  22. 22. Tarea

×