Your SlideShare is downloading. ×
0
Extendiendo el Lenguaje
Extendiendo el Lenguaje
Extendiendo el Lenguaje
Extendiendo el Lenguaje
Extendiendo el Lenguaje
Extendiendo el Lenguaje
Extendiendo el Lenguaje
Extendiendo el Lenguaje
Extendiendo el Lenguaje
Extendiendo el Lenguaje
Extendiendo el Lenguaje
Extendiendo el Lenguaje
Extendiendo el Lenguaje
Extendiendo el Lenguaje
Extendiendo el Lenguaje
Extendiendo el Lenguaje
Extendiendo el Lenguaje
Extendiendo el Lenguaje
Extendiendo el Lenguaje
Extendiendo el Lenguaje
Extendiendo el Lenguaje
Extendiendo el Lenguaje
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Extendiendo el Lenguaje

355

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
355
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Programación IIExtendiendo el Lenguaje de Karel Ing. José Rubén Campos Alfaro Company LOGO
  • 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. 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. 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. 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. 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. 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. Definición de una Nueva Instrucción. Definamos la instrucción turnright. define turnright() { turnleft() turnleft() turnleft() }
  • 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. 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. 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. 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. 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. 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. Ambientes de KarelPosible estado inicial del mundo Posible estado final del mundo
  • 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. 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. 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. 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. 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. 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. Tarea

×