Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Wins_swg
0 / 0 / 0
Регистрация: 26.12.2009
Сообщений: 3
#1

работа со стеком. ввод символов и их обработка. вычисление постфиксных выражений - C++

27.12.2009, 12:40. Просмотров 637. Ответов 0
Метки нет (Все метки)

Задача: Вычисление постфиксных выражений (работа со стеком)

Постановка задачи:

Постфиксное выражение являет собой символьную строку, которая состоит из цифр, пробелов и знаков арифметических операций (+,-,*,/,%). Строка заканчивается нулевым символом (`\0`) и вводится пользователем. Необходимо написать функцию, которая вычисляет значение этого выражения. Алгоритм ее работы состоит в том, что:

Пока текущий символ не заключительный, обрабатываем его {
Если текущий символ является цифрой, то
вычислить цифровое значение символа и поместить его в стек.
Иначе если текущий символ является знаком операции, то
вытолкнуть из стека два последних элемента в переменные Х и Y;
вычислить выражение (y операция x);
поместить результат в стек.
Иначе - не обрабатывать текущий символ.
}
Вытолкнуть элемент со стека и возвратить его значение.


Цифровое значение символа - это код символа минус код символа `0`.
Для реализации этого алгоритма необходимо написать функции push, pop, которые соответственно помещают и вытягивают значение из стека. Программа должна прочитать постфиксное выражение со стандартного входного потока, вызвать функцию, которая вычисляет его значение, и поместить полученный результат в стандартный выходной поток. (то есть вывести).

Необходимо предусмотреть, что аргументы могут состоять из более чем одной цифры (тип int).


Помогите пожалуйста решить эту задачу!!! Заранее благодарен.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2009, 12:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос работа со стеком. ввод символов и их обработка. вычисление постфиксных выражений (C++):

Работа со стеком. Вычисление значения логического выражения - C++
:работа со стеком: Задача:::В текстовом файле записано без ошибок логическое выражение следующего вида: <лог.выр.>::=true | false |...

Запись выражений, ввод–вывод информацииЗапись выражений, ввод–вывод информации - C++
Задача 2.1. Пользуясь только операцией умножения, вычислить (A в 7-ой степени) за четыре операции. Задача 2.2. Очистить экран,...

Как происходит ввод и обработка символов из консоли? - C++
Приветствую, не могли бы вы мне подсказать на счет одной вещи. В книге Страуструпа есть реализация калькулятора, которая основана на том,...

Вычисление непрерывных дробей и выражений. Вычисление полиномов и их производных. - C++
1. Чему равна знакочередующаяся сумма цифр числа n. 2. Даны натуральное число n и вещественное число х. Составить программу для...

Неработающий парсер для вычисления постфиксных выражений - Java SE
Итак, задача: написать парсер для вычисления постфиксных выражений с использованием класса LinkedQueue - очередь реализованная через...

Ввод и обработка символов - Java SE
Здравствуйте. Вот такая задача 1) Из клавиатуры вводятся символы, пока не встретится символ *. На экран выводить код каждого введенного...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2009, 12:40
Привет! Вот еще темы с ответами:

Работа со стеком! - C++
Необходимо записать заполнение стека с клавиатуры. Добавлено через 44 секунды #include <iostream> #include <stack> int main...

Работа со стеком - C#
Хочу сделать в приложении(редакторе изображений) кнопку отменить последнее изменение. Я порешил после редактирования изображения...

Работа со стеком с# - C#
Сначала я задаю последовательность скобок потом проверяю условие сколько пользователь их ввёл, если 4, то обращаюсь к каждой скобки и...

Работа со стеком - С(Си) - C (Си)
Помогите, пожалуйста, разобраться. Он не компилирует. #include <stdio.h> #include <stdlib.h> struct stack { struct...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru