lab8_Skorikov
.docx
Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ
УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)
Кафедра комплексной информационной безопасности электронно-
вычислительных систем (КИБЭВС)
ЯЗЫК ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ PROLOG
Отчет по лабораторной работе №8
по дисциплине «Языки программирования»
Выполнил:
Студент гр. 724
_______ _____ Скориков И.И.
15.11.2015
Принял:
Кандидат технических наук
кафедры КИБЭВС
_______ _____ Романов А.С.
15.11.2015
2015
1 Цель работы
Знакомство с основами логического программирования на примере языка Prolog.
2 Ход работы
2.1 Генеалогическое древо
Рисунок 1 – Генеалогическое древо
3 Код программы
predicates
father(String,String)
mother(String,String)
married(String,String)
male(String)
female(String)
brosis(String, String)
parent(String,String)
predecessor(String, String)
descendant(String, String)
brother(String, String)
sister(String,String)
uncle(String,String)
aunt(String, String)
grandfather(String, String)
grandmother(String, String)
nephew(String, String)
niece(String, String)
cousinboy(String, String)
cousingirl(String, String)
clauses
father("adam","ben").
father("eva","ben").
father("aki","janin").
father("ben","vilson").
father("ben","ida").
father("ben","zoi").
father("vilson","kali").
father("issak","devon").
father("issak","zak").
father("issak","marta").
father("devon","nadia").
father("zak","dave").
father("zak","i").
father("zak","letti").
father("dave","kail").
mother("erta","janin").
mother("janin","vilson").
mother("janin","ida").
mother("janin","zoi").
mother("patti","devon").
mother("patti","zak").
mother("patti","marta").
mother("ida","dave").
mother("ida","i").
mother("ida","letti").
mother("marli","kail").
mother("letti","rachel").
married("adam","eva").
married("aki","erta").
married("ben","janin").
married("ben","janin").
married("issak","patti").
married("zak","ida").
married("dave","marli").
male("adam").
male("aki").
male("ben").
male("vilson").
male("dave").
male("i").
male("issak").
male("devon").
male("zak").
female("eva").
female("erta").
female("janin").
female("ida").
female("zoi").
female("kali").
female("marti").
female("letti").
female("kail").
female("rachel").
female("patti").
female("marta").
female("nadia").
brosis(X,Y):-parent(Z,X),parent(Z,Y),X<>Y.
parent(P,I):-father(P,I);mother(P,I).
descendant(I,P):-parent(P,I).
descendant(I,P):-parent(Y,I),descendant(Y,P).
predecessor(P,I):-parent(P,I).
predecessor(P,I):-parent(P,Y),predecessor(Y,I).
brother(X,Z):-male(X),parent(Y,X),parent(Y,Z).
sister(X,Z):-female(X),parent(Y,X),parent(Y,Z).
uncle(X,Y):-male(X),brother(X,Z),parent(Z,Y).
aunt(X,Y):-female(X),sister(X,Z),parent(Z,Y).
grandfather(X,Y):-father(X,Z),parent(Z,Y).
grandmother(X,Y):-mother(X,Z),parent(Z,Y).
nephew(X,Y):-male(X),parent(Z,X),brosis(Z,Y).
niece(X,Y):-female(X),parent(Z,X),brosis(Z,Y).
cousinboy(X,Y):-male(X),parent(Z,X),parent(A,Y),brosis(Z,A).
cousingirl(X,Y):-female(X),parent(Z,X),parent(A,Y),brosis(Z,A).
4 Заключение
В процессе выполнения лабораторной работы были получены основы логического программирования на примере языка Prolog.