Readchar(_)

Якщо ви попередньо наберете програму і наповните базу, тоді для запуску програми ви можете використати предикат run.

run:-

animal_is(X),!,

write("\nYour animal may be a(an)", X),

Nl,nl, clear_facts.

run:- write("\nUnable to determine what"),

write("your animal is.\n\n"),

Clear_facts.

 

9.2. Макетування: задача маршрутизації.

Ця програма ілюструє особливості Прологу, які роблять його корисним при вирішенні задач макетування. Припустимо , ми хочемо створити систему, яка б допомогала вибрати маршрут при поїздці із одного міста в інше.

Початкову програму будемо використовувати для подальшого аналізу вирішення поставленої задачі.

Нас будуть цікавити питання типу:

* Чи існує пряма дорога з одного міста в інше?

* Які з міст знаходяться на віддалі меншій 10 км від конкретного міста?

 

Нехай ми будемо реалізовувати карту прототипу, зображену на мал.9.1.

 

KansasCity

O---------------

Gordon

O--------- O Houston --------O Tampa

 

Мал.9.1. Карта прототипу.

Наступна програма є класичним прикладом використання бектрекінгу і рекурсії для вирішення задачі планування маршруту.