Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Задание на Visual Prolog. Требуется помощь. Код написала, но что то он не хочет...) 
V
    Опции темы
Leri
Дата 8.2.2010, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 8.2.2010
Где: Владивосток

Репутация: нет
Всего: нет



Задание такое:
 На перекрёстке произошло дорожно-транспортное происшествие, в котором участвовал автобус, грузовик, легковой автомобиль и маршрутное такси. Свидетели происшествия дали показания инспектору ГИБДД.
Первый свидетель считал, что первым на перекрёсток выехал автобус, а маршрутное такси было вторым. Другой свидетель полагал, что последним на перекрёсток выехал легковой автомобиль, а вторым был грузовик. Третий свидетель уверял, что автобус выехал на перекрёсток вторым, а следом за ним легковой автомобиль. В результате оказалось, что каждый свидетель был прав только в одном из своих утверждений.
В каком порядке выехали машины на перекрёсток?


В похожем задании посмотрела склепала:
Код

predicates
nondeterm avto(symbol)
nondeterm place(symbol)
nondeterm res(symbol,symbol)
nondeterm solution (symbol,symbol,symbol,symbol,symbol,symbol,symbol,symbol)
clauses
avto(bus).
avto(truck).
avto(car).
avto(taxi).
place(first).
place(second).
place(third).
place(fourth).

res(X,Y):- avto(X), X=bus, place(Y),Y=first, not(res(taxi,second)).
res(X,Y):- avto(X), X=car, place(Y),Y=fourth, not(res(truck,second)).
res(X,Y):- avto(X), X=bus, place(Y),Y=second, not(res(car,third)).

res(X,Y):- avto(X), X=taxi, place(Y),Y=second, not(res(bus,first)).
res(X,Y):- avto(X), X=truck, place(Y),Y=second, not(res(car,fourth)).
res(X,Y):- avto(X), X=car, place(Y),Y=third, not(res(bus,second)).

solution(X1,Y1,X2,Y2,X3,Y3,X4,Y4):-
         Y1=first, res(X1,Y1),
         Y2=second, res(X2,Y2),
         Y3=third, res(X3,Y3),
         Y4=fourth, res(X4,Y4),
         X1<>X2,X1<>X3,X1<>X4,
         X2<>X3,X2<>X4,X3<>X4.
goal solution(X1,Y1,X2,Y2,X3,Y3,X4,Y4).


Я ужасно запуталась в самом компиляторе (Visual Prolog 5.2.). Экзешник вроде сваяла, но не запускается. 
Проверьте пожалуйста, работает - нет? (Я тупица, да да =) )
Если работает, буду благодарна за присланный экзешник.)

(Правда вроде как он ругался, что переменные Х,У не используются... Вот тут я вообще не поняла, что не так.)

А если не работает... ( Тогда мне вдвойне помощь нужна.... Хэх... Скажите, что не так?

Это сообщение отредактировал(а) Leri - 8.2.2010, 13:19
PM MAIL   Вверх
Грымзик
Дата 8.2.2010, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 7.10.2009

Репутация: 6
Всего: 6



Вот работающая прога, выдает ответ в порядке следования машин.
Код

domains
slist=string*

predicates
nondeterm member(string,slist)
nondeterm avto(string)
nondeterm avtos(slist)
nondeterm res(slist,integer)
nondeterm solution (slist)

clauses
member(H,[H|_]).
member(H,[_|Tail]):-member(H,Tail).

avto(bus).
avto(truck).
avto(car).
avto(taxi).

avtos([]).
avtos([H|Tail]):-avtos(Tail),avto(H),not(member(H,Tail)).

res(L,1):-L=[bus,X,_,_], X<>"taxi".
res(L,1):-L=[X,taxi,_,_], X<>"bus".
res(L,2):-L=[_,X,_,car], X<>"truck".
res(L,2):-L=[_,truck,_,X], X<>"car".
res(L,3):-L=[_,bus,X,_], X<>"car".
res(L,3):-L=[_,X,car,_], X<>"bus".

solution(Ans):-
    Ans=[_,_,_,_],
    avtos(Ans),
    res(Ans,1),
    res(Ans,2),
    res(Ans,3).
    
goal solution(Ans).


Код

Ans=["bus","truck","car","taxi"]
1 Solution

PM MAIL   Вверх
Leri
Дата 9.2.2010, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 8.2.2010
Где: Владивосток

Репутация: нет
Всего: нет



Спасибо преогромное. Так, я точно не догадалась бы сделать.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума Prolog
Void
  • Пожалуйста, создавайте темы с содержательными названиями.
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Prolog | Следующая тема »


 




[ Время генерации скрипта: 0.0403 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.