Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 07.11.2016
Сообщений: 6
1

Вычислить значение произвольного выражения, представленного в обратной польской записи

07.11.2016, 15:07. Показов 3464. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вычислить значение произвольного выражения, представленного в обратной польской записи. Например:
обычная запись: (b+c)*d
обратная польская запись: bc+d*
Указания
Просматривая строку, анализировать очередной символ. Если это операнд, то записать его в стек; если это операция, то извлечь два элемента из стека, выполнить математическую операцию и занести результат в стек.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.11.2016, 15:07
Ответы с готовыми решениями:

Вычислить значение произвольного выражения, представленного в обратной польской записи
Здравствуйте. Помогите с прогой пожалуйста. Дано арифметическое выражение длиной до 30 символов,...

Нужно написать написать программу, которая вычисляет значение выражения в обратной польской записи
Обра́тная по́льская запись (англ. Reverse Polish notation, RPN) — форма записи математических и...

Вычислить значение выражения представленного в обратной польской записи
Здравствуйте! Нужна помощь с заданием по питону. Задание: Арифметическое выражение можно...

Вычислить значение выражения в обратной польской записи с использованием стека
Вычислить значение выражения в обратной польской записи с использованием стека. например 6 2 + = 6...

2
543 / 486 / 104
Регистрация: 05.05.2014
Сообщений: 1,110
07.11.2016, 15:57 2
Лучший ответ Сообщение было отмечено IngaAndreeva как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
char stek[1000];
int ns = 0, res=0;
char Expr[] = "bc+d*";
int val[26];  // массив значений переменных a = val[0], b=val[1] ...
char *p;
for(p=Expr; *p; p++) {
  if (*p=='*' || *p=='+') {
    if (ns < 2)  break;
    if (*p=='+') stek[ns-2] = [stek[ns-1] + stek[ns-2];
    else  stek[ns-2] = stek[ns-1] * stek[ns-2];
    ns--;
  }
  else {
    if (*p <'a' || *p>'z') break;
    stek[ns++] = val[*p];
  }
}
if (*p || ns !=1) printf("Error");
else printf("res=%d", stek[0]);
Вот как-то так...
0
0 / 0 / 0
Регистрация: 07.11.2016
Сообщений: 6
08.11.2016, 15:51  [ТС] 3
Спасибо огромное
0
08.11.2016, 15:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.11.2016, 15:51
Помогаю со студенческими работами здесь

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

Калькулятор считающий выражения обратной польской записи из файла
Здравствуйте! У меня вот такое задание &quot;Напишите программу, вычисляющую выражение в обратной...

Вывод выражения при помощи обратной польской записи
Помогите пожалуйста написать программу на паскале чтобы она выражение выводила при помощи обратной...

Построить дерево выражения, записанного в виде обратной польской записи
в текстовом файле дано арифметическое выражение в обратной польской записи. постройте дерево,...

Вычисление выражения записанного в виде обратной польской записи используя бинарное дерево
Всем доброго времени суток. Задача вот такая. Имеется скобочное выражение. Преобразовать его в...

Посчитать значение выражения, записанного в обратной польской нотации
Здравствуйте! Помогите, пожалуйста, разобраться, где ошибка! Задача состоит в том, чтобы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru