Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

KILLER - alain




Person(louis).

Person(bernard).

Person(alain).

Person(paul).

Person(luc).

Person(jean).

Killer(name).

N_al(name).

Motive(name).

Weapon(name).

Jean_see(name).

Money(name).

Heir(name,name).

Mesti(name).

Persona_non(name).

Alibi(name,day,name).

Person(name).

Not(person(X,non)).

Killer(symbol).

Alibi(symbol).

Z_s(symbol).

J_s(symbol).

Person(symbol,symbol,symbol).

goal

killer(X),

write("KILLER -",X), nl.

 

clauses

person(alain, prest). % Paul бачив Alain-a за скоєнням

злочину

person(louis,money). % Louis винен грошей Jean-у

person(luc,money). % Luc винен грошей Jean-у

person(paul, mesti). % Paul хотів помститись Jean-у

person(luc, mesti). % Luc хотів помститись Jean-у

person(luc, w). % У Luc-а є зброя

person(alain, w). % У Alain-а є зброя

person(louis, w). % У Louis-а є зброя

person(alain, non). % Alain не вселяє довіри

person(luc,tuesday,bernard). % У Luc-a є алібі на

вівторок, яке надав Bernard

person(paul,tuesday,bernard). % У Paul-a є алібі на

вівторок, яке надав Bernard

person(louis,tuesday,luc). % У Louis-a є алібі на

вівторок, яке надав Luc

person(alain,thursday,luc). % У Alain-a є алібі на

четверг, яке надав Luc

person(jean, hear, louis). % Jean є спадкоємцем Louis-a

person(bernard, hear, jean). % Bernard є

спадкоємцем Jean-a

 

% Вбивцею Jean-а є його спадкоємець, боржник, той,

% кого бачили на місті злочину, або хотів помститись,

%та одночасно мав зброю і не мав алібі.

killer(X):- j_s(X), person(X,w), not(alibi(X)).

alibi(X):- person(X,tuesday,_), person(_,tuesday,X);

j_s(X):- z_s(X); person(X, mesti).

z_s(X):- person(X, hear, jean).

z_s(X):- person(X,money); person(X, prest).

 

 

РЕЗУЛЬТАТ:


KILLER – alain

ЛІстинг програмИ (ii):

 

 

domains

name, day = symbol

 

predicates

 

goal

killer(X),

write("KILLER -",X), nl.

 

clauses

 

alibi(luc,tuesday,bernard). % У Luc-a є алібі на

вівторок, яке надав Bernard alibi(paul,tuesday,bernard). % У Paul-a є алібі на

вівторок, яке надав Bernard

alibi(louis,tuesday,luc). % У Louis-a є алібі на

вівторок, яке надав Luc

alibi(alain,thursday,luc). % У Alain-a є алібі на

четверг, яке надав Luc

persona_non(alain). % Alain не вселяє довіри

mesti(paul). % Paul хотів помститись Jean-у mesti(luc). % Luc хотів помститись Jean-у

 

heir(bernard,jean). % Bernard є спадкоємцем Jean-a

heir(jean,louis). % Jean є спадкоємцем Louis-a

 

paul_see(alain). % Paul бачив Alain-a за скоєнням злочину

money(louis). % Louis винен грошей Jean-у

money(luc). % Luc винен грошей Jean-у

 

weapon(luc). % У Luc-а є зброя

weapon(louis). % У Louis-а є зброя

weapon(alain). % У Alain-а є зброя

 

% кілер – той, у кого є мотив (щодо помсти, спадку, %боргу) або свідок злочину, та має зброю і нема алібі

n_al(X):- not(alibi(X,tuesday,_));

not(alibi(_,tuesday,X));

persona_non(X).

motive(X):- mesti(X); heir(X,_); jean_see(X); money(X).

killer(X):- motive(X), weapon(X), n_al(X).

 

 

Результат:

 

5. Пасажири – книголюби

% Якось в одному купе опинились відомі історик, поет, прозаїк і драматург.
% Це були Олексіїв, Борисов, Константинів і Дмитриїв.
% Сталось, що кожен з них узяв с собою книгу, написану одним з пасажирів.
% Олексіїв і Борисов, кожен дочитав свою книгу, умовились на завтра обмінятись ними.
% Поет читав п’єсу.
% Прозаїк, дуже молода людина, що видрукував свою першу книгу, казав, що він в житті не читав і не читає нічого з історії.
% Борисов купив твір Дмитриєва.
% Ніхто з пасажирів не купляв і не читав книгу, написану ним.
Що читав кожен з них?
Хто ким був?

CONSTANTS
tab = " " % константа для отступів при виводі результатів
Domains
жанрКниги, жанрПисателя = symbol

фамилияПисателя = symbol
возможныеФамилии = фамилияПисателя*

пассажир = книголюб(фамилияПисателя,

жанрПисателя,списокКниг)
списокПассажиров = пассажир*
списокСписковПассажиров = списокПассажиров*

книга = книга(фамилияПисателя,жанрКниги)
списокКниг = книга*

predicates
nondeterm возможнаяФамилия(фамилияПисателя)
nondeterm пишетВЖанре(жанрПисателя,жанрКниги)

nondeterm списокПассажировИКниг(списокПассажиров,

списокКниг)

nondeterm одинИз(списокПассажиров,списокСписковПассажиров)
nondeterm одинИз(пассажир,списокПассажиров)
nondeterm одинИз(книга,списокКниг)

nondeterm читал(пассажир,книга)
nondeterm взялССобой(пассажир,книга)

nondeterm ищемРешение(списокПассажиров)

% формування унікального списку рішень і форматний вивід у

вікно програми
nondeterm уникальные_решения(списокСписковПассажи-




Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 257; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.019 сек.