domingo, 28 de junio de 2015

Ejemplo 2. Nivel básico


DIA DE COMPRAS.

En un día de compras, karel sale de su casa (posición 1,1, orientado al este) y se dirige a obtener los siguientes productos: leche, pan, huevo y carne, cada uno en diferentes establecimientos, al final regresa a casa con todas sus compras.
 
En el mundo de Karel los establecimientos donde venden esos productos están en las siguientes posiciones:
Leche....... posición ( 5,  5)
Pan..........  posición ( 9,11)
Huevo.....  posición (16, 6)
Carne......  posición (  8, 3)
 
 
 
Estado inicial de Karel.
Tiene  0 zumbadores en la mochila

 
 
 
 
 
 
 
 
 
 
Estado final de Karel,
con 4 zumbadores en la posición inicial y la mochila en 0.





Programa:

iniciar-programa
   define-nueva-instruccion gira-derecha como inicio
        gira-izquierda;
        gira-izquierda;
        gira-izquierda;
    fin;
    inicia-ejecucion
        avanza;
        avanza;
        avanza;
        avanza;
        gira-izquierda;
        avanza;
        avanza;
        avanza;
        avanza;
        coge-zumbador;
        gira-derecha;
        avanza;
        avanza;
        avanza;
        gira-derecha;
        avanza;
        avanza;
        coge-zumbador;
        gira-izquierda;
        avanza;
        gira-izquierda;
        repetir 8 veces inicio
           avanza;
        fin;
        coge-zumbador;
        gira-derecha;
        repetir 7 veces inicio
           avanza;
        fin;
        gira-derecha;
        avanza;
        avanza;
        avanza;
        avanza;
        avanza;
        coge-zumbador;
        avanza;
        avanza;
        avanza;
        avanza;
        avanza;
        gira-derecha;
        repetir 15 veces inicio
           avanza;
        fin;
        deja-zumbador;
        deja-zumbador;
        deja-zumbador;
        deja-zumbador;
        apagate;
    termina-ejecucion
finalizar-programa

Ejemplo 1. Nivel Básico.

LA HERMANA DE KAREL.


Karel se encuentra en su casa (posición 1,1, viendo hacia el este), se ha dado cuenta que es hora de ir a recoger a su hermana a su escuela (posición 8,3) su misión es ir por ella y regresar juntos a casa.
 
  Estado inicial.     Karel tiene 0 zumbadores
 
 
 
 
 
 
 
 
Estado final, Karel tiene 1 zumbador y regresa a la posición inicial
Programa:
 
Iniciar-programa
   inicia-ejecución
     avanza;
     avanza;
     avanza;
     avanza;
     avanza;
     avanza;
     avanza;
     gira-izquierda;
     avanza;
     avanza;
     coge-zumbador;
     gira-izquierda;
     avanza;
     avanza;
     avanza;
     avanza;
     avanza;
     avanza;
     avanza;
     gira-izquierda;
     avanza;
     avanza;
    apagate;
  termina-ejecución
finalizar-programa
 
 
 

Tema 4.4. Instrucciones Nuevas

Para hacer las cosas más fáciles y ahorrar trabajo, nosotros podemos crear nuestras propias instrucciones usando instrucciones existentes, u otras que ya habiamos creado.
 
Karel puede girar solo hacia la izquierda y hay veces que esmuy tardado escribir tres veces gira-izquierda para que karel gire hacia la derecha.   Entonces, nosotros podemos crear una instrucción que se llama gira-derecha :
 
define-nueva-instruccion gira-derecha como inicio
        gira-izquierda;
        gira-izquierda;
        gira-izquierda;
fin;
 
Esto tiene que ser escrito entre las líneas iniciar-programa e inicia-ejecución al inicio del código.  Entonces dentro del código tú escribes la instrucción gira-derecha y karel gira tres veces hacia la izquierda automáticamente.  Las instrucciones nuevas pueden llamarse como tú quieras.
 
 
 

Tema 4.3. Repeticiones

Hay veces que karel necesita repetir una serie de instrucciones y decisiones muchas veces.   Digamos que Karel tiene que avanzar 50 veces para llegar a un lugar.   Lo que tendríamos que hacer seria escribir 50 veces la palabra avanza. Para ahorrar trabajo, espacio y tiempo, podemos hacer repeticiones o ciclos, como se les llama comunmente.

Hay dos tipos de repeticiones, repeticiones fijas y repeticiones con condición.


4.3.1. Repeticiones fijas.

En el programa de karel, puedes dar un número exacto de veces que quieres repetir una instruccion o serie de instrucciones. Ejemplo:

repetir 50 veces inicio
      avanza; 
fin;

Así se ahorra trabajo y esfuerzo. 


4.3.2.  Repeticiones con condición

En ciertas ocasiones Karel tiene que hacer una instrucción pero no sabes cuándo hacer que se pare.  Por ejemplo. Karel tiene que avanzar hasta que encuentra una pared.  Tu sabes que Karel tiene que avanzar, pero no sabes que tan lejos. Esto se logra así:

mientras frente-libre hacer inicio
      avanza;


4.3.3. Repeticiones anidadas

 En estas se pueden combinar las decisiones con las repeticiones.  Ejemplo:

mientras frente-libre hacer inicio
     avanza;
     si junto-a-zumbador entonces inicio
           mientras junto-a-zumbador entonces inicio
                   coge-zumbador;
           fin;
     fin;
fin;

Tema 4.2. Toma de Decisiones

Muchas veces, Karel necesita tomar una decisión cuando está en una situación dificil, como cuando está enfrente de una pared y necesita saber si avanza o si no.

Las condiciones que karel puede detectar para poder hacer su decisión son:

1) frente-libre
2) frente-bloqueado
3) izquierda-libre
4) izquierda-bloqueada
5) derecha-libre
6) derecha-bloqueada
7) junto-a-zumbador
8) no-junto-a-zumbador
9) algun-zumbador-en-la-mochila
10) ningun-zumbador-en-la-mochila
11) orientado-al-norte
12) orientado-al-sur
13) orientado-al-este
14) orientado-al-oeste
15) no-orientado-al-norte
16) no-orientado-al-sur
17) no-orientado-al-este
18) no-orientado-al-oeste


4.2.1.  Decisiones simples

Karel hay veces que puede hacer una serie de instrucciones si se cumple una condición previamente establecida.  La condición puede ser cualquiera de las mencionadas anteriormente.  Por ejemplo:
 
si frente-libre entonces inicio
     avanza;
fin;
 
Se muestra una pequeña decisión que va a hacer Karel.  Si en el frente de él no hay pared, entonces avanza; si hay pared entonces no hace nada
 



 

Aquí hay una pared y por lo mismo no avanza
ni nada.
 
 
 
 
 
 
Aquí el frente está libre (no hay pared) por consiguiente si avanzó una posición.
 
 
 
 
 4.2.2. Decisiones con otro caso.

En este tipo de decisiones Karel puede hacer una serie de instrucciones si se cumple la condición y si no se cumple, Karel puede hacer otra serie deinstrucciones. Ejemplo:

si frente-libre entonces inicio
                      avanza;
              fin
              sino inicio
                      gira-izquierda;
fin;

En este caso, si el frente de Karel está libre entonces avanza.  Si está bloqueado entonces gira hacia la izquierda. Unicamente el fin de la última linea lleva punto y coma.


4.2.3. Decisiones anidadas

Después de haber tomado ya una decisión, dentro dela misma, karel puede tomar múltiples decisiones.  A esto se le conoce como decisiones anidadas.
Las decisiones anidadas tienen las mismas características que las decisiones anteriores y tienen estructuras similares a la siguiente:

si frente-libre entonces inicio
               avanza;
               si junto-a-zumbador entonces inicio
                         coge-zumbador;
               fin;
fin;

