Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- pierwszyZlisty([X|_],X).
- drugiZlisty([_,Y|_],Y).
- ostatniZlisty([X],X).
- ostatniZlisty([_|T],X) :- ostatniZlisty(T,X).
- przedostatniZlisty([X,_],X).
- przedostatniZlisty([_|T],X) :- przedostatniZlisty(T,X).
- czyLista([_|_]).
- czyLista([]).
- liczSuma([],0).
- liczSuma([H|T],W) :- liczSuma(T, W1), W is H + W1.
- liczIloczyn([],1).
- liczIloczyn([H|T],W) :- liczIloczyn(T, W1), W is H * W1.
- nwd(X,0,X).
- nwd(X,Y,Nwd) :- Y > 0, R is X mod Y, nwd(Y,R,Nwd).
- nww(A,B,X) :- nwd(A,B,Y), X is A*B // Y.
- zapis(X) :-
- open('C:\\Users\\Student\\Desktop\\test.txt',write,Stream),
- write(Stream,X), nl(Stream),
- close(Stream).
- odczyt(X):-
- X = 'C:\\Users\\20631\\Documents\\Prolog\\data.txt',
- see(X),
- repeat,
- get_char(T),print(T),T=end_of_file,!,seen.
- powtorzNRazy(0,_) :- !.
- powtorzNRazy(N,Text) :- N1 is N-1, powtorzNRazy(N1,Text),printm(N,Text).
- printm(N,Text) :- write(N), write('. '), write(Text), nl.
- dodaj(X,Y) :-
- read(X),
- read(Y),
- write(X),
- write('+'),
- write(Y),
- write('='),
- Z is X + Y,
- write(Z).
- odejmij(X,Y) :-
- read(X),
- read(Y),
- write(X),
- write('-'),
- write(Y),
- write('='),
- Z is X - Y,
- write(Z).
- pomnoz(X,Y) :-
- read(X),
- read(Y),
- write(X),
- write('*'),
- write(Y),
- write('='),
- Z is X * Y,
- write(Z).
- podziel(X,Y) :-
- read(X),
- read(Y),
- write(X),
- write('/'),
- write(Y),
- write('='),
- Z is X / Y,
- write(Z).
- %%%%%%%%%%%%%%%%%%%%% Maksimum%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- maksimum2(A,B,W) :- A >= B, W is A, !.
- maksimum2(A,B,W) :- A < B, W is B, !.
- maksimum3(A,B,C,W) :- A >= B, A >= C, W is A, !.
- maksimum3(A,B,C,W) :- B >= A, B >= C, W is B, !.
- maksimum3(A,B,C,W) :- C >= A, C >= B, W is C, !.
- %%%%%%%%%%%%%%%%%Czy dodatnia,% ujemna, parzysta, nieparzysta%%%%%
- czyDodatnia(X) :- X>0.
- czyUjemna(X) :- X<0.
- czyParzysta(X) :- X mod 2 =:= 0.
- czyNieparzysta(X) :- 1 =:= X mod 2.
- %! %%%%%%%%%%%Funckaj sprawdzająca czy argument jest na liście%%%%%%%%
- czyNalezyDoListy(X,[X|_]).
- czyNalezyDoListy(X,[_|Y]):-czyNalezyDoListy(X,Y).
- %! %%%%%%%%%%%%%%Długość listy %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- ileWLiscie(X,[_]):-X is 1.
- ileWLiscie(X,[_|Z]):-ileWLiscie(X1,Z),X is X1+1.
- %! %%%%%%%%%%%%%%%%%%%%Łączenie list%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- sklejListy([],X,X).
- sklejListy([X|L1],L2,[X|L3]) :-
- sklejListy(L1,L2,L3).
- %! %%%%%%%%%%%%%%%%%%%%Odwracanie list%%%%%%%%%%%%%%%%%%%%%%%%%%%
- odwrocListe([],[]).
- odwrocListe([Head|Tail],L) :-
- odwrocListe(Tail,R),
- sklejListy(R,[Head],L).
- %! %%%%%%%%%%%%%%%%%%%Dodaj na początek listy%%%%%%%%%%%%%%%%%%%%%
- dodajNaPoczatekListy(X,Y,W) :-
- append(X,Y,W).
- %! %%%%%%%%%%%%%%%%%%%Dodaj na koniec listy %%%%%%%%%%%%%%%%%%%%%
- dodajNaKoniecListy(X,Y,W) :-
- append(Y,X,W).
- %! %%%%%%%%%%%%%%%%%%Usuń z listy %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %najpierw lista, potem co usuwamy, potem parametr wyniku
- delete(A, [A|B], B).
- delete(A, [B, C|D], [B|E]) :- delete(A, [C|D], E).
- delete2(A, [A|B], B).
- delete2(A, [B|D], [B|E]) :- delete2(A, D, E).
- %! %%%%%%%%%%%%%%%%%%Permutacja elementow z listy%%%%%%%%%%%%%%%%%%%%%
- usunZListy(X, [X|T], T).
- usunZListy(X, [H|T], [H|Z]) :- usunZListy(X, T, Z).
- permutuj([],[]).
- permutuj([H|T],R) :- permutuj(T,X), usunZListy(H,R,X).
- % ! %%%%%%%%%%%%%%%%%Wypisywanie tekstu X razy na ekranie%%%%%%%%%%%%%%%%
- powtorz(X,Y) :- Y > 0 -> write(X), nl, powtorz(X,Y-1).
- %%%%%%%%%%%%%%%%%%%%%%Funkcja signum %%%%%%%%%%%%%%%%%%%%%%%%%%
- signum(X,Y) :- X < 0, Y is -1, !.
- signum(X,Y) :- X = 0, Y is 0, !.
- signum(X,Y) :- X > 0, Y is 1, !.
- %%%%%%%%%%%%%%%%%%Silnia%%%%%%%%%%%%%%%%%%%%%%%%%%%
- silnia(N,_) :- N<0, !, write('n<0').
- silnia(0,1) :- !.
- silnia(N,W) :- N > 0, N1 is N-1, silnia(N1,W1),W is N * W1.
- %%%%%%%%%%%%%% Suma elementów listy %%%%%%%%%%%%%%%%%%%%%%%%
- sumElements([E], Y) :- (E>0 -> Y is E ; Y is 0).
- sumElements([E|R], W) :- E > 0, sumElements(R,W1), W is E+W1.
- sumElements([E|R], W) :- E =< 0, sumElements(R,W1), W is W1.
- qSort([],[]).
- qSort([X|Tail], Sorted) :-
- split(X, Tail, Small, Big),!,
- qSort(Small, SortedSmall),
- qSort(Big, SortedBig),
- lacz(SortedSmall, [X|SortedBig], Sorted).
- split(_,[],[],[]).
- split(H,[X|T],[X|L],G) :- X=<H,split(H,T,L,G).
- split(H,[X|T],L,[X|G]) :- X>H,split(H,T,L,G).
- lacz([], L, L).
- lacz([X|L1], L2, [X|L3]) :- lacz(L1, L2, L3).
- %%%%%%%%%%%%%%%%%Czy dodatnia,% ujemna, parzysta, nieparzysta%%%%%
- czyDodatnia(X) :- X>0.
- czyUjemna(X) :- X<0.
- czyParzysta(X) :- X mod 2 =:= 0.
- czyNieparzysta(X) :- 1 =:= X mod 2.
- %%%%%%%%%%%%%% Ciąg fibbonaciego %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- fib(0,1).
- fib(1,1).
- fib(N,W) :- N >= 2, N2 is N-2 ,N1 is N-1, fib(N2,W1), fib(N1,W2) ,W is W1+W2.
- czytaj(end_of_file) :- !.
- czytaj :- read(T), wykonaj(T).
- wykonaj(end_of_file) :- !.
- wykonaj(T) :- write(T),nl,czytaj.
- czytajPlik(P) :- open(P,read,X), current_input(W), set_input(X), czytaj, close(X), set_input(W).
- %%%nazwa, położenie(X,Y), powierzchnia i ludność
- city(ogromniaste, 4, 6, 4, 5).
- city(malostka, -3, -4, 1, 2).
- city(rozne, 10, 10, 4, 3).
- city(graniczne, -5, 10, 4, 1).
- city(srodkowe, 2, 1, 4, 3).
- city(duzaste, -7, 7, 5, 5).
- city(wietrzne, -10, -8, 4, 5).
- city(sredniaste, 3, 5, 2, 1).
- city(dobre, 0, 1, 4, 2).
- city(centralne, 0, 0, 2, 0).
- %%%%%%%%%%%%%%%%%%%% Gęstość%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- gestosc(X,Z) :- city(X,_,_,C1P,C1L), Z is C1L / C1P.
- %%%%%%%%%%%%%%%%%%% Odległość%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- taxi(X,Y,Z) :- city(X,C1X,C1Y,_,_), city(Y,C2X,C2Y,_,_), Z is abs(C1X - C2X) + abs(C1Y - C2Y).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement