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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2013, 02:48   #1
OrdeR
 
Регистрация: 29.11.2010
Сообщений: 5
По умолчанию swi prolog помогите 2 задачки

Добрый день, нужны помощь с програмкой.
1)
Написать на языке PROLOG предикат p(A,B,C,D,E,F), который является верным тогда и только тогда, когда все его аргументы это списки, для которых выполнены следующие условия:
- список D содержит все те и только те элементы из списка A, которые являются элементами и в списке B;
- список E содержит все те и только те элементы из списка A, которых нет в списке C;
- список F содержит все те и только те элементы из списка A, которых нет ни в списке D, ни в списке E;
- список F содержит каждый в него входящий A элемент в 3 раза больше, чем этот элемент входит в список A;
- каждый из списков D и E содержит каждый в него входящий A элемент столько же раз, сколько он входит в список A;
- других элементов в списках D, E и F нет.

Примечение. Предикат p должен быть тоже верным тогда, когда выполнены все вышеупомянутые требования и порядок элементов в списках D, E и F отличается от порядка элементов в списке A.

Коментировать каждый созданный предикат.

Для решения не разрешается использовать сравнения чисел и других терм, и больше/меньше и методы сортировки Пролога.

Примечание. Просьба, чтобы названия предикатов совпадали с требованиями.

Решение должно работать в SWI Prolog.

Приветствуется использования select предиката.

2)
Словарь в задании – список с парами объектов данных (терму без переменных);
Правельный словарь – одна и таже пара объектов данных не может быть включена дважда. Например, в словаре есть список [(a, aa), (bb, bbb), (c, def)]; этот словарь переводит a как aa, bb как bbb и c как def.

Задание A. Создать на языке PROLOG трёх аргументный предикат pp, который является верным для словарей A, B и C, если словарь C является композицией словарей A и B: в словарь C включены только и только такие пары (x,z) для которых существует такой y, где (x,y) входит в словарь А и (y,z) входит в словарь В.
Определение предиката рр должно обеспечить возможность найти его третий параметр, который должен быть правельным словарём, если в вызове рр указаны первые два параметра, которые являются правельным словарём.

Примеры:
Вызов рр([(a, b)],[(b,c), (b,d)],X) ответ X= [(a,c), (a,d)]
Вызов рр([(a, b), (e, b)],[(b,c), (b,d)],X) ответ X=[(a,c), (a,d), (e, c), (e,d)]
Вызов рр([(a, b), (a, d), (a, e)],[(b,c), (d,c)],X) ответ X=[(a,c)]

Задание В. Создать на языке PROLOG двух аргументный предикат qq, которая получает как первый параметр правельный словарь А, на выходе выдаст как второй параметр его транзитивное замыкание (как правельный словарь).
Если композицию словарей X и Y обозначаем как X o Y, тогда обычный результат является сочетанием A, A o A, A o (A o A), A o (A o (A o A)), ...

Формально обозначаем Ai как A1 =A и Ai+1 =A o Ai .
А транзитивное замыкание А* тогда является U { Ai | i эN }.

Решение должно работать в SWI Prolog.
OrdeR вне форума Ответить с цитированием
Старый 29.10.2013, 06:03   #2
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

ICQ 395-546-218
skype: rrrfer.rrrfer
платно, кнешно.
rrrFer вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SWI Prolog.Удаление n-того элемента списка.Вывести парные простые числа KATKAT Помощь студентам 2 25.04.2013 04:22
Програмирование в SWI-Prolog Лина_Чер Помощь студентам 0 28.01.2013 20:18
swi prolog. поиск пути в лабиринте. tatysya Помощь студентам 1 15.05.2011 18:36
Strawberry Prolog Две задачки chacknorris Помощь студентам 0 27.02.2011 17:29
Задачки на Паскале помогите пожалуйста решить 2 задачки, а то отчислят. плиз VADOS2009-1 Помощь студентам 0 03.06.2009 18:11