- Уровень: джуниор с широким кругозором и целеустремленностью
- Ключевые слова для гугления подсказок: грамматики, токенайзер, парсер, recursive descent, обратная польская запись, AST
- Время: 2-3 дня
Ты можешь использовать любой понравившийся язык и библиотеки, но, пожалуйста, не ищи готовые решения и не копипасть код (можно найти решение на другом языке, разобраться, как оно работает, и написать своими словами, если сам додуматься не смог). Гуглить и использовать алгоритмы можно.
Задание: сделать программу-калькулятор, считающую значение математического выражения. Выражение содержит целые (123
) и дробные числа (13.45
), скобки, операции +
, -
, /
, *
, ^
(возведение в степень). В выражении должен соблюдаться приоритет операций: