Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- facts
- dmin_year(partner,age)
- demptyPartners(client).
- dclientAgeNation(client).
- dpartnerNoHabits(client,partner).
- dclientNoChildrenReqYes(client).
- clients(client).
- domains
- client = c(surname, name, dadname, characteristic, requirements, partnerlist)
- characteristic,requirements = charact(age, education, nationality, month_cash, area, children, habits)
- partner=p(surname, name, dadname, characteristic)
- partnerlist=partner*
- surname,name,dadname,education,nationality,habits,children,area=symbol
- age,month_cash,k=integer
- clientlist=client*
- predicates
- ageOfP(partner,age).
- ageOfC(client,age).
- surnameOf(client,surname).
- nationalityOf(client,nationality).
- habitsOf(partner,habits).
- childrenOfC(client,children).
- likePartnerWithChildren(client).
- partnerOf(client,partner).
- partnerOfList(partnerlist,partner).
- emptyPartners(client).
- writeln(partnerlist).
- writeln(clientlist).
- solve1.
- solve1_1.
- solve2.
- %solve2_1.
- solve3(nationality,age).
- %solve3_1(nationality,age).
- solve4(client).
- %solve4_1(client).
- solve4BySurname(surname).
- solve5.
- %solve5_1.
- bigsolve.
- clauses
- %Íà÷àëüíûå óñëîâèÿ
- dmin_year(p(a,a,a,charact(1000000,a,a,0,no,no,no)),1000000).
- %êëèåíòû:
- clients(c(äàíèëèí,äàíèë,äàíèëîâè÷,charact(23,âûñøåå,ðóññêèé,30000,no,no,no),charact(18,âûñøåå,ðóññêèé,15000,yes,no,yes),[])).
- clients(c(êàáàåâà,òàòüÿíà,ìèõàéëîâíà,charact(18,âûñøåå,ðóññêèé,20000,yes,no,yes),charact(20,âûñøåå,ðóññêèé,0,no,yes,no),
- [p(äàíèëèí,äàíèë,äàíèëîâè÷,charact(23,âûñøåå,ðóññêèé,30000,no,no,no)),
- p(ìàðòûíîâ,èëüÿ,ñåðãååâè÷,charact(25,îáùåå,ðóññêèé,85000,yes,yes,yes))])).
- clients(c(ìíàöàêàíÿí,òèãðàí,àðòóðîâè÷,charact(17,ñðåäíåå,àðìÿíèí,42000,yes,yes,yes),charact(20,âûñøåå,ðóññêèé,0,no,yes,yes),
- [p(êàáàåâà,òàòüÿíà,ìèõàéëîâíà,charact(18,âûñøåå,ðóññêèé,20000,yes,no,yes))])).
- clients(c(õîõëîâ,òàðàñ,äìèòðèåâè÷,charact(25,âûñøåå,óêðàèíåö,0,no,yes,no),charact(25,âûñøåå,ðóññêèé,25000,yes,no,yes),
- [p(øèáàåâà,àëåêñàíäðà,ìèõàéëîâíà,charact(19,âûñøåå,ðóññêèé,0,no,yes,no)),
- p(ìóöàðàåâà,åêàòåðèíà,äìèòðèåâíà,charact(45,íåò,÷å÷åí,50000,yes,yes,yes))])).
- clients(c(èâàíîâà,èðèíà,ñòåïàíîâíà,charact(37,âûñøåå,ðóññêèé,150000,yes,yes,no),charact(30,âûñøåå,ïîëÿê,80000,no,no,no),
- [p(ïàâëîâ,åâãåíèé,àíòîíîâè÷,charact(43,ñðåäíåå,øâåä,100000,yes,yes,yes))])).
- %îòäåëüíûå ïðåäèêàòû
- writeln([H|T]):-write(H),nl,writeln(T).
- writeln([]).
- ageOfP(p(_,_,_,charact(Age,_,_,_,_,_,_)),Age).
- ageOfC(c(_,_,_,charact(Age,_,_,_,_,_,_),_,_),Age).
- habitsOf(p(_,_,_,charact(_,_,_,_,_,_,Habits)),Habits).
- surnameOf(c(Name,_,_,_,_,_),Name).
- nationalityOf(c(_,_,_,charact(_,_,Nationality,_,_,_,_),_,_),Nationality).
- childrenOfC(c(_,_,_,charact(_,_,_,_,_,Children,_),_,_),Children).
- partnerOf(c(_,_,_,_,_,Partnerlist), Partner):-partnerOfList(Partnerlist,Partner).
- partnerOfList([T|_],T).
- partnerOfList([_|H],Partner):-partnerOfList(H,Partner).
- emptyPartners(c(_,_,_,_,_,[])).
- likePartnerWithChildren(c(_,_,_,_,charact(_,_,_,_,_,yes,_),_)).
- %ïðåäèêàòû ðåøåíèé
- solve1_1:-clients(Client),partnerOf(Client,Partner),ageOfP(Partner,Age),dmin_year(PartnerFromDB,AgeFromDB),Age<AgeFromDB,retract(dmin_year(PartnerFromDB,AgeFromDB)),
- assert(dmin_year(Partner,Age)),fail.
- solve1:-solve1_1;findall(Partner,dmin_year(Partner,_),List),write("1)Ñàìûé ìîëîäîé: "), writeln(List).
- solve2:-clients(c(S,N,D,charact(_,_,_,_,_,_,_),charact(_,_,_,_,_,_,_),L)), L=[], write("2)áåç ïàðòíåðîâ:", S," ",N," ",D," "), nl,fail.
- solve3(F,Age):- clients(c(S,N,D,charact(A,_,F,_,_,_,_),charact(_,_,_,_,_,_,_),_)), Age>A, write("3)Óçàç. íàö-òü, óêàç-é âîçðàñò: ", S," ",N," ",D," "), nl, fail.
- solve4(Client):- partnerOf(Client,Partner),habitsOf(Partner,no),Partner=p(S,N,D,_),write("4)Ïàðòíåðû áåç âðåäíûõ ïðèâû÷åê: ", S," ",N," ",D," "),nl, fail.
- solve4BySurname(Name):-clients(Client),surnameOf(Client,Name),solve4(Client).
- solve5:-clients(c(S,N,D,charact(_,_,_,_,_,no,_),charact(_,_,_,_,_,yes,_),_)), write("5)Ó êîòîðûõ íåò äåòåé, ïîäõîäèò ïàðòíåð, èìåþùèé äåòåé: "), nl, write( S," ",N," ",D," "),nl.
- bigsolve:-solve1,fail;solve2,fail;solve3(ðóññêèé,30),fail;solve4BySurname(õîõëîâ),fail;solve5.
- goal
- bigsolve.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement