SlideShare une entreprise Scribd logo
1  sur  1
Télécharger pour lire hors ligne
/* 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.

Contenu connexe

Plus de Siham Rim Boudaoud (10)

11 library
11 library11 library
11 library
 
8 gl1
8 gl18 gl1
8 gl1
 
8 arbre généalogique
8 arbre généalogique8 arbre généalogique
8 arbre généalogique
 
7
77
7
 
6 unification
6 unification6 unification
6 unification
 
4 histoir
4 histoir4 histoir
4 histoir
 
3 intro
3 intro3 intro
3 intro
 
2
2 2
2
 
2 sommaire
2  sommaire2  sommaire
2 sommaire
 
1 page de garde
1 page de garde1 page de garde
1 page de garde
 

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.