Código y archivo de prueba

El código está un tanto sucio: me preocupaba más que funcionara a que se
viera bonito.