| Dispõe de 3:00 horas para realizar este exame |
| Leia as questões com toda a atenção |
| e responda com calma e clareza em folha convencional |
Para construir um Sistema de Informação para uma Unidade de Arqueologia, foram
identificados as seguintes Entidades e Relações:
o Arqueólogo (descrito pelo código interno, nome e
instituição onde trabalha) que fez numa Escavação
(caracterizada por um identificador, local onde se situa e sector onde se está a escavar)
e o Achado (descrito por um identificador, uma classe (tipo
de objecto), o material e o estado de conservação) que é encontrado pelo
Arqueólogo nessa Escavação.
Antes de se criar a Base de Dados Relacional, que servirá de suporte ao sistema informático final, está-se a pensar fazer um protótipo do sistema num ambiente de programação declarativo, lógico.
Responda, então, às alíneas seguintes:
%-------------------------
Suponha que possui uma Base de Conhecimento (BC) formada por factos correspondentes aos seguintes predicados
% pessoa(P) :- P 'e uma pessoa.
% jogo(J) :- J 'e um jogo.
% premio(P) :- P 'e um premio.
% pratica(S,J) :- O sujeito S (pessoa) joga J.
% monitor(S,J) :- O sujeito S (pessoa) ensina o jogo J.
% favorito(P,J) :- a pessoa P 'e um dos favoritos para ganhar o jogo J.
% ganha(S,J,P) :- P 'e o premio ganho pela pessoa S no jogo J.
escreva, então, as cláusulas convenientes para definir:
%-------------------------
Analise atentamente a seguinte gramática escrita na notação lógica DCG
frase --> exp, [';'].
exp --> equac.
exp --> interroga.
equac --> expressao, ['='], expressao.
interroga --> ['?'], ['='], expressao.
expressao --> operando, resto.
operando --> [num(N)].
operando --> ['('], expressao, [')'].
resto --> operador, expressao.
resto --> [].
operador --> ['+'] | ['-'] | ['/'] | ['*'].
Responda, então, às alíneas seguintes:
frase( [num(5),'+',num(3),'=',num(8),';'], [] ).
%-------------------------
Observe com cuidado a seguinte Base de Factos
% exerceProfRisco(S,P) :- a pessoa S exerce a profissao P que
% 'e de alto risco.
exerceProfRisco(ana,professor) . exerceProfRisco(rui,professor) .
exerceProfRisco(to,metalurgico) . exerceProfRisco(xico,bombeiro) .
exerceProfRisco(marta,bombeiro) . exerceProfRisco(hugo,fuzileiro) .
% fumaMuito(P) :- a pessoa P fuma muitos cigarros por dia.
fumaMuito(sofia) . fumaMuito(rui) .
fumaMuito(ze) . fumaMuito(mariana) .
fumaMuito(pedro) .
% dorme(S,H) :- a pessoa S dorme em media H horas por noite.
dorme(tita,7) . dorme(pedro,5) .
dorme(joao,4) . dorme(ze,5) .
dorme(sofia,6) . dorme(mariana,8) .
% cardiaco(P) :- a pessoa P sofre de doenca do coracao.
cardiaco(nuno) .
cardiaco(necas) .
cardiaco(andre) .
e o seguinte programa Prolog
morreCedo(P) :- exerceProfRisco(P,_).
morreCedo(P) :- fumaMuito(P), dormePouco(P).
morreCedo(P) :- cardiaco(P).
dormePouco(P) :- dorme(P,H), H < 6.
Responda, então, às alíneas seguintes:
morreCedo( pedro ).
dormePouco( QUEM ).
morreCedo( nuno ).
morreCedo( joana ).
%-------------------------
Numa empresa fabricante de equipamento eléctrico para cozinhas, encontram-se as seguintes proposições sobre a constituição de um fogão:
Responda, então, às alíneas seguintes:
%-------------------------
Escreva em Prolog cláusulas adequadas (podendo recorrer, se necessário a predicados pré-definidos) para definir:
?- diferenca([a,b,c,d],[d,b,e,f],X).
X = [a,c]
?- pertence2(b,d,[a,b,c,d,e]).
yes
?- pertence2(d,b,[a,b,c,d,e]).
no
%-------------------------