Задать предикат prince (X, Y) - Prolog
Формулировка задачи:
В общем, ребята суть такая имеется заданная база данных:
X был в числе Y, истинный, если:
X был в диапазоне чисел от A до B и
Y лежит между A и B или совпадает с A или B
Пробовал так:
prince(govern(X,A,B)).
Y>=A.
Y=<B.
Естественно, неправильно. Можете подсказать решение данной задачи или хотя бы синтаксис ветвления?
Необходимо задать предикат prince(X,Y)
Решение задачи: «Задать предикат prince (X, Y)»
textual
Листинг программы
prince(rodri). prince(anaravd). prince(hiwel_dda). prince(lago_ad_idval). prince(hiwel_ab_ieuaf). prince(cadvallon). prince(maredudd). year(844,878). year(878,916). year(916,950). year(950,979). year(979,985). year(985,986). year(986,999). govern(rodri,844,878). govern(anaravd,878,916). govern(hiwel_dda,916,950). govern(lago_ad_idval,950,979). govern(hiwel_ab_ieuaf, 979,985). govern(cadvallon,985,986). govern(maredudd, 986,999). prince(X,Y):- year(X,Y), govern(X,Y,Z). ?- prince(cadvallon,986). %?- prince(rodri,1979). %?- prince(X,900). %?- prince(X,979). %(lago_ad_idval) (hiwel_ab_ieuaf)
Объяснение кода листинга программы
В коде представлен логический программный скрипт на языке Prolog, который включает в себя три основных элемента:
- Предикат prince (X, Y), который описывает отношение между персоной с именем X и годом Y, где X - это имя персоны, а Y - год. Например, prince(rodri) означает, что Родри был принцем в некоторый год (который не указан в коде). Аналогично, prince(anaravd) означает, что Анарауд был принцем в некоторый год, и так далее.
- Предикат year (X, Y), который описывает отношение между двумя годами, где X - год начала, а Y - год окончания. Например, year(844,878) означает, что период с 844 по 878 год был периодом правления принца Родри. Аналогично, year(985,986) означает, что период с 985 по 986 год был периодом правления принца Кадваллана.
- Предикат govern (X, Y, Z), который описывает отношение между персоной X, годом начала Y и годом окончания Z, где X - это имя персоны, Y - год начала правления, а Z - год окончания правления. Например, govern(hiwel_dda,916,950) означает, что принц Хивел правил с 916 по 950 год.
В конце кода представлен факт, который позволяет определить, когда принц Кадвалланан правил: govern(cadvallon,985,986).
Вопрос ?- prince(cadvallon,986). проверяет, правиль ли принц Кадвалланан правил в 986 году. Ответ на этот вопрос будет
да
, так как в коде есть факт, подтверждающий это. Вопросы ?- prince(X,1979) и ?- prince(X,900) не имеют ответа, так как в коде нет информации о том, что какая-либо персона правила в эти годы. Вопрос ?- prince(X,979) может быть интерпретирован какправил ли принц Ланго в 979 году?
. Ответ на этот вопрос будетда
, так как в коде есть факт, подтверждающий это. Таким образом, в коде представлена информация о персонах, их правлении и годах, в которые они правили.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д