Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2022, 01:38   #1
Owns
Новичок
Джуниор
 
Регистрация: 07.11.2022
Сообщений: 1
По умолчанию (Prolog) Определить отношение для нахождения списка пар

Prolog

Определить отношение belongs(Pairs) для нахождения списка пар вида «фигура»-«список окружающих фигур». (считать, что если есть факты contains(A, B), contains(B, C), то фигура С принадлежит фигуре А). Нужно Использовать динамическую БД, предикаты генерации списков, за исключением предикатов библиотеки aggregate.

У меня не получается сделать это задание. Помогите пожалуйста

Код:
figure(square1, red).
figure(circle, red).
figure(triangle, blue).
figure(rectangle, green).
figure(diamond, purple).
figure(square2, green).
figure(trapezium1, black).
figure(hexagon, grow).
figure(trapezium2, yellow).
figure(octagon, purple).
figure(trapezium3, red).

contains(square1, rectangle).
contains(circle, diamond).
contains(square1, hexagon).
contains(trapezium2, square2).
contains(trapezium1, triangle).
contains(triangle, square2).
contains(trapezium1, rectangle).
contains(octagon, trapezium3).
contains(rectangle, triangle).
contains(trapezium3, circle).
contains(trapezium3, square1).


figure_list(_) :- contains(A, B),
	(	retract(contains(A-C))
    -> 	M = C
    ; 	M = []
    ),
    assertz(contains(A-[B|M])),
    fail.
figure_list(List) :- extract_names(List).

belongs(Pairs) :-
    setof(Contains-Figure,
    	bagof(C, contains(Contains, C), Figure),
    	Pairs
	).
Owns вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить функции нахождения суммы и разности векторов Geniis Помощь студентам 2 22.03.2015 20:41
Определить минимальное число(балл) из списка Paskal1 Общие вопросы Delphi 1 08.11.2012 19:37
горитм нахождения строки в первом списке, которую можно составить из двух любых строк второго списка edikesh Помощь студентам 1 14.05.2012 21:24
Определить процедуру нахождения количества слов qwertytol Помощь студентам 2 08.12.2009 22:29
Определить из наибольший общий делитель, используя функцию нахождения общего делителя. Igomax Помощь студентам 6 23.05.2009 19:41