Программирование базы данных со структурироваными объектами - Prolog
Формулировка задачи:
вот задание. может подскажет кто запросы эти..решения..
DOMAINS
mflist=mf*
PREDICATES
family (mf,mf,mflist)
husband(mf)
wife(mf)
child(mf)
belong(mf,mflist)
exist(mf)
date_birth(mf,dt)
income(mf,integer)
CLAUSES
famile(mamber_family("Иван","Конюхов",date(7,"май",1950),
work("инженер",1350)),
member_family("Наталья","Конюхов",date(25,"ноябрь",1950),
work("врач",800)),
[member_family("Юрий","Конюхов",date(5,"июнь",1974),
work("не работает",0)),
member_family("Татьяна","Конюхов",date(15."май",1978),
work("студентка",250))]).
family(member_family("Ефим","Авенс",date(14,"сентябрь",1947),
work("банкир",1300$)),
member_family("Илона","Авенс",date(12,"август",1977)
work("не работает",0)),
[member_family("Лора","Авенс",date(2,"январь",1999),
work("младенец",50))]).
family(member_family("Сергей","Петров",date(4,"июнь",1967),
work("слесарь",3500)),
member_family("Людмила","Петров",date,(17,"октябрь",1968),
work(
[member_family("Илья","Петров",date(14,"июль",1989),
work("учащийся",50))
member_family("Юлия","Петров",date(27,"апрель",1991),
work("учащийся",50)
member_family("Марина","Петров",date(20,"май",1995)
work("младенец",50))]).
1)найти в базе данных фамилии женщин,имеющих по крайней мере хотя бы двух детей
2)есит ли в базе данных семьи,не имеющие детей
3)найти в базе данных людей старще 50 лет
4)найти в базе данных всех детей,разница в возрасте родителей которых составляет не менее 15 лет
5)найти в базе данных всех учащихся
первая задачка.
DOMAINS
inv=inv(symbol,symbol)
nand=nandl(symbol,symbol,symbol)
and1=and2(nand,inv)
PREDICATES
reasistor(symbol,symbol,symbol)
transistor(symbol,symbol,symbol,symbol)
inverter(inv,symbol,symbol)
nand_gate(nand,symbol,symbol,symbol)
and_gate(and1,symbol,symbol,symbol)
CLAUSAES
resistor(r1,power,n4).
resistor(r2,power,n5).
transistor(t1,n1,n4,n3).
transistor(t2,n2,ground,n3).
transistor(t3,n4,ground,n5).
inverter(inv(T,R),Input,Output):-
transistor(T,Input,ground,Output),
resistor(R,power,Output).
nand_gate(nand1(T1,T2,R),Input,Input2,Output):-
transistor(T1,Input1,X,Output),
transistor(T2,Input2,ground,X),
resistor(R,power,Output).
and_gate(and2,(N,Y),Input,Input2,Output):-
nand_gate(N,Input,Input2,X),
inverter(Y,X,Output).
GOAL
and_gate(Q,Input,Input2,Output),
write("Схема И- ",Q,
"\в вход1-",Input1,
"\в вход2-",Input2,
"\в выход-",Output,nl,
write("Die Arbeiten genug!\n DANKE SCHON!").
вторая задачка.задание на картинке внизу( со схемой)
Решение задачи: «Программирование базы данных со структурироваными объектами»
textual
Листинг программы
DOMAINS inv=inv1(symbol,symbol) sh=sh1(symbol,symbol,symbol) orsh=or1(sh,inv) PREDICATES resistor(symbol,symbol,symbol) transistor(symbol,symbol,symbol,symbol) inverter(inv,symbol,symbol) sh_g(sh,symbol,symbol,symbol) or_g(orsh,symbol,symbol,symbol) CLAUSES resistor(rl,power,n3). resistor(r2,power,n4). transistor(tl,nl,n3,ground). transistor(t2,n2,n3,ground). transistor(t3,n3,ground,n4). inverter(inv1(T,R),Input,Output):- transistor(T,Input,ground,Output), resistor(R,power,Output). sh_g(sh1(T1,T2,R),Input1,Input2,Output):- transistor(T1,Input1,Output,ground), transistor(T2,Input2,Output,ground), resistor(R,power,Output). or_g(or1(N,Y),Input1,Input2,Output):- sh_g(N,Input1,Input2,X), inverter(Y,X,Output).