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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 50, средняя оценка - 4.60
matrix
Сообщений: n/a
#1

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

28.11.2007, 18:30. Просмотров 6250. Ответов 1
Метки нет (Все метки)

Не знаю как организовать алгоритм польской инверсной записи на С++. Если кто-то знает помогите пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2007, 18:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос польская инверсная запись. Помогите с алгоритмом. (C++):

Польская инверсная запись числа С++ - C++
Подскажите, пожалуйста,что это такое-Польская инверсная запись)

Программа построения ПОЛИЗ(польская инверсная запись) - C++
Здравствуйте, ув. программисты, помогите написать программу построения польской имперсной записи. Задание на фото

Польская инверсная нотация - C++
помогите пожалуста зделать !!! уже ниделю сижу никак не могу зделать ((

люди добрые! нужно программа инверсная запись чисел, запись из инверсной в обычную - C++
помогите сделать программа или датьсходник, можно на с++ или на паскале спасибо вам за раннее огромное!!!!!

польская запись - C++
как написать программу,которая математическое выражение переводит из обычного запися в польскую запись с помощью стека?...

Польская запись - C++
Здравствуйте, у меня возникли некоторые проблемы с данной задачей(если сказать точнее, то я ее вообще не понял): Дано выражение...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
mik-a-el
Администратор
57764 / 37538 / 231
Регистрация: 10.04.2006
Сообщений: 12,740
28.11.2007, 18:39 #2
Пример:
Одной из форм представления выражений является польская инверсная запись, задающая выражение так, что операции в нем записываются в порядке выполнения, а операнды находятся непосредственно перед операцией.

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

(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]);
    }
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2007, 18:39
Привет! Вот еще темы с ответами:

Обратная польская запись - C++
Пожалуйста помогите, всю голову себе сломал. Задание: &quot;Обеспечить перевод инфиксного выражения в ОПЗ и вычислить его результат. Входные...

Обратная польская запись - C++
Простите что не совсем в том разделе, просто его больше всего людей посещает) По теме: Как при вычислении выражения из строки...

Обратная польская запись - C++
Подскажите, как по обратной польской записи выражения построить дерево выражения Например: дана запись 1 2 + 3 4...

Префиксная польская запись - C++
Здравствуйте, очень нужна помощь умных людей( Задача: Написать код для преобразования инфиксной записи выражения в префиксную, вообще нет...


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

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

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