Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Офтопик > Работа > Задания за деньги
Перезагрузить страницу Вычисление выражений представленных в постфиксной форме.
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
versus.idg versus.idg вне форума
Новичок
 
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.07.2013
По умолчанию Вычисление выражений представленных в постфиксной форме. - 02.07.2013, 10:50

Доброго времени суток. ПОмогите пожалуйста перевести эти слова в код на паскале!

1. Пока не конец строковой величины — постфиксного выражения, считывать ее символы слева направо:

если очередной символ — цифра,

· то

· · поместить ее в стек;

· иначе (очередной символ —

знак операции)

· · — извлечь два верхних элемента

из стека в переменные х и у;

· · — произвести вычисление:

у <очередной знак операции> х;

· · — поместить результат вычисления

в стек.

все

2. Извлечь из стека верхнее значение. Оно и будет результатом расчета заданного постфиксного выражения.

Для размещения элемента в стеке, для извлечения из него элемента и для вывода значения на вершине стека используем соответственно вспомогательные алгоритмы Поместить, Извлечь и Вершина, разработанные в [1]3, а для вычислений — вспомогательные алгоритмы Сложить , Вычесть , Умножить и Разделить , описанные в [2] (напомним, что в них действия выполняются над двумя числами, находящимися в двух “верхних” элементах стека, а результат размещается на его вершине).

Ясно, что в данном случае, как и в [2] и в отличие от [4], стек будем моделировать как массив чисел, т.е. его описание должно быть таким:

цел nmax; nmax := 20;

цел таб стек[1:nmax];

цел верх; верх := 0;

Примечание. Переменная верх — индекс последнего заполненного элемента.

При разработке программы возникает необходимость преобразовать символ-цифру (из постфиксного выражения) в число (для размещения его в стеке). В новой версии системы программирования “КуМир” для операционной системы Windows такое преобразование можно провести с помощью функции лит_в_цел . У нее два аргумента. Первый — преобразуемое литерное или символьное значение, второй — величина логического типа, возвращающая результат в зависимости от успешности проведенного преобразования.

Вся программа решения задачи имеет вид:

алг Вычисление значения постфиксного

выражения

нач лит postfix, цел i, лог успех

· postfix := '62+5*84/-'

· нц для i от 1 до длин(postfix)

· · если postfix[i] >= '0' и postfix[i] <= '9'

· · · то

· · · · Поместить(лит_в_цел(postfix[i], успех));

· · · иначе

· · · · выбор

· · · · · при postfix[i] = '+': Сложить

· · · · · при postfix[i] = '-': Вычесть

· · · · · при postfix[i] = '*': Умножить

· · · · · при postfix[i] = '/': Разделить

· · · · все

· · все

· кц

· вывод нс, "Результат ", Вершина

кон

либо, если есть готовая программа скиньте пожалуйста!!!
Ответить с цитированием
  (#2 (permalink)) Старый
LPproger LPproger вне форума
C/C++/Asm proger
 
Сообщений: 382
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 05.02.2007
По умолчанию 02.07.2013, 14:54

Готов выполнить за денежное вознаграждение.

Моё объявление и отзывы


Программирование на языках C/C++/Assembler, Pascal, Prolog, Lisp для Windows.
http://forum.sources.ru/index.php?showtopic=313018
Ответить с цитированием
  (#3 (permalink)) Старый
mikefreel mikefreel вне форума
Member
 
Сообщений: 438
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 10.12.2010
По умолчанию 02.07.2013, 21:17

Готов взяться за проект
номер ICQ: 565460353 или 480964456
mikefreelance@rambler.ru
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вычисление значения функции и переменных, вычисление площади треугольника, определени _Alex_ Delphi 0 18.12.2011 19:45
Что выбрать из представленных kirya_m Выбор ноутбука 4 27.07.2011 17:30
Записать алгебраическое выражение в постфиксной форме andreew Haskell 3 26.05.2011 12:15
Вычисление логического выражения в дизъюнктивной нормальной форме Дан Lisp 0 25.05.2011 17:11
Реализация вычитания двух чисел, представленных в виде списков Regina Вопросы начинающих программистов 0 09.12.2010 20:43
Сопоставление символьных выражений sunrobber Lisp 1 05.09.2010 20:02
SWI - Prolog упрощение выражений george2 Prolog 2 19.08.2010 13:07
[need help] Транслятор арифметических выражений Serge0 Prolog 19 07.06.2009 11:09
Вычисления ариф. выражений над числами в ПОСТФИКСНОЙ форме velviamo Prolog 5 27.05.2008 18:17
Калькулятор выражений Винитарх Prolog 5 25.04.2007 22:37
DLL и Анализатор выражений Elph C++ Builder 5 28.10.2005 08:32
Создание sql-выражений vilru Oracle 3 14.06.2005 12:45



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов