Inspirado por un recent TED talk, quiero escribir una pequeña pieza de software educativo. El investigador creó pequeñas computadoras en miniatura en forma de bloques llamados "Siftables".Analizando ecuaciones matemáticas básicas para software educativo para niños?
alt text http://images.ted.com/images/ted/tedindex/embed-posters/DavidMerrill-2009.embed_thumbnail.jpg
[David Merril, inventor - with Siftables in the background.
]
Había muchas aplicaciones que usó en los bloques, pero mi favorito fue cuando cada bloque era un número o símbolo de la operación básica. Luego podría volver a organizar los bloques de números o símbolos de operación en una línea, y se mostraría una respuesta en otro bloque graduable.
alt text http://i44.tinypic.com/m7us6g.png
Por lo tanto, he decidido que quería implementado una versión de software de "Matemáticas Siftables" en una escala limitada como mi proyecto final de un curso de CS que estoy tomando.
¿Cuál es la forma generalmente aceptada para analizar e interpretar una cadena de expresiones matemáticas, y si son válidas, realizar la operación?
¿Es este un caso en el que debería implementar un analizador/analizador completo? Me imagino que la interpretación de expresiones matemáticas básicas sería un problema casi común en informática, así que estoy buscando la forma correcta de abordarlo.
Por ejemplo, si mis Math Siftable bloques donde dispuestas como:
[1
][+
][2
]
Esto sería una secuencia válida y me gustaría realizar la operación necesaria para llegar a "3".
Sin embargo, si el niño fuera a arrastrar varios bloques de operación en conjunto, tales como:
[2
][\
][\
][5
]
es obvio que sería válido.
En última instancia, quiero ser capaz de analizar e interpretar cualquier cantidad de cadenas de operaciones con los bloques que el usuario puede arrastrar juntos. ¿Alguien puede explicarme o señalarme recursos para analizar expresiones matemáticas básicas?
Prefiero la mayor cantidad de respuestas idiomáticas posibles.
Creo que no solo la pregunta en sí misma sino el objetivo del proyecto es laudatorio. Con suerte, las respuestas deberían ser esclarecedoras. – Cerebrus
¿No leeríamos el segundo ejemplo como 2 dividido por 5 negativo? ¿O los números negativos van más allá del nivel de las matemáticas previstas para este ejercicio? –
@Rex M, cierto, tal vez es un mal ejemplo. Quizás dos símbolos de división serían mejores. –