Bac IP Niger study materials
Bac IP Niger study resources

Corriger un algorithme d’attribution de bourses scolaires

Bac IP Niger · Put your knowledge to work in context.

All case studies

Corriger un algorithme d’attribution de bourses scolaires

Le lycée de Maradi attribue des bourses sur la base d’un algorithme utilisé par la commission. Le règlement indique : moyenne générale au moins 12 sur 20 et au plus 5 absences non justifiées. Le secrétariat saisit les notes dans un tableur ; lorsqu’une note manque, il la remplace par 0 pour que le calcul aboutisse. L’algorithme actuel calcule la moyenne en divisant la somme des notes par le nombre de notes saisies, puis affiche « boursier » si moyenne >= 12 et absences <= 5. Deux élèves contestent : l’un a 12,4 de moyenne mais 6 absences dont 2 justifiées par un certificat médical ; l’autre a une note manquante en mathématiques et se retrouve avec 9,8. La commission veut un traitement explicite des notes manquantes et des absences justifiées, sans refaire les saisies déjà effectuées. Elle demande aussi de vérifier le cas d’un élève sans aucune note.

1. Identifiez les erreurs de logique et les cas limites de l’algorithme actuel. Expliquez comment chacune fausse la décision de la commission.

Read the worked answer

Trois erreurs principales. D’abord, remplacer une note manquante par 0 revient à compter un zéro comme une évaluation réelle : la moyenne baisse artificiellement et l’élève peut perdre la bourse pour une note non saisie. Ensuite, si l’élève n’a aucune note, le nombre de notes vaut 0 et la division par zéro provoque une erreur ou un arrêt ; le cas n’est pas traité. Enfin, l’algorithme compte toutes les absences, y compris celles justifiées par un certificat médical, alors que le règlement parle d’absences non justifiées.

Le seuil « au plus 5 » est correctement traduit par <= 5, mais il faut calculer absences totales moins absences justifiées. Il y a aussi un cas limite : une moyenne exactement égale à 12 doit être acceptée, et une note manquante dans une matière obligatoire devrait rendre le dossier incomplet plutôt que fausser la moyenne. Ces erreurs changent la décision de la commission et exposent à des contestations.

2. Écrivez un algorithme en pseudo-code qui traite explicitement les notes manquantes et les absences justifiées. Précisez la décision lorsque le dossier est incomplet.

Read the worked answer
ALGORITHME AttributionBourse
ENTRÉES : notes[], nb_notes_saisies, absences_total, absences_justifiees, matiere_obligatoire_manquante
SORTIE : decision

notes_valides ← notes sans les valeurs manquantes
si nb_notes_saisies = 0 OU matiere_obligatoire_manquante = vrai alors
    decision ← « dossier incomplet »
sinon
    moyenne ← somme(notes_valides) / nb_notes_saisies
    absences_non_justifiees ← absences_total - absences_justifiees
    si moyenne >= 12 ET absences_non_justifiees <= 5 alors
        decision ← « boursier »
    sinon
        decision ← « non boursier »
    fin si
fin si

Explication : on distingue une note absente d’un zéro ; le nombre de notes utilisé est celui des notes réellement saisies, et non le nombre de colonnes. Si une matière obligatoire manque, on ne décide pas : le dossier est incomplet et doit être complété. Les absences justifiées sont soustraites avant comparaison au seuil. Le seuil de moyenne inclut 12 et celui des absences inclut 5, conformément au règlement. La commission peut alors justifier chaque décision et relancer la saisie au lieu de pénaliser un élève.

3. Testez votre algorithme sur les deux élèves du scénario et sur un élève sans aucune note. Indiquez les calculs et la décision.

Read the worked answer

Élève 1 : moyenne 12,4 ; absences totales 6, justifiées 2, donc non justifiées = 4. 12,4 >= 12 et 4 <= 5 : décision « boursier ». Élève 2 : quatre notes disponibles 12, 12, 12 et 13, plus une note de mathématiques manquante. Avec le 0 actuel, la moyenne affichée est (12+12+12+13+0)/5 = 9,8 ; avec le traitement corrigé, si l’on exclut la note manquante, la moyenne des notes disponibles est 49/4 = 12,25. Mais si la mathématique est une matière obligatoire, l’algorithme corrigé renvoie « dossier incomplet » tant que la note n’est pas saisie : la commission ne doit ni accorder ni refuser la bourse sur une moyenne fausse. Élève 3 : aucune note, nb_notes_saisies = 0, donc « dossier incomplet », sans division par zéro. Ces tests montrent que la correction change les décisions et évite les erreurs.