Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Prolog Исправить код, чтобы выводилось только количество слов https://www.cyberforum.ru/ prolog/ thread1462887.html
Predicates nondeterm slova(string,integer) goal readln(S),slova(S,N),N1=N+1,write(N1),nl. Clauses slova("",0). slova(S,N):-frontchar(S,Ch,Res),Ch=' ',slova(Res,N1),N=N1+1, write("количество слов").
В строке между словами вставить вместо пробела запятую и пробел Prolog
ПОМОГИТЕ, ПОЖАЛУЙСТА!!! В строке между словами вставить вместо пробела запятую и пробел
Prolog Перепишите список в обратном порядке Добрый день, знаю что в закрепленной теме есть данная задача, но мне необходима ее интерпретация в strawberry prolog... Помогите пожалуйста... https://www.cyberforum.ru/ prolog/ thread1462770.html Prolog Возврат правильного списка есть код %читаю типы список_типов():- readln(H),!, список_типов(T). список_типов(). не_стандартный_тип(H):- https://www.cyberforum.ru/ prolog/ thread1462564.html
Дан список вывести число находящееся посередине если количество элементов нечетное Prolog
Дан список вывести число находящееся посередине А)если количество элементов нечетное Б) если четное то найти минимальное значение этого списка
Prolog Подсчитать количество слов в интерактивно введённом тексте Назовём словом последовательность символом ASCII без пробелов,а производную последовательность символов-текстом.Подсчитать количество слов в интерактивно введённом тексте. https://www.cyberforum.ru/ prolog/ thread1462348.html
Prolog Определить количество трехзначных чисел, сумма цифр которых равна заданному числу К Определить количество трехзначных чисел, сумма цифр которых заданному числу К https://www.cyberforum.ru/ prolog/ thread1462340.html Prolog как логическое ядро программы Prolog
Здравствуйте дамы и господа. Необходимо написать программу под андройд. Есть некая схема "внутренностей" программы: 1) Ядро программы-это логическая цепочка происходящих событий на шахматной доске(ну, сами думаю догадаетесь о чём это я) 2) База данных, напрямую привязанная к логической составляющей(ядру) программы, для уменьшения времени отклика между собой. 3)Графическая оболочка вывода...
Prolog программа уже сделана ! надо чуть изменить смысл ! Создайте предикат перезаписывающий первые слова каждой строки файла в новый файл. DOMAINS file = f;f2 PREDICATES write_file(file) writeFile(string) fromfiletof(string,string) write_word(file) skip(file) CLAUSES https://www.cyberforum.ru/ prolog/ thread1461754.html Prolog Создайте предикат перезаписывающий слова каждой строки файла в новый файл Создайте предикат перезаписывающий последние слова каждой строки файла в новый файл. Есть готовая программа которая перезаписывает первое слова.нужно сделать последние DOMAINS file = f;f2 PREDICATES write_file(file) writeFile(string) fromfiletof(string,string) write_word(file) skip(file) https://www.cyberforum.ru/ prolog/ thread1461740.html
Prolog - Формирование списка знаков препинания, встречающихся в строке Prolog
Формирование списка знаков препинания, встречающихся в строке. Буду очень благодарен. Есть строка: "Аппро оор ор! Одлд; .. ;; ," Должно получиться на выходе это: "!;..;;,"
Prolog Составление программы, где должны быть рассмотрены два варианта блока goal https://www.cyberforum.ru/ prolog/ thread1461301.html
Известна система родственных связей с отношением РОДИТЕЛЬ. Имена в ней не повторяются. Разработать программу логического вывода, позволяющую определить, кто кому приходится отцом, матерью, братом, сестрой, дядей, тетей, дедушкой, бабушкой. В задании должны быть рассмотрены два варианта блока goal: вне текста программы и внутри текста программы.
5 / 5 / 2
Регистрация: 04.10.2010
Сообщений: 205
0

Задачка про Гномов и Злого волшебника Грендальфа - Prolog - Ответ 7695017

30.05.2015, 22:37. Показов 904. Ответов 0
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер!
Подкинули логическую головоломки, которые надо решить на Prolog. Никак не могу осилить одну из них:
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
На рудниках злого волшебника Грендальфа уже много лет трудятся пять гномов. По приказу чародея каждый из них ищет камни строго определённого вида. Грендальф хранит в своей канцелярии два списка узников: список имён, в котором имена гномов расположены по алфавиту, и список сроков, упорядоченный по возрастанию сроков заключения, среди которых есть 80,159,176 и 202 года.
  Известно, что:
  1. Гном с кайлом стоит в списке сроков сразу после искателя сапфиров.
  2. Брыкли в списке сроков следует сразу за гномом с турбобуром. Однако Брыкли      
      придётся работать всё же не так долго, как специалисту по изумрудам.
  3. Искателю изумрудов придётся томиться в подземелье дольше, чем Фигли, но и тот  
      трудится уже больше 80 лет.
  4. Звякли никогда не имел дела с сапфирами. В списке сроков он стоит прямо перед 
      искателем агатов.
  5. Квакли в списке сроков следует сразу за гномом с киркой и прямо перед гномом с 
      отбойным молотком, ищущим алмазы.
  6. Имя гнома, специализирующегося на алмазах, стоит в списке имён сразу после 
      имени бедняги, который заключён на 131 год.
Нужно ответить на вопросы:
1.  Кто ищет рубины?
2.  Кто работает заступом?
3.  Каков срок заточения у Дрихли?
В сети есть только одна тема, и та на форуме: Задачка про Гномов и Злого волшебника Грендальфа .Но до полноценного решения не дошли(

Выводит в конце "Press the SPACE bar". Если вручную вводить Goal, то пишет NO. Что я делаю не так?

Немного дописанный код программы:
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
domains
tname=string
ttool=string
tsrok=integer
tston=string
tsroki=tsroki(tname, tsrok, tston, ttool)
tsrokilist=tsroki*
 
predicates
puzzle
structure(tsrokilist)
key(tsrokilist)
question(tsrokilist, tname, tsrok)
solution(tname, tsrok)
 
tgname(tsroki,tname)
tgtool(tsroki,ttool)
tgston(tsroki,tston)
tgsrok(tsroki,tsrok)
 
stateafter(tsroki, tsroki, tsrokilist)
 
member(tsroki,tsrokilist)
 
goal
puzzle.
 
clauses
puzzle:-
structure(Struct),
key(Struct),
question(Struct, Name, Srok),
solution(Name, Srok).
 
structure([
tsroki(_,80,_,_),
tsroki(_,131,_,_),
tsroki(_,159,_,_),
tsroki(_,176,_,_),
tsroki(_,202,_,_)
]).
%structure(
%[tsroki(_,_,_,_),
%tsroki(_,_,_,_),
%tsroki(_,_,_,_),
%tsroki(_,_,_,_),
%tsroki(_,_,_,_)]
%).
 
 
key(Sroki):-
% объявление камней:
%member(tsroki(_,80,_,_),Sroki),
%member(tsroki(_,131,_,_),Sroki),
%member(tsroki(_,159,_,_),Sroki),
%member(tsroki(_,176,_,_),Sroki),
%member(tsroki(_,202,_,_),Sroki),
 
% объявление камней:
%member(tsroki(_,_,"Almaz",_),Sroki),
%member(tsroki(_,_,"Rubin",_),Sroki),
%member(tsroki(_,_,"Sapfir",_),Sroki),
%member(tsroki(_,_,"Agat",_),Sroki),
%member(tsroki(_,_,"Izumrud",_),Sroki),
% объявление инструментов:
%member(tsroki(_,_,_,"Kailo"),Sroki), 
%member(tsroki(_,_,_,"Turbobur"),Sroki),
%member(tsroki(_,_,_,"Kirka"),Sroki),
%member(tsroki(_,_,_,"Molot"),Sroki),
%member(tsroki(_,_,_,"Zastup"),Sroki),
 
 
% ключ 1:
% Гном с кайлом стоит в списке сроков сразу после искателя сапфиров.
stateafter(Gn2, Gn1, Sroki),
tgtool(Gn1,"Kailo"),
tgston(Gn2,"Sapfir"),
 
% ключ 2:
% Брыкли в списке сроков следует сразу за гномом с турбобуром. однако Брыкли 
% придётся работать всё же не так долго, как специалисту по изумрудам.
stateafter(Gn4, Gn3, Sroki),
stateafter(Gn3, Gn5, Sroki),
tgname(Gn3,"Brikli"),
tgtool(Gn4,"Turbobur"),
tgston(Gn5,"Izumrud"),
 
% ключ 3:
% Искателю изумрудов придётся томиться в подземелье дольше, чем Фигли, но и тот   
% трудится уже больше 80 лет.
stateafter(Gn7, Gn6, Sroki),
stateafter(Gn8, Gn7, Sroki),
tgston(Gn6,"Izumrud"),
tgname(Gn7,"Figli"),
tgsrok(Gn8,80),
 
% ключ 4:
% Звякли никогда не имел дела с сапфирами. В списке сроков он стоит прямо перед 
% искателем агатов.
stateafter(Gn9, Gn10, Sroki),
tgname(Gn9,"Zvakli"),
not(tgston(Gn9,"Sapfir")),
tgston(Gn10,"Agat"),
% ключ 5:
% Квакли в списке сроков следует сразу за гномом с киркой и прямо перед гномом с 
% отбойным молотком, ищущим алмазы.
stateafter(Gn12, Gn11, Sroki),
stateafter(Gn11, Gn13, Sroki),
tgname(Gn11,"Kvakli"),
tgtool(Gn12,"Kirka"),
tgtool(Gn13,"Molot"),
tgston(Gn13,"Almaz"),
 
% ключ 6:
% Имя гнома, специализирующегося на алмазах, стоит в списке имён сразу после 
% имени бедняги, который заключён на 131 год.
stateafter(Gn15, Gn14, Sroki),
tgston(Gn14,"Almaz"),
tgsrok(Gn15,131).
 
question(Sroki, Name, Srok):-
%опрос 1 
member(G1,Sroki),
tgname(G1,Name),
tgston(G1,"Rubin"),
%опрос 2
member(G2,Sroki),
tgname(G2,Name),
tgtool(G2,"Zastup"),
%опрос 3
member(G3,Sroki),
tgsrok(G3,Srok),
tgname(G3,"Drihli").
solution(Name, Srok):-
write("Rubin ishet Gnom"), write(Name), nl,
write("Zastupom rabotaet Gnom"), write(Name), nl,
write("Srok y Drihli"), write(Srok).
 
stateafter(A,B,[A,B,_]).
stateafter(A,C,[A,_,C]).
stateafter(B,C,[_,B,C]). 
tgname(tsroki(A,_,_,_),A). %имя
tgsrok(tsroki(_,B,_,_),B). %срок
tgston(tsroki(_,_,C,_),C). %камни
tgtool(tsroki(_,_,_,D),D). %инструменты
 
 
member(X,[X|_]).
member(X,[_|Y]):-
member(X,Y).


Вернуться к обсуждению:
Задачка про Гномов и Злого волшебника Грендальфа Prolog
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.05.2015, 22:37
Готовые ответы и решения:

Задачка про Гномов и Злого волшебника Грендальфа
Добрый день. Задали такую головоломку решить на Прологе: ЗАДАЧА №10. Пользуясь методом...

Задача про гномов
Помогите пожалуйста разобраться с задачей-> На скамье длиной L см расположены N гномов. В...

Тема про гномов, эльфов и орков. Ролевики и толкиенисты, кучкуемся!
Девять - струны звонкой лютни, той, что носят менестрели, что воспели в своих песнях девять...

Задачка про матрицы
Доброго времени суток! имеется такая задачка - все положительные элементы матрицы С(M,N) разделить...

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

Задачка про треугольник.
Для вас эта задача очень легкая, но я не как не могу ее сделать. Пожалуйста помогите! Условие...

Задачка про экзамен
Экзамен состоит с 10 вопросов, на каждый с которых нужно дать ответ "Да" либо "нет". Какая...

Задачка про кенгуру
Здравствуйте. Нашел задачку на https://www.hackerrank.com/challenges/kangaroo/problem. Не могу...

задачка про автомобиль
Автомобиль движется со скоростью 60 км/ч. Внешний диаметр покрышек колес равен 60 см. Найти...

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