Выдать варианты - Prolog

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Написал правило, которое проверяет, могут ли два животных жить вместе, но никак не могу написать правило, которому на вход шло бы одно животное и выдавались бы животные, которые могут жить с ним. Подскажите, пожалуйста, как можно это сделать?
%животное(название, размер, среда, клетка, питание) %саnlive выполняется когда один размер, среда обитания, один тип клетки, и ни один не является хищником

Решение задачи: «Выдать варианты»

textual
Листинг программы
canlive2(X) :-
    canlive(X, Y),
    write(Y), nl,
    fail.
canlive2(_).

Объяснение кода листинга программы

В коде представлено два правила для вывода на экран.

  1. Первое правило с индексом 2, которое гласит: если X является допустимым (могущественным) для Y, то вывести Y, затем перейти к следующему правилу.
  2. Второе правило с индексом 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.

ИИ поможет Вам:


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

Оцени полезность:

15   голосов , оценка 3.8 из 5