Dentro de cada decisión pueden existir las instrucciones que sean necesarias, así como las decisiones con otro caso.  Si es necesario, muchas decisiones pueden existir dentro de otras.
 

lunes, 15 de junio de 2015

Tema 4.1. Introducción a Karel

Karel es un lenguaje sencillo y divertido que ayuda al aprendizaje de algoritmos y al desarrollo de la lógica. 
 
Karel es un robot virtual que aparece como una pequeña flecha azul que viaja a través de su mundo. El mundo de karel es un cuadrado lleno de calles y avenidas que él puede recorrer, a menos que ésta esté bloqueada.
 
Karel tiene una mochila donde guarda zumbadores.  Los zumbadores son unos objetos que pueden ser simulados como canicas.   Estos le ayudan a karel a realizar sus tareas ya que pueden ser utilizados para muchas cosas como contar, marcar lugares especiales o caminos importantes, etc.
 
Para que karel pueda hacer su trabajo, tú como programador tienes que escribir un código con órdenes o comandos que Karel obedece.   El código tiene que estar correcto, ya que, lamentablemente, Karel es un robot que necesita tu ayuda para poder funcionar bien.
 
 

4.1.1.. El mundo de Karel




Este mundo está formado por 100 avenidas y 100 calles. 
Las avenidas son verticales y las calles son horizontales.
Se pueden agregar y quitar paredes en cualquier parte del mundo, así como zumbadores, excepto en los límites de este.
Karel solo puede girar hacia la izquierda 90° y va a estar orientado hacia alguno de los  puntos cardinales: norte, sur, este y oeste.


4.1.2. El programa de Karel



El programa Karel es una aplicación muy sencilla que solo tiene cuatro secciones o ventanillas.

1) MUNDO

    Es el lugar en el cual Karel realiza sus tareas y puede ser diseñado como tu quieras mientras la tarea de karel pueda ser realizada ahí.


2) AYUDA

    Esta pestaña contiene un pequeño tutorial acerca del uso de karel y viene la sintaxis correcta de las instrucciones.

3) PROGRAMA

   Aquí es donde tu escribes tu código de instrucciones que karel va  a realizar.  Es la parte más importante del programa porque es lo que hace que karel funcione.   Se pueden elegir dos tipos de código: Pascal y Java. 

   Dentro de esta pestaña aparece la pantalla con 5 botones:



4) EJECUTAR

    En esta sección puedes ver a Karel realizar las instrucciones que habías escrito,  Tu código tiene que estar compilado para que funcione. 


Zumbadores en la mochila = Indica cuantos zumbadores está cargando karel en ese momento.

Retardo de ejecución = Indica qué tan rápido avanza karel. En manoe sea el número de retardo, es mayor la velocidad de karel.


4.1.3. Instrucciones Básicas

Los programas de Karel cuentan con dos simples secciones:

1) iniciar-programa...  finalizar-programa
    Indica donde irá todo el código fuente del programa; donde inicia y donde termina.

2) inicia-ejecución... finaliza-ejecución
    Esto indica cual es el área del programa que se va a ejecutar.

Además de estas dos secciones, el ´código debe contar con la linea apagate para finalizar la ejecución por completo.

 
Karel cuenta con cinco instrucciones básicas para hacer todas sus tareas.  Las instrucciones son las siguientes:
 
1) avanza
2) gira-izquierda
3) coge-zumbador
4) deja-zumbador
5) apagate
 


 

BLOQUE 4. KAREL

TEMA 4.1 . Introducción a karel
4.1.1.  Mundo de Karel
4.1.2. Programa de karel
4.1.3. Instrucciones básicas

TEMA 4.2.  Toma de Decisiones
4.2.1. Decisiones simples
4.2.2. Decisiones con otro caso
4.2.3. Decisiones anidadas

TEMA 4.3.  Repeticiones
4.3.1. Repeticiones fijas
4.3.2. Repeticiones con condición

TEMA 4.4. Instrucciones nuevas

Seguidores