, , , . . , . .
, . , .
1.
:
roditel(ivan,oleg).
roditel(inna,oleg).
roditel(oleg,dima).
roditel(oleg,marina).
.
:
DOMAINS
name=string
PREDICATES
roditel(name,name)
predok(name,name)
CLAUSES
roditel(ivan,oleg).
roditel(inna,oleg).
roditel(oleg,dima).
roditel(oleg,marina).
predok(X,Z):-roditel(X,Z). %
predok(X,Z):-roditel(X,Y), %
predok(Y,Z).
GOAL
predok(X,Y),
write("redok -",X," go potomok-",Y),nl,fail.
:
redok -ivan go potomok-oleg
redok -inna go potomok-oleg
redok -oleg go potomok-dima
redok -oleg go potomok-marina
redok -ivan go potomok-dima
redok -ivan go potomok-marina
redok -inna go potomok-dima
redok -inna go potomok-marina
2. .
:
PREDICATES
fact(integer,integer)
CLAUSES
fact(0,1):-!. %
fact(N,F):- N1=N-1, % N ,
fact(N1,F1), % ,
F=N*F1. % N
GOAL
write("N="),readint(N),fact(N,F),write("F=",F),nl.
:
1- :
N=0
F=1
2- :
N=1
F=1
3- :
N=4
F=24
3
Y=Xn, X, n
:
stepen, 3- .
1- () , 0=1.
2- () n n.
3- () - n n ( <>0)
PREDICATES
stepen(real,real,real)
CLAUSES
stepen(X,0,1):-!.
stepen(X,N,Y):-N>0,N1=N-1,stepen(X,N1,Y1),Y=Y1*X,!.
stepen(X,N,Y):-X<>0,K=-N,stepen(X,K,Z),Y=1/Z.
GOAL
write("X="),readreal(X),
write("N="),readreal(N),
stepen(X,N,Y),write("Y=",Y),nl.
:
1- :
X=3
N=2
Y=9
2- :
X=2
N=-2
Y=0.25
4.
: A, B C. N , . , .
|
|
:
move, .
1- () , 1 .
2- () N-1 B, , C , , B C, .
PREDICATES
move(integer,char,char,char)
CLAUSES
move(1,A,B,C):-
write(" ",A," ",C),nl,!.
move(N,A,B,C):-
M=N-1,move(M,A,C,B),
write(" ",A," ",C),nl,
move(M,B,A,C).
GOAL
write(" "), nl,
write(" :"), readint(N),nl,
move(N,'A','B','C').
:
:3
A C
A B
C B
A C
B A
B C
A C