0 / 0 / 0
Регистрация: 28.05.2012
Сообщений: 25
1

Кто на чем ездит.

28.05.2012, 13:59. Показов 925. Ответов 7
Метки нет (Все метки)

В одном классе учатся 3 друга - Алёша, Боря, Витя. Один их них ездит на автобусе, другой на троллейбусе, третий на трамвае. Однажды Алёша пошёл проводить своего друга до остановки автобуса. Рядом проезжал третий друг на троллейбусе и он же крикнул: Боря, ты забыл тетрадку! Кто на чём ездит? Решить нужно методом порождения и проверки!
Мои наброски - работают, но я, к сожалению, не знаю этого метода. Помогите, пожалуйста. Заранее благодарен!

Prolog
1
2
3
4
5
6
man("Alex").
man("Boria").
man("Vitte").
bus(X):-man(X), X<>"Alex",X<>"Vitte".
troll(Y):-man(Y), not(bus(Y)),Y<>"Alex".
tram(Z):-man(Z), not(troll(Y)), not(bus(Y)).
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.05.2012, 13:59
Ответы с готовыми решениями:

Админ-ры БД, разработчики приложений, разработчики БД, конечные пользователи-кто есть кто, кто чем занимается?
Собственно теория... Пользователи СУБД делятся на четыре различные группы: •1)администраторы баз...

Курсор ездит, кнопка не работает
, причём, не только на мыше, но комп не реагирует и на эмулятор. Курсор не меняется в зависимости...

Значок мыши есть, а по экрану не ездит.
Всем привет! У меня стала мышь глючить короче комп включил загрузился всё а мышь не работает...

Сколько спортсменов бегает, но не плавает и не ездит на велосипеде?
Среди 78 спортсменов 45 плавают, 40 ездят на велосипеде и 50 бегают. Кроме того известно, что, 32...

7
2503 / 1477 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
28.05.2012, 16:48 2
Вы некоторые вещи сами додумываете, например что X<>"Vitter".
Задача настолько элементарная, что думаю должны быть хотя бы
какие-то ограничения, например что саомстоятельно нельзя никаких
выводов делать. Тогда код такой
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
predicates
nondeterm man(string).
nondeterm solve(string,string,string).
 
clauses
man("Alex").
man("Boria").
man("Vitte").
solve(Bus,Troll,Tram):-
    man(Bus),Bus<>"Alex",
    man(Troll),Troll<>Bus,Troll<>"Boria",Troll<>"Alex",
    man(Tram),Tram<>Bus,Tram<>Troll.
 
goal
solve(X,Y,Z).
0
0 / 0 / 0
Регистрация: 28.05.2012
Сообщений: 25
28.05.2012, 19:58  [ТС] 3
Спасибо за помощь! Это точно метод порождения и проверки?
Я вот тут набросал код. Тут со списками, но не работает. Можно так и почему не работает?

Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
domains
name=string
list=integer*
predicates
nondeterm check(list[name,name,name]).
nondeterm get_solution(name).
clauses
check(1,[_,Alex,_]).
check(1,[_,_,Alex]).
check(2,[Boria,_,_]).
check(2,[_,_,Boria]).
check(3,[Vitte,_,_]).
check(3,[_,Vitte,_]).
get_solution(L):-shuffle([bus,troll,tram]),
check(1,L),
check(2,L),
check(3,L).
Добавлено через 31 минуту
К сожалению, ваш вариант не работает. Проверил на прологе.
0
2503 / 1477 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
28.05.2012, 23:04 4
Все у меня работает, я проверяю же. Если у Вас турбо, то давать write в goal.
0
0 / 0 / 0
Регистрация: 28.05.2012
Сообщений: 25
28.05.2012, 23:21  [ТС] 5
Вместо goal пишу write - выдаёт на этом месте ошибку.
0
2503 / 1477 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
28.05.2012, 23:27 6
Да, очень умно. Надо так
Prolog
1
2
goal
solve(X,Y,Z),write("Bus: ",X,"\nTroll: ",Y,"\nTram: ",Z).
0
0 / 0 / 0
Регистрация: 28.05.2012
Сообщений: 25
28.05.2012, 23:45  [ТС] 7
Теперь в строчке: man(Bus), Bus<>"Alex", выдаёт ошибку перед Bus
0
2503 / 1477 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
28.05.2012, 23:52 8
После того, что вы сказали про goal, я могу предположить, что Вы еще чего-то в коде наменяли.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.05.2012, 23:52
Помогаю со студенческими работами здесь

Samsung при быстром вращении ездит по полу
Всем добра. Машинка самсунг эко бабл, точнее не назову. В эксплуатации лет 5-6. Примерно месяца 2...

Кто чем может
Кто чем может помогите решить .. Правила форума CyberForum.ru 1. Общие положения. 4....

Кто на чём играет?
Кто на каких инструментах умеет играть? Я, например, осваиваю губную гармонику. :)

Кто чем занимался
Доброго времени суток! Задали на паре решить такую задачу: 4 друга: Иван, Сергей, Пётр и Михаил,...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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