Стили и методы программирования


Построение графа состояний - часть 3


Вновь появляющиеся состояния анализируются аналогично.

Для решаемой задачи легко выяснить, что состояние St3 требует тех же действий и переходов, что и St5, а St4 изоморфно St1. Следовательно, возможна склейка этих двух состояний со старыми и построение графа завершается, так как новых состояний нет (см. рис. 9.6). С тем, чтобы не дублировать действия <Завершить процесс>, можно определить еще одно, заключительное состояние, с выходом из которого будет ассоциировано это действие (один раз!).

Полученный граф состояний при действиях на переходах

Рис. 9.6.  Полученный граф состояний при действиях на переходах

Аналогично можно поступить и когда мы работаем в состояниях. Здесь процесс удлиняется на один шаг, поскольку необходимо выделить завершение обработки слова в отдельное действие (причем в двух вариантах: после перевода строки и после других небуквенных символов). Полученный результат показан на рис. 9.7.

Полученный граф состояний при действиях в состояниях

Рис. 9.7.  Полученный граф состояний при действиях в состояниях




Начало  Назад  Вперед