https://github.com/misterzurg/equationcalculator
https://github.com/misterzurg/equationcalculator
Last synced: 7 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/misterzurg/equationcalculator
- Owner: MisterZurg
- Created: 2020-03-12T20:00:52.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-01-06T13:21:06.000Z (almost 5 years ago)
- Last Synced: 2025-01-20T17:49:12.494Z (9 months ago)
- Language: Java
- Size: 5.86 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Bonch_Project_Java
Theme: Калькулятор выраженийDiscipline
Project Goal
Description
Поскольку калькулятор поддерживает простейшие операции:
Было решено рассмотреть возможные варианты решения поставленной задачи:
1. Располагать операции в виде Бинарного дерева, ресурсоемко и сложно!
2. Разбивать выражение на токены.
Был выбран второй вариант.
Также при выполнении задачи был открыт следующий термин:
Обратная польская нотация — форма записи математических и логических выражений,
в которой операнды расположены перед знаками операций.
Логика программы
Мы посимвольно пробегаемся по всему выражению, каждому символу соответствует определенный приоритет:
Программа выполняется с некоторыми оговорками:
при этом проверяя стек на пустоту, если стек не пустой,
то нужно достать все знаки из него до тех пор, пока приоритет последующего знака не будет меньше текущего;
По прохождению программы у нас имеется два набора данных:
Строке вывода, в которой находятся набор переданных чисел
Стек с математическими операциями
Полученные два набора данных преобразуются в обратную польскую нотацию, из которой и получается итоговый ответ по следующей логике: