Advertisement
Guest User

Untitled

a guest
Oct 11th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 2.92 KB | None | 0 0
  1. woman('Маша').
  2. woman('Даша').
  3. woman('Наташа').
  4. woman('Юля').
  5. woman('Лена').
  6. woman('Алина').
  7. woman('Рита').
  8. woman('Лиза').
  9. man('Коля').
  10. man('Петя').
  11. man('Вася').
  12. man('Миша').
  13. man('Леша').
  14. man('Юра').
  15. man('Володя').
  16. man('Саша').
  17. man('Толя').
  18. parents('Маша', 'Наташа', 'Петя').
  19. parents('Даша', 'Наташа', 'Петя').
  20. parents('Коля', 'Наташа', 'Петя').
  21. parents('Миша', 'Наташа', 'Петя').
  22. parents('Миша', 'Наташа', 'Петя').
  23. parents('Алина', 'Лена', 'Леша').
  24. parents('Юра', 'Лена', 'Леша').
  25. parents('Наташа', 'Рита', 'Володя').
  26. parents('Толя', 'Рита', 'Володя').
  27. parents('Петя', 'Лиза', 'Саша').
  28. sisters(X, Y) :- woman(X), woman(Y), parents(X, P1, P2), parents(Y, P1, P2), X \= Y.
  29. brothers(X, Y) :- man(X), man(Y), parents(X, P1, P2), parents(Y, P1, P2), X \= Y.
  30. sisbro(X, Y) :- parents(X, P1, P2), parents(Y, P1, P2), X \= Y.
  31. grandpa(X, Y) :- man(Y), parents(X, P1, P2), (   parents(P1, _, Y);parents(P2, _, Y)).
  32. uncle(X, Y) :- man(Y), parents(X, P1, P2), (   sisbro(P1, Y);sisbro(P2, Y)).
  33. haschilds(X, Y, Z) :- parents(Z, X, Y).
  34. suprugi(X, Y) :- woman(X), man(Y), parents(_, X, Y).
  35. onCircle(X1,Y1,X2,Y2,R) :- (R ** 2) >= ((X1-X2) ** 2 + (Y1 - Y2) ** 2).
  36. max(X, Y, X):- X>=Y, !.
  37. max(_, Y, Y).
  38. max3(X, Y, Z, X):- max(X, Y, X), max(X, Z, X), !.
  39. max3(_, Y, Z, Y) :- max(Y, Z, Y), !.
  40. max3(_, _, Z, Z).
  41. max4(X, Y, Z, F, X) :- max3(X, Y, Z, X), max(X, F, X), !.
  42. max4(_, Y, Z, F, Y) :- max3(Y, Z, F, Y), !.
  43. max4(_, _, Z, F, Z) :- max(Z, F, Z), !.
  44. max4(_, _, _, F, F).
  45. fib(0,1) :- !.
  46. fib(1,1) :- !.
  47. fib(N,R) :- N>1, (N1 is (N-1)), fib(N1,F1), (N2 is (N-2)), fib(N2,F2), (R is (F1 + F2)).
  48. abs(P,R) :- P > 0, !, R is P; R is -P.
  49. tria(A,B,C) :- C is sqrt(A**2 + B**2).
  50. pow(N, P, R) :- R is N ** P.
  51. sumN(1,1).
  52. sumN(N,A) :- N > 0, A1 is N-1, sumN(A1, A2), A is A2 + N.
  53. sumNodd(1, 1).
  54. sumNodd(N, A) :-
  55.     N > 0, N mod 2 =:= 1, A1 is N - 1,
  56.     sumNodd(A1, A2), A is A2 + N, !.
  57. sumNodd(N, A) :-
  58.     N1 is N - 1, sumNodd(N1, A).
  59. nod(M,N,N):-M mod N =:=0,!.
  60. nod(M,N,R):-O is M mod N, nod(N,O,R).
  61. nok(M,N,R):-nod(M, N, X), R is (M*N)/X.
  62. myRepeatUntil(N, R) :- N > 1, !, N1 is N - 1, myRepeatUntil(N1, R1), R is R1 * N.
  63. myRepeatUntil(1, 1) :- !.
  64. myFor(I, N, R):- I < N, !, I1 is I + 1, myFor(I1, N, R1), R is I + R1.
  65. myFor(N, N, 0).
  66. myDownFor(I, N, R):- I > N, !, I1 is I - 1, myDownFor(I1, N, R1), R is I + R1.
  67. myDownFor(N, N, 0).
  68. discriminant(A, B, C, D):- D is B*B - 4*A*C.
  69. kvadrat(A, B, C, X1, X2):-discriminant(A, B, C, D), (D <0, !, fail;D =:= 0, X1 is -B/2*A, X2 is X1;X1 is (-B-sqrt(D))/2*A, X2 is (-B+sqrt(D))/2*A).
  70. multNatural(N, R):- N > 10, !, N1 is N div 10, M is N mod 10, multNatural(N1, R1), R is M * R1.
  71. multNatural(N, N).
  72. toBin(N, R) :- (N >= 2, N1 is N div 2, M is N mod 2, toBin(N1, R1), R is R1*10 + M); R is N.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement