|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.10.2013, 02:48 | #1 |
Регистрация: 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. |
29.10.2013, 06:03 | #2 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
ICQ 395-546-218
skype: rrrfer.rrrfer платно, кнешно. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |