Данная программа является калькулятором выражений, с поддержкой приоритетов операций.
Чем выше приоритет у операции, тем первее она будет выполняться
Имя операции | Оператор | Приоритет |
---|---|---|
Сложение | + | 1 |
Вычитание | - | 1 |
Умножение | * | 2 |
Деление | / | 2 |
Возведение в степень | ^ | 3 |
Унарный минус | - | 4 |
У функций выше приоритет чем у базовых операций, но все функции имеют одинаковый приоритет
Функция | Сигнатура |
---|---|
Синус a | sin(a) |
Косинус a | cos(a) |
Квадратный корень из a | sqrt(a) |
Расстояние между точками A(x1; y1) и B(x2; y2) на плоскости |
dist(x1, y1, x2, y2) |
- С помощью Shunting yard algorithm инфиксная форма записи преобразуется в обратную польскую нотацию
- Далее по обратной польской нотации строится объектная модель, в основе которой лежит интерфейс Calculable
- В результате успешного построения, получается объект класса Expression, который можно использовать для вычисления выражения