Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 08.10.2016
Сообщений: 19

Задачи по прологу из учебника

26.12.2016, 20:00. Показов 767. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите разобраться пжлста с задачами с учебника, задачи даны там тестом, нужно выбрать правильный вариант программы к заданию, это я сделал опытным путем, то есть запустил их в турбоПрологе, но как они работают не очень понимаю, где что выполняется. Завис на этих задачах в конце параграфа, а пока с этим не разберусь, не хочу идти дальше, ибо будет еще сложней потом. Но у самого меня не получается продвинуться, поэтому прощу помощи

Два множества представлены списками. Найти вычитание множеств.
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
domains
list=integer*
predicates
com(integer,list)
dif(list,list,list)
clauses
com(x,[x|_]).
com(x,[_|y]):-com(x,y).
 
dif([],_,[]).
dif([h|t],l1,[h|l2]):-
not(com(h,l1)),
dif(t,l1,l2).
dif([h|t],l1,l2):-
com(h,l1),
dif(t,l1,l2).
Из произвольного списка и числового списка построить новый список:
(A B C) (1 2 3) —> ((A) (B B) (C C C))
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
domains
list1 = symbol*
list2 = integer*
list3 = list1*
predicates
sprd(symbol,integer,list1)
pred(list1,list2,list3)
clauses
pred([],_,[]):-!.
pred(_,[],[]):-!.
pred([A|B],[C|D],G):-sprd(A,C,E),pred(B,D,F),
G=[E|F].
sprd(_,0,[]).
sprd(A,B,[A|C]):-B>0,D=B-1,sprd(A,D,C).
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.12.2016, 20:00
Ответы с готовыми решениями:

Задачи из учебника Кернигана и Ритчи
Недавно приобрел учебник по программированию на языке С авторов Кернигана и Ритчи. Там есть много интересных задач. Предлагаю в этой теме...

Объясните решение задачи из учебника
Книга "Курс теории вероятностей" Б.В. Гнеденко, серия "Классический университетский учебник", 2005 г.. Пример 7 на стр. 39 ...

Нужно ответить на задачи из учебника Романова Е.Л
Помогите пожалуйста решить!!!!! Заранее спасибо!!!! int F1(int c, int n) { int s,i; for (s=0, i=0; i<n; i++) s +=c; return s; } ...

1
1 / 1 / 0
Регистрация: 16.09.2012
Сообщений: 27
17.01.2017, 10:43
К первому, может поможет понять еще лучше. Как я понял предикат com позволяет проверить принадлежность элемента множеству (объект принадлежит списку, если он либо является первым элементом списка, либо элементом хвоста), а diff непосредственно реализует вычитание.
В случае, когда голова первого множества является элементом второго множества, разность множеств получается путем вычитания второго множества из хвоста первого. Когда первый элемент множества, из которого производится вычитание, не встречается в вычитаемом множестве, ответом будет множество, образованное приписыванием головы первого множества к результату вычитания второго множества из хвоста первого множества.
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
domains
i=integer
mn=i*
predicates
member(i,mn)
intersection(mn,mn,mn)
minus(mn,mn,mn)
delete_all(i,mn,mn)
list_set(mn,mn)
start(mn)
rezult(mn,mn,mn,mn)
clauses
member(X,[X|_]):-!.
member(X,[_|T]):-member(X,T).
minus([],_,[]). 
minus([Z|T],S2,S):-member(Z,S2),!, minus(T,S2,S). 
minus([Z|T],S2,[Z|S]):-minus(T,S2,S).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.01.2017, 10:43
Помогаю со студенческими работами здесь

Задачи по информатике (Сколько страниц учебника можно записать на 1 диск...)
Вариант 3 1. Лазерный диск (СD) вмещает 600 Мбайт. Сколько страниц учебника можно записать на 1 диск, если на 1 странице учебника можно...

Посоветуйте задачи для учебника Герберта Шилдта "C++ Базовый курс"
Добрый день! Я начинаю изучать C++. По рекомендациям в интернете приобрел учебник Герберта Шилдта "C++ Базовый курс". Содержание...

Уточнить формулировку задачи из учебника "C# для начинающих. Основные сведения" Васильева А.Н
"Напишите программу, в которой для введённого пользователем числа в бинарном представлении четвёртый бит устанавливается равным нулю....

Задание по Прологу
Добрый день, уважаемые. В прологе ни бум-бум. Нужно написать программу: на входе имеется список, нужно преобразовать список в дерево, таким...

Задача по прологу
man('Alexandr'). man('Anatole'). man('Nikolay'). man('Efim'). man('Egor'). woman('Inga'). woman('Maya'). woman('Tanya'). ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru