Статистика
Всего в нашей базе более 4 327 664 вопросов и 6 445 978 ответов!

Очень нужна помощь!( Помогите или хотя бы объясните, как из обычной получить постфиксную форму. Вот, задания, которые нужно переделать в постфиксной форме:

10-11 класс

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

Duka0511 13 мая 2015 г., 16:56:22 (9 лет назад)
Рейтинг
+ 0 -
0 Жалоба
+ 0 -
енотвиталя
13 мая 2015 г., 18:43:32 (9 лет назад)

Постфиксная (она же - обратная польская запись, польская - потому что введена польским математиком Яном Лукашевичем) - это запись, в которой сначала следуют операнды, а затем знаки операций. Удобна для организации вычислений, потому что не требует для записи скобок и может вычисляться по мере считывания. Для преобразования обычной записи в польскую удобно использовать логическую структуру, называемую стеком (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 умножить, из запомненного вычесть. Все верно.

Ответить

Другие вопросы из категории

Даны

две логические функции, зависящие от трех аргументов A, B и C.

Задача на логику.

В пакете лежат фрукты. Все, кроме двух, персики. Все, кроме двух, яблоки. Все, кроме двух, груши. Сколько фруктов в пакете? Каких?

Сжатый файл отличается от исходного тем, что:

a) доступ к нему занимает меньше времени;
b) он в большей степени удобен для редактирования;
c) он легче защищается от вирусов;
d) он легче защищается от несанкционированного доступа;
e) он занимает меньше места

Читайте также

ХОТЯ БЫ ОБЪЯСНИТЕ КАК РЕШИТЬ! ОЧЕНЬ НАДО! НУ ВСЕ ПУНКТЫ ЧТО ЕСТЬ ОТДАЮЮЮЮЮ Тело брошено

вертикально вверх со скоростью 40 км/ч. Найти значение проекции скорости этого тела в течении 6 секунд, через каждые 0,5 секунд


Надо решить в электронной таблице HELP PLEASE!

Pascal.Помогите решать хотя бы некоторые!!!Очень нужно.

Задача 1. Ввести три вещественных числа: длины сторон треугольника. а) Напечатать существует ли треугольник с такими длинами сторон; б) Если треугольник существует, то напечатать тип треугольника: остроугольный,
прямоугольный или тупоугольный.
Задача 2. Компьютер в первую секунду печатает на экране 1, во вторую – число 12, в третью – число 23. То есть, в каждую следующую секунду – на 11 больше, чем в предыдущую. В
какую секунду впервые появится число, делящееся на 2009?
Задача 3. Текст состоит из слов, разделенных пробелом. Найти самое длинное слово. Если таких слов несколько, то напечатать последнее. Задача 4. Ввести натуральное число N. Это число записывается в виде суммы нескольких неубывающих натуральных слагаемых. Например, 5=1+4=2+3=1+1+3=1+1+1+2=1+1+1+1+1
Напечатать количество таких изложений (при n=5, ответ 5);

Помогите написать программу для вычисления примера:

y=cos(v)* \sqrt[3]{1+ sin^{2}(v+a) } ; v=(a+c)/a*c; a= e^{-c} +c; c=2.35

Или хотя бы ход решения, какие операторы использовать и т. п.



Вы находитесь на странице вопроса "Очень нужна помощь!( Помогите или хотя бы объясните, как из обычной получить постфиксную форму. Вот, задания, которые нужно переделать в постфиксной форме:", категории "информатика". Данный вопрос относится к разделу "10-11" классов. Здесь вы сможете получить ответ, а также обсудить вопрос с посетителями сайта. Автоматический умный поиск поможет найти похожие вопросы в категории "информатика". Если ваш вопрос отличается или ответы не подходят, вы можете задать новый вопрос, воспользовавшись кнопкой в верхней части сайта.