pp.pdf
(
54 KB
)
Pobierz
444501599 UNPDF
kwadratmagiczny :-
X = [X01, X02, X04,
X06, X07,
X09, X10,
X15, X16],
L = [4, 6, 7, 8, 9, 10, 13, 14, 16],
assign(X, L),
X01 + X02 + 5 + X04 =:= 34,
15 + X06 + X07 + 3 =:= 34,
X09 + X10 + 11 + 2 =:= 34,
1 + 12 + X15 + X16 =:= 34,
X01 + 15 + X09 + 1 =:= 34,
X02 + X06 + X10 + 12 =:= 34,
5 + X07 + 11 + X15 =:= 34,
X04 + 3 + 2 + X16 =:= 34,
write(X01), tab(2),
...
write(X16), nl.
assign([], _).
assign([D|Ds], List):-
select(D, List, NewList),
assign(Ds, NewList).
kwadratmagiczny :-
X = [X01, X02, X04,
X06, X07,
X09, X10,
X15, X16],
L = [4, 6, 7, 8, 9, 10, 13, 14, 16],
assign(X, L),
X01 + X02 + 5 + X04 =:= 34,
15 + X06 + X07 + 3 =:= 34,
X09 + X10 + 11 + 2 =:= 34,
1 + 12 + X15 + X16 =:= 34,
X01 + 15 + X09 + 1 =:= 34,
X02 + X06 + X10 + 12 =:= 34,
5 + X07 + 11 + X15 =:= 34,
X04 + 3 + 2 + X16 =:= 34,
write(X01), tab(2),
...
write(X16), nl.
assign([], _).
assign([D|Ds], List):-
select(D, List, NewList),
assign(Ds, NewList).
take
(_, [], []):- !.
take(0, _, []):- !.
take(X, [H|T1], [H|T2]):-
X1 is X-1,
take(X1, T1, T2).
Pobieranie wszystkich elem. z listy poza ostatnim (2 sposoby)
init
([],[]).
init(L, W) :-
take
(_, [], []):- !.
take(0, _, []):- !.
take(X, [H|T1], [H|T2]):-
X1 is X-1,
take(X1, T1, T2).
Pobieranie wszystkich elem. z listy poza ostatnim (2 sposoby)
init
([],[]).
init(L, W) :-
init2
([],[]).
init2(L, W) :-
length(L, D),
D1 is D-1,
take(D1, L, W).
init2
([],[]).
init2(L, W) :-
length(L, D),
D1 is D-1,
take(D1, L, W).
reverse(L ,X),
drop(1, X, Y),
reverse(Y, W).
reverse(L ,X),
drop(1, X, Y),
reverse(Y, W).
Pobiera z listy elem. Poza N
pierwszymi i koncowymi
middle
(N, L, W):-
drop(N, L, X),
reverse(X, Y),
drop(N, Y, Z),
reverse(Z, W).
Przesuwa cyklicznie o jeden
argument w liście
move
(L, W):-
take(1, L, X),
drop(1, L, Y),
append(Y, X, W).
Pobiera z listy elem. Poza N
pierwszymi i koncowymi
middle
(N, L, W):-
drop(N, L, X),
reverse(X, Y),
drop(N, Y, Z),
reverse(Z, W).
Przesuwa cyklicznie o jeden
argument w liście
move
(L, W):-
take(1, L, X),
drop(1, L, Y),
append(Y, X, W).
Dzieli liste na dwie części
split
([],[],[]) :- !.
split(L,L1,L2) :-
length(L,R),
P1 is R // 2,
P2 is R - P1,
take(P1,L,L1),
reverse(L,C),
take(P2,C,K),
reverse(K,L2).
Monety
monety
(X) :-
between(1, 99, X),
X mod 3 =:= 1,
between(1, 99, X),
X mod 4 =:= 2,
between(1, 99, X),
X mod 5 =:= 3,
between(1, 99, X),
X mod 6 =:= 4.
Dzieli liste na dwie części
split
([],[],[]) :- !.
split(L,L1,L2) :-
length(L,R),
P1 is R // 2,
P2 is R - P1,
take(P1,L,L1),
reverse(L,C),
take(P2,C,K),
reverse(K,L2).
Monety
monety
(X) :-
between(1, 99, X),
X mod 3 =:= 1,
between(1, 99, X),
X mod 4 =:= 2,
between(1, 99, X),
X mod 5 =:= 3,
between(1, 99, X),
X mod 6 =:= 4.
wnuczka(X,Y) :-
rodzic(X,Z),
rodzic(Z,Y),
kobieta(Y).
prawnuk(X,Y) :-
rodzic(X,Z),
rodzic(Z,Q),
rodzic(Q,Y),
mezczyzna(Y).
siostra(Y,X) :-
rodzic(Z,X),
rodzic(Z,Y),
kobieta(Y),
X \= Y.
wnuczka(X,Y) :-
rodzic(X,Z),
rodzic(Z,Y),
kobieta(Y).
prawnuk(X,Y) :-
rodzic(X,Z),
rodzic(Z,Q),
rodzic(Q,Y),
mezczyzna(Y).
siostra(Y,X) :-
rodzic(Z,X),
rodzic(Z,Y),
kobieta(Y),
X \= Y.
potomek(X,Y) :-
rodzic(Y,X).
potomek(X,Y) :-
rodzic(Y,Z),
potomek(X,Z).
potomkowie(X) :-
rodzic(X,Y),
potomkowie(Y),
write(Y), nl, fail.
potomkowie(_) :- !.
potomek(X,Y) :-
rodzic(Y,X).
potomek(X,Y) :-
rodzic(Y,Z),
potomek(X,Z).
potomkowie(X) :-
rodzic(X,Y),
potomkowie(Y),
write(Y), nl, fail.
potomkowie(_) :- !.
rodzice(X) :-
rodzic(Y, X),
mezczyzna(Y),
rodzic(Z, X),
kobieta(Z), !,
write('ojciec: '),
write(Y), nl,
write('matka: '),
TRÓJMIAN
delta(A, B, C, D) :-
D is (B * B) - (4 * A * C).
trojmian(A, B, C, X) :-
delta(A, B, C, D),
D>0,
X1 is (-B -D) / (2 * A),
X2 is (-B +D) / (2 * A),
X = [X1,X2], !.
rodzice(X) :-
rodzic(Y, X),
mezczyzna(Y),
rodzic(Z, X),
kobieta(Z), !,
write('ojciec: '),
write(Y), nl,
write('matka: '),
TRÓJMIAN
delta(A, B, C, D) :-
D is (B * B) - (4 * A * C).
trojmian(A, B, C, X) :-
delta(A, B, C, D),
D>0,
X1 is (-B -D) / (2 * A),
X2 is (-B +D) / (2 * A),
X = [X1,X2], !.
rodzice(X) :-
rodzic(Y, X),
mezczyzna(Y), !,
write('ojciec: '),
rodzice(X) :-
rodzic(Y, X),
mezczyzna(Y), !,
write('ojciec: '),
write(Y).
trojmian(A, B, C, X) :-
delta(A, B, C, D),
D=0,
X is (-B) / (2 * A), !.
write(Y).
trojmian(A, B, C, X) :-
delta(A, B, C, D),
D=0,
X is (-B) / (2 * A), !.
rodzice(X) :-
rodzic(Z, X),
kobieta(Z), !,
write('matka: '),
rodzice(X) :-
rodzic(Z, X),
kobieta(Z), !,
write('matka: '),
write(Z).
trojmian(A, B, C, _) :-
delta(A, B, C, D),
D<0,
write('Brak rozwiazan'), !.
write(Z).
trojmian(A, B, C, _) :-
delta(A, B, C, D),
D<0,
write('Brak rozwiazan'), !.
rodzice(_) :-
write('brak danych').
rodzice(_) :-
write('brak danych').
Dynamiczna tablica 100 elementowa w C
float *wsk;
wsk=(float*)malloc(100*sizeof(float));
free(wsk);
Dynamiczna tablica 100 elementowa w C++
float *wsk;
wsk=new float[100];
delete [] wsk;
Dynamiczna tablica 100 elementowa w C
float *wsk;
wsk=(float*)malloc(100*sizeof(float));
free(wsk);
Dynamiczna tablica 100 elementowa w C++
float *wsk;
wsk=new float[100];
delete [] wsk;
drop
(_,[],[]):- !.
drop(0, [H|T1], [H|T1]):- !.
drop(X,[H|T1], T2):-
X1 is X-1,
drop(X1, T1, T2).
drop
(_,[],[]):- !.
drop(0, [H|T1], [H|T1]):- !.
drop(X,[H|T1], T2):-
X1 is X-1,
drop(X1, T1, T2).
write(Z).
write(Z).
Plik z chomika:
pachulskim
Inne pliki z tego folderu:
pp.pdf
(54 KB)
ParadygmatyJacek.tar.gz
(14425 KB)
Paradygmaty programowania.rar
(0 KB)
Prolog.tar.gz
(678 KB)
Prolog.rar
(1 KB)
Inne foldery tego chomika:
Algorytmy i struktury danych
Angielski
Elektrotechnika
Inżynieria Oprogramowania
Matma
Zgłoś jeśli
naruszono regulamin