Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- task_1_1([], _, RES):- write(RES).
- 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)).
- task_1_2([], _, _, RES):- write(','), write(RES).
- 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)).
- task_1_3([], _, RES):- write(','), write(RES).
- 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)).
- 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), []).
- max_element([X], X).
- max_element([Head|Tail], MAX):- max_element(Tail, MAX_1), maximum(Head, MAX_1, MAX).
- maximum(A, B, A):- B < A.
- maximum(A, B, B):- A =< B.
- task_2_1([], RES, _, _):- write(RES).
- 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)).
- task_2:- read(SPISOK), max_element(SPISOK, MAXIMUM), task_2_1(SPISOK, [], MAXIMUM, 1).
- frequency([], _, 0).
- frequency([Head|Tail], ELEMENT, FREQ):- (Head =:= ELEMENT -> frequency(Tail, ELEMENT, FREQ_1), FREQ is FREQ_1 + 1; frequency(Tail, ELEMENT, FREQ)).
- max_frequency([], 0).
- max_frequency([Head|Tail], MAX):- max_frequency(Tail, MAX_1), frequency([Head|Tail], Head, FREQUENCY), maximum(FREQUENCY, MAX_1, MAX).
- task_3_1([], RES, _):- write(RES).
- 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)).
- task_3:- read(SPISOK), max_frequency(SPISOK, MAX), task_3_1(SPISOK, [], MAX).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement