Monday, July 14, 2014

Programación lúdica: Contemos letras, palabras y espacios


El pasado reto de la programación lúdica sigue abierto (el de los laberintos), pero hasta ahora he recibido dos programas y en mi opinión no cumplen con los requisitos pedidos. Así pues, lo dejaremos una semana más abierto a ver si hay algún programa que cumpla con lo pedido: que genere y que resuelva el laberinto.

Mientras tanto, abramos el siguiente reto de la programación lúdica. Se trata de tomar un texto -no necesita ningún formato especial, simple ASCII- y que el programa cuente cuantas palabras, espacios y letras tiene. Se calificará el programa que lo haga en el menor tiempo posible dado un texto especifico, el cual puede consultarse más abajo. Así, el software debe poder leer a memoria cualquier texto y contar lo que tiene que contar, desplegándolo cuando termine.Considérese que el archivo a procesar pueda ser de algunos megas, cuyo límite máximo lo pondremos en 10 megabytes, por lo que el software debe poder leer el documento ASCII sin problemas. Se buscará un texto lo suficientemente largo para que los tiempos de medición no sean tan cortos que sea difícil saber quién ganó, pero se pueden hacer algunas pruebas con los textos que aparecen en los enlaces más abajo.

Los tiempos los mediré en mi computadora y los resultados son inapelables.

¿El premio? Una taza con el logotipo de la Morsa a la mejor solución. Además hay una libretita y una gorra, cortesía de los buenos amigos de Qualcomm que se añade al premio. Esto solamente aplica a los programadores que vivan en el DF (mandar a provincia o a otros países una taza es estúpidamente costoso). En caso de que los concursantes sean de otros países o de la provincia mexicana, el premio será una memoria USB de al menos 8 GBytes y se les enviará por correo certificado. Y sí, sé que no son los grandes premios pero esto es lo que hay por el momento. Evidentemente quien gane será anunciado aquí y hasta tendrá sus quince minutos de fama.

Cabe señalar que este concurso busca simplemente alentar el trabajo de la programación y mostrar que puede ser lúdica. Es un concurso de buena fe. Si hay, por ejemplo, dos o más respuestas satisfactorias, ganará quien la haya mandado primero. El ganador cede su código fuente a la comunidad. Es decir, se promueve el código abierto. Programas copiados de la web o que tengan ese sabor sospechoso de plagio podrán ser eliminados sin mayores consideraciones. El chiste de estos retos es que los programadores se animen a resolverlos, no que busquen la manera de hacer trampa. ¡Así que a afilar sus habilidades de programación!

Textos con los que se pueden hacer pruebas, pueden descargarse de aquí, aquí o aquí.

No comments: