miércoles, 16 de enero de 2013

Problema del Sábado 12 de Enero

Hola chicos:

Recuerden que este fin de semana vimos el problema de "La Pared", si no lo terminaron traten de terminarlos, y para el final de la semana subiré el código. Recuerde que si tienen dudas pueden preguntarlas aquí o en el grupo de Facebook.

El link para el problema es el siguiente:
http://www.cmirg.com/karelotitlan/Pantallas/Problema.aspx?id=12955

Mucha suerte.

domingo, 25 de noviembre de 2012

Problema de Práctica 25-Nov-2012: Diagonal


Hola chicos,

Aquí les pongo el problema de esta semana, espero puedan resolverlo. El próximo problema lo pondría el sábado 1ero de Diciembre, así que tienen todo la semana, para resolverlo sin prisas. El problema es el siguiente:

Diagonal

DESCRIPCION

Karel se encuentra practicando el rapel desde un risco la altura del risco se encuentra ubicada en la primera columna a una altura que puede ir desde 1 hasta 100 renglones. Karel siempre baja de manera diagonal utilizando la soga “mágica” que tiene una longitud entre 1 y 10, la manera de bajar utilizando esta cuerda en la siguiente: La primera bajada es igual a la longitud de la cuerda, en el segundo uso de la cuerda esta disminuye en 1 unidad la longitud y así sucesivamente hasta que la cuerda desaparece la cuerda siempre desaparecerá 2 renglones antes que la pared horizontal inferior del mundo. Debes de bajar en manera horizontal, por lo que si bajas una unidad también te debes de mover a la derecha una unidad (Revisar el ejemplo).

PROBLEMA

Tu tarea es escribir un programa que simule la bajada y que deje a Karel en la última posición que pudo bajar de manera diagonal

ENTRADA

En la columna 1 entre la altura 1 y 100 se encuentra un montón de zumbadores que representa la longitud de la cuerda mágica. Karel inicia en cualquier lugar del mundo y puede tener cualquier dirección. Karel no tiene zumbadores en la mochila.

SALIDA

Debes colocar en la última posición que karel puede bajar.

CONSIDERACIONES

Tu programa deberá funcionar para varios mundos de prueba y deberá terminar con la instrucción apágate.

EJEMPLO:



Mundo de Ejemplo



Solución al Mundo de Ejemplo


Recuerden seguir la metodología para resolver el problema. En cuento tengan un solución mándenla(junto con los casos que usaron para probarla) a "chadancito@gmail.com". Si tienen alguna duda de la descripción del problema, pueden escribirla en los comentarios aquí o en el grupo de Facebook.

Mucha suerte en su semana.

martes, 17 de enero de 2012

Clase 14 enero 2013

Hola chavos, esta semana empezamos con el tema de recursividad.. El problema de tarea es el Ejercicio f-1 de su cuadernillo, lo pueden encontrar en la página 15. Recuerden que el límite es el viernes. El problema es muy parecido a lo que vimos en clase. ¡Esperamos sus soluciones!

Para los alumnos que no asistieron a clase, los problemas vistos son::


  • Medir la distancia a la pared
  • Multiplicar por dos (página 12 del cuadernillo)
  • Encontrar el centro.


Como ven, sólo uno de ellos está en el material que se les entregó. ¡Nos vemos!

miércoles, 21 de diciembre de 2011

Primer Post Curso CITE 2011

¡Hola chavos! Oficialmente estamos ya dejando avisos en este blog. Este es nuestro primer post y aprovecho para comentarles sobre las actividades pendientes hasta el momento.

En este espacio les dejaremos algunos de los ejemplos que hayamos visto en clase así como problemas para resolver por su cuenta así que estén pendientes. Recuerden mandar sus soluciones al problema pendiente de la última clase. Necesitamos también que adjunten los casos de prueba con los que probaron su código. Las soluciones las pueden mandar a cualquiera de los mails que les dejamos. La fecha límite de recepción de soluciones es el siguente sábado (el domingo no se recibirá ningún mail). Esperamos recibir sus respuestas!

Los problemas vistos en clase fueron:

  • Rekreo
  • Edukarel
Las descricpciones de ambos están en el manual. El problema de edukarel quedó pendiente, así que su tarea es resolverlo completamente y mandar la solución y casos.


Disfruten sus vacaciones!

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

miércoles, 23 de febrero de 2011

Clase 12 de febrero

Este dia se hizo un problema mas complicado:


Autopista

10a OMI, Durango 2005

Descripción

