En los títulos y los textos vais a encontrar unas cuantas citaciones cinematográficas (y si, soy un cinéfilo). Si no os interesan podéis fingir no verlas, ya que no son fundamentales para la comprensión de los post...

Este blog es la versión en Español de mi blog en Italiano L'arte della programmazione in C. Espero que mis traducciones sean comprensibles...

lunes, 20 de agosto de 2012

¿ Donde está mi atoi() ?

Os voy a proponer una pequeña prueba: abrid un editor y, sin consultar Google, manuales o programas archivados, escribid una función atoi(). No os explico lo que es, porque si el nombre no os suena ya habéis fallado la prueba. Si la memoria no os ha traicionado, deberíais escribir un pequeño main () que llame a vuestra función, pasándole un parámetro fijo y, por ejemplo, escribir el resultado en la pantalla. No perdáis tiempo en escribir un programa interactivo que se encargue del input: el objetivo es sólo escribir una atoi() funcionante.

Bueno, si habéis necesitado más de 5 minutos (bueno, voy a ser generoso: 10 minutos), entonces vais a necesitar un sano repaso de los fundamentos del C. No os sorprendáis, tal vez uno usa C a menudo, quizás también escribe cosas complicadas, pero, gracias al cut&paste de código escrito previamente, o ejemplos encontrados en línea (¡gracias Google!) es posible que uno, a la larga, se olvide de cómo se hacen las cosas simples.

Que ninguno de los que no han podido con la prueba se ofenda: estáis en buena compañía. ¿Por qué creéis que os estoy proponiendo esta prueba? Bueno, hace unos años, me dieron un papel y un lápiz (¡aún más difícil! Sin ni un PC con un compilador para probar) y me dijeron: "Escribe un atoi()". La escribí y me equivoqué descaradamente. Esa misma noche saqué de la librería el K&R y empecé a releerlo, desde la primera hasta la ultima pagina (hacía muchos, muchos, muchos años que no volvía a leerlo entero): fue una gran sorpresa, había argumentos que nisiquiera me acordaba que venían tratados, y descubrí partes olvidadas del C que por (mala) costumbre no había usado en años.

Ahora que tengo la costumbre de actualizar periódicamente mi memoria, la prueba ya no la fallo. Bueno, por supuesto, antes de escribir este post me he obligado en hacer una prueba sorpresa del atoi(), y, creedme, esta vez lo conseguí (después de todo, si no lo lograba, no habría tenido el coraje de escribir este post...).

Hasta el próximo post.

1 comentario: