Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Использование структур в Прологе



Списковые структуры помогают решать множество задач, в которых необходима последовательная обработка однотипных данных. Пролог обладает мощными средствами обработки сложных иерархических структур, которые удобно представлять с помощью деревьев(их называют термами или структурами). Для использования структур их надо описать в разделе domains, так как структура – нестандартный тип данных.

Использование структур рассмотрим на примере простой базы данных, содержащей информацию о семьях.

Пусть знания о семьях можно представить с помощью следующих структур:

Пример программы, использующей данную структуру:

domains

first_name,second_name,place_of_work,month=string

number,year,rate_of_pay=integer

date_of_birthday=date(number,month,year)

inf_about_work= work(place_of_work,rate_of_pay)

member_of_family=member(first_name,second_name, date_of_birthday,

inf_about_work)

list_of_members= member_of_family*

children=childs(list_of_members)

predicates

family(member_of_family, member_of_family, children)

husband(member_of_family)

child(member_of_family)

wife(member_of_family)

exist(member_of_family)

belong(member_of_family, list_of_members)

date_of_birth(member_of_family, date_of_birthday)

income(member_of_family, rate_of_pay)

clauses

family(member(“Roman”,“Kustov”,date(5,“may”,1964),

work(“TRTU”,500)),

member(“Irina”,“ Kustova”,date(10,“may”,1962),

work(“Belii Aist”,1200)),

childs([member(“Vasy”,“Kustov”,date(10,“april”,1982),

work(“net”,0)),

member(“Vera”,“ Kustova”,date(9,“ april”,1989),

work(“net”, 0))])).

husband(X):-

family(X,_,_).

wife(X):-

family(_,X,_).

child(X):-

family(_,_,childs(Y)),

belong(X,Y).

exist(X):-

husband(X);

wife(X);

child(X).

belong(X,[X|T]).

belong(X,[Y|T]):-

belong(X,T).

date_of_birth(member(X,Y,Date,Z),Date):-

exist(member(X,Y,Date,Z)).

Income(member(X,Y,Z,work(U,S)),S):-

exist(member(X,Y,Z,work(U,S))).





Дата публикования: 2015-10-09; Прочитано: 118 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...