Advertisement
Guest User

Untitled

a guest
Mar 26th, 2019
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 3.33 KB | None | 0 0
  1. domains
  2. list_colours =colour*
  3. list_companies = company*
  4. list_models = model*
  5. colour = colour(col)
  6. automobile =automobile(mark,creat_country, list_companies)
  7. company = company (name_company,country,list_models)
  8. model = model(name,price,list_colours)
  9. mark,creat_country,name_company, country, name,col = symbol
  10. price = real
  11.  
  12. facts
  13.  
  14. max1(mark,name,byte)
  15. max2(byte)
  16. dq3(country,name_company)
  17. dq4(creat_country,mark)
  18. dq5(name_company,price)
  19.  
  20. predicates
  21. au(automobile)
  22. q1
  23. q12(list_models, mark)
  24. q2(mark)
  25. q3(country)
  26. q33(name_company,country,list_companies)
  27. q4(creat_country)
  28. q5(price)
  29. q51(name_company,list_companies,list_models)
  30. q52(price,list_models)
  31. counter1(list_colours,byte)
  32. counter2(list_companies,byte)
  33.  
  34.  
  35. clauses
  36.  
  37. 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")])])])).   
  38. au(automobile("Audi", "Netherlands", [company("Eurobeat", "Japan",[model("Sado",111000,[colour("Black"),colour("Yellow")]), model("SadoSec",20000,[ colour("Violet")])])])).   
  39. au(automobile("BMW", "German", [company("CosmoGolf", "India",[model("Hindi",255000,[colour("Black")]), model("SecHind",40000,[colour("Black"), colour("White"), colour("Magenta"),colour("Toxic")])])])).  
  40. au(automobile("Opel", "USA", [company("SpaceShips", "Kazakhstan",[model("Space",1000000,[colour("Universe"), colour("Black pearl")]), model("SecondWay",1110000,[colour("Transparent")])])])). 
  41. au(automobile("WW", "USA", [company("Korito", "India",[model("VenVen",1340000,[colour("Beauty")]), model("Furious",55444,[colour("Orange"),colour("Cyan")])])])).  
  42.  
  43.  
  44. % Ïîèñê ìàðêè è ìîäåëè ïî êîëè÷åñòâó ðàñöâåòîê
  45. max1(a,b,0).
  46. q1:-au(automobile(M,_,L)),q51(_,L,D),q12(D,M),fail.
  47. q12([],Mark).
  48. 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).
  49. q12([H1|T],Mark):-H1=model(_,_,Col),counter1(Col,N),max1(_,_,Z),N<=Z,q12(T,Mark).
  50.  
  51. % ×èñëî ôèðì
  52. max2(0).
  53. q2(M):-au(automobile(M,_,L)),counter2(L,N),max2(B),A=B+N, retract(max2(B)),assert(max2(A)),fail.
  54.  
  55. %q3(F):-au(automobile(_,_, L)),q33(A,F,L),write(A,"-",F),nl,fail.
  56.  
  57. % Íàéòè ôèðìû ïî ñòðàíå
  58. q33(A,H,[H1|_]):-H1=company(A,H,_).
  59. q33(A,H,[_|T]):-q33(A,H,T).
  60.  
  61. q3(F):-dq3(F,A),write("*",F," ",A),nl,fail.
  62. q3(F):-not(dq3(F,_)),au(automobile(_,_,L)),q33(A,F,L),write(A,"-",F),nl,assert(dq3(F,A)),fail.
  63.  
  64.  
  65. %q4(F):-au(automobile(A,F,_)),write(F,"-",A),nl,fail.
  66. % Ìàðêè ïî ñòðàíå
  67. q4(F):-dq4(F,A),write("*",F," ",A),nl,fail.
  68. q4(F):-not(dq4(F,_)),au(automobile(A,F,_)),assert(dq4(F,A)),write(F,"-",A),nl,fail.
  69.  
  70. %q5(F):-au(automobile(_,_,L)),q51(A,L,D),q52(F,D),write(A,"-",F),nl,fail.
  71. % Ôèðìû ïî öåíå
  72. q5(F):-dq5(A,F),write("*",F," ",A),nl,fail.
  73. q5(F):-not(dq5(_,F)),au(automobile(_,_,L)),q51(A,L,D),q52(F,D),assert(dq5(A,F)),write(A,"-",F),nl,fail.
  74. q51(H,[H1|_],D):-H1=company(H,_,D).
  75. q51(H,[_|T],D):-q51(H,T,D).
  76. q52(F,[H1|_]):-H1=model(_,F,_).
  77. q52(F,[_|T]):-q52(F,T).
  78.  
  79. counter1([],0).
  80. counter1([_|T],N):-counter1(T,N1),N=N1+1.
  81.  
  82. counter2([],0).
  83. counter2([_|T],N):-counter2(T,N1),N=N1+1.
  84.  
  85. goal
  86. q1;max1(Mark,Model,Colour);
  87. q2("WW");max2(MaxMarks);
  88. q3("India");q3("India");
  89. q4("German");q4("German");
  90. q5(111000);q5(111000).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement