Contenu connexe
Plus de Siham Rim Boudaoud (10)
9 gl2
- 1. /* NOTES*/
/* des faits */
reussit(pierre).
reussit(paul).
/* des règles */
reussit(Etudiant):-
etudiant(Etudiant),
notemoyenne(Etudiant,Moyenne),
Moyenne >= 12,
not(echoue(Etudiant)).
reussit(Etudiant):-
etudiant(Etudiant),
note(Etudiant,informatique,Note),
Note >= 16.
echoue(Etudiant):-
etudiant(Etudiant),
note(Etudiant,_,Note),Note<10.
echoue(Etudiant):-
etudiant(Etudiant),
notemoyenne(Etudiant,Moyenne),
Moyenne < 12.
/* calcul de la moyenne */
notemoyenne(Etudiant,Valeur):-
findall(Note,note(Etudiant,_,Note),Listedenotes),
total(Listedenotes,Somme,Nombredenotes),
Valeur is Somme / Nombredenotes.
Exemples d'invocation et résultats obtenus (en gras) :
?- reussit(X).
X = pierre
X = paul
X = jean
?- notemoyenne(jean,X).
X = 12.75
?- total([12,16,14,15,17],Somme,Nombre_elements).
Somme = 74
Nombre_elements = 5
total([],0,0).
total([Tete|Queue],Somme,Nombre_el):-
total(Queue,Nouvelle_Somme,Nouveau_Nombre_el),
Somme is Nouvelle_Somme+Tete,
Nombre_el is Nouveau_Nombre_el+1.
/* les notes */
note(jean,anglais,16).
note(jean,espagnol,13).
note(jean,droit,6).
note(jean,informatique,16).
note(richard,droit,11).
note(richard,anglais,11).
note(richard,russe,12).
note(richard,informatique,10).
note(camille,droit,5).
note(camille,informatique,15).
note(camille,russe,18).
note(pierre,russe,2).
note(pierre,anglais,7).
note(pierre,informatique,5).
/* qui sont les étudiants? */
etudiant(jean).
etudiant(richard).
etudiant(camille).
etudiant(pierre).
etudiant(paul).
*Veuillez consulter le fichier [Exemples/Fichier9.pl] du CD.