Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE FEDERAL DA PARAÍBA CENTRO DE CIÊNCIAS APLICADAS E EDUCAÇÃO CAMPUS IV DO LITORAL NORTE DEPARTAMENTO DE CIÊNCIAS EXATAS Disciplina: Linguagens Declarativas. Professor: Joelson Nogueira de Carvalho. Período: 2010.1 EXERCÍCIOS DE AVALIAÇÃO - UNIDADE II Aluno: _________________________________________________ Matrícula: _________ 1) Quais das seguintes operações de unificação serão bem sucedidas e quais irão falhar? Para as que forem bem sucedidas, quais são as instanciações de variáveis resultantes? ponto(A, B) = ponto(1, 2) ponto(A, B) = ponto(X, Y, Z) mais(2, 2) = 4 +(2, D) = +(E, 2) t(p(-1,0), P2, P3) = t(P1, p(1, 0), p(0, Y)) data(DD,03,AAAA) = data(X,Março,1999). data(DD,MM,AAAA) = data(X,Y,99). 2) Qual é a resposta do PROLOG para as seguintes consultas: ?- A = b. ?- a = B, write(B). ?- A = B, write(A), write(B).. ?- A = 1+2, write(A). ?- (A= (a,b); A=1),write(A). ?- a = p(a,B), write(B). ?- p(A,b) = p(a,B), write(A), write(B). ?- p(a,b) = p(b,B), write(B).. ?- p(a,b) = q(a,b). ?- p(x,A,y) = p(x,B). ?- p(x,A,y) = p(x,f(b),y), write(A). 3) Para o seguinte programa, quais serão as respostas Prolog para as consultas abaixo? Observações: A lista é individual Utilize qualquer interpretador/compilador Prolog para CODIFICAR e VERIFICAR suas respostas, desde que indique qual. p(a,c). p(a,b). p(d,a). p(d,b). p(b,c). p(b,d). a) ?-p(a,b). b) ?-p(a,d). c) ?-p(a,X). d) ?-p(X,b). e) ?-p(X,Y). f) ?-p(X,b),p(d,X). g) ?-p(X,Y),p(Z,X). h) ?-p(X,Y),p(Z,Y). 4) Crie um BDD com fatos do predicado progenitor para membros de sua família (ou de uma família fictícia); em seguida, construa regras que permitam consultar os antecessores e sucessores de uma determinada pessoa, além das seguintes relações: Irmão, irmã Primo, prima Tio, tia Pai, mãe Avô, avó 5) Explique com suas palavras, como funciona o “Forward Chainning”, o “Bacward Chainning” e o “Backtracking”. 6) Para que serve o predicado “Cut”? Como funciona? Exemplifique! 7) Construa um banco de conhecimento Prolog, com Fatos e Regras, sobre figuras geométricas. Assim, por exemplo, você poderia designar um quadrado da seguinte forma: quadrado(q1,3,3,3,3); isso poderia definir um quadrado com arestas de tamanho 3. Crie regras para verificação de figuras; assim, quadrado(X,3,4,3,3) não poderia existir! 8) Após construir as figuras da questão acima, crie um ambiente onde essas figuras possam ser descritas al lado da outra, acima ou abaixo (mundo geométrico). 9) Considere a seguinte definição para dois segmentos de reta: segmento_vertical(segmento(ponto(X,Y1),ponto(X,Y2) ) ) segmento_horizontal(segmento(ponto(X1,Y),ponto(X2,Y) ) ) Qual seria a resposta do Prolog para as seguintes consultas: a) ?- segmento_vertical(segmento(ponto(1,1),ponto(1,2) ) ). b) ?- segmento_vertical(segmento(ponto(1,1),ponto(2,Y) ) ). c) ?- segmento_horizontal(segmento(ponto(1,1),ponto(2,Y) ) ). d) ?- segmento_horizontal(segmento(ponto(Z,5),ponto(2,Y) ) ). e) ?- segmento_horizontal(segmento(ponto(Z,5),ponto(2,7) ) ). f) ?- segmento_vertical(segmento(ponto(2,3), P ) ).
Compartilhar