
Вопрос задан 22.02.2021 в 00:54.
Предмет Информатика.
Спрашивает Antciferov Nikita.
На вход программе задается выражение типа ( 5 + 5 * 3 ) / 5 * ( 5.5 – 6 ). Необходимо посчитать и
вывести ответ. Могут встретиться символы ( ) / * - +, считать как для дробных чисел

Ответы на вопрос

Отвечает Шакиров Алексей.
(5+5*3)=20
5*(5.5-6)=-5.5
20/(-5.5)=-3.6
5*(5.5-6)=-5.5
20/(-5.5)=-3.6



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Для вычисления данного выражения, можно использовать стек и алгоритм обратной польской записи (Reverse Polish Notation, RPN).
- Создадим пустой стек для операторов и пустой стек для операндов.
- Разобьем входную строку на отдельные токены (числа и операторы) с учетом пробелов. В данном случае, токены будут: '(', '5', '+', '5', '', '3', ')', '/', '5', '', '(', '5.5', '-', '6', ')'.
- Пройдемся по каждому токену в порядке их появления:
- Если токен - число, добавим его в стек операндов.
- Если токен - оператор, выполним следующие действия:
- Если стек операторов пуст или верхний оператор в стеке имеет меньший приоритет, чем текущий оператор, поместим текущий оператор в стек операторов.
- В противном случае, пока верхний оператор в стеке имеет больший или равный приоритет, чем текущий оператор, извлечем оператор из стека операторов и добавим его в стек операндов.
- Поместим текущий оператор в стек операторов.
- Если токен - открывающая скобка '(', поместим ее в стек операторов.
- Если токен - закрывающая скобка ')', выполним следующие действия:
- Пока верхний оператор в стеке операторов не является открывающей скобкой, извлечем оператор из стека операторов и добавим его в стек операндов.
- Удалим открывающую скобку из стека операторов.
- По окончании обработки всех токенов, если в стеке операторов остаются операторы, извлекаем их и добавляем в стек операндов.
- В конце в стеке операндов останется только одно значение - результат вычисления.
Применяя этот алгоритм к данному выражению, получим следующие шаги:
Токены: '(', '5', '+', '5', '', '3', ')', '/', '5', '', '(', '5.5', '-', '6', ')'
Шаг 1: Стек операндов: [] Стек операторов: []
Шаг 2: Токен: ( Стек операндов: [] Стек операторов: [
Шаг 3: Токен: 5 Стек операндов: [5] Стек операторов: [
Шаг 4: Токен: + Стек операндов: [5] Стек операторов: [+]
Шаг


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili