Pseudo-code |
Morphogramme |
NB_ÉLÈVES <-- 18
NB_NOTES <-- 3
SEUIL_PASSAGE <-- 60
SEUIL_BIEN <-- SEUIL_PASSAGE
SEUIL_TRÈS_BIEN <-- 70
SEUIL_FORMIDABLE <-- 85
NOTE_MINIMALE <-- 0
NOTE_MAXIMALE <-- 100
Cpt_Élèves <-- 1
Tant que Cpt_Élèves <= NB_ÉLÈVES
Somme_Notes <-- 0
Cpt_Notes <-- 1
Tant que Cpt_Notes <= NB_NOTES
Lire Note
Tant que Note < NOTE_MINIMALE OU
Note > NOTE_MAXIMALE
Lire Note
Somme_Notes <-- Somme_Notes + Note
Cpt_Notes <-- Cpt_Notes + 1
Moyenne <-- Somme_Notes / NB_NOTES
Si Moyenne < SEUIL_PASSAGE Alors
Écrire "ÉCHEC"
Sinon
Si Moyenne < SEUIL_TRÈS_BIEN Alors
Écrire "BIEN"
Sinon
Si Moyenne < SEUIL_FORMIDABLE Alors
Écrire "TRÈS BIEN"
Sinon
Écrire "FORMIDABLE"
Cpt_Élèves <-- Cpt_Élèves + 1
|
|
Code C++
// Par: Patrice Roy
// Le: 9 décembre 2001
// But: Vous devez calculer la moyenne des examens d'un
// groupe de dix-huit (18) étudiant(e)s. Chaque
// étudiant(e) a passé trois (3) examens. Vous
// désirez obtenir la moyenne de chacun(e) des
// étudiant(e)s aux examens, ainsi qu'un commentaire
// qui variera selon la moyenne obtenue. Créez le
// pseudo-code et le morphogramme de l'algorithme
// permettant de résoudre ce problème.
#include <iostream>
using namespace std;
void main ()
{
// ---------------------------------------------------
// Constantes du problème
const short NB_ELEVES = 18, // nombre d'élèves dans le groupe
NB_NOTES = 3; // nombre de notes par élèves
const float
SEUIL_PASSAGE= 60.0f, // seuil sous lequel on échoue
// seuil à partir duquel le résultat se mérite la mention "bien"
SEUIL_BIEN= SEUIL_PASSAGE,
// seuil à partir duquel le résultat se mérite la mention "très bien"
SEUIL_TRES_BIEN = 70.0f,
// seuil à partir duquel le résultat se mérite la mention "formidable"
SEUIL_FORMIDABLE = 85.0f,
// bornes pour valider une note
NOTE_MINIMALE = 0.0f, // note minimale acceptée
NOTE_MAXIMALE = 100.0f; // note maximale acceptée
// ---------------------------------------------------
// Déclaration des variables nécessaires
// -- Intrants du problème
float Note, // la note en cours de traitement
// -- Pour usage interne
Somme_Notes, // somme des notes de l'élève
Moyenne; // moyenne de l'élève
short Cpt_Eleves, // pour compter les élèves du groupe
Cpt_Notes; // pour compter les notes de l'élève courant
// Boucle classique qui lira les notes de chaque élève
// et affichera (a) sa moyenne et (b) le message qui
// accompagnera celle-ci
Cpt_Eleves = 1; // on s'apprête à examiner l'élève #1
while (Cpt_Eleves <= NB_ELEVES)
{
// initialisation de la somme des notes de cet élève
Somme_Notes = 0.0f;
// Lecture et valdiation des notes de l'élève
Cpt_Notes = 1;
while (Cpt_Notes <= NB_NOTES)
{
// lecture et validation d'une note
cout << "Entrez la note #"
<< Cpt_Notes
<< " de l'eleve "
<< Cpt_Eleves
<< ": ";
cin >> Note;
while (Note < NOTE_MINIMALE || Note > NOTE_MAXIMALE)
{
cout << "Les notes doivent etre entre "
<< NOTE_MINIMALE
<< " et "
<< NOTE_MAXIMALE
<< " inclusivement."
<< endl
<< "Entrez la note #"
<< Cpt_Notes
<< " de l'eleve "
<< Cpt_Eleves
<< ": ";
cin >> Note;
}
// cumul des notes en vue de la moyenne
Somme_Notes = Somme_Notes + Note;
Cpt_Notes = Cpt_Notes + 1;
}
// Calcul de la moyenne de l'élève
Moyenne = Somme_Notes / NB_NOTES;
// affichage du message d'accompagnement
cout << "Moyenne: "
<< Moyenne
<< ", mention: ";
if (Moyenne < SEUIL_PASSAGE)
{
cout << "ECHEC";
}
else
{
if (Moyenne < SEUIL_TRES_BIEN)
{
cout << "BIEN";
}
else
{
if (Moyenne < SEUIL_FORMIDABLE)
{
cout << "TRES BIEN";
}
else // c'est donc formidable
{
cout << "FORMIDABLE";
}
}
}
cout << endl;
Cpt_Eleves = Cpt_Eleves + 1; // passer au prochain élève
}
}