En Beeperópolis han construido su primera autopista. La autopista esta delimitada por paredes y atraviesa la ciudad de norte a sur, debido a las irregularidades del terreno, el ancho de la autopista varía a lo largo de la misma.
Sin embargo, los habitantes tienen un grave problema ya que no cuentan con la línea central que divide los carriles de ida y de vuelta. Afortunadamente Karel es jefe de tránsito y siempre esta dispuesto a resolver los problemas de Beeperopolis, por lo que se ha dado a la tarea de dibujar dicha línea.

Problema

Ayuda a Karel a poner la línea divisoria en la autopista, esta será formada por zumbadores y deberá dividir por la mitad la autopista desde el norte hasta el sur.
No debe de quedar ningún zumbador en una posición que no pertenezca a la línea divisoria. En cada posición de la línea divisoria, deberá haber únicamente un zumbador.

Consideraciones

  • Karel lleva un número INFINITO de zumbadores en su mochila.
  • Karel inicia en cualquier lugar del extremo norte de la autopista con dirección al sur.
  • No hay paredes ni zumbadores dentro de la autopista.
  • En cualquier fila de la autopista, el espacio entre ambas paredes es un número impar desconocido.
  • La línea deberá estar formada por montones de 1 zumbador y deberá ser de ancho 1 y no deberá haber zumbadores en ningún otro lugar de la autopista.
  • No importa la posición ni orientación final de Karel.

Ejemplo mundo inicial
Mundo final


    Solucion

    iniciar-programa
        define-nueva-instruccion inicia como inicio
            gira-izquierda;
            gira-izquierda;
            gira-izquierda;
            mientras frente-libre hacer inicio
                avanza;
            fin;
            gira-izquierda;
            gira-izquierda;
        fin;
        define-nueva-instruccion mide-mitad como inicio
            si frente-libre entonces inicio
                avanza;
                avanza;
                mide-mitad;
                avanza;
            fin sino inicio
                gira-izquierda;
                gira-izquierda;
            fin;
        fin;
        define-nueva-instruccion busca-abajo como inicio
            mientras derecha-bloqueada y frente-libre hacer inicio
                avanza;
            fin;
            si derecha-bloqueada entonces inicio
               gira-izquierda;
            fin sino inicio
                gira-izquierda;
                gira-izquierda;
                gira-izquierda;
                avanza;
            fin;
        fin;
        inicia-ejecucion
            mientras no-orientado-al-norte hacer inicio
                inicia;
                mide-mitad;
                deja-zumbador;
                mientras frente-libre hacer inicio
                    avanza;
                fin;
                gira-izquierda;
                gira-izquierda;
                busca-abajo;
            fin;
            apagate;
        termina-ejecucion
    finalizar-programa

    Clase sabado 22 de enero

    Hola, esta clase, vimos una pequeña introduccion a la recursividad explicandola con el problema de medir distancia, el problema consiste en:

    Medir distancia

    Karel se encuentra en la posicion 1,1 viendo hacia el este. Karel tiene que caminar hasta la pared que se encuentra frente de el algunos pasos adelante y dejar el numero de zumbadores igual a la distancia que recorrio.

    Ejemplo mundo inicial
    Mundo final




    Solucion:

    iniciar-programa
        define-nueva-instruccion mide como inicio
            si frente-libre entonces inicio
                avanza;
                mide;
            fin;
            deja-zumbador;
        fin;
        inicia-ejecucion
            mide;
            apagate;
        termina-ejecucion
    finalizar-programa

    Otro problema que se hizo fue el de multiplicar por dos

    Descripcion

    Nuestro querido Karel nos ha visitado en la FAMAT y como resultado aprendío a
    multiplicar por 2, tristemente perdio el código donde le mostraba como multiplicar. Tu
    misión es escribir un programa que multiplique por 2.

    -Karel inicia mirando al Este, en la posición (1,B)
    -Karel debe llegar a las coordenadas (2B,1), poner un beeper (el único que carga) y termina.
    -No hay obstaculos en tu camino
    -Antes de correr tu programa asegurate de ponerle un beeper a Karel en su beeper_bag



    Solucion

    iniciar-programa
        define-nueva-instruccion multiplica como inicio
            si frente-libre entonces inicio
                avanza;
                multiplica;
                avanza;
                avanza;
            fin sino inicio
                gira-izquierda;
                avanza;
            fin;
        fin;
        inicia-ejecucion
            gira-izquierda;
            gira-izquierda;
            gira-izquierda;
            multiplica;
            apagate;
        termina-ejecucion
    finalizar-programa