Где ошибка? - Prolog (226601)

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

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

В книжный магазин пришли четыре подруги: Соколова, Ястребова, Орлова и Голубева. Одна из них искала книгу «Поющие в терновнике», другая – «Финансиста», третья – «Охоту на овец», четвёртая – «Заводной апельсин». Соколова не искала книги «Поющие в терновнике» и «Заводной апельсин». Орлова – не искала книги «Охота на овец» и «Поющие в терновнике». Голубева не искала книги «Заводной апельсин» и «Поющие в терновнике». Если Ястребова искала книгу «Поющие в терновнике», то Голубева искала книгу «Финансист». Ястребова не искала книги «Заводной апельсин» и «Охота на овец». Какая девушка какую книгу искала?
Листинг программы
  1. solve(List) :-
  2. List = [go('Соколова', _), go('Ястребова', _), go('Орлова', _),go('Голубева', _)],
  3. member(go(_, 'Поющие в терновнике'), List),
  4. member(go(_, 'Финансист'), List),
  5. member(go(_, 'Охота на овец'), List),
  6. member(go(_, 'Заводной апельсин'), List),
  7. not(member(go('Соколова', 'Поющие в терновнике'), List)),
  8. not(member(go('Соколова', 'Заводной апельсин'), List)),
  9. not(member(go('Орлова', 'Охота на овец'), List)),
  10. not(member(go('Орлова', 'Поющие в терновнике'), List)),
  11. not(member(go('Голубева', 'Заводной апельсин'), List)),
  12. not(member(go('Голубева', 'Поющие в терновнике'), List)),
  13. member(go('Ястребова', 'Поющие в терновнике'),List):- member(go('Голубева', 'Финансист'), List),
  14. not(member(go('Ястребова', 'Заводной апельсин'), List)),
  15. not(member(go('Ястребова', 'Охота на овец'), List)).
Где в 16-ой строке ошибка? Помогите найти.

Решение задачи: «Где ошибка?»

textual
Листинг программы
  1. ?- solve(List).
  2. List = [go('Соколова', 'Охота на овец'), go('Ястребова', 'Поющие в терновнике'), go('Орлова', 'Заводной апельсин'), go('Голубева', 'Финансист')] .

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

В данном коде выполняется поиск ошибки в списке, представленного в виде List. Каждый элемент списка содержит название и значение переменной, разделенные символом '='. Переменные могут быть представлены в виде строк (в кавычках) или чисел.

  1. В первой строке кода происходит вызов функции solve(List), где List - это список, который нужно проверить на наличие ошибок.
  2. Список List представлен в виде списка кортежей, где каждый кортеж содержит две части: название переменной (строка в кавычках) и значение переменной (строка или число).
  3. Функция solve(List) проверяет каждый элемент списка на наличие ошибок. Если ошибка найдена, то она будет выведена на экран.
  4. В данном случае, список List содержит 4 элемента, каждый из которых представлен в виде go(название_переменной, значение_переменной).
  5. Названия переменных: 'Соколова', 'Ястребова', 'Орлова', 'Голубева'.
  6. Значения переменных: 'Охота на овец', 'Поющие в терновнике', 'Заводной апельсин', 'Финансист'. Таким образом, данный код проверяет список на наличие ошибок, сравнивая названия и значения переменных. Если какая-либо переменная не соответствует ожидаемому формату (например, название переменной не является строкой или значение переменной не является строкой или числом), то будет выведена ошибка.

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


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

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

10   голосов , оценка 3.9 из 5

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

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

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