Недавно у меня возникла необходимость в вычислении выражений. Выражение представлено в виде строки и может содержать имена переменных, целые числа, строковые константы и любые операции над ними.
Пример:
выражение: «x + 10 == 5 * y / (1 + z*2)»;
требуется уметь вычислять это выражение для любых значений x, y и z.
И конечно при этом надо учитывать приоритеты операторов.
Для решения нужно сделать компилятор, который по строке строит объект «Вычислимое Выражение». У этого объекта будет метод «вычислить для данных значений переменных».
Решение на Java, но может быть легко переведено на другие языки.
Пример:
выражение: «x + 10 == 5 * y / (1 + z*2)»;
требуется уметь вычислять это выражение для любых значений x, y и z.
И конечно при этом надо учитывать приоритеты операторов.
Для решения нужно сделать компилятор, который по строке строит объект «Вычислимое Выражение». У этого объекта будет метод «вычислить для данных значений переменных».
Решение на Java, но может быть легко переведено на другие языки.