Paweł Kopeć gr. 23 (Informatyka rok II, sem IV) Kraków 04.03.2013
Laboratorium 2 – Prolog
1. Zadanie 1
Napisz predykat liczący silnię danej liczby.
Odpowiedź:
silnia(0,1):-!.
silnia(1,1):-!.
silnia(N,X):- A is N-1, silnia(A,B), X is B*N.
2. Zadanie 2
Napisz predykat znajdujący maks i min wartość w liście Odpowiedź:
min([],A,A).
min([G|O],B,A) :- G =< B, min(O,G,A).
min([G|O],B,A) :- B < G, min(O,B,A).
min([G|O],A) :- min(O,G,A).
maks([],A,A).
maks([G|O],B,A) :- G >= B, maks(O,G,A).
maks([G|O],B,A) :- B > G, maks(O,B,A).
maks([G|O],A) :- maks(O,G,A).
3. Zadanie 3
Zdefiniuj predykat liczący sumę wszystkich elementów listy Odpowiedź:
suma([X|[]],Suma) :- Suma is X, !.
suma([X|Y],Suma) :- suma(Y,Suma1), Suma is Suma1+X, !.
4. Zadanie 4
Jak wypisać jednym poleceniem wszystkie permutacje liczb 1-5
Odpowiedź
permutation([1,2,3,4,5],X).