Você está na página 1de 2

Exercícios sobre prolog

sábado, 3 de Novembro de 2012


08:48

Dada as seguintes clausulas, onde pai(x,y) representa a relação "x é pai de y" e
mãe(x,y) representa "x é mae de y"

Pai(Alberto, Antoniio).

Pai(Alberto, Luisa).
Pai(Pedro, ana).
Mãe(Ana, Antonio).
Mae(ana, Luisa).
Mae(João, Alberto)
Mae(maria,ana)
Mae(rufino, alberto)
Mae(maria,sara)
Mae(sara,jose)

?- mãe(X,ana).
X = ana
?- mãe(x,ana).
Erro -- porque x minusculo representa um nome e o nome x não está na base de dados.
?- mãe(ana,x)

?- pai(X,Y),mae(z,y).
X = alberto, y = antonio, z = ana;
X = alberto, y Luisa, z = ana
X = joão, y = alberto, z = cristina

b)Representa as clausulas que definem as relações, filho, filha, irmão, avo, primo, antepassado.
Filho (x,y) representa x é filhoe de y
X é homem
Homem(X).
Homem(Alberto).
Homem(Antonio).
Homem(Pedro).
Homem(Jose).

X é mulher. Mulher(X)

Mulher(Ana).
Mulher(maria).
Mulher(Luisa).
Mulher(Cristina).
Mulher(sara).

Filho(X,Y):-mãe(Y,X);pai(Y,X), homem(X).
Filho(X,Y):-mãe(Y,X)mãe(Y,X), homem(X).

• X é progenitor de y, progenitor(x,y).
• Progenitor(x,y):-pai(x,y).
• Progenitor (x,y):- mae(x,y).

Filho (x,y):- progenitor (x,y), homem(x).

Irmão(x,y):- progenitor(z,x),progenitor(z,y), progenitor(z(x,y))


as duas ultimas estão erradas. Porque progenitor adminte quatroo combinações
Isto é:
pai(z,y) pai(z,y)
Mae(x,y) Mae(x,y)

O certo seria

Irmão(x,y):- pai(z,x),pai(z,y); mae(w,x), mae(w,y).


Diferente(x,y).

?- avo (pedro,x).

Progenitor(z,y),pai(pedro,z).

Pai(z,zx),pai(pedro,z) mae(z,x),pai(pedro,z).
z=alberto z = alberto z = pedro x = jose z = ana Z = ana Z = maria
x = antonio x = luisa x = ana x = alberto x = antonio X = luisa X = ana
pai(pedro,ana)
Pai(pedro,pedro) Mae(ana,uisa) Mae(maria,ana)
Pai(alberto,antonio) pai(alberto,luisa) Pai(pedro,ana) Pai(pedro,maria)
pai(pedro,alberto) pai(pedro,alberto)

erro certo eroo


erro erro
Mae(ana,antonio)
Pai(pedro,ana)

certo

programação funcional Página 1


Numa rua existem 5 casas, de 5 cores diferente habitadas por 5 pessoas diferentes. A nacionalidade de
cada habitante, a sua bebida preferida o seu carro, o seu animal de estimação são todos diferentes
a) o ingles mora na casa vermelha
b) o espanhol tem um cão
c) Bebe-se café na casa verde
ci) O ucraniano bebe chá Casa numero 1 2 3 4 5
cii) A casa verde é a direita da casa castanha
ciii) O dono do audi tem um caracol cor amarela azul vermelha castanha verde
civ) O opel está numa casa amarela nacionalidade angolana espanhol ingles ucraniano
cv) Na casa do meio bebe-se leite
bebida leite cha cafe
cvi) O angolano vive na primeira casa a contar da esquerda
cvii) O dono do citroen é vizinho do dono da raposa animal cavalo caracol
cviii) O opel está na casa vizinha a casa que tem um cavalo. carro opel audi
cix) O dono do mercedes bebe sumo de laranja
cx) O japones tem um renó
cxi) O angolano é vizinho da casa azul

? -Quem mora na casa vermelha


?- quem é dono da zebra
?- onde está o opel
?- que bebe água

programação funcional Página 2