Examen de Programmation en Logique

CALENDRIER DES EXAMENS - Session septembre 2007 ... supérieur à une
heure ne vous autorise plus à composer dans le lieu d'examen). ... PMP EF 142.

Part of the document


Examen de Programmation en Logique
Michel Rueher
Mai 2009 - Tous documents autorisés / Ordinateurs non autorisés
La concision et la clarté des réponses seront appréciées par le correcteur. Question 1 (2 pts)
Ecrivez une prédicat nieme(N,X,L) qui est vrai si et seulement si X est
l'élément à la positon N dans L. On suppose que length(N,L)est vrai.
Exemples :
?- nieme(3,X,[a,b,c]).
X = c ?
yes
?- nieme(3,b,[a,b,c]).
no
?- nieme(3,b,[X,Y,Z,W]).
Z = b ?
yes Question 2 (4 pts)
Ecrivez une prédicat pal(L) qui répond « yes » si L est un palindrome et
qui répond « no » dans le cas contraire. On rappelle qu'un palindrome est
un mot dont l'ordre des lettres reste le même qu'on le lise de gauche à
droite ou de droite à gauche, comme ada, elle ou Kayak. Exemples :
?- pal([e,l,l,e]).
yes
?- pal([e,l,l,e,s]).
no Question 3 (5 pts)
Indiquez la réponse de gprolog pour chacune des questions suivantes:
a) ?- a(b,X)=a(Y,c).
b) ?- a(X,b(Y,c))=a(Y,b(d,X)).
c) ?- X=2, Y=5, Z is X+Y.
d) ?- X=2, Y=5, Z is X+Y+V.
e) ?- fd_domain([X,Y,Z],1,7), X#