Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- domains
- list_colours =colour*
- list_companies = company*
- list_models = model*
- colour = colour(col)
- automobile =automobile(mark,creat_country, list_companies)
- company = company (name_company,country,list_models)
- model = model(name,price,list_colours)
- mark,creat_country,name_company, country, name,col = symbol
- price = real
- facts
- max1(mark,name,byte)
- max2(byte)
- dq3(country,name_company)
- dq4(creat_country,mark)
- dq5(name_company,price)
- predicates
- au(automobile)
- q1
- q12(list_models, mark)
- q2(mark)
- q3(country)
- q33(name_company,country,list_companies)
- q4(creat_country)
- q5(price)
- q51(name_company,list_companies,list_models)
- q52(price,list_models)
- counter1(list_colours,byte)
- counter2(list_companies,byte)
- clauses
- au(automobile("WW", "German", [company("Aurora", "Russia",[model("First",100000,[colour("Fly"),colour("Green"),colour("Smock")]), model("Second",111000,[colour("Black"), colour("White"), colour("Magenta")])])])).
- au(automobile("Audi", "Netherlands", [company("Eurobeat", "Japan",[model("Sado",111000,[colour("Black"),colour("Yellow")]), model("SadoSec",20000,[ colour("Violet")])])])).
- au(automobile("BMW", "German", [company("CosmoGolf", "India",[model("Hindi",255000,[colour("Black")]), model("SecHind",40000,[colour("Black"), colour("White"), colour("Magenta"),colour("Toxic")])])])).
- au(automobile("Opel", "USA", [company("SpaceShips", "Kazakhstan",[model("Space",1000000,[colour("Universe"), colour("Black pearl")]), model("SecondWay",1110000,[colour("Transparent")])])])).
- au(automobile("WW", "USA", [company("Korito", "India",[model("VenVen",1340000,[colour("Beauty")]), model("Furious",55444,[colour("Orange"),colour("Cyan")])])])).
- % Ïîèñê ìàðêè è ìîäåëè ïî êîëè÷åñòâó ðàñöâåòîê
- max1(a,b,0).
- q1:-au(automobile(M,_,L)),q51(_,L,D),q12(D,M),fail.
- q12([],Mark).
- q12([H1|T],Mark):-H1=model(Name,_,Col),counter1(Col,N),max1(A,B,Z),N>Z,retract(max1(A,B,Z)),assert(max1(Mark,Name,N)),q12(T,Mark).
- q12([H1|T],Mark):-H1=model(_,_,Col),counter1(Col,N),max1(_,_,Z),N<=Z,q12(T,Mark).
- % ×èñëî ôèðì
- max2(0).
- q2(M):-au(automobile(M,_,L)),counter2(L,N),max2(B),A=B+N, retract(max2(B)),assert(max2(A)),fail.
- %q3(F):-au(automobile(_,_, L)),q33(A,F,L),write(A,"-",F),nl,fail.
- % Íàéòè ôèðìû ïî ñòðàíå
- q33(A,H,[H1|_]):-H1=company(A,H,_).
- q33(A,H,[_|T]):-q33(A,H,T).
- q3(F):-dq3(F,A),write("*",F," ",A),nl,fail.
- q3(F):-not(dq3(F,_)),au(automobile(_,_,L)),q33(A,F,L),write(A,"-",F),nl,assert(dq3(F,A)),fail.
- %q4(F):-au(automobile(A,F,_)),write(F,"-",A),nl,fail.
- % Ìàðêè ïî ñòðàíå
- q4(F):-dq4(F,A),write("*",F," ",A),nl,fail.
- q4(F):-not(dq4(F,_)),au(automobile(A,F,_)),assert(dq4(F,A)),write(F,"-",A),nl,fail.
- %q5(F):-au(automobile(_,_,L)),q51(A,L,D),q52(F,D),write(A,"-",F),nl,fail.
- % Ôèðìû ïî öåíå
- q5(F):-dq5(A,F),write("*",F," ",A),nl,fail.
- q5(F):-not(dq5(_,F)),au(automobile(_,_,L)),q51(A,L,D),q52(F,D),assert(dq5(A,F)),write(A,"-",F),nl,fail.
- q51(H,[H1|_],D):-H1=company(H,_,D).
- q51(H,[_|T],D):-q51(H,T,D).
- q52(F,[H1|_]):-H1=model(_,F,_).
- q52(F,[_|T]):-q52(F,T).
- counter1([],0).
- counter1([_|T],N):-counter1(T,N1),N=N1+1.
- counter2([],0).
- counter2([_|T],N):-counter2(T,N1),N=N1+1.
- goal
- q1;max1(Mark,Model,Colour);
- q2("WW");max2(MaxMarks);
- q3("India");q3("India");
- q4("German");q4("German");
- q5(111000);q5(111000).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement