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

Постфиксный (стековый) калькулятор (Рекурсия) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ создание класса, с++ http://www.cyberforum.ru/cpp-beginners/thread139320.html
В конструкторе по умолчанию, когда доходит до time(min); ошибка 'min' : redefinition; different basic types почему так? #include <iostream> using namespace std; class time {
C++ Создать функцию, которой строка передаётся как параметр, и которая возвращает количество слов создать функцию в которой строка передаётся как аргумент и возвращает количество слов http://www.cyberforum.ru/cpp-beginners/thread139309.html
C++ Сортировка однонаправленного линейного списка
Нужно отсортировать однонаправленный линейный список сортировкой слиянием и бинарной сортировкой. как сортировать обычные массивы я знаю, а вот списки... struct list { string tool; string day; string teacher; float cash; unsigned count; string name;
Рюкзачная система шифрования (проверить) C++
Здравствуйте, я в си++ вообще не дум-дум. Помогите пожалуйста проверить задачку, работает она или нет, для курсовой нужно( И если не сложно помогите проставить комментарии. Заранее спасибо! // rukzak.cpp // Приложение к статье "Применение криптографии в вопросах защиты данных, на // примере рюкзачной системы шифрования." Здесь представлен текст программы удобный // для чтения и...
C++ из рекурсии - цикл http://www.cyberforum.ru/cpp-beginners/thread139296.html
помогите убрать рекурсию и поставить while. int perest(int l,int **a,int **r,int *p,int n,int &sum,int &max) { int i,temp; if(l==0) { r=Path(a,r,p,n,sum,max); } else
C++ Работа с файлом Программа для записи/прочитки текстовых файлов. Почему когда ввожу строку, в файл сохраняется только часть строки(до первого пробела)? #include<iostream> #include<fstream> #include<string> using namespace std; void input() { ofstream file; file.open("file.txt"); подробнее

Показать сообщение отдельно
Aye Aye
 Аватар для Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
01.06.2010, 22:35     Постфиксный (стековый) калькулятор (Рекурсия)
нужно сделать что бы на вход подавалось арефмитическое выражение а твоя программа считала результат.
например:
8*4+2(5-1) в постфиксной нотации будет 8 4 * 2 5 1- * +
это подается на вход, если непонятки с постфиксной нотацией - на википедии все очень четко расписано.
Алгоритм такой:
Считываем один символ, если это операнд то кладем его в стек, если это знак арифметической операции то вынимаем два операнда из стека и производим над ними эту операцию и кладем результат в стек. и так пока символы не закончатся во входном потоке. в конце работы результат будудет лежать на вершине стека.
должно быть, что-то вроде:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void stackmachine(stack<int>& S)
{
     char c;
     while (cin >> c,c!='\n')
     {
         switch(c)
         {
              case '+':{ // если операция сложения
                      int op1=S.top();
                      S.pop();
                      int op2=S.top();
                      S.pop();
                      int result=op1 + op2;
                      S.push(result);
              }
              // ...
              default: // если цифра
                         S.push(c-'0');
         }
     }
}
типа того. осталось тлько сделать чтобы цифры были многорадными и чтобы функция пропускала пробелы
 
Текущее время: 07:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru