Задать вопрос
@VanilaSpirit

Пошаговый калькулятор на С#?

Как реализовать пошаговый подсчет значений в калькуляторе, например:
(2+2) / 2 + 2 * 2
4 / 2 + 2 * 2
2 + 2 * 2
2 + 4
6
Что бы каждая операция выводилась на консоль
Был похожий вопрос, но ответа там так и не нашел.
  • Вопрос задан
  • 168 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Software-testing.ru
    Программирование на C# для тестировщиков
    10 недель
    Далее
Пригласить эксперта
Ответы на вопрос 2
DmitryITWorksMakarov
@DmitryITWorksMakarov
Один из вариантов решения:
Превратить поток символов в поток лексем (лексема - это NUMBER , OPERATION , OPEN_BRACKET, CLOSE_BRACKET).
Затем по одной лексеме складываем в стек.
После очередной лексемы проверяем: можно ли три верхних лексемы заменить на одну по правилам:
NUMBER OPERATION NUMBER -> NUMBER
OPEN_BRACKET NUMBER CLOSE_BRACKET -> NUMBER.
Если можно - заменяем.
Если замена проведена, проверяем по правилам заново.
При замене выводим содержимое стека и оставшиеся лексемы.
Выполняем пока не закончатся лексемы, а в стеке не останется одна лексема типа NUMBER.
Ответ написан
yarosroman
@yarosroman Куратор тега C#
C# the best
Можно преобразовать в обратную польскую нотацию и фактически у вас будет действие по шагам.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы