Karel

Necesito que por favor me ayude y me explique como hago un programa de Karel, que sume beeepers, otro que reste, otro que pase de numero decimal a binario, y por ultimo uno con potenciación.

1 respuesta

Respuesta
1
Hasta ayer lunes no tenía ni idea de la existencia de Karel y su maravilloso mundo :), y es por lo que no te he contestado antes. De hecho, casi descarto tu pregunta, pero me picó la curiosidad y así he aprendido algo nuevo.
Vamos a ver... ¿qué quieres que te explique exactamente?. Ya tengo hechos los programas para sumar, restar, convertir a binario, multiplicar (que hace falta para facilitar la potenciación) y calcular potencias. ¿Prefieres qué te eche una mano indicándote el programa por encima y así aprendes por tu cuenta o estás apurado de tiempo y prefieres que te dé directamente los fuentes de Karel con sus respectivos mundos? Te advierto que no están comentados.
Contéstame cuando lo decidas. En el último caso me tendrás que dar tu dirección de correo electrónico para poderte enviar los ficheros.
Hola.
Creo que con una buena explicación del programa basta, pues la idea es aprender, pero creo que los programas ya desarrollados también me van a ayudar para tener una guía y saber como funciona esto.
sherdal le recomiendo que me colabore con esto.
Gracias.
Ok. Te daré una explicación por encima y si quieres me das tu dirección de correo para enviarte los fuentes.
A modo de ejemplo para los siguientes programas haces un mundo con un beeper infinito en un cruce y en dos cruces contiguos pones un número finito de beepers.
1º Suma:
Programa:Pones un robot encima de un beeper infinito. Pones otro robot encima de uno de los beepers finitos. Haces un bucle en el que por cada beeper que coja este último robot, el primero coge otro. Cuando termine con la primera pila, los suelta todos y se mueve a la segunda pila. Repites el proceso completo de recoger beepers y cuando termines la segunda pila, en la bolsa de beepers del robot que está sobre el beeper infinito tienes el resultado de sumar las dos pilas finitas de beepers.
2º Resta:
Programa: prácticamente igual que la suma, pero durante la recogida de la segunda pila, el robot del beeper infinito tiene que ir dejando beepers. El resultado en el mismo sitio.
3º Multiplicación: (este de regalo)
Programa: Necesitas tres robots, uno por pila. Cuando el robot que está en la primera pila finita coge un beeper haces un bucle para que el segundo robot haga lo mismo que durante una suma. Es decir, tienes dos bucles anidados. El resultado en el mismo sitio.
4º Potenciación:
Programa: Lo mismo que para la multiplicación, pero necesitas un robot auxiliar adicional y añadir un nivel de iteración superior. Es decir, tienes tres bucles anidados. El resultado en el mismo sitio.
5º Conversión:
Mundo: Una pila finita de beepers en un cruce y una pila infinita en otro.
Programa: Dos robots, uno en encima de cada pila. Por cada beeper que coge el de la pila finita, el de la pila infinita coge otro y va contando en binario en un conjunto de cruces adyacentes. Los beepers obtenidos por el acarreo los deja en la pila infinita. Ya sé que está fatalmente explicado, pero es que creo que en este caso es mejor que veas el programa. El resultado queda en el mundo.
Consideraciones:
-No me he cortado a la hora de poner robots en el mundo :). Se pueden hacer los programas con muchos menos robots, pero perderían claridad y sencillez y puesto que lo que quieres es aprender, he procurado hacer los programas lo más sencillo posible.
-Es trivial extender el caso de la suma para un número indeterminado de sumandos.
-No está previsto el caso de que la resta dé como resultado un número negativo.
-Los resultados se mantienen en la bolsa del robot por comodidad, ya que como sólo se visualiza el número de beepers en un cruce cuando éste es menor a 10, los resultados de la multiplicación y la potenciación se aprecian mejor de esta manera.
-No está contemplada la potenciación por 0 (aunque sí por 1).
-Para las pruebas de los programas he utilizado el entorno Karel++ World, que me lo descargué de Internet. La sintaxis de los programas es la que recoge dicho entorno.
Y creo que no se me olvida nada. Lo dicho, si quieres los fuentes dime dónde te los puedo enviar (y así te mando también los mundos y el programa Karel++ World).
Aquí esta mi correo para las fuentes
[email protected]
Gracias.
Te he enviado ayer domingo un correo con un ZIP autoextraible que contiene los fuentes, los mundos y el entorno Karel++.
Si tienes cualquier problema, avísame.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas