-
Notifications
You must be signed in to change notification settings - Fork 17
/
anagrama_01.pi
37 lines (32 loc) · 1.03 KB
/
anagrama_01.pi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/* Ideia de modelagem para o problema de ANAGRAMAS - LMA */
/* Dado um alfabeto: exemplo com 4 letras ... FACTS */
index(-,-) %% sem ponto aqui ....
letras(1,a).
letras(2,s).
letras(3,a).
letras(4,c).
/* TODOS anagramas de 3 letras -- por exemplo */
word_3_letras ?=>
/* N: numero L: letra */
letras(N1,L1),
letras(N2,L2),
letras(N3,L3),
/* no caso do anagrama é USAR TODAS as letras */
letras_diferentes( [N1,N2,N3] ),
printf("%w %w %w \t", L1,L2,L3 ),
fail.
word_3_letras =>
printf("\n Não há mais palavras com 3 letras!!!!!\n").
main => nl,
word_3_letras,
/*
word_4_letras, analogo ao anterior exceto que SAO 4
word_5_letras, aqui o numero de letras eh insuficiente
*/
writeln('***********************************************') .
/* AUX */
letras_diferentes( [ ] ) ?=> true. %% tem que ter isto como CLAUSULA
letras_diferentes( [ H | T] ) =>
not(member(H,T)),
letras_diferentes(T).
/****************************************************************/