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

польская инверсная запись. Помогите с алгоритмом. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Записать текст матрицы от ее центра по спирали против часовой стрелки http://www.cyberforum.ru/cpp-beginners/thread3641.html
Задача записать текст квадратной матрицы размера n(n-нечетное) от центра матрицы по спирали против часовой стрелки. Например матрица n i k t a m o p o amkintopo Какие есть предложения?
C++ Заданное число от 1 до 1999 вывести римскими цифрами помогите плиз переделать программку smile.gif необходимо осуществить ввод\вывод через cin\cout. и не использовать библ. string. просто массив char-ов. вывод в txt-файл не нужен. вот само задание если что: Заданное число от 1 до 1999 вывести римскими цифрами. Код #include <stdio.h> #include <string.h> #define NVALS 13 http://www.cyberforum.ru/cpp-beginners/thread3625.html
C++ Генерация паролей
Помогите, пожалуйста, уважаемый программисты!! сочно нужна простенькая задачка (текст) по генерации паролей!!! к сожалению нет возможности поискать по интернету сейчас, а тем более поискать, но нужно очень срочно!!! пожааалуйста!! может у кого нибудь уже есть? :help:
Error LNK2001: "unresolved external symbol _main" C++
вот программа: #include <iostream.h> #include <stdlib.h> #include <time.h> class Mas_2d { public: Mas_2d();
C++ Помогите с задачами: Одномерный массив, Строки, Двумерные массивы http://www.cyberforum.ru/cpp-beginners/thread3600.html
1. Одномерный массив Упорядочить элементы массива, удалив повторяющиеся элементы. 2. Строки Вводится строка,в конце ставится точка. Определить, удовлетворяет ли введенный текст приведенным ниже условиям. Текст является шестнадцатиричной записью числа,кратного 7. 3. Двумерные массивы. Заполнить секторы матрицы, которые лежат влево и вправо от главной и побочной диагоналей ЛП, от левого...
C++ Двумерный массив, Нужна помощь профи Доброго времени суток!!! Помогите доделать задачу... Найти максимальный элемент матрицы из тех строк, которые упорядочены либо по возрастанию, либо по убыванию. Например : 1 7 40 54 - строка упорядочена по возрастанию 3 5 1 66 - строка не упорядочена подробнее

Показать сообщение отдельно
mik-a-el
CyberForum Owner
 Аватар для mik-a-el
56566 / 36316 / 231
Регистрация: 10.04.2006
Сообщений: 12,617
28.11.2007, 18:39     польская инверсная запись. Помогите с алгоритмом.
Пример:
Одной из форм представления выражений является польская инверсная запись, задающая выражение так, что операции в нем записываются в порядке выполнения, а операнды находятся непосредственно перед операцией.

Например, выражение

(6+8)*5-6/2

в польской инверсной записи имеет вид

6 8 + 5 * 6 2 / -

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

S = < >; <6>; <6,8>; <14>; <14,5>; <70>;
<70,6>; <70,6,2>; <70,3>; <67>.

Ниже приведена функция eval, которая вычисляет значение выражения, заданного в массиве m в форме польской инверсной записи, причем m[i]>0 означает неотрицательное число, а значения m[i]<0 - операции. В качестве кодировки операций сложения, вычитания, умножения и деления выбраны отрицательные числа -1, -2, -3, -4. Для организации последовательного хранения стека используется внутренний массив stack. Параметрами функции являются входной массив a и его длина l.

Код
    float eval (float *m, int l)
    { int p,n,i;
      float stack[50],c;
       for(i=0; i < l ;i++)
       if ((n=m[i])<0)
         {  c=st[p--];
            switch(n)
            { case -1:  stack[p]+=c;  break;
              case -2:  stack[p]-=c;  break;
              case -3:  stack[p]*=c;  break;
              case -4:  stack[p]/=c;
            }
         }
       else stack[++p]=n;
       return(stack[p]);
    }
 
Текущее время: 14:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru