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
   }
}