Programowanie - Lista 4

Zadanie 1.

length2(X,N):-
	length2(X,N,[],0).
length2(X,N,Y,N):-
	reverse(Y,X).
length2(X,N,Y,M):-
	M2 UR1|"http://pauillac<DOT>inria<DOT>fr/~deransar/prolog/bips<DOT>html">is M+1,
	Y2=[_|Y],
	UR1|"http://pauillac<DOT>inria<DOT>fr/~deransar/prolog/bips<DOT>html">nonvar(N),!,
	N>=M,
	length2(X,N,Y2,M2),!.
length2(X,N,Y,M):-
	M2 UR1|"http://pauillac<DOT>inria<DOT>fr/~deransar/prolog/bips<DOT>html">is M+1,
	Y2=[_|Y],
	UR1|"http://pauillac<DOT>inria<DOT>fr/~deransar/prolog/bips<DOT>html">nonvar(X),!,
	length2(X,N,Y2,M2),!.
length2(X,N,Y,M):-
	M2 UR1|"http://pauillac<DOT>inria<DOT>fr/~deransar/prolog/bips<DOT>html">is M+1,
	Y2=[_|Y],
	length2(X,N,Y2,M2).

Zadanie 2.

connection(warszawa,lodz).
connection(warszawa,zakopane).
connection(warszawa,wroclaw).
connection(wroclaw,legnica).
connection(lodz,krakow).
connection(zakopane,krakow).
 
road(X,Y):-
	connection(X,Y).
road(X,Y):-
	connection(Y,X).
 
trip(X,Y,Z):-
	trip(X,Y,Z,[Y]).
trip(X,_,[X|Z],[X|Z]).
trip(X,Y,Z,[H|S]):-
	road(M,H),
	\+member(M,[H|S]),
	trip(X,Y,Z,[M,H|S]).

Zadanie 3.

rbin( [0] ).
rbin( X ):-
        rbin( Z ),
        rinc( Z, X ).
 
rinc( [], [1] ):-!.
rinc( [0|T], [1|T] ):-!.
rinc( [1|T], [0|T1] ):-!, 
        rinc( T, T1 ).
 
bin( [0] ).
bin( X ):-
        bin( Z ),
        inc( Z, X ).
 
inc( X, X1 ):-
        inc( X, [], X1 ).
 
inc( [], A, X ):-!,
        rinc( A, XR ),
        reverse( XR, X ).
 
inc( [H|T], A, X1 ):-
        inc( T, [H|A], X1 ).
 
programowanie/lista4l.txt · ostatnio zmienione: 2010/03/22 22:27 przez alistra
 
Wszystkie treści w tym wiki, którym nie przyporządkowano licencji, podlegają licencji:MIT License
Recent changes RSS feed