Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
В программах на Турбо-Прологе повторяющиеся операции обычно выполняются при помощи правил итеративного и рекурсивного типа. Правила повтора и рекурсии должны содержать средства управления их выполнением. Встроенные предикаты fail и cut используются в Турбо-Прологе для управления откатами (возвратами в начало процедуры), а условия завершения - для управления рекурсией.
Вид правила, выполняющего повторение, следующий:
repetitive_rule:- /* правило повторения */
<предикаты и правила>
fail. /* неудача */
Конструкция <предикаты и правила> в теле правила обозначает предикаты, содержащие несколько утверждений, а также правила, определенные в программе. Предикат fail (неудача) имитирует неудачу, вызывая откат к тому же правилу для проверки следующего варианта, так что предикаты и правила выполняются еще раз.
Вид правила, выполняющего рекурсию, следующий:
recursive_rule:- /* правило рекурсии */
<предикаты и правила>,
recursive_rule.
Обратите внимание,что последним правилом в теле данного правила является само правило (recursive_rule).
Правила повторения и рекурсии могут обеспечивать одинаковый результат, хотя алгоритмы их выполнения различны. Каждый из них в конкретной ситуации имеет свои преимущества. Например, с использованием рекурсии можно писать весьма компактные и изящные программы, но они могут требовать больше системных ресурсов.
Используем в данной работе для демонстрации повторения базу данных и (модифицированную) программу предыдущей лабораторной работы.
/* Программа staff1.pro */
Дата публикования: 2015-10-09; Прочитано: 231 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!