Reto de programación II (nivel medio)

Reto de programación II (nivel medio)
01/01/09


Volvemos con un nuevo reto para aventureros programadores. Como el primer reto gustó y tuvo bastante acogida, os voy a plantear uno nuevo, algo más complicado. Esta vez las reglas no cambian mucho: podeis utilizar cualquier lenguaje de programación. La diferencia es que en esta ocasión la solución debe darse en un fichero con el programa completo y 100% funcional. Al igual que la otra vez, debeis enviar la solución a sgm@yakiboo.net. Es importante que no pongais vuestro código en un comentario a este post, para no dar pistas a los demás.

Ahí va el reto:

Construye un programa, en cualquier lenguaje de programación imperativo, que sea capaz de imprimirse a sí mismo. Es decir, el programa debe imprimir por pantalla su propio código fuente tal y como se visualiza al abrir el fichero donde se encuentra, exactamente igual. Debes conseguirlo en un número máximo de 20 líneas de código.

NOTA IMPORTANTE: El programa no puede manejar ficheros. Vamos, que no vale leer el fichero del código fuente e imprimirlo. Lo que teneis que conseguir es escribir un código que compile y se imprima a sí mismo.

A ver si os animais y lo conseguís. Es algo más complejo que el primer reto pero seguro que en un rato lo sacais. Y recordad que la solución debe enviarse en un fichero (previa comprobación de que funciona a la perfección) a sgm@yakiboo.net, junto con vuestro nombre y URL de vuestro sitio web, si teneis.

Mi solución, junto con la de algunos de vosotros (con vuestro nombre y link opcional, si lo deseais) será publicada más adelante..

Suerte!

Actualización: Es increíble la de pocas (y algunas no muy buenas) soluciones que me llegan. Vamos, animáos. No hay límite de plazo, a ver si alguien lo resuelve.

Escrito por sgm


Puedes dejar un comentario, o referenciar este post desde tu sitio web.

Hay 5 comentarios en este post.

 
David Octubre 22, 2009 Reply

Hola a todos tengo una duda, es que no manejo muy bien el lenguage c, quisiera saber que significa “%c%s%c”
Que es lo que hace ese codigo??

 
sgm Octubre 22, 2009 Reply

%c es una secuencia de escape que le indica al printf que imprima con formato de carácter. Por otra parte, %s hace lo mismo pero con formato cadena. Del mismo modo tenemos %d para imprimir un número entero.

Ejemplo:

printf(“La letra %c tiene valor %d.”, 65, 65);
mostraría por pantalla lo siguiente:
La letra A tiene el numero 65.
Ya que el caracter 65 es el correspondiente a la letra A.

Espero servirte de ayuda.

 
chris Noviembre 14, 2010 Reply

¬¬ no entender, lo que pides es que el programa se imprima a si mismo pero no puedo usar el fichero, entonces como puedo acceder al codigo? me podrias despejar esa duda?.

 
sgm Noviembre 14, 2010 Reply

@chris

La gracia está en que no puedes acceder al fichero de código. Tienes que conseguir que al ejecutar el programa se imprima lo mismo que hay en el código, pero sin acceder a él.

Espero haberte resuelto la duda, si no es así dímelo.

 
chris Noviembre 15, 2010 Reply

ok me ha quedado claro, lamentablemente no tengo idea de como hacerlo xD tendre que esperar a la solucion y si la tienes en java mejor xD

Responde