Importante
Libertad en la ULL
Sábado28Agosto2010
Aprende Matemáticas

Estaba un día de estos de agosto aburrido en mi casa, y me puse a pensar que no sería muy difícil aprovechar la calculadora bc  (An arbitrary precision calculator language), para hacer una aplicación web capaz de corregir ejercicios o exámenes y evaluarte.

Teniendo en cuenta que la sintaxis que usa bc es bastante intuitiva y que por ejemplo para pasarle una fórmula (por ejemplo para calcular π al estilo del antiguo Egipto) podemos hacerlo así:

 echo '256/81' | bc -l 

Y nos devolvería el número por pantalla:

 3.16049382716049382716

De esta forma y dado que desde PHP podemos ejecutar programas que tengamos instalados en nuestro servidor, ya tenemos casi todo hecho.

Ahora hacemos uso una base de datos donde almacenamos los exámenes, separando los datos de las fórmulas para así, si queremos poder realizar el mismo examen con distintos datos (y evitar que se copien xD)

Ya podríamos hacer una aplicación que corrigiera los exámenes, pero quedaría feo que mostrásemos el resultado tal cual introducimos la fórmula con la sintaxis de bc, así que pensé en usar LaTeX para mostrar los resultados, pero por el camino me encontré con una librería javascript que ya hace todo esto y encima coincide que interpreta bien la sintaxis de bc (bueno habría que retocar algunas cosas probablemente para alguna cosa más compleja, pero para fórmulas normales funciona tal cual). Este traductor se llama ASCIIMathML.

Aquí pongo un par de capturas de pantalla con un par de ejercicios de matemática financiera:

Como era lógico y previsible, todo se encuentra liberado bajo GPLv3 y se puede descargar libremente desde aquí.

Aún no está terminado, pero lo publico por si a alguien le interesa.


Al realizar cualquier contribución a esta web se supone que leyó y aceptó las condiciones de uso.

Esta web está diseñada según los estándares de la W3C, si su navegador no es capáz de visualizarla bien, le recomendamos un navegador que soporte los estándares como el Mozilla Firefox.

[FSF Associate Member] GNU Free Documentation License 1.2 GNU Affero Public License 3 or + eduardonacimiento.com Source code Estadísticas