TURBO PROLOG. Терёхин В.В. - 66 стр.

UptoLike

Составители: 

66
fail.
show_records.
/***** конец программы *****/
___________________________________________________________
В этой программе дополнительно присутствуют три правила. Каждое
из них можно использовать в качестве компоненты внутренней цели. (В са-
мой программе в целевом утверждении задействовано правило show_books.
По желанию это правило можно заменить другим.)
Первое из правил есть
show_misc_things :-
owns(Owner, misc_thing(Whatever)),
write(Owner," ",Whatever), nl,
fail.
Это правило осуществляет
запрос: "Выдать все возможные предметы и
их владельцев".
Второе правило есть
show_books :-
owns(_,book(_,Title)),
write(" ",Title), nl,
fail.
На естественный язык это утверждение можно перевести приблизи-
тельно так: "Выдать названия книг, содержащиеся в базе данных."
Третье правило - это
show_records :-
owns(Owner,record(_,Album,_)),
write(" ",Owner," ",Album), nl,
fail.
Перевод этого правила: "Выдать имена всех коллекционеров пласти-
нок и названия альбомов
из их коллекций."
Применение альтернативных доменов делает программу более "управ-
ляемой", а программирование - более эффективным.
* Упражнение
3.13. Рассмотрим запрос: Перечислить названия всех популярных
(popular) музыкальных записей и имена их исполнителей. Постройте правило
Пролога для реализации этого запроса, включите его в программу и запусти-
те ее на счет. Что выдаст программа ?
3.4 Арифметика в Турбо-Прологе
Турбо-Пролог располагает двумя числовыми типами доменов: целыми
и действительными числами. Четыре основные арифметические операции -
это сложение, вычитание, умножение и деление. Для их реализации в Тур-
бо-Прологе используются предикаты. Программа "Числа" (листинг 3.11)
           fail.
      show_records.
/*****        конец программы      *****/
___________________________________________________________

      В этой программе дополнительно присутствуют три правила. Каждое
из них можно использовать в качестве компоненты внутренней цели. (В са-
мой программе в целевом утверждении задействовано правило show_books.
По желанию это правило можно заменить другим.)
      Первое из правил есть
                 show_misc_things :-
                       owns(Owner, misc_thing(Whatever)),
                       write(Owner," ",Whatever), nl,
                       fail.
      Это правило осуществляет запрос: "Выдать все возможные предметы и
их владельцев".
      Второе правило есть
                 show_books :-
                       owns(_,book(_,Title)),
                       write(" ",Title), nl,
                       fail.
      На естественный язык это утверждение можно перевести приблизи-
тельно так: "Выдать названия книг, содержащиеся в базе данных."
      Третье правило - это
                 show_records :-
                       owns(Owner,record(_,Album,_)),
                       write(" ",Owner," ",Album), nl,
                       fail.
      Перевод этого правила: "Выдать имена всех коллекционеров пласти-
нок и названия альбомов из их коллекций."
      Применение альтернативных доменов делает программу более "управ-
ляемой", а программирование - более эффективным.

*     Упражнение
      3.13. Рассмотрим запрос: Перечислить названия всех популярных
(popular) музыкальных записей и имена их исполнителей. Постройте правило
Пролога для реализации этого запроса, включите его в программу и запусти-
те ее на счет. Что выдаст программа ?

      3.4 Арифметика в Турбо-Прологе
      Турбо-Пролог располагает двумя числовыми типами доменов: целыми
и действительными числами. Четыре основные арифметические операции -
это сложение, вычитание, умножение и деление. Для их реализации в Тур-
бо-Прологе используются предикаты. Программа "Числа" (листинг 3.11)



                                                                       66