Программирование на языке Турбо-Пролог 2.0. Николаев В.Г - 18 стр.

UptoLike

- 18 -
Пример демонстрирует, что необходимо знать правила выбора
вида реализации пролог-программы, то есть когда необходимо вос-
пользоваться рекурсией, а когда бектрекингом.
+------------------------------------------------------+
¦ Если вы описываете процедуру, которая имеет ¦
¦ замкнутый цикл с небольшим количеством шагов, то ¦
¦ используйте механизм рекурсии. ¦
+------------------------------------------------------+
Рекурсия - идеальный механизм для обработки списковых струк-
тур данных. Но помните о том, что при каждом шаге рекурсия отни-
мает кусочек памяти в ОЗУ, организуя стек для сохранения текущих
параметров этого механизма.
+------------------------------------------------------+
¦ Если вы описываете процедуру, которая будет ¦
¦ организована как бесконечный цикл или цикл с ¦
¦ большим количеством шагов (количество которых вы ¦
¦ не можете определить заранее), то используйте ¦
¦ встроенный механизм возврата (бектрекинг). ¦
+------------------------------------------------------+
Например, если вы создаете систему диалогового интерфейса,
то описывая все функции перемещения в диалоговых окнах (количест-
во перемещений не может быть ограничено) необходимо использовать
механизм бектрекинга.
Рассмотрим задачу, для решения которой нужна организация
бесконечного цикла, что не возможно осуществить с помощью рекур-
сии ( т. к. это приведет к переполнению стека ).
Задача:
В графическом режиме на синем фоне в центре экрана голубыми
буквами должна появиться надпись:
Дмитрий Белов
Россия
Далее, фон по точкам перекрашивается из синего цвета в розо-
вый, а буквы надписи из голубого цвета в белый. Выполнение прог-
раммы должно прерываться нажатием клавиши Esc.