Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- trojkat(X,Y,Z) :- X+Y > Z, X+Z > Y, Y+Z>X.
- member2(H,[H|_]) :- !.
- member2(R,[_|T]) :- member2(R,T).
- append2([],L,L).
- append2([H|T],L,[H|R]) :- append2(T,L,R).
- all_diff2([]) :- !.
- all_diff2([H|T]) :- \+ member2(H,T),all_diff2(T).
- %ostatni(Lista,Element) ==> [a,b,c,d,e], Element -> Element = e
- ostatni([H],H) :- !.
- ostatni([_|T],E) :- ostatni(T,E).
- % laczenie list conc(Lista1,Lista2,Lista1+2)
- conc([],L,L).
- conc([H|T1], L2, [H|T2]) :- conc(T1,L2,T2).
- % usun ostatni element, bezostatniego([a,b,c,d,e],Wynik),Wynik =[a,b,c,d]
- bezostatniego(Lista,Wynik) :- bezostatniego(Lista,Wynik,[]), !.
- bezostatniego([_],W,W).
- bezostatniego([H|T],W,A) :- conc(A,[H],A1), bezostatniego(T,W,A1).
- %suma elementow liczby
- %suma([1,3,5,8],Wynik).
- %wynik = 17
- %
- suma(Lista,Wynik) :- suma(Lista,Wynik,0),!.
- suma([],Wynik,Wynik).
- suma([H|T],Wynik,A) :- A1 is A+H, suma(T,Wynik,A1).
- %odwracanie([a,b,c,1,2],Wynik).
- %Wynik = [2,1,c,b,a].
- odwracanie(Lista,Wynik) :- odwracanie(Lista,Wynik,[]), !.
- odwracanie([],Wynik, Wynik).
- odwracanie([H|T],Wynik,A) :- odwracanie(T,Wynik,[H|A]).
- %usuwanie parzystych ([1,2,4,5,7],Wynik).
- %Wynik = [1,5,7]
- %
- usuwanie_parzystych(Lista,Wynik) :- usuwanie_parzystych(Lista,Wynik,[]),!.
- usuwanie_parzystych([],Wynik,Wynik).
- usuwanie_parzystych([H|T],Wynik,A) :- H mod 2 =:= 0, usuwanie_parzystych(T,Wynik,A).
- usuwanie_parzystych([H|T], Wynik,A) :- H mod 2 =\= 0, conc(A,[H],A1),
- usuwanie_parzystych(T,Wynik,A1).
- maximum([H],H) :- !.
- maximum([H|T],Wynik) :- maximum([H|T], Wynik, H), !.
- maximum([],Wynik, Wynik).
- maximum([H|T],Wynik,Max) :- H > Max,!, maximum(T,Wynik,H).
- maximum([_|T],Wynik,Max) :- maximum(T,Wynik,Max).
- %gorki([/,/,/,\,\,/,/,/,/,\,\,\,\,\], Max, Min)
- % / - poziom wyzej
- % \ - poziom nizej
- %
- % gorki(Lista,Max,Min,Pozycja,AktualnyMax,AktualnyMin)
- %
- %
- gorki(Lista,Max,Min) :- gorki(Lista, Max,Min,0,0,0),!.
- gorki([],Max,Min,_,Max,Min).
- gorki([/|T],Max,Min,P,AMax,AMin) :- P1 is P+1, P1>AMax,!,gorki(T,Max,Min,P1,P1,AMin).
- gorki([/|T],Max,Min,P,AMax,AMin) :- P1 is P+1,!,gorki(T,Max,Min,P1,AMax,AMin).
- gorki([\|T],Max,Min,P,AMax,AMin) :- P1 is P-1, P1<AMin,!,gorki(T,Max,Min,P1,AMax,P1).
- gorki([\|T],Max,Min,P,AMax,AMin) :- P1 is P-1,!,gorki(T,Max,Min,P1,AMax,AMin).
- %wejscie
- %Lista [a,b,c,d,e,f,g]
- %Zbior [c,e,g]
- %Wynik [a,b,d,f]
- usuwanie_elementow_zbioru(Lista,Zbior,Wynik) :- usuwanie_elementow_zbioru(Lista,Zbior,Wynik,[]).
- usuwanie_elementow_zbioru([],_,W,W).
- usuwanie_elementow_zbioru([H|T], Z, W, A) :- member2(Z,H), usuwanie_elementow_zbioru(T,Z,W,A), !.
- usuwanie_elementow_zbioru([H|T], Z, W, A) :- conc(A,[H],A1), usuwanie_elementow_zbioru(T,Z,W,A1).
- %dzielniki(100, Dzielniki).
- %% Dzielniki = [1,2,5,10,20,50,100]
- %
- %
- dzielniki(Liczba,Dzielniki) :- Liczba > 0, dzielniki(Liczba,Dzielniki1,[],1),conc(Dzielniki1,[Liczba],Dzielniki).
- dzielniki(Liczba,Dzielniki,Dzielniki,Liczba).
- dzielniki(Liczba,Dzielniki,A,L):- Liczba mod L =:= 0, L1 is L + 1, conc(A,[L],A1),
- dzielniki(Liczba,Dzielniki,A1,L1).
- dzielniki(Liczba,Dzielniki,A,L):- Liczba mod L =\= 0, L1 is L + 1, dzielniki(Liczba,Dzielniki,A,L1).
- member3([H|_],H) :- !.
- member3([_|T],E) :- member3(T,E).
- append3([],L,L) :- !.
- append3([H|T],L,[H|R]) :- append3(T,L,R).
- rev(L,R) :- rev(L,R,[]).
- rev([],R,R).
- rev([H|T],R,M) :- rev(T,R,[H|M]).
- last([H],H) :- !.
- last([_|T],E) :- last(T,E).
- occurrences(_,[],0).
- occurrences(X,[X|L],N) :- occurrences(X,L,M), N is M+1, !.
- occurrences(X,[Y|L],N) :- not(X=Y), occurrences(X,L,N).
- length2([],0).
- length2([_|L],N) :- length(L,M), N is M+1.
- count_list([], []).
- count_list([H|T], R) :-
- count_list(T, C),
- update(H, C, R).
- update(H, [], [[H,1]]).
- update(H, [[H,N]|T], [[H,M]|T]) :- !, M is N+1.
- update(H, [S|T], [S|U]) :- update(H, T, U).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement