Advertisement
Guest User

Untitled

a guest
Dec 2nd, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 1.79 KB | None | 0 0
  1.  
  2. task_1_1([], _, RES):- write(RES).
  3. task_1_1([Head|Tail], MIN, RES):- (Head < MIN -> append(RES, [Head], Z), task_1_1(Tail, MIN, Z); task_1_1(Tail, MIN, RES)).
  4. task_1_2([], _, _, RES):- write(','), write(RES).
  5. task_1_2([Head|Tail], X, Y, RES):- (Head >= X, Head =< Y -> append(RES, [Head], Z), task_1_2(Tail, X, Y, Z); task_1_2(Tail, X, Y, RES)).
  6. task_1_3([], _, RES):- write(','), write(RES).
  7. task_1_3([Head|Tail], MAX, RES):- (Head > MAX -> append(RES, [Head], Z), task_1_3(Tail, MAX, Z); task_1_3(Tail, MAX, RES)).
  8. task_1:- read(SPISOK), read(X), read(Y), task_1_1(SPISOK, min(X, Y), []), task_1_2(SPISOK, min(X, Y), max(X, Y), []), task_1_3(SPISOK, max(X, Y), []).
  9.  
  10. max_element([X], X).
  11. max_element([Head|Tail], MAX):- max_element(Tail, MAX_1), maximum(Head, MAX_1, MAX).
  12.  
  13. maximum(A, B, A):- B < A.
  14. maximum(A, B, B):- A =< B.
  15.  
  16. task_2_1([], RES, _, _):- write(RES).
  17. task_2_1([Head|Tail], RES, MAX, INDEX):- (Head =:= MAX -> append(RES, [INDEX], Z), INDEX_1 is INDEX + 1, task_2_1(Tail, Z, MAX, INDEX_1); INDEX_1 is INDEX + 1, task_2_1(Tail, RES, MAX, INDEX_1)).
  18. task_2:- read(SPISOK), max_element(SPISOK, MAXIMUM), task_2_1(SPISOK, [], MAXIMUM, 1).
  19.  
  20. frequency([], _, 0).
  21. frequency([Head|Tail], ELEMENT, FREQ):- (Head =:= ELEMENT -> frequency(Tail, ELEMENT, FREQ_1), FREQ is FREQ_1 + 1; frequency(Tail, ELEMENT, FREQ)).
  22.  
  23. max_frequency([], 0).
  24. max_frequency([Head|Tail], MAX):- max_frequency(Tail, MAX_1), frequency([Head|Tail], Head, FREQUENCY), maximum(FREQUENCY, MAX_1, MAX).
  25.  
  26. task_3_1([], RES, _):- write(RES).
  27. task_3_1([Head|Tail], RES, MAX_FREQUENCY):- frequency([Head|Tail], Head, FREQUENCY), (FREQUENCY =:= MAX_FREQUENCY -> append(RES, [Head], Z), task_3_1(Tail, Z, MAX_FREQUENCY); task_3_1(Tail, RES, MAX_FREQUENCY)).
  28. task_3:- read(SPISOK), max_frequency(SPISOK, MAX), task_3_1(SPISOK, [], MAX).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement