Проверка вычислимости формулы
- C++, консольное приложение
- Формат входного файла: MathML
- Проверить, что формула задана корректно, это вообще валидное вычисление
- Проверить, что все необходимые данные для вычисления доступны: переменные должны быть объявлены в аргументах функции или в параметрах операции SUM, MUL (сигма, пи большое)
- Вывести в консоль тип ошибки и контекст ошибки
Мануал по нужному типу MathMl: http://zvon.org/xxl/MathML/Output/
Общие утверждения:
- Разбор с помощью PugiXML, строго сверху вниз, что накладывает серьёзные ограничения.
- В частности, нельзя на текущей структуре сделать интерпретатор.
- Спуск по дереву через checkSignature и operator() (пусть те кто это придумал в аду горят!)
- Описание всех тегов по аргументам и типу возвращаемого значения в CTagContainer.cpp
- Вычисление квадратного корня и всех других сложных вещей делается через захардкоженные деревья разбора и вытащенные из них коэффициенты. Методы с деревьями разбора всегда лежат рядом с оригинальными. Сами деревья в CTree.h
- Good luck and have fun!