PREDICATES run1 run2 run3 run4 run44 run444 run4444 run4x run5(real) run55(real) run6 run7 run8 xeste(real) blocinstr dublu(real,real) repeta vreisarepeti repeta2 CLAUSES run1:-X=3,nl,write(X),nl. run2:-X=3,nl,write(X),nl,X=4. run3:-X=3,nl,X=4,write(X),nl. run4:-X=3,nl,write(X),nl; X=4,nl,write(X),nl. run44:-xeste(X),nl,write(X),nl. run444:-X=3,nl,write(X),nl,fail; X=4,nl,write(X),nl. run4444:-xeste(X),nl,write(X),nl,fail. run4x:-X=3,nl,write(X),nl. run4x:-X=4,nl,write(X),nl. run5(X):-X=3,nl,write(X),nl; X=4,nl,write(X),nl. run55(X):-xeste(X),nl,write(X),nl. xeste(X):-X=3; X=4. blocinstr:-write("Introduceti numar:"), readreal(X), nl, write("Dublul lui "), write(X), write(" este "),dublu(X,Y),write(Y),nl. dublu(X,Y):-bound(X),Y=2*X; bound(Y),X=Y/2; free(X),free(Y). % repeta. repeta:-repeta. % repeta2. repeta2:-vreisarepeti,repeta2. % vreisarepeti:-write("Continuati?[y/n]"),nl,readchar(X),X='y'. % ciclare infinita run6:-repeta,blocinstr,fail. % ciclare cu test final run7:-repeta2,blocinstr,fail. % ciclare cu test initial run8:-vreisarepeti,repeta2,blocinstr,fail.