Skip to content

tonisimakov99/Calculator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Calculator

Выполняет парсинг математического выражения и вычисляет его.

Парсер математического выражения

Калькулятор использует обратную польскую запись и содержит преобразователь из инфиксной нотации. Парсер поддерживает бинарные операции и постфиксные и префиксные функции от одного параметра, приэтом помимо стандартных математических операций можно добавлять свои токены. Например, чтобы добавить операцию + необходимо выполнить следующий код:
parser.AddBinaryOperation(new BinaryOperationToken('+', (a, b) => a + b, 0, Associativity.Left)); Пользовательскую бинарную операцию можно добавить точно также:
parser.AddBinaryOperation(new BinaryOperationToken('f', (a, b) => a * b - a / b, 0, Associativity.Left));


Парсер содержит статический метод Default(), он возвращает объект парсера в который уже добавлены основные математические операции.
Cписок доступных токенов:

    • Бинарные операции:
    • '+' сложение
    • '-' вычитание
    • '/' деление
    • '*' умножение
    • '^' возведение в степень(правоассоциативное)
    • '%' деление по модулю
    • Функции:
    • '!' факторил
    • 'sin()' синус
    • 'cos()' косинус
    • 'tan()' тангенс
    • 'arcsine()' арксинус
    • 'arccosine()' арккосинус
    • 'arctan()' арктангенс
    • 'sqrt()' квадратный корень
    • 'abs()' модуль числа
    • 'log()' логарифм по основанию e
    • 'log10()' логарифм по сонованию 10
    • 'round()' округление
    • 'truncate()' отбрасывание дробной части числа

После парсинга строки на выходе получается список токенов в порядке польской записи, по которому можно уже посчитать значение выражения. Список можно сформировать не обязательно этим парсером, но и каким-либо другим.

About

Считывает математическое выражение из строки и вычисляет его.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published