You are on page 1of 3

Lista de exercícios: Unificação e prova

Prof. Luiz Fernando Afra Brito

1 Exercícios

Exercício 1. Quais unificam? O que é instanciado?

1. pao = pao

2. 'Pao ' = pao

3. 'pao ' = pao

4. Pao = pao

5. pao = salsicha

6. comida(pao) e pao

7. comida(pao) e X

8. comida(X) e comida(pao)

9. comida(pao , X) e comida(Y, salsicha)

10. comida(pao , X, cerveja) e comida(Y, amburger)

11. comida(X) e X

12. refeicao(comida(pao), bebida(cerveja)) = refeicao(X, Y)

13. refeicao(comida(pao), X) = refeicao(X, bebida(cerveja))

Exercício 2. Dada a base de conhecimento a seguir:

1
criado_elfo(dobby).
feiticeira(hermione).
feiticeira(' McGonagall ').
feiticeira(rita_skeeter).

magico(X) :- criado_elfo(X).
magico(X) :- feiticeiro(X).
magico(X) :- feiticeira(X).
Quais consultas são satisfeitas? O que é instanciado?

1. ?- magico(criado_elfo).

2. ?- feiticeiro(harry).

3. ?- magico(feiticeiro).

4. ?- magico(' McGonagall ').

5. ?- magico(Hermione).

Desenhe a árvore de prova para o Item 5.

Exercício 3. Dada a base de conhecimento a seguir:


palavra(artigo , um).
palavra(artigo , todo).
palavra(substantivo , criminoso).
palavra(substantivo , ' McCinquentaQueijos ').
palavra(verbo , come).
palavra(verbo , gosta).

sentença(Palavra1 , Palavra2 , Palavra3 , Palavra4 , Palavra5) :-


palavra(artigo , Palavra1),
palavra(substantivo , Palavra2),
palavra(verbo , Palavra3),
palavra(artigo , Palavra4),
palavra(substantivo , Palavra5).
Quais consultas podemos realizar para gerar? Qual o significado?

Exercício 4. Dadas as palavras: abalone, abandon, anagram, connect, elegant e enhance.


Tente preencher a palavra-cruzada abaixo usando Prolog!

2
Use a seguinte base de conhecimento para representar as palavras:
palavra(abalone , a, b, a, l, o, n, e).
palavra(abandon , a, b, a, n, d, o, n).
palavra(enhance , e, n, h, a, n, c, e).
palavra(anagram , a, n, a, g, r, a, m).
palavra(connect , c, o, n, n, e, c, t).
palavra(elegant , e, l, e, g, a, n, t).
Agora, escreva o predicado palavra_cruzada/6 para preencher corretamente a palavra-cruzada.
Os três primeiros argumentos correspondem às palavras na vertical, da esquerda para a direita,
e os três argumentos seguintes correspondem às palavras na horizontal, de cima para baixo.

2 Adicional
• use a função \=/2 (\= com dois argumentos)

• use trace

You might also like