jueves, 3 de marzo de 2011

Clase del sabado 19 de febrero

Cada vez los problemas van siendo mas dificiles, el dia de hoy le toco a el problema de "La Marcha"

Descripción
Harto de la inseguridad, Karel como muchos otros ciudadanos, marcho del Angel de Reforma al Zócalo de la Ciudad de México el domingo 27 de junio.

Al final de la marcha, impresionado por la cantidad de gente, Karel se dio a la tarea de obtener el número total de participantes en la marcha.


Problema
Tu tarea consiste en escribir un programa que le permita a Karel conocer la cantidad total de hombres y mujeres que asistieron a la marcha.

Consideraciones
-La marcha se representa como un rectángulo de zumbadores con su esquina inferior izquierda en la posición (1,2) que puede tener un ancho máximo de 90 columnas y una altura máxima de 90 filas.
-Todas las casillas de dicho rectángulo tienen 1 ó 2 zumbadores, en donde 1 zumbador representa a una mujer y 2 zumbadores representan a un hombre.
-Al inicio del programa Karel se encuentra en la posición (1,1) orientado hacia el norte.
-Inicialmente, Karel no tiene zumbadores en la mochila.
-Karel deberá dejar en la posición (1,1) una cantidad de zumbadores igual al número de mujeres en la marcha, y en la posición (2,1) una cantidad de zumbadores igual al número de hombres que asistieron a la marcha.
-No importa la posición final ni la orientación con la que termine Karel.
-No importa si Karel levanta o no a los participantes de la marcha.

Ejemplo Mundo Inicial
Imagen

Mundo Final
Imagen

Solucion

iniciar-programa
    define-nueva-instruccion camina como inicio
        avanza;
        si no-junto-a-zumbador entonces inicio
            gira-izquierda;
            gira-izquierda;
            mientras frente-libre hacer inicio
                avanza;
            fin;
            gira-izquierda;
            avanza;
            gira-izquierda;
            avanza;
        fin;
    fin;
    define-nueva-instruccion regresa como inicio
        gira-izquierda;
        mientras frente-libre hacer inicio
            avanza;
        fin;
        gira-izquierda;
        avanza;
        gira-izquierda;
    fin;
    define-nueva-instruccion recoge como inicio
        si junto-a-zumbador entonces inicio
            coge-zumbador;
            si junto-a-zumbador entonces inicio
                coge-zumbador;
                camina;
                recoge;
            fin sino inicio
                camina;
                recoge;
                deja-zumbador;
            fin;
        fin sino inicio
            regresa;
        fin;
    fin;
    define-nueva-instruccion dejamitad como inicio
        si algun-zumbador-en-la-mochila entonces inicio
            deja-zumbador;
            deja-zumbador;
            dejamitad;
            coge-zumbador;
        fin;
    fin;
    inicia-ejecucion
        avanza;
        recoge;
        avanza;
        dejamitad;
        apagate;
    termina-ejecucion
finalizar-programa

2 comentarios:

  1. Muy buen blog, felicito a la persona que lo edita =)

    ResponderEliminar
  2. las personas son jair y gabriel, los mejores maestros de karel

    ResponderEliminar