Я пишу детское программное обеспечение по математике для класса.
Я попытаюсь представить проблемы студентам разного уровня квалификации со случайно сгенерированными математическими задачами разных типов в увлекательной игровой форме.
Одним из недостатков использования компьютерного математического программного обеспечения является его жесткость. Если кто-то посещал онлайн-урок по математике, вы будете знать все о том, как разочаровались в проведении онлайн-викторины и выбросили правильный ответ, потому что ваша проблема не отформатирована в их форме или какая-то странная проблема.
Итак, первоначально я подумал: «Я знаю! Я использую синтаксический анализатор выражений в поле ответа, чтобы иметь возможность оценивать все, что они вводят, и даже если он не будет в той же форме, я буду возможность проверить, если это тот же ответ. " Поэтому я запускаю свою IDE и начинаю реализовывать алгоритм Shunting Yard.
Это решило бы проблему отсутствия дробей в наименьшей форме и другие вопросы.
Однако потом меня поразило, что хитрый ученик просто мог бы ввести большинство проблем в поле для ответов, и мой анализатор выражений послушно проанализировал бы и оценил его до правильного ответа!
Итак, я не должен использовать парсер выражений в этом случае? Мне действительно нужно сгенерировать одну форму ответа и сравнить строки?