![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 19.05.2012
Сообщений: 2
|
![]()
Требуется перевести строку, представляющую булеву функцию в постфиксную форму.
Сначала я получаю последовательность токенов, а далее преобразую ее в постфикс при помощи алгоритма сортировочной станции. Проблема заключается в том, что при некоторых заведомо некорректных исходных данных на выходе получается вполне допустимая запись, поэтому далее при работе с ней ошибки не обнаруживаются. Например, формула !x (! - отрицание) преобразуется в список токенов [!, x]. В соответствии с алгоритмом сортировочной станции сначала оператор ! помещается в стек операторов, затем x помещается в выходную последовательность, а далее т.к. больше нет необработанных токенов, оператор извлекается из стека. На выходе получаем x!, что нам и нужно. Если скормить алгоритму синтаксически некорректную последовательность токенов [x, !], то выполняется следующее: сначала x помещается в выходную последовательность, далее оператор ! помещается в стек операторов, и т.к. больше нет необработанных токенов, благополучно оттуда извлекается. На выходе также получаем x!. Ошибки во входной последовательности, например, в балансе скобок, проверяются непосредственно в процессе работы алгоритма, другие выявляются позже на этапе вычисления по ОПН, но ошибки такого рода выявить не удается, т.к. полученная постфиксная запись верна, но не соответствует инфиксной записи. Вопрос: можно ли как-либо без дополнительного анализа инфиксной формы путем модификации алгоритма сортировочной станции решить эту проблему? Последний раз редактировалось branbranzor; 17.06.2012 в 07:20. |
![]() |
![]() |
![]() |
#2 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
Цитата:
программа — запись алгоритма на языке понятном транслятору
|
||
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Преобразование арифметического выражения из инфиксной в постфиксную форму записи | Nelson1992 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 29.05.2021 18:04 |
Перевод в постфиксную форму в общем случае. | Lasur | Помощь студентам | 1 | 17.03.2012 09:16 |
Из инфиксной в постфиксную запись | Колесо | Общие вопросы C/C++ | 1 | 18.12.2011 10:54 |
Перевод в постфиксную форму записи. | tgig | Помощь студентам | 1 | 08.06.2010 12:01 |
Выражение в постфиксную форму перевод | Toni Milano | Помощь студентам | 2 | 01.12.2009 10:57 |