Решение задач с книгами - Prolog

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

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

Здравствуйте. Есть программа на prolog, которая ищет все книги, у которых количество страниц больше 300
Листинг программы
  1. implement main
  2. open core, console
  3. class facts
  4. book:(symbol Title, integer Pages).
  5. written_by:(symbol Author, symbol Title).
  6. class predicates
  7. long_novel:(symbol Title) nondeterm(o).
  8. clauses
  9. written_by("Александр Сергеевич Пушкин", "Дубровский").
  10. written_by("Александр Сергеевич Пушкин", "Капитанская дочка").
  11. written_by("Николай Васильевич Гоголь", "Ревизор").
  12. book("Дубровский", 250).
  13. book("Капитанская дочка", 310).
  14. book("Ревизор", 380).
  15. clauses
  16. long_novel(Title):- written_by(_, Title), book(Title, Length), Length > 300.
  17. clauses
  18. run():- init(),
  19. long_novel(Title), write(Title, "\n"), nl, fail.
  20. run().
  21.  
  22. end implement main
  23. goal
  24. mainExe::run(main::run).
И есть к нему задание: Добавьте в программу правила: 1. Отыскивающее самую тонкую книгу в БД; 2. Отыскивающее самую толстую книгу в БД; 3. Отыскивающее все книги в БД, не являющиеся самой тонкой и самой толстой; 4. Определяющее наличие самой тонкой и самой толстой книги в Базе Данных среди произведений заданного автора; 5. Определяющее самую тонкую и самую толстую книгу для заданного автора; 6. Отыскивающее в БД для заданного автора все книги, которые он не писал. Подскажите, как будет происходить хотя бы нахождение максимального или минимального числа страниц книги?

Решение задачи: «Решение задач с книгами»

textual
Листинг программы
  1. BL = [L || book(_, L)],

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

  1. В коде используется язык программирования Prolog.
  2. Задача заключается в решении задач с книгами.
  3. В коде присутствует список BL, который содержит в себе все элементы, удовлетворяющие условию book(_, L).
  4. Условие book(_, L) означает, что в списке BL находятся все элементы, которые являются книгами.
  5. Каждый элемент списка BL представляет собой список, в котором первый элемент - название книги, а остальные элементы - список задач, связанных с этой книгой.
  6. Формально, список BL можно представить в виде: BL = [L || book(_, L)], где L - список задач, связанных с книгой.
  7. В данном случае, переменная L заменена на список задач, чтобы упростить понимание кода.
  8. Таким образом, BL - это список списков, где каждый внутренний список содержит название книги и список задач, связанных с этой книгой.

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


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

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

13   голосов , оценка 4.385 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут