Programmation logique Prolog 2015/2016 hmahfoud.wordpress.com
Exercice n° 01 :
1. bonjour(X) :- write("Bonjour "), write(X).
2.
3.
4.
5.
6. ?- mari(X, Y). mais cette requête affiche tous les couples X et Y. On aura : X=ilies, Y=nadia, et
X=amine, Y=ahlem. Donc la requête n’affiche pas uniquement les messieurs mariés, mais plutôt leurs
femmes aussi.
7. Le caractère « _ » représente une variable qui est utilisée uniquement pour vérifier certaines
conditions mais dont la valeur ne sera pas affichée par l’interpréteur. D’où, ?- mari(X, _). affichera
uniquement les messieurs mariés et ignora l’affichage de leurs femmes.
Exercice n° 02 :
1. L’ensemble des faits :
Année universitaire 2015-2016
3ème année Licence Informatique
Programmation logique Prolog
Université Abou Bakr-Belkd Tlemcen
Faculté des Sciences
Département d’Informatique
TP1 : Corrigé-type
monsieur(ilies).
monsieur(amine).
demoiselle(amina).
demoiselle(sara).
dame(nadia).
dame(ahlem).
bonjour(X) :- monsieur(X), write("Bonjour Monsieur "), write(X).
bonjour(X) :- demoiselle(X), write("Bonjour Melle "), write(X).
bonjour(X) :- dame(X), write("Bonjour Madame "), write(X).
mari(ilies, nadia).
mari(amine, ahlem).
bonjour(X) :- monsieur(X), mari(X, Y), write("Bonjour Monsieur "), write(X) , write(" comment va votre épouse "),
write(Y), write(" ? ").
bonjour(X) :- dame(X), mari(Y, X), write("Bonjour Madame "), write(X) , write(" comment va votre époux "),
write(Y), write(" ? ").
bonjour(X) :- demoiselle(X), write("Bonjour Melle "), write(X).
enseignant(omar).
enseignant(abdelkrim).
enseignant(zakaria).
assure(omar, java).
assure(abdelkrim, c).
assure(zakaria, python).
étudiant(yassine).
étudiant(mohamed).
étudiant(malik).
étudiant(nabil).
étudiant(fatima).
étudiant(ibtissem).
étudiant(hamza).
inscrit(nabil,python).
inscrit(nabil,c).
inscrit(ibtissem,c).
inscrit(malik,c).
inscrit(mohamed,java).
inscrit(malik,java).
inscrit(yassine,java).
inscrit(fatima,python).
inscrit(hamza,python).
Programmation logique Prolog 2015/2016 hmahfoud.wordpress.com
2. Les requêtes :
a) Tous les enseignants : ?- enseignant (X).
b) Toutes les formations : ?- assure(_,X).
c) Toute personne de l’école : ?- enseignant(X) ; étudiant(Y).
d) Tous les étudiants qui sont inscrits à deux formations différentes.
3. La règle étudiant_existe(X) :
4. La règle il_suit(X) :
5. La règle il_suit(X) (2ème version):
6. La règle tous_ceux_inscrits(F) :
7. ?- findall( _ , tous_ceux_inscrits(F), _ ).
8. La règle seront_présents(E, F):
9.
?- (inscrit(X, java), inscrit(X, c)) ; (inscrit(X, java), inscrit(X, python)) ; (inscrit(X, c), inscrit(X, java)).
étudiant_existe(X) :- étudiant(X), write("L'étudiant "), write(X), write(" est bien inscrit à l'école.").
il_suit(X) :- inscrit(X, Y), write("L'étudiant "), write(X), write(" est bien inscrit à la formation "), write(Y).
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !