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).
il_suit(X) :- inscrit(X, Y), assure(Z, Y), write("L'étudiant "), write(X), write(" est bien inscrit à la formation "),
write(Y), write(" assurée par l'enseignant "), write(Z).
tous_ceux_inscrits(F) :- inscrit(X, F), write(X), write(" ").
seront_présents(E,F) :- assure(E,F), write("L'enseignant "), write(E), write(" donnera un cours de "), write(F),
write(" pour les étudiants :"), findall(_, tous_ceux_inscrits(F), _).
seront_présents :- write("Entrer le nome de l'enseignant : "), read(X), nl, write("Entrer le nome de la
formation : "), read(F), nl, assure(E,F), write("L'enseignant "), write(E), write(" donnera un cours de "),
write(F), write(" pour les étudiants :"), findall(_, tous_ceux_inscrits(F), _).