SlideShare una empresa de Scribd logo
1 de 17
KAREL




Lenguaje de Programación:Ciclos y Condicionales
             (instrucción iterate)




         José Luis Alonzo Velázquez   Lenguaje de Programación:Ciclos y Condicionales (instrucción i
Instrucción iterate
                        KAREL   Ejemplos de iterate
                                Anidando ciclos




La instrucción iterate
Está instrucción es empleada cuando una misma instrucción(o
bloque) requiere ser repetida.




                                Lenguaje de Programación:Ciclos y Condicionales (instrucción i
Instrucción iterate
                          KAREL   Ejemplos de iterate
                                  Anidando ciclos




La sintaxis de iterate es:
iterate(<número positivo>)
       {
       <instrucción>
       <instrucción>

      <instrucción>
      }

Nota:
Cuando sólo queremos repetir una sola instrucción, es posible
omitir las llaves "{" y "}". Sin embargo recomiendo que se utilicen
al principio, aunque sólo sea una instrucción.


              J                   Lenguaje de Programación:Ciclos y Condicionales (instrucción i
Instrucción iterate
                           KAREL   Ejemplos de iterate
                                   Anidando ciclos




Ejemplo: Vuelta a la derecha
define turnright()
      {
      iterate(3)
             {
             turnleft();
             }
      }




                                   Lenguaje de Programación:Ciclos y Condicionales (instrucción i
Instrucción iterate
                           KAREL   Ejemplos de iterate
                                   Anidando ciclos




Cosechando
Como Karel siempre ha sido muy atento con su familia,
decidió que era tiempo de contribuir con los ingresos de la familia.
Por lo tanto consiguió un trabajo para cosechar hileras de 20 a 100
esquinas(ya que son las mejores pagadas). Hacer un programa que
coseche 20 o 100 esquinas.




                                   Lenguaje de Programación:Ciclos y Condicionales (instrucción i
Instrucción iterate
                                 KAREL     Ejemplos de iterate
                                           Anidando ciclos



class program
      {
      define cosecha()
            {
            iterate(20)
                   {
                   pickbeeper();
                   move();
                   }
            }
      program()
            {
            cosecha();
            turnoff();
            }
      }

              José Luis Alonzo Velázquez   Lenguaje de Programación:Ciclos y Condicionales (instrucción i
Instrucción iterate
                          KAREL   Ejemplos de iterate
                                  Anidando ciclos




Anidando ciclos
En general, es posible anidar tantos ciclos como sean necesarios.
Esto es muy semejante a lo que ocurrıa cuando defin ıamos una
instrucción que usaba otra instrucción definida antes.




                                  Lenguaje de Programación:Ciclos y Condicionales (instrucción i
Instrucción iterate
                           KAREL   Ejemplos de iterate
                                   Anidando ciclos




Ejemplo: Sembrando
El Dr. Karelov desea colocar 10 beepers en 5 esquinas a lo largo de
una calle. Por ello, Karel debe ser programado para hacer el
trabajo por él.




       Figura: Colocando 10 beepers en 5 esquinas consecutivas.




                                   Lenguaje de Programación:Ciclos y Condicionales (instrucción i
Instrucción iterate
                          KAREL   Ejemplos de iterate
                                  Anidando ciclos




Programa
program()
     {
     iterate(5)
            {
            iterate(10)
                   {
                   putbeeper();
                   }
            move();
            }
     }



                                  Lenguaje de Programación:Ciclos y Condicionales (instrucción i
Instrucción iterate
                            KAREL    Ejemplos de iterate
                                     Anidando ciclos


Cosechando
El Dr. Karelov está complacido por el trabajo de Karel. Por ello, le
ha pedido que recoja todos los tornillos que hay en el suelo. Hay 5
tornillos por esquina a lo largo de un cuadrado de 6 avenidas y 4
calles.




                    Figura: Tornillos en el cuarto.
                                     Lenguaje de Programación:Ciclos y Condicionales (instrucción i
Instrucción iterate
                          KAREL   Ejemplos de iterate
                                  Anidando ciclos



program()
     {
     iterate(6)
            {
            iterate(4)
                   {
                   iterate(5)
                          pickbeeper();
                   move();
                   }
            halfturn();
            iterate(4)
                   move();
            leftmove();(*gira a la izquierda y da un paso*)
            turnleft();
            }
     turnoff();
                                  Lenguaje de Programación:Ciclos y Condicionales (instrucción i
Instrucción iterate
                           KAREL   Ejemplos de iterate
                                   Anidando ciclos




Errores en ciclos
Durante el uso de ciclos, es común cometer errores entre una
iteración y otra. Es decir, los errores se producen justo después de
terminar una iteración o al iniciar una.




                                   Lenguaje de Programación:Ciclos y Condicionales (instrucción i
Instrucción iterate
                          KAREL    Ejemplos de iterate
                                   Anidando ciclos




Ejemplo: Cosechando la calle
En cierta ocasión el Dr. Karelov envió a Karel por unos beepers a
lo largo de una calle que llegaba hasta una pared. Has un programa
para que Karel recoja todos los beepers hasta topar con pared.




           Figura: Recogiendo los beepers hasta la pared.




                                   Lenguaje de Programación:Ciclos y Condicionales (instrucción i
Instrucción iterate
                             KAREL   Ejemplos de iterate
                                     Anidando ciclos




El tıpico código ser ıa
program()
      {
      iterate(6)
             {
             pickbeeper();
             move();
             }
      }




                                     Lenguaje de Programación:Ciclos y Condicionales (instrucción i
Instrucción iterate
                             KAREL    Ejemplos de iterate
                                      Anidando ciclos




Resultado




            Figura: Mensaje de error al chocar con una pared.




                                     Lenguaje de Programación:Ciclos y Condicionales (instrucción i
Instrucción iterate
                            KAREL   Ejemplos de iterate
                                    Anidando ciclos




Un programa que si funciona bien es:
program()
     {
     iterate(5)
            {
            pickbeeper();
            move();
            }
     pickbeeper();
     }




                                    Lenguaje de Programación:Ciclos y Condicionales (instrucción i
Instrucción iterate
                   KAREL   Ejemplos de iterate
                           Anidando ciclos


Edgar Alfredo Duéñez Guzmán & Edgar Said Hernández
Sánchez & Marte Alejandro Ram ırez Ortegón Los Dilemas de
Karel. CIMAT, Mayo 2006.




                           Lenguaje de Programación:Ciclos y Condicionales (instrucción i

Más contenido relacionado

Destacado

Equipo 6 comparaciones
Equipo 6 comparacionesEquipo 6 comparaciones
Equipo 6 comparacionesgabo
 
Ejercicios karel
Ejercicios karelEjercicios karel
Ejercicios karelroyyyer500
 
Ciclos Condicionales Y Pseint
Ciclos Condicionales Y PseintCiclos Condicionales Y Pseint
Ciclos Condicionales Y PseintMonjeOneble
 
Presentación Riesgo Biologico.
Presentación  Riesgo  Biologico.Presentación  Riesgo  Biologico.
Presentación Riesgo Biologico.ArelisCrespo
 
Manipulacion de la pila!!
Manipulacion de la pila!!Manipulacion de la pila!!
Manipulacion de la pila!!romo91
 
Science Experiments on Tablets
Science Experiments on TabletsScience Experiments on Tablets
Science Experiments on TabletsMonica Burns
 
UX: Una disciplina para curiosos, inconformes y locos
UX: Una disciplina para curiosos, inconformes y locosUX: Una disciplina para curiosos, inconformes y locos
UX: Una disciplina para curiosos, inconformes y locosAndrea Cantú
 
Elementos que Forman Parte del Planteamiento del Problema en una Investigación
Elementos que Forman Parte del Planteamiento del Problema en una InvestigaciónElementos que Forman Parte del Planteamiento del Problema en una Investigación
Elementos que Forman Parte del Planteamiento del Problema en una InvestigaciónRosanna Silva Fernandez
 

Destacado (19)

Equipo 6 comparaciones
Equipo 6 comparacionesEquipo 6 comparaciones
Equipo 6 comparaciones
 
Tutorial ensamblador
Tutorial ensambladorTutorial ensamblador
Tutorial ensamblador
 
Mis practicas karel
Mis practicas karelMis practicas karel
Mis practicas karel
 
Ejercicios karel
Ejercicios karelEjercicios karel
Ejercicios karel
 
Ejercicios karel
Ejercicios karelEjercicios karel
Ejercicios karel
 
Mis Practicas karel 404
Mis Practicas karel 404Mis Practicas karel 404
Mis Practicas karel 404
 
Mis practicas de karel
Mis practicas de karelMis practicas de karel
Mis practicas de karel
 
While karel
While karelWhile karel
While karel
 
Div, idiv, Neg ensamblador
Div, idiv, Neg ensambladorDiv, idiv, Neg ensamblador
Div, idiv, Neg ensamblador
 
Lab etap4
Lab etap4Lab etap4
Lab etap4
 
Riesgos Biologicos
Riesgos BiologicosRiesgos Biologicos
Riesgos Biologicos
 
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADORUNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
 
Ciclos Condicionales Y Pseint
Ciclos Condicionales Y PseintCiclos Condicionales Y Pseint
Ciclos Condicionales Y Pseint
 
STEAM IT Up with the 8Cs
STEAM IT Up with the 8CsSTEAM IT Up with the 8Cs
STEAM IT Up with the 8Cs
 
Presentación Riesgo Biologico.
Presentación  Riesgo  Biologico.Presentación  Riesgo  Biologico.
Presentación Riesgo Biologico.
 
Manipulacion de la pila!!
Manipulacion de la pila!!Manipulacion de la pila!!
Manipulacion de la pila!!
 
Science Experiments on Tablets
Science Experiments on TabletsScience Experiments on Tablets
Science Experiments on Tablets
 
UX: Una disciplina para curiosos, inconformes y locos
UX: Una disciplina para curiosos, inconformes y locosUX: Una disciplina para curiosos, inconformes y locos
UX: Una disciplina para curiosos, inconformes y locos
 
Elementos que Forman Parte del Planteamiento del Problema en una Investigación
Elementos que Forman Parte del Planteamiento del Problema en una InvestigaciónElementos que Forman Parte del Planteamiento del Problema en una Investigación
Elementos que Forman Parte del Planteamiento del Problema en una Investigación
 

Similar a Ciclos y Condicionales - Iterate

Similar a Ciclos y Condicionales - Iterate (6)

Karel
KarelKarel
Karel
 
Karel
KarelKarel
Karel
 
Ciclos
CiclosCiclos
Ciclos
 
Estructuras repetitivas
Estructuras repetitivasEstructuras repetitivas
Estructuras repetitivas
 
Estructura de control repetitivo diapositivas
Estructura de control repetitivo diapositivasEstructura de control repetitivo diapositivas
Estructura de control repetitivo diapositivas
 
Michell instrucciones de ontrol
Michell instrucciones de ontrolMichell instrucciones de ontrol
Michell instrucciones de ontrol
 

Más de Lincoln School

Introduccionalasbasesdedatos
IntroduccionalasbasesdedatosIntroduccionalasbasesdedatos
IntroduccionalasbasesdedatosLincoln School
 
Creando diagramas de flujo con dfd
Creando diagramas de flujo con dfdCreando diagramas de flujo con dfd
Creando diagramas de flujo con dfdLincoln School
 
Tema 4 -_introduccion_a_razonamiento_algoritmico
Tema 4 -_introduccion_a_razonamiento_algoritmicoTema 4 -_introduccion_a_razonamiento_algoritmico
Tema 4 -_introduccion_a_razonamiento_algoritmicoLincoln School
 
Tema 3 metodología para la solución de problemas
Tema 3  metodología para la solución de problemasTema 3  metodología para la solución de problemas
Tema 3 metodología para la solución de problemasLincoln School
 
Historia de los lenguajes de programación
Historia de los lenguajes de programaciónHistoria de los lenguajes de programación
Historia de los lenguajes de programaciónLincoln School
 
Ciclos y Condicionales
Ciclos y CondicionalesCiclos y Condicionales
Ciclos y CondicionalesLincoln School
 
Instrucciones Básicas
Instrucciones BásicasInstrucciones Básicas
Instrucciones BásicasLincoln School
 
Programación 2 - karel1
Programación 2 - karel1Programación 2 - karel1
Programación 2 - karel1Lincoln School
 
03 algorithm properties
03 algorithm properties03 algorithm properties
03 algorithm propertiesLincoln School
 
Algorithms and flowcharts1
Algorithms and flowcharts1Algorithms and flowcharts1
Algorithms and flowcharts1Lincoln School
 
Collaborative work with google docs
Collaborative work with google docsCollaborative work with google docs
Collaborative work with google docsLincoln School
 

Más de Lincoln School (14)

Introduccionalasbasesdedatos
IntroduccionalasbasesdedatosIntroduccionalasbasesdedatos
Introduccionalasbasesdedatos
 
Creando diagramas de flujo con dfd
Creando diagramas de flujo con dfdCreando diagramas de flujo con dfd
Creando diagramas de flujo con dfd
 
Tema 4 -_introduccion_a_razonamiento_algoritmico
Tema 4 -_introduccion_a_razonamiento_algoritmicoTema 4 -_introduccion_a_razonamiento_algoritmico
Tema 4 -_introduccion_a_razonamiento_algoritmico
 
Tema 3 metodología para la solución de problemas
Tema 3  metodología para la solución de problemasTema 3  metodología para la solución de problemas
Tema 3 metodología para la solución de problemas
 
Historia de los lenguajes de programación
Historia de los lenguajes de programaciónHistoria de los lenguajes de programación
Historia de los lenguajes de programación
 
Html
HtmlHtml
Html
 
Ciclos y Condicionales
Ciclos y CondicionalesCiclos y Condicionales
Ciclos y Condicionales
 
Instrucciones Básicas
Instrucciones BásicasInstrucciones Básicas
Instrucciones Básicas
 
Programación 2
Programación 2Programación 2
Programación 2
 
Programación 2 - karel1
Programación 2 - karel1Programación 2 - karel1
Programación 2 - karel1
 
03 algorithm properties
03 algorithm properties03 algorithm properties
03 algorithm properties
 
Algorithms and flowcharts1
Algorithms and flowcharts1Algorithms and flowcharts1
Algorithms and flowcharts1
 
Collaborative work with google docs
Collaborative work with google docsCollaborative work with google docs
Collaborative work with google docs
 
Movie maker
Movie makerMovie maker
Movie maker
 

Último

La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
PROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y masPROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y maslida630411
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaYeimys Ch
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxCarolina Bujaico
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 

Último (20)

La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
PROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y masPROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y mas
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptx
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 

Ciclos y Condicionales - Iterate

  • 1. KAREL Lenguaje de Programación:Ciclos y Condicionales (instrucción iterate) José Luis Alonzo Velázquez Lenguaje de Programación:Ciclos y Condicionales (instrucción i
  • 2. Instrucción iterate KAREL Ejemplos de iterate Anidando ciclos La instrucción iterate Está instrucción es empleada cuando una misma instrucción(o bloque) requiere ser repetida. Lenguaje de Programación:Ciclos y Condicionales (instrucción i
  • 3. Instrucción iterate KAREL Ejemplos de iterate Anidando ciclos La sintaxis de iterate es: iterate(<número positivo>) { <instrucción> <instrucción> <instrucción> } Nota: Cuando sólo queremos repetir una sola instrucción, es posible omitir las llaves "{" y "}". Sin embargo recomiendo que se utilicen al principio, aunque sólo sea una instrucción. J Lenguaje de Programación:Ciclos y Condicionales (instrucción i
  • 4. Instrucción iterate KAREL Ejemplos de iterate Anidando ciclos Ejemplo: Vuelta a la derecha define turnright() { iterate(3) { turnleft(); } } Lenguaje de Programación:Ciclos y Condicionales (instrucción i
  • 5. Instrucción iterate KAREL Ejemplos de iterate Anidando ciclos Cosechando Como Karel siempre ha sido muy atento con su familia, decidió que era tiempo de contribuir con los ingresos de la familia. Por lo tanto consiguió un trabajo para cosechar hileras de 20 a 100 esquinas(ya que son las mejores pagadas). Hacer un programa que coseche 20 o 100 esquinas. Lenguaje de Programación:Ciclos y Condicionales (instrucción i
  • 6. Instrucción iterate KAREL Ejemplos de iterate Anidando ciclos class program { define cosecha() { iterate(20) { pickbeeper(); move(); } } program() { cosecha(); turnoff(); } } José Luis Alonzo Velázquez Lenguaje de Programación:Ciclos y Condicionales (instrucción i
  • 7. Instrucción iterate KAREL Ejemplos de iterate Anidando ciclos Anidando ciclos En general, es posible anidar tantos ciclos como sean necesarios. Esto es muy semejante a lo que ocurrıa cuando defin ıamos una instrucción que usaba otra instrucción definida antes. Lenguaje de Programación:Ciclos y Condicionales (instrucción i
  • 8. Instrucción iterate KAREL Ejemplos de iterate Anidando ciclos Ejemplo: Sembrando El Dr. Karelov desea colocar 10 beepers en 5 esquinas a lo largo de una calle. Por ello, Karel debe ser programado para hacer el trabajo por él. Figura: Colocando 10 beepers en 5 esquinas consecutivas. Lenguaje de Programación:Ciclos y Condicionales (instrucción i
  • 9. Instrucción iterate KAREL Ejemplos de iterate Anidando ciclos Programa program() { iterate(5) { iterate(10) { putbeeper(); } move(); } } Lenguaje de Programación:Ciclos y Condicionales (instrucción i
  • 10. Instrucción iterate KAREL Ejemplos de iterate Anidando ciclos Cosechando El Dr. Karelov está complacido por el trabajo de Karel. Por ello, le ha pedido que recoja todos los tornillos que hay en el suelo. Hay 5 tornillos por esquina a lo largo de un cuadrado de 6 avenidas y 4 calles. Figura: Tornillos en el cuarto. Lenguaje de Programación:Ciclos y Condicionales (instrucción i
  • 11. Instrucción iterate KAREL Ejemplos de iterate Anidando ciclos program() { iterate(6) { iterate(4) { iterate(5) pickbeeper(); move(); } halfturn(); iterate(4) move(); leftmove();(*gira a la izquierda y da un paso*) turnleft(); } turnoff(); Lenguaje de Programación:Ciclos y Condicionales (instrucción i
  • 12. Instrucción iterate KAREL Ejemplos de iterate Anidando ciclos Errores en ciclos Durante el uso de ciclos, es común cometer errores entre una iteración y otra. Es decir, los errores se producen justo después de terminar una iteración o al iniciar una. Lenguaje de Programación:Ciclos y Condicionales (instrucción i
  • 13. Instrucción iterate KAREL Ejemplos de iterate Anidando ciclos Ejemplo: Cosechando la calle En cierta ocasión el Dr. Karelov envió a Karel por unos beepers a lo largo de una calle que llegaba hasta una pared. Has un programa para que Karel recoja todos los beepers hasta topar con pared. Figura: Recogiendo los beepers hasta la pared. Lenguaje de Programación:Ciclos y Condicionales (instrucción i
  • 14. Instrucción iterate KAREL Ejemplos de iterate Anidando ciclos El tıpico código ser ıa program() { iterate(6) { pickbeeper(); move(); } } Lenguaje de Programación:Ciclos y Condicionales (instrucción i
  • 15. Instrucción iterate KAREL Ejemplos de iterate Anidando ciclos Resultado Figura: Mensaje de error al chocar con una pared. Lenguaje de Programación:Ciclos y Condicionales (instrucción i
  • 16. Instrucción iterate KAREL Ejemplos de iterate Anidando ciclos Un programa que si funciona bien es: program() { iterate(5) { pickbeeper(); move(); } pickbeeper(); } Lenguaje de Programación:Ciclos y Condicionales (instrucción i
  • 17. Instrucción iterate KAREL Ejemplos de iterate Anidando ciclos Edgar Alfredo Duéñez Guzmán & Edgar Said Hernández Sánchez & Marte Alejandro Ram ırez Ortegón Los Dilemas de Karel. CIMAT, Mayo 2006. Lenguaje de Programación:Ciclos y Condicionales (instrucción i