https://github.com/yawkar/extended-expressions-parser-calculator
(Student Lab Project) Первая проба пера в создании калькулятора, строящего вычислительный граф на основе спарсенных выражений и вычисляющего значение главного выражения
https://github.com/yawkar/extended-expressions-parser-calculator
calculator laboratory-work parser
Last synced: about 1 year ago
JSON representation
(Student Lab Project) Первая проба пера в создании калькулятора, строящего вычислительный граф на основе спарсенных выражений и вычисляющего значение главного выражения
- Host: GitHub
- URL: https://github.com/yawkar/extended-expressions-parser-calculator
- Owner: YawKar
- Created: 2022-01-17T21:02:20.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-02-09T17:51:28.000Z (over 4 years ago)
- Last Synced: 2025-02-15T04:26:31.802Z (over 1 year ago)
- Topics: calculator, laboratory-work, parser
- Language: C
- Homepage:
- Size: 43.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# extended-expressions-parser-calculator
## Кратко
Программа получает основное выражение и дополнительные объявления переменных, парсит их и на основе них строит вычислительный граф, значение корня которого затем высчитывается и выводится обратно.
## Базовый пример
Выражение:
sin(x) ^ 2 + cos(x) ^ 2
Переменные:
x = a + b
a = 13
b = sqrt(54)
Вычисленное значение:
1.000000
## Функционал (✅ - реализовано)
- ✅ Поддержка чисел в выражениях
- ❌ Расширение чисел до множества комплексных
- ✅ Поддержка математических констант в выражениях
- ✅ Число 'PI'
- ✅ Число Эйлера 'e'
- ✅ Поддержка бинарных операторов в выражениях
- ✅ ^ (возведение в степень)
- ✅ * (умножение)
- ✅ / (деление)
- ✅ + (сложение)
- ✅ - (вычитание)
- ✅ Поддержка своих переменных в выражениях
- ❌ Поддержка своих (custom) функций в выражениях
- ❌ Реализация контекста функции для хранения переменных текущей области видимости
- ❌ Реализация доступа к переменным более высоких контекстов (доступ к глобальной переменной, замыкание)
- ✅ Поддержка стандартного перечня функций в выражениях
- ✅ cos()
- ✅ sin()
- ✅ tg()
- ✅ ctg()
- ✅ log()
- ✅ ln()
- ✅ sqrt()
- ✅ pow()
- ✅ abs()
- ✅ exp()
- ❌ Поддержка функций для работы с комплексными числами
- ❌ real() (комплексные числа)
- ❌ imag() (комплексные числа)
- ❌ mag() (комплексные числа)
- ❌ phase() (комплексные числа)
- ❌ Вывод вычислительного графа в виде обратной польской нотации