Licence Informatique Année 2000-2001

TD2 : Aspects avancés de Prolog. Exercice 1 : Traduire en français les
commandes Prolog suivantes et dire quel est le résultat de leur exécution (en se
basant ...

Part of the document

Licence Informatique
Année 2000-2001
UNSA
TD2 : Aspects avancés de Prolog
Exercice 1 :
Traduire en français les commandes Prolog suivantes et dire quel est le
résultat de leur exécution (en se basant sur l'énoncé de l'exercice 1 du TD
précédent) :
repas(H, P, D) /.
repas(H, P, D) poisson(P).
repas(H, P, D) / poisson(P). Exercice 2 :
L'arbre généalogique suivant : est décrit par le programme Prolog suivant :
homme(pierre).
homme(herve).
homme(arthur). femme(marie). pere(pierre, herve).
pere(pierre, arthur).
pere(pierre, marie). A partir de ces assertions, donnez les règles générales :
enfant(X, Y) qui exprime que X est un enfant de Y
fils(X,Y) qui exprime que X est un fils de Y
fille(X, Y) qui exprime que X est une fille de Y
frere-ou-s?ur(X, Y) qui exprime que X est frère ou s?ur de Y
frere(X, Y) qui exprime que X est un frère de Y
s?ur(X, Y) qui exprime que X est une s?ur de Y
Attention : un individu n'est pas son propre frère ou sa propre s?ur.
Exercice 3 :
Une agence de voyages propose à ses clients des séjours de une ou deux
semaines à Rome, Londres ou Tunis.
Le catalogue de l'agence contient, pour chaque destination, le prix du
transport (indépendant de la durée) et le prix d'une semaine de séjour qui
varie selon la destination et le niveau de confort choisi : hôtel, chambre
chez l'habitant ou camping. 1) Ecrire l'ensemble des assertions (règles) qui décrivent ce catalogue
(les prix sont laisses à votre appréciation).
2) Exprimer la relation voyage(V, D, H, S) qui s'interprète par : le voyage
dans la ville V pendant D semaines avec l'hébergement H coûte S francs.
3) Compléter par voyage-economique(V, D, H, S, SMAX) qui exprime que le
coût de ce voyage est inférieur à SMAX francs.
On utilisera les règles annexes :
multiplier(P, N, Q) :- val(mul(P, N), Q).
additonner(P, R, Q) :- val(add(P, R), Q).
inferieur(P, Q) :- val(inf(P, Q), 1).
interprétées respectivement par P*N=Q, P+R=Q, P