С Новым годом! Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Prolog Найти объединение двух списков. Упорядочить списки в обратном к алфавитному порядке (SWI prolog) https://www.cyberforum.ru/ prolog/ thread1836319.html
Помогите решить задачу!!!! Организовать ввод и формирование двух строковых списков. Найти объединение этих списков. Упорядочить списки в обратном к алфавитному порядке. Заранее большое спасибо!!!
Prolog Базы знаний SWI Prolog
Есть база знаний, которая содержит правила вида отдыхать(имя, город). rest('sasha', 'urmala'). rest('anna', 'antalia'). rest('dima', 'urmala'). rest('dima', 'baku'). Подскажите, пожалуйста, как правильно составить запросы, которые выведут следующую информацию: -где отдыхает и Саша и Дима; -кто отдыхает и в Юрмале и в Баку.
Prolog Удалить элементы равные последнему и посчитать сумму оставшегося списка Подскажете как добавить рекурсию, так чтобы удалять элементы равные последнему и посчитать сумму оставшегося списка? DOMAINS list = integer* PREDICATES member(integer, list) nondeterm del(integer,list,list) CLAUSES member(X,):-!. https://www.cyberforum.ru/ prolog/ thread1835148.html Prolog Разработать представление числа произвольной разрядности списком https://www.cyberforum.ru/ prolog/ thread1834667.html
Здравия желаю всем, нужно разработать список "многозначное числ0" с помощью предикатов и фактов, но немого не догоняю. Если вы мне поможете примером, то я буду разбираться, основываясь на нем. Заранее спасибо
Prolog Написать программу разделения списка на два
Написать программу разделения списка на два так, чтобы в первом вписке были элементы с первого до N-го, а во втором - с N+1 до последнего.
Prolog Составить программу для проверки введенного натурального числа на четность https://www.cyberforum.ru/ prolog/ thread1832357.html
Составить программу для проверки введенного натурального числа на четность.
Prolog Составить программу для выбора наибольшего из трех введенных чисел Составить программу для выбора наибольшего из трех введенных чисел. https://www.cyberforum.ru/ prolog/ thread1832356.html Рекурсия пролог: выводом значений на экран Prolog
Добрый день! Пробую создать рекурсию на прологе. Ниже 2 задачки. Сами задания на прикрепленных рисунках В первой всегда в результате выводиться 1. Можете подсказать что не так? Domains X,Y,N=real predicates calc(X,N,Y) clauses calc(_, 1,1) :- !.
Prolog Построить предикат для замены заданного элемента списка на другой https://www.cyberforum.ru/ prolog/ thread1831077.html
Построить предикат для замены заданного элемента списка на другой. С хвостовой рекурсией все просто делается. Быстро справилась. А нехвостовую никак не придумаю. :wall:Помогите идеями:help:
Prolog Равенство двух множеств Множество представлено в форме списка. Построить предикат для проверки на равенство двух множеств. С хвостовой рекурсией все просто делается. Быстро справилась. А нехвостовую никак не придумаю. :wall:Помогите идеями:help: https://www.cyberforum.ru/ prolog/ thread1831076.html
Пересечение множеств Prolog
Множество представлено в форме списка. Построить предикат для вычисления пересечения множеств. С хвостовой рекурсией все просто делается. Быстро справилась. А нехвостовую никак не придумаю. :wall:Помогите идеями:help:
Prolog Предикат для удаления из списка первых вхождений заданного элемента Предикат для удаления из списка первых вхождений заданного элемента. С хвостовой рекурсией все просто делается. Быстро справилась. А нехвостовую никак не придумаю. :wall:Помогите идеями:help: https://www.cyberforum.ru/ prolog/ thread1831074.html
1 / 1 / 0
Регистрация: 21.05.2016
Сообщений: 17
29.10.2016, 20:28  [ТС] 0

Решение логической задачи на языке Prolog (SWI или GNU) - Prolog - Ответ 9703766

29.10.2016, 20:28. Показов 2603. Ответов 1
Метки (Все метки)

Ответ

Если вдруг кого заинтересует решение. Возможно существует решение и красивее, но я решил так. В списке Res инженеры отсортированы в порядке увеличения возраста, в остальных аналогично по возрастанию умений/посещения.
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
memb(X,[X|_]). % проверка на принадлежность
memb(X,[_|Y]):-
memb(X,Y).
 
rem(X, [X|T], T). % удаление из списка
rem(X, [Y|T], [Y|T1]):-
    rem(X,T,T1).
 
perm([],[]):-!. % перестановка списка
perm(L,[X|T]):-
    rem(X,L,R),
    perm(R,T).
 
surname(borisov).
surname(kirillov).
surname(danin).
surname(savin).
 
prof(mechanic).
prof(chemist).
prof(builder).
prof(radioman).
 
last([_,_,_,D],D).
third([_,_,C,_],C).
second([_,B,_,_],B).
first([A,_,_,_],A).
 
xy(X,Y,[X|T]):- %предикат отношения. Х находится в списке раньше, чем Y
    memb(Y,T).
xy(X,Y,[A|T]):-
    xy(X,Y,T).
 
result(Ski):- %Борисов, Кириллов, Данин, Санин
    perm([borisov, kirillov, danin, savin], [X1,X2,X3,X4]),
    perm([mechanic, chemist, builder, radioman],[Y1,Y2,Y3,Y4]),
 
    Res = [p(X1,Y1),p(X2,Y2),p(X3,Y3),p(X4,Y4)],
 
    \+last(Res,p(borisov,_)),
    \+first(Res,p(borisov,_)),
    \+last(Res,p(kirillov,_)),
 
    \+first(Res,p(_,chemist)),
    \+last(Res,p(_,chemist)),
 
    perm(Res,Chess),
    last(Res,Oldest),
    last(Chess,Oldest),
    \+last(Chess,p(borisov,_)),
    \+first(Chess,p(borisov,_)),
 
    xy(p(borisov,_),p(savin,_),Chess),
    xy(p(danin,_),p(borisov,_),Chess),
 
    xy(p(_,builder),p(_,mechanic),Chess),
 
    perm(Res,Theater),
    last(Theater,Oldest),
 
    xy(p(_,mechanic),p(_,chemist),Theater),
    xy(p(_,chemist),p(_,builder),Theater),
 
    xy(p(kirillov,_),A,Res),
    xy(A,p(borisov,_),Theater),
 
    perm(Res,Ski),
    first(Res,Youngest),
    last(Ski,Youngest),
    \+first(Ski,p(borisov,_)),
    xy(p(_,builder),p(_,radioman),Ski).
 
    xy(M,p(borisov,_),Res),
 
    xy(M,p(borisov,_),Ski).


Вернуться к обсуждению:
Решение логической задачи на языке Prolog (SWI или GNU) Prolog
1
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.10.2016, 20:28
Готовые ответы и решения:

Решение логической задачи про птиц на Visual Prolog 5.2
Доброго времени суток! Очень нужна помощь в решении задачи. В одном городе живут семь любителей...

Нужно полное решение логической задачи на Visual Prolog
Пожалуйста, помогите решить вот такую логическую задачу на Visual Prolog. Браун, Гриффит,...

Матрица с равной суммой чисел. GNU Prolog, в крайнем случае SWI. Устранение ошибки и доведение до работоспособного состояния
Помогите найти ошибки и довести программу до работоспособного состояния. Prolog GNU (нужен...

SWI Prolog две задачи
1) Нужно определить предикат, который будет считывать с консоли строку текста до точки. Если не...

1
29.10.2016, 20:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.10.2016, 20:28
Помогаю со студенческими работами здесь

Решение логической задачи
Решите следующую задачу (автор - В. Н. Касаткин). Алеша, Боря и Гриша нашли в земле сосуд....

Формальное решение логической задачи
Всем привет. Есть такая задача: 1) "Если Иванов не участвовал или Петров участвовал, то...

Поиск в глубину или ширину (SWI Prolog)
Помогите решить задачу! Найти все пути из Москвы в Новосибирск, проходящие через Пермь. Нужно...

Решение формально-логической задачи на Lisp
Ребята помогите пожалуйста решить задачу на Lisp. Очень срочно, я вообще не программировала на...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru