Разбор и вычисление арифметических выражений на Java

preview_player
Показать описание
#алгоритмы #java #калькулятор Разберёмся, как можно вычислять арифметические выражения. Предположим, на вход нам поступает строка текста, которая содержит корректное арифметическое выражение.

Это выражение состоит из пробелов, чисел, скобок и знаков, обозначающих основные математические действия (плюс, минус, умножить, разделить). Нам нужно разобрать это выражение на отдельные элементы, а затем вычислить результат с учётом приоритетов математических операций.

Обработку такого выражения можно разделить на три основных этапа:
1. Разбиение строки на отдельные части
2. Обработка этих частей с учётом математических операций
3. Само вычисление

Рекомендации по теме
Комментарии
Автор

Это было очень интересно! Спасибо огромное!

Alexander-iseq
Автор

Спасибо, было интересно, про обратную нотацию не слышал ранее (к своему стыду), а может уже просто забыл) Не понятно, что произойдёт, если строка будет начинаться с отрицательного числа, например "-8 + 18", но есть ощущение, что что-то пойдёт не так. Про интерпретатор и "свой язык :)" можно было добавить, что строится АСД. В любом случае, спасибо!

blavodbatman
Автор

Подскажи плиз какой стек перспективно учить вместе с котлин? Ну чтобы так сказать на бэкенд пробовать

denrimden
Автор

Здравствуйте. Можно пожелание? Меня интересует в конце задачи сложность по времени и сложность по памяти.

clannajebyan
Автор

как вычислить вот такое выражение sin(2*(-5+1.5*4)+28)

Checkmate-pr
Автор

Есть javacc и antlr, которые генерят джава код по грамматике языка. Можно написать и грамматику для калькулятора. А писать и поддерживать сам калькулятор - муторно

dimirsen