/* GoogleAds */

Главная

ПРОЕКТ "ЧЕЛОВЕК. ЗЕМЛЯ. ВСЕЛЕННАЯ"

Инструменты пользователя

Инструменты сайта


project:prolog:listing:granicy_stran



Программа "Границы стран"

Программа производит подбор стран, которые не имеют общих границ.

domains
country = symbol
 
predicates
euro_pair(country,country) /* пары стран */
border(country,country) /* пара стран с общей границей */
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("No border ",X," with ",Y),nl.
 
goal
find_non_border_pair.

Результат:

No border Germany with Spain
No border Germany with Italy
No border Spain with Italy

Отрицание можно использовать для определения того, являются ли соседями две выбранные страны. Предположим, вы хотите знать, граничат ли между собой Германия и Испания. Запрос формулируется так:

find_non_border_pair :- euro_pair("Germany","Spain"), not (border("Germany", "Spain")), write("Germany and Spain without common border."),nl.

Ответом на запрос явится True, так как согласно имеющимся в базе данных фактам, эти страны общей границы не имеют.

Рассмотрим теперь другой запрос:

not (border(«France», «Italy»)).

Ответом на него будет False, так как Франция и Италия соседи.

!!Рекомендуем: Семейная Энциклопедия ЗдоровьяЧто должен знать современный человек?Самоанализ. Работа над собойОглавлениеГлавная сайта

project/prolog/listing/granicy_stran.txt · Последние изменения: 2023/09/03 22:22 (внешнее изменение)

Вы можете оставить свои комментарии в разделе "Обсуждение".
Рекомендуем оформить подписку на новости данного раздела. Для этого нажмите на кнопку "Подписаться", расположенную справа снизу каждой страницы (знак конверта).




Индекс цитирования