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

UptoLike

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

55
отрицанием. Отрицание предиката border задается при помощи предиката
not:
not(border(Country1,Country2)).
Этот предикат выдает все пары не граничащих друг с другом стран.
Программа "Пары стран Европы" (листинг 3.6) - это законченная программа
на Турбо-Прологе для решения поставленной задачи.
_____________________________________________________________
Листинг 3.6
/* Программа: Пары стран Европы Файл: PROG0306.PRO */ /* Назначе-
ние: Демонстрация работы предиката отрицания. */ /* Указание
: Цель -
внутренняя. */
domains
country = symbol
predicates
euro_pair(country,country)
border(country,country)
find_non_border_pair
goal
find_non_border_pair.
clauses
/* факты */
euro_pair("France","Germany"). euro_pair("France","Spain").
euro_pair("France","Italy"). euro_pair("Germany","Spain").
euro_pair("Germany","Italy"). euro_pair("Spain","Italy").
border("France","Germany").
border("France","Spain").
border("France","Italy").
/* правила */
find_non_border_pair :-
euro_pair(X,Y),
not(border(X,Y)),
write(X," - ",Y),nl.
/***** конец программы *****/
_____________________________________________________________
При программировании на Турбо-Прологе отрицания иногда бывают
удобны для логического вывода неких фактов из уже имеющихся в базе
данных. И вообще, использование предиката not в конструкции правила за-
частую дает возможность ввести в программу элементы логики. Например,
вопрос с отрицанием можно использовать для определения того, являются ли
отрицанием. Отрицание предиката border задается при помощи предиката
not:
           not(border(Country1,Country2)).
      Этот предикат выдает все пары не граничащих друг с другом стран.
Программа "Пары стран Европы" (листинг 3.6) - это законченная программа
на Турбо-Прологе для решения поставленной задачи.
_____________________________________________________________
                       Листинг 3.6
/* Программа: Пары стран Европы Файл: PROG0306.PRO */ /* Назначе-
ние: Демонстрация работы предиката отрицания. */ /* Указание: Цель -
внутренняя.             */
      domains
           country = symbol

     predicates
           euro_pair(country,country)
           border(country,country)
           find_non_border_pair

     goal
            find_non_border_pair.

     clauses
           /* факты */
euro_pair("France","Germany"). euro_pair("France","Spain").
euro_pair("France","Italy"). euro_pair("Germany","Spain").
euro_pair("Germany","Italy"). euro_pair("Spain","Italy").
           border("France","Germany").
           border("France","Spain").
           border("France","Italy").

           /* правила */
           find_non_border_pair :-
                           euro_pair(X,Y),
                           not(border(X,Y)),
                           write(X," - ",Y),nl.
     /*****      конец программы          *****/
_____________________________________________________________

     При программировании на Турбо-Прологе отрицания иногда бывают
удобны для логического вывода неких фактов из уже имеющихся в базе
данных. И вообще, использование предиката not в конструкции правила за-
частую дает возможность ввести в программу элементы логики. Например,
вопрос с отрицанием можно использовать для определения того, являются ли



                                                                      55