Next: Exercício do Exame Final Up: Exercícios Previous: Exercício do Exame de

Exercício do Exame de Recurso de 1997

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