Есть ответ 👍

Нужна ! ( или хотя бы объясните, как из обычной получить постфиксную форму. вот, , которые нужно переделать в постфиксной форме: 1. (a+b)*(c+2*d) 2.(2*a-3*d)*c+2*b 3.(a+b+2*c)*d 4. 3*a - (2*b+c) * d

165
419
Посмотреть ответы 2

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

tumenka140
4,5(92 оценок)

Постфиксная (она же - обратная польская запись, польская - потому что введена польским яном лукашевичем) - это запись, в которой сначала следуют операнды, а затем знаки операций. удобна для организации вычислений, потому что не требует для записи скобок и может вычисляться по мере считывания. для преобразования обычной записи в польскую удобно использовать логическую структуру, называемую стеком (stack). поскольку нам не надо составлять алгоритм, а только перевести привычную запись в постфиксную, при переводе будем просто рассуждать. 1. (a+b)*(c+2*d) первая операция - a+b. её постфиксная запись (далее - пз) выглядит как ab+ и понимается так: "взять а, взять b, сложить" следующая операция 2*d, в пз это 2d*. т.е по сути мы меняем местами знак операции и второй операнд. третья операция - вычисление c+2*d. в пз мы запишем (с учетом предыдущего) 2d*c+. у нас уже была операция 2d*, теперь мы прибавляем к результату c. содержимое обоих скобок вычислено, осталось выполнить умножение. получаем в пз: ab+2d*c+* как это будет вычисляться? считываем a. считываем b. считываем знак операции +. выполняем операцию, получая a+b. обозначим результат r и тогда текущее состояние вычисляемого выражения будет r2d*c+* считываем 2. считываем d. считываем знак операции * (заметим, что читать надо, пока не встретим знак операции). перемножаем два операнда, предшествующие операции. получаем s=2*d. текущее состояние вычисляемого выражения будет rsc+* считываем операнд с. считываем знак операции +. складываем два операнда, предшествующие операции. получаем s=s+c. почему не вводим новой переменной? потому что один из операндов - временная переменная, следовательно её прежнее значение не нужно. текущее состояние вычисляемого выражения будет rs* считываем знак операции *. перемножаем два операнда, предшествующие операции. получаем r=r*s. все выражение просмотрено, следовательно вычисление завершено. второй пример не будем столь подробно разбирать. 2. (2*a-3*d)*c+2*b тут операции в пз будут 2a*, 3d*, 2a*3d*- (первая скобка), далее 2a*3d*-с*, 2b* и окончательно 2a*3d*-c*2b*+ читаем: 2 и a умножить, 3 и d умножить, из первого произведения вычесть второе, результат и с умножить, 2 и b умножить и два последних результат сложить. все верно. 3. (a+b+2*c)*d ab+, 2c*, вся скобка ab+2c*+, окончательно ab+2c*+d* 4. 3*a-(2*b+c)*dв пз: 3a*2b*c+d*-проверим: 3 и a умножить, запомнить, 2 и b умножить, с прибавить, на d умножить, из запомненного вычесть. все верно.

2умножить1024прибавить101равно2149

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS