Vous êtes sur la page 1sur 2

fatorial(1,1). Fato.

fatorial(N,Res):- N>0, N1 is N - 1, fatorial(N1,FacN1), Res is N*FacN1. Regra


Consulta :- fatorial(4,X).
4,X
fatorial(1,1). Falha pq no comea com 1
4,___
4>0, 3
4 1, fatorial(3,______), nem faz aqui pq j
chamou o outro
fatorial(N,Res):- N>0, N1 is N - 1, fatorial(N1,FacN1), Res is N*FacN1.
3,_
fatorial(1,1). Falha pq no comea com 1
3,___
3>0, 2
3 1, fatorial(2,______), nem faz aqui pq j
chamou o outro
fatorial(N,Res):- N>0, N1 is N - 1, fatorial(N1,FacN1), Res is N*FacN1.
2,_
fatorial(1,1). Falha pq no comea com 1
2,___
2>0, 1
2 1, fatorial(1,______), nem faz aqui pq j
chamou o outro
fatorial(N,Res):- N>0, N1 is N - 1, fatorial(N1,FacN1), Res is N*FacN1.
1,1
fatorial(1,1). Aceita, pq comea com 1 e depois est em aberto, ento faz a
ligao
fatorial(N,Res):- N>0, N1 is N - 1, fatorial(N1,FacN1), Res is N*FacN1.
Como foi chamado pelo fatorial(N1,FacN1) que est como fatorial(1,___),
ento volta com a resposta fatorial(N,Res) que agora fatorial(1,1) e faz as
ligaes.
fatorial(1,1).
2,2
2>0, 1
2 1, fatorial(1,1),
2
2*1
fatorial(N,Res):- N>0, N1 is N - 1, fatorial(N1,FacN1), Res is N*FacN1.
Como foi chamado pelo fatorial(N1,FacN1) que est como fatorial(2,___),
ento volta com a resposta fatorial(N,Res) que agora fatorial(2,2) e faz as
ligaes.
fatorial(1,1).
3,6
3>0, 2
3 1, fatorial(2,2),
6
3*2
fatorial(N,Res):- N>0, N1 is N - 1, fatorial(N1,FacN1), Res is N*FacN1.

Como foi chamado pelo fatorial(N1,FacN1) que est como fatorial(3,___),


ento volta com a resposta fatorial(N,Res) que agora fatorial(3,6) e faz as
ligaes.
fatorial(1,1).
4,24
4>0, 3
4 1, fatorial(3,6),
24
4*6
fatorial(N,Res):- N>0, N1 is N - 1, fatorial(N1,FacN1), Res is N*FacN1.