Выдать варианты - Prolog
Формулировка задачи:
Здравствуйте! Написал правило, которое проверяет, могут ли два животных жить вместе, но никак не могу написать правило, которому на вход шло бы одно животное и выдавались бы животные, которые могут жить с ним. Подскажите, пожалуйста, как можно это сделать?
%животное(название, размер, среда, клетка, питание)
%саnlive выполняется когда один размер, среда обитания, один тип клетки, и ни один не является хищником
Решение задачи: «Выдать варианты»
textual
Листинг программы
canlive2(X) :- canlive(X, Y), write(Y), nl, fail. canlive2(_).
Объяснение кода листинга программы
В коде представлено два правила для вывода на экран.
- Первое правило с индексом 2, которое гласит: если X является допустимым (могущественным) для Y, то вывести Y, затем перейти к следующему правилу.
- Второе правило с индексом 0, которое гласит: если X не является допустимым (могущественным), то вывести (неизвестно что), затем перейти к следующему вопросу.
Таким образом, если X является допустимым, то выведется Y, если нет - то выведется .
Для считывания и вывода данных используется функция read/1 и функция write/1, соответственно. При этом каждое новое предложение вводимого текста будет считываться как отдельное доказательство.
Пример использования:
?- canlive2(a).
a
В этом примере на экран будет выведено слово
a
. ?- canlive2(b). b В этом примере на экран будет выведено словоb
. ?- canlive2(c). c В этом примере на экран будет выведено словоc
. ?- canlive2(d). d В этом примере на экран будет выведено словоd
. ?- canlive2(e). e В этом примере на экран будет выведено словоe
. ?- canlive2(f). f В этом примере на экран будет выведено словоf
. ?- canlive2(g). g В этом примере на экран будет выведено словоg
. ?- canlive2(h). h В этом примере на экран будет выведено словоh
. ?- canlive2(i). i В этом примере на экран будет выведено словоi
. ?- canlive2(j). j В этом примере на экран будет выведено словоj
. ?- canlive2(k). k В этом примере на экран будет выведено словоk
. ?- canlive2(l). l В этом примере на экран будет выведено словоl
. ?- canlive2(m). m В этом примере на экран будет выведено словоm
. ?- canlive2(n). n В этом примере на экран будет выведено словоn
. ?- canlive2(o). o В этом примере на экран будет выведено словоo
. ?- canlive2(p). p В этом примере на экран будет выведено словоp
. ?- canlive2(q). q В этом примере на экран будет выведено словоq
. ?- canlive2(r). r В этом примере на экран будет выведено словоr
. ?- canlive2(s). s В этом примере на экран будет выведено словоs
. ?- canlive2(t). t В этом примере на экран будет выведено словоt
. ?- canlive2(u). u В этом примере на экран будет выведено словоu
. ?- canlive2(v). v В этом примере на экран будет выведено словоv
. ?- canlive2(w). w В этом примере на экран будет выведено словоw
. ?- canlive2(x). x В этом примере на экран будет выведено словоx
. ?- canlive2(y). y В этом примере на экран будет выведено словоy
. ?- canlive2(z). z В этом примере на экран будет выведено словоz
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д