lunes, 13 de diciembre de 2010

Concurso por playeras

Hola bueno aqui pondre las reglas del concurso del cual les hablo martin

Hacer los problemas del problemario que se les entrego los que dicen tarea

Cada problema tiene un valor de 100 puntos dependiendo del numero de casos que resuelva tu programa se te asignara un puntaje entre 0 y 100

Las primeras 10 personas que junten un puntaje de 1000 se les dara como premio una playera de las omis anteriores

Los problemas deben hacerse antes del 30 de enero

Los programas se deberan entregar en el siguiente formato:
Nombre del problema_Nombre_Apeido
Ejemplo : Rekreo_Irving_Flores

Los programas se pondran mandar por e-mail o directamente en la clase
 
Mucha suerte a todos :)

Clase sabado 4 de diciembre

Hola
En esta clase resolvimos dos problemas, a continuacion pongo las descripciones

Ayudando a Mama

Karel ha crecido un poco y ahora su mama le ha pedido que recoja la basura ( zumbadores de su casa y se los tire al vecino
Karel puede empezar en cualquier posicion de su casa
No sabemos cuanta basura habra en cada lugar
Karel sabe que termino de recogerlos al llegar a la barda de su casa
La barda tiene una altura indeterminada
Karel debera dejar la basura en el piso de la casa del vecino
No importa en donde ni hacia donde quede apuntando Karel

Mundo inicial
 Mundo final





SOLUCION


Codigo
iniciar-programa
define-nueva-instruccion orienta como inicio
    mientras no-orientado-al-oeste hacer inicio
        gira-izquierda;
    fin;
    mientras frente-libre hacer inicio
        avanza;
    fin;
    gira-izquierda;
    gira-izquierda;
fin;
define-nueva-instruccion recoge como inicio
    mientras frente-libre hacer inicio
        mientras junto-a-zumbador hacer inicio
            coge-zumbador;
        fin;
        avanza;
    fin;
    mientras junto-a-zumbador hacer inicio
        coge-zumbador;
    fin;
fin;
define-nueva-instruccion pasa_pared como inicio
    gira-izquierda;
    mientras derecha-bloqueada hacer inicio
        avanza;
    fin;
    gira-izquierda;
    gira-izquierda;
    gira-izquierda;
    avanza;
    gira-izquierda;
    gira-izquierda;
    gira-izquierda;
    mientras frente-libre hacer inicio
        avanza;
    fin;
fin;
define-nueva-instruccion tirar como inicio
    mientras algun-zumbador-en-la-mochila hacer inicio
        deja-zumbador;
    fin;
fin;

    inicia-ejecucion
        orienta;
        recoge;
        pasa_pared;
        tirar;
        apagate;
    termina-ejecucion
finalizar-programa


Acontinuacion el problema 2

Rekreo

Descripccion
Despues de 2 horas de estudio el Maestro les ha dado a los alumnos tiempo de Recreo, el cual acaba de terminar, la campana del Colegio no sirve por lo que requerimos tu ayuda.

Problema
Deberas salir al patio y decirle a los alumnos que ha terminado el recreo y deben regresar al aula para la segunda parte de la clase. El sol esta fuerte asi que todos los alumnos se encuentran recargados en la pared del salon que da hacia el patio de juego. Los alumnos deberan hacer una fila en la puerta de entrada del salon.

Consideraciones
Tu programa sera evaluado con distintos casos de prueba
Karel inicia en la puerta del salon orientado hacia la salida
Los estudiantes estan representados con 1 zumbador
Todos los alumnos se encuentran en la parte extrerna del salon pegados a la pared
El salon es rectangular o cuadrado
Desconoces las dimensiones del salon
Karel debera terminar posicionado despues del ultimo alumno de la fila, sin importar su orientacion

Muno inicial
Mundo final

Solucion

Codigo

iniciar-programa
    define-nueva-instruccion salir como inicio
        avanza;
        gira-izquierda;
        avanza;
    fin;
    define-nueva-instruccion camina como inicio
        avanza;
        si izquierda-libre entonces inicio
            gira-izquierda;
            avanza;
        fin;
    fin;                                                                                                                    
    define-nueva-instruccion recoge como inicio
        mientras izquierda-bloqueada hacer inicio
            si junto-a-zumbador entonces inicio
                coge-zumbador;
            fin;
            camina;
        fin;
    fin;
    define-nueva-instruccion formar como inicio
        gira-izquierda;
        gira-izquierda;
        avanza;
        mientras algun-zumbador-en-la-mochila hacer inicio
            deja-zumbador;
            avanza;
        fin;
    fin;


    inicia-ejecucion
        salir;
        recoge;
        formar;
        apagate;
    termina-ejecucion
finalizar-programa

miércoles, 8 de diciembre de 2010

Clase sabado 27 de noviembre

Hola
En este dia se resolvio un problema llamado Amontonando Zumbadores 

Descripción

Por su naturaleza, Karel es un robot muy ordenado y le gusta tener todos sus zumbadores acomodados en montones.
Tras un fin de semana de juegos, Karel tiene su cuarto lleno de zumbadores regados en columnas, por lo que ahora deberá juntar los zumbadores de cada columna y hacer un montón con ellos en la base de la misma.

Problema

Tu tarea consiste en escribir un programa que ayude a Karel a amontonar los zumbadores de cada columna en un montón en la base de la misma.

Consideraciones

  • Inicialmente, Karel se encuentra en la posición (1,1) orientado hacia el norte.
  • El cuarto de Karel se encuentra lleno de columnas de zumbadores como se muestra en el ejemplo.
  • Las columnas de zumbadores pueden tener cualquier altura desde 1 hasta 100 zumbadores, y se suceden una a la otra sin dejar espacios.
  • Al encontrar la primera columna vacía, Karel sabrá que ha llegado al final del cuarto.
  • Karel no tiene zumbadores en la mochila.
  • La cantidad de zumbadores en cada casilla es desconocida.
  • No importa la posición ni la orientación final de Karel

Ejemplo

Imagen

Mundo de ejemplo

Imagen

Solución del mundo de ejemplo
 
 
La solucion a este problema se dio en clase, pero para los que no la tienen aqui la pongo:
 
iniciar-programa
    define-nueva-instruccion gira-derecha como inicio
        repetir 3 veces
            gira-izquierda;
    fin;
    define-nueva-instruccion recoge-fila como inicio
        mientras junto-a-zumbador hacer inicio
            mientras junto-a-zumbador hacer inicio
               coge-zumbador;
            fin;
            si frente-libre entonces inicio
                avanza;
            fin;
        fin;
        gira-izquierda;
        gira-izquierda;
        mientras frente-libre hacer inicio
            avanza;
        fin;
        mientras algun-zumbador-en-la-mochila hacer inicio
            deja-zumbador;
        fin;
        gira-izquierda;
        gira-izquierda;
    fin;
    inicia-ejecucion
        mientras junto-a-zumbador hacer inicio
            recoge-fila;
            gira-derecha;
            avanza;
            gira-izquierda;
        fin;
        apagate;
    termina-ejecucion
finalizar-programa