Академический Документы
Профессиональный Документы
Культура Документы
РЕСПУБЛИКИ МОЛДОВА
ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ РЕСПУБЛИКИ МОЛДОВА
Физический Факультет
Кафедра Прикладной Физики и Информатики
Лабораторная работа №1
студент IV курса
специальности Информационные технологии
Олейник Александра
работу проверил:
доктор конференциар
Пелин Николай Иванович
Кишинёв – 2010
Цель работы
Исследование фактов и вопросов на основе генеалогического древа в
среде Turbo Prolog.
Краткая теория
Стратегии поиска:
Поиск в глубину. Исследуется первый путь до конца перед переходом на
следующий путь
Поиск в ширину. Исследуются сначала все самые близкие пути. Предусматривает
переход в первую очередь к вершинам, ближайшим к стартовой.
Ход работы
Трасировка по родителю Сергей.
Call: parent (“sergei”,_)
RETURN *parent (“sergei”,”sasha”)
REDO parent(“sergei”,_)
RETURN *parent (“sergei”,”mia”)
Выводы
predicates
analiz(integer)
menu
parent(name,name)
child(name,name)
grandparent(name,name)
grandchild(name,name)
greate_grandparent(name,name)
greate_grandchild(name,name)
sister_brother(name,name)
couple(name,name)
uncle_aunt(name,name)
nephew(name,name)
cousin(name,name)
clauses
parent(sergei,sasha).
parent(valentina,sasha).
parent(sergei,mia).
parent(valentina,mia).
parent(petr,nikolai).
parent(liza,nikolai).
parent(petr,anastasia).
parent(liza,anastasia).
parent(ivan,petr).
parent(ekaterina,petr).
parent(nikolai,valentina).
parent(maria,valentina).
parent(ivan,marina).
parent(ekaterina,marina).
parent(ghenadii,sergei).
parent(irina,sergei).
parent(kiril,irina).
parent(kira,irina).
parent(kiril,elena).
parent(kira,elena).
parent(oliga,ghenadii).
parent(konstantin,ghenadii).
parent(vladimir,ekaterina).
parent(anna,ekaterina).
parent(alexandr,ivan).
parent(iana,ivan).
parent(alexandr,filip).
parent(iana,filip).
child(X,Y):-parent(Y, X).
sister_brother(X,Y):-parent(Z,X),parent(Z,Y),X<>Y,!.
couple(X,Y):-parent(X, Z),parent(Y, Z),X<>Y.
uncle_aunt(X,Y):-parent(Z, Y),sister_brother(X, Z).
nephew(X,Y):-uncle_aunt(Y,X).
cousin(X,Y):-parent(Z,X),parent(Q,Y),sister_brother(Z,Q).
grandparent(X,Y):-parent(X,Z),parent(Z,Y).
grandchild(X,Y):-grandparent(Y,X).
greate_grandparent(X,Y):-grandparent(X,Z),parent(Z,Y).
greate_grandchild(X,Y):-greate_grandparent(Y,X).
analiz(X):-X=0.
menu:-clearwindow,makewindow(1,7,7,"dialog",0,0,25,70),
write("chose a question:"),nl,
write("1 Find a parent"),nl,
write("2 find a child"),nl,
write("3 find a couple"),nl,
write("4 find a siter/brother"),nl,
write("5 find an uncle/aunt"),nl,
write("6 find a nephew"),nl,
write("7 find a cousin"),nl,
write("8 find a grandparent"),nl,
write("2 find a grandchild"),nl,
write("10 find a greate-grandparent"),nl,
write("11 find a greate-grandchild"),nl,
write("0 Exit"),nl,
readint(X),analiz(X).
goal
menu.