1

Click here to load reader

9 gl2

Embed Size (px)

Citation preview

Page 1: 9 gl2

/* 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.