Next: Exercício do Exame Final Up:
Exercícios Previous: Exercício do Exame de
Relativamente a uma Central de Reservas, desenhou-se a gramática abaixo (apresentada
na notação lógica DCG) para definir uma linguagem que permita descrever
viaturas.
viaturas --> marca, modelo, matriculas.
marca --> [pal(M)].
modelo --> [pal(M)], cilindrada, lugares.
cilindrada--> numero.
lugares --> numero.
numero --> [num(N)].
matriculas--> matricula, outras.
outras --> [','], matriculas.
outras --> [].
matricula --> [mat(X)].
Responda, então, às alíneas seguintes:
- a)
- Diga qual a resposta de um Interpretador de Prolog (IP), à questões:
- a1)
?- viaturas([pal(ferrari),pal(f40),num(300),num(8),
mat(45-66-AX),mat(66-68-EI)],[]).
- a2)
?- viaturas([pal('Mercedes'),pal(c220D),num(2155),num(5)],[]).
- b)
- Modifique a gramática supra de modo a: permitir que cada frase contenha a descrição
de viaturas de marcas e/ou modelos diferentes; e que não seja obrigatório escrever o
número de lugares.
- c)
- Acrescente à DCG supra as acções semânticas e os argumentos que
achar necessários de modo a:
- c1)
- validar a cilindrada que terá de ser um número superior, ou igual, a 1000 e validar o
número de lugares que deverá estar no intervalo [2,10[;
- c2)
- validar a marca do automóvel que terá de ser uma de entre as marcas existentes numa
lista que se supõe existir na BC na forma do predicado marcas([peugeot, fiat,
ferrari, mercedes, ...]).
1999-05-26