![]() |
|
Модераторы: Poseidon |
![]()
|
|
| ARAV |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 31.10.2006 Репутация: нет Всего: нет |
Всем добрый день!
Очень надеюсь на вашу помощь в решении моей задачи. Суть в следующем: Пусть имеется некоторый набор правил, например: S->abSa S->aaAb S->b A->baAb A->b Необходимо произвести над ними преобразование, называемое левой факторизацией: Если у нас совпадает символ до ‘->’ (как символ S в примере), то мы рассматриваем строки, следующие после символа ‘->’ (т.е. в данном случае это строки ‘abSa’, ‘aaAb’, ‘b’). Если в этих строках есть совпадающий начальный символ (например, символ ‘a’ в первых двух строках), то во все такие строки заменяются на следующее правило: S->aF и добавляются новые правила: F-> bSa и F->aAb (то есть те символы, которые шли после совпавшего). У меня уже написана часть задачи, в которой все эти правила разбиты по следующему принципу: каждый символ до знака '->' становится новым 'правилом' которому будут сопоставляться строки, находящиеся после символа '->'. Если символ до знака '->' повторяется (как символ S в примере), то новое правило не создается, а просто дополняется еще одной строчкой из символов после стрелки. В итоге правила должны быть преобразованы к следующему виду: S->aF S->b A->bG F->bSa F->aAb G->aAb G->E (здесь E обозначает пустой символ). У меня с использованием записей получилось только разделить все эти правила, чтобы их удобнее было сравнивать: left: S alternative: [abc] [aab] [ba] left: A alternative: [bcd] Вот основная часть кода программы:
Буду очень благодарен за любую помощь… Модератор: у нас есть возможность выбора типа подсветки. Например, я сейчас установил подсветку delphi (кнопка имеет выпадающий список подсветок) Это сообщение отредактировал(а) alexeis1 - 31.10.2006, 10:51 |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |