Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2012, 22:23   #1
вася радугов
Форумчанин
 
Регистрация: 09.04.2011
Сообщений: 134
По умолчанию Обратная польская запись на Delphi

Задали такое задание: написать программу, считывающую входную строку в форме обратной польской записи и производящую вычисления простых арифметических и логических выражений, которые состоят из однобуквенных операндов, логических и арифметических операций. Значения однобуквенных операторов можно ввести в диалоге, а можно оператором присваивания.
т.е ,например у нас есть строка в ОПЗ ABCDE-+, пользователь должен ввести значение А,В,С,D,Е или задать их в программе, и программа должна вывести результат этих вычислений.
Если честно не понял вообще, как это можно реализовать на делфи. Что такое ОПЗ вроде понимаю, но на делфи написать не могу. Помогите!!!
вася радугов вне форума Ответить с цитированием
Старый 12.04.2012, 22:57   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

во-первых, в Обратной Польской Записи
Код:
ABCDE-+
- это ошибочная запись.
ну явно же операций НЕ ХВАТАЕТ.
посчитается D - E + C. переменные A и B останутся в стеке невостребованными (что, разумеется, недопустимо)

во-вторых, обратную польскую запись и придумали как раз для того, чтобы упростить вычисление выражений. В этой форме нет никаких приоритетов, скобок и прочей сложности, как в инфиксной форме записи. Знай себе засовывай операнды в стек, да вытаскивай их оттуда по мере необходимости.
в этой части программа не вызовет вообще никаких сложностей.

в-третьих, каким образом задаётся выражение? (вводится строка?), и, главное, каким образом оператор будет вводить в программу значение переменных? (в принципе, конечно, это тоже несложно, но надо продумать алгоритм/интерфейс взаимодействия программы и оператора)
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обратная польская запись C++ nurgayin Помощь студентам 0 24.03.2011 18:48
Обратная польская запись CodeNOT Общие вопросы C/C++ 2 13.12.2010 22:54
Обратная польская запись alexobenikov Общие вопросы C/C++ 12 25.11.2010 23:03
Обратная польская запись Катуха Помощь студентам 6 27.12.2008 10:23
Обратная польская запись Роман Радер Общие вопросы Delphi 0 09.12.2008 18:18