Chapitre 8 : programmer en pseudo-code


Mise en Projet

Nous nous rapprochons de la fin du cours avec ce chapitre. Il s'agit maintenant de s'immerger dans la programmation pure et dure, même si nous allons le faire avec un pseudo-langage et des exercices relativement courts.
Les 20 exercices proposés vont vous permettre de vous mettre dans l'environnement d'une vraie programmeuse ou d'un vrai programmeur tout en pouvant observer, en plus, ce qui se passe à l'intérieur de la machine.

Objectifs

Mettre en œuvre toutes les connaissances acquises aux chapitres précédents pour réaliser de vrais programmes (même s'il sont de taille réduite).

Acquérir une certaine "gymnastique" de l'esprit pour trouver les ressources nécessaires pour affronter des situations parfois inattendues.

Présentation

Tout en restant dans une interface proche de celle des robots, vous allez être aux commandes du tableau de bord d'un véritable ordinateur. Non seulement vous pourrez réaliser les codes pour les 20 énoncés que nous avons prévus pour vous permettre de démarrer progressivement, mais vous pourrez aussi créer vos propres énoncés ou en reprendre de livres d'informatique et les tester sur cette plateforme.

Exemple d'énoné. Attention, les exemples développés ci-dessous ne sont PAS la résolution de cet exercice.

Le tableau des variables

Plus fort, vous allez pouvoir assister à toutes les phases de l'exécution de votre programme... la "boîte noire" devient transparente, vous montrant toutes les activités de la machine, ce qui vous permettra de vous faire des "images mentales" qui vous seront bien utiles par la suite. Cela vous facilitera aussi la correction d'erreurs éventuelles.

La phase d'édition

Voici ce à quoi va ressembler la phase d'édition et l'utilité des chacun de ses composants.

Le tableau des variables

Tout d'abord, vous disposez de 8 variables, cases mémoires symbolisées par les fameuses "ardoises" dans le chapitre des "tours de main". Par souci de simplicité, les 5 types de données vus dans le chapitre précédent ont été ramenés à 3 :

  1. Les entiers et les réels ont été regroupés dans le type Nombres;
  2. Les caractères et les chaînes de caractères ont été regroupés dans le type Caractères;
  3. et enfin, les booléens restent un type à part entière : le type Booléens.

Le tableau des variables se présente comme ceci :

Le tableau des variables

Nous verrons concrètement comment l'utiliser ci-dessous.

Viennent ensuite toutes les commandes. Il faut pouvoir lire "des choses" au clavier, afficher "des choses" à l'écran, remplir les variables, les lire, effectuer des calculs, des comparaisons, tester des conditions,... Tout cela sera possible grâce au tableau de bord suivant :

Le tableau des commandes

Avant d'entamer quelques exemples de programmation, voyons à quoi servent ces différentes commandes et comment les utiliser :

Le tableau de bord

Affiche le mode d'emploi tel qu'il apparaît sur cette page.
Affiche l'aide à la constitution de votre programme.
Organise les blocs sur le tableau magnétique et vide la poubelle.
Efface TOUT votre programme afin de pouvoir recommencer avec un tableau magnétique vide. Attenion, cette action est irréversible.
Permet de passer à la phase d'exécution afin de tester votre programme.
Permet de quitter l'exercice en cours afin de revenir au menu.
Permet d'évacuer du tableau magnétique les blocs dont vous n'avez plus besoin. Ces blocs seront éliminés à la prochaine mise en page.

Les variables

Vous disposez de 8 variables. Pour utiliser une variable, vous devez lui donner un nom (dans le rectangle orange du milieu) et un type (en déroulant le menu du cadre du bas). Vous avez 3 types possibles : "Nombres" (entiers ou réels), "Caractères" (ce que vous voulez) et "Booléens" (représentés par les deux concepts Vrai ou Faux). Quand vous quitterez le rectangle orange, le nom de la variable se recopiera automatiquement dans le rectangle bleu foncé du dessus. Vous pourrez alors traîner ce rectangle sur le tableau magnétique afin d'utiliser cette variable dans votre programme.

Les instructions d'actions élémentaires

Permet d'afficher à l'écran les données qui suivent et de passer ensuite à la ligne à l'écran. Remarque : il n'est pas permis de réaliser des calculs ou des comparaisons dans un affichage.
Permet d'afficher à l'écran les données qui suivent sans passer ensuite à la ligne à l'écran. Remarque : il n'est pas permis de réaliser des calculs ou des comparaisons dans un affichage.
Permet de lire une donnée au clavier et de la placer, d'en "affecter" la variable citée après cette instruction.
Permet d'affecter la variable citée avant cette instruction avec une donnée provenant d'une autre variable, d'un ou de plusieurs calculs ou comparaisons.

Les constantes

Vous devez, à certains moments, pouvoir introduire dans votre code des "constantes", c'est-à-dire des nombres, des chaînes de caractères ou les concepts Vrai ou Faux. Vous pourrez le faire en introduisant ces données dans les rectangles mais, attention, les cadres du haut de couleur khaki sont réservés exclusivement aux Nombres et ceux du dessous de couleur beige servent pour les chaînes de caractères.
Fonctionnement : tapez votre donnée dans le cadre adéquat, marqué "Nombre ?" pour les nombres et "Caractères ?" pour les chaines de caractères. Quand vous quitterez ce cadre, avec la touche Tabulation ou en cliquant ailleurs, la donnée se recopiera automatiquement dans le cadre en dessous. Vous pourrez alors traîner ce cadre-là à l'endroit voulu sur le tableau magnétique. Les deux concepts booléens sont également disponibles afin d'être traînés dans votre programme aux endroits adéquats.

Les opérateurs mathématiques

Opérateurs de base permettant d'effectuer les opérations correspondantes. Pour fonctionner, chacun de ces opérateurs doit être entouré de part et d'autre de données de types "Nombres". Si vous voulez effectuer la négation d'une expression mathématique, vous devrez placer un 0 devant le -. Les opérations tiendront compte des niveaux de parenthèses et des priorités des opérateurs.
Permet d'obtenir la division entière de la donnée qui précède par la donnée qui suit. Par exemple, 14 DIV 4 donnera 3 (de façon entière, 4 ne va que 3 fois dans 14).
Permet d'obtenir le reste de la division entière. Par exemple, 13 MOD 4 donnera 1 car 1 est le reste de la division entière de 13 par 4.
Permet d'obtenir un nombre au hasard entre 0 et le nombre mentionné après Hasard, ces deux nombres étant compris. à vous d'effectuer les opérations mathématiques adéquates pour obtenir le nombre au hasard dans les limites qui vous conviennent. Pour obtenir par exemple un nombre au hasard de 10 à 18 compris, vous mentionnerez (Hasard 8)+10.

Les opérateurs booléens

Ces deux opérateurs doivent être entourés de part et d'autres de données de types "Booléens", tenant compte des parenthèses éventuelles.
Le ET donnera "Vrai" si ses deux opérandes sont Vrais en même temps.
Le OU donnera "Vrai" si l'un de ses deux opérandes au moins est Vrai.
Le PAS doit être suivi d'une donnée de type "Booléen", tenant compte des parenthèses éventuelles. le PAS inversera l'état de l'opérande qui le suit, le faisant passer de "Vrai" à "Faux" ou inversément.

Les opérateurs de comparaison et les parenthèses

Permettent de comparer deux données de types identiques. Ces données doivent se trouver de part et d'autre de l'opérateur, tenant compte des parenthèses éventuelles, et le résultat sera de type "Booléen" (vrai ou faux).
De gauche à droite, les signes correspondent à : égal, plus petit, plus grand, plus petit ou égal, plus grand ou égal, différent.
Les parenthèses permettent d'intervenir sur les priorités des opérations tant mathématiques que de comparaison.

Les structures de contrôle

Ces structures de contrôle sont bien connues puisqu'elles sont utilisées depuis les tout premiers exercices.
La structure POUR fait toutefois exception et mérite quelques explications.

Une boucle POUR (FOR en anglais) est une boucle de répétition avec compteur intégré. Celui-ci s'incrémente ou se décrémente d'une unité à chaque tour de boucle en fonction du signe choisi.

La boucle POUR sera constituée des 6 éléments suivants dans l'ordre et sur la même ligne pour être correcte:

  1. L'élément signalant l'entrée dans une structure de contrôle POUR;
  2. La variable de boucle qui va compter les tours et nécessairement de type Nombre;
  3. La valeur numérique ou variable numérique signalant la valeur que la variable de comptage prendra au moment du démarrage de la boucle POUR;
  4. La valeur numérique ou variable numérique signalant jusqu'à quelle valeur y compris la variable de comptage évoluera, c'est la borne de fin de comptage;
  5. Le signe d'évolution de la variable de comptage qui sera soit l'incrémentation , soit la décrémentation ;
  6. L'élément .

Le signalera la fin des instructions faisant partie de la boucle POUR.

Voici quelques exemples de boucle POUR correctement constituées pour autant que les valeurs soient numériques et que chaque variable contienne déjà une valeur numérique.


Quelques exemples en pseudo-code :

A. Déclarer la variable "Compteur" et l'initialiser à 0 (zéro). Les étapes suivantes sont à réaliser :

  1. Déclarer la variable Compteur en tapant ce mot dans le cadre orange marqué "Nom ?" d'une variable libre;
  2. Taper la touche "Tabulation", ce qui sélectionnera la fenêtre du dessous (avec le menu déroulant) et copiera le nom de la variable dans le cadre mauve;
  3. Déroulez le menu et sélectionnez "Nombres" ou tapez une fois sur la touche "Flèche bas";
  4. Traînez le cadre mauve sur une ligne libre du cadre magnétique;
  5. Trainez le signe des "Instructions d'actions élémentaires" sur la même ligne derrière le cadre mauve;
  6. Dans le cadre khaki des "Constantes" marqué "Nombre ?" tapez la valeur 0 au clavier et tapez sur la touche de tabulation;
  7. Traînez le cadre khaki plus clair, dans lequel s'est inscrit le 0, derrière le signe placé juste avant...

...et le tour est joué. Vous pouvez effectuer une "Mise en page" afin que tout cela se mette en ordre.

Vous devez avoir obtenu le morceau de code suivant :

Initialisation de Compteur à 0

Cliquez sur le bouton "Tester" pour vérifier si votre programme fonctionne bien.

B. Demander à l'utilisateur son prénom et le stocker dans la variable "Prénom". Les étapes suivantes sont à réaliser :

  1. Trainez le bloc des "Instructions d'actions élémentaires" sur une ligne libre du cadre magnétique;
  2. Dans le cadre beige marqué "Caractères ?" tapez le texte "Bonjour, quel est ton prénom ?" au clavier et tapez sur la touche de tabulation;
  3. Traînez le cadre beige clair, dans lequel s'est inscrite cette phrase, derrière le bloc que vous venez de placer;
  4. Trainez le bloc des "Instructions d'actions élémentaires" sur une ligne libre en dessous de la précédente;
  5. Déclarez la variable Prénom en tapant ce mot dans le cadre orange marqué "Nom ?" d'une variable libre;
  6. Tapez la touche "Tabulation", ce qui sélectionnera la fenêtre du dessous (avec le menu déroulant) et copiera le nom de la variable dans le cadre mauve;
  7. Déroulez le menu et sélectionnez "Caractères" ou tapez deux fois sur la touche "Flèche bas";
  8. Traînez le cadre mauve derrière le bloc que vous venez de placer...

...et le tour est joué. Vous pouvez effectuer une "Mise en page" afin que tout cela se mette en ordre.

Vous devez avoir obtenu le morceau de code suivant :

Demande du prénom

Cliquez sur le bouton "Tester" pour vérifier si votre programme fonctionne comme prévu.

C. Incrémenter (ajouter 1 à) la variable "Compteur". Les étapes suivantes sont à réaliser (sachant que, normalement, la variable Compteur est déjà déclarée :

  1. Traînez le cadre mauve de la variable Compteur au début d'une ligne vide du tableau magnétique;
  2. Trainez le signe des "Instructions d'actions élémentaires" sur la même ligne derrière le cadre mauve;
  3. Traînez à nouveau le cadre mauve de la variable Compteur derrière ce signe ;
  4. Trainez le signe des "Opérateurs mathématiques" sur la même ligne derrière le cadre mauve;
  5. Dans le cadre khaki marqué "Nombres ?" tapez la valeur "1" au clavier et tapez sur la touche de tabulation;
  6. Traînez le cadre khaki plus clair dans lequel s'est inscrite cette valeur derrière le signe ...

...et le tour est joué. Vous pouvez effectuer une "Mise en page" afin que tout cela se mette en ordre.

Vous devez avoir obtenu le morceau de code suivant :

Incrémentation de Compteur

Cliquez sur le bouton "Tester" pour vérifier si votre programme fonctionne bien.

D. Terminer une boucle "Répète" en vérifiant si le contenu de la variable "Nombre" est un multiple de 5. Vous devrez pour cela obtenir la ligne de code suivante :

Vérification du multiple de 5

Complétez votre programme et cliquez ensuite sur le bouton "Tester" pour vérifier s'il fonctionne bien.



La phase d'exécution

Lorsque vous demandez de Bouton Tester votre programme, vous passez en phase d'exécution. Un nouveau tableau de bord apparaît avec différents cadres et boutons. De haut en bas...

Exécution du programme

Énoncé

Un rappel de l'énoncé est affiché afin que vous puissiez vérifier que l'exécution de votre programme répnond correctement et complètement aux spécifications demandées.

Variables

Les types de variables

  1. La cellule mauve du dessus contient le nom de la variable;
  2. La cellule du milieu en bleu pâle contient le type de la variable;
  3. La cellule du bas affiche en temps réel le contenu de la variable. Pour bien distinguer les différents types de données et faciliter la compréhension des erreurs à ce niveau, le fond de ces cellules est coloré de diffétentes manières :
    1. Le type Nombres est coloré en khaki;
    2. Le type Chaînes de caractères est coloré en beige;
    3. Le type Booléens est coloré à la fois en vert et rouge, symbolisant les concepts Vrai et Faux.

La "table de travail"

L'ordinateur va exécuter les instructions de votre programme l'une après l'autre. Symboliquement, il va "amener" la nouvelle instruction sur une "table de travail" sur laquelle il va traiter cette instruction. Cet espace de travail se trouve entre le tableau des variables et le tableau magnétique.

Exécution du programme

Cet espace de travail est fort intéressant pour votre apprentissage. La ligne en cours d'exécution est numérotée. Cela vous permet de comparer l'instruction proprement dite que vous avez donnée vous-même se trouvant sur le tableau magnétique avec le résultat de son exécution se trouvant dans l'espace de travail. En cas d'erreur, vous pouvez ainsi retracer le processus et voir à quel moment l'erreur est intervenue.

Par exemple, dans l'image ci-dessus, la ligne 3 a été exécutée. En la comparant avec la ligne 3 du tableau magnétique, vous pouvez voir que la variable "nom" a été remplacée par son contenu "John Doe" et que l'ensemble de la ligne a été affiché à l'écran.
Ceci sera utile pour les calculs complexes ou les expressions booléennes avec opérateurs.

L'écran, le clavier et le tableau de bord

Tableau de bord avec choix de montrer les détails Tableau de bord avec choix de masquer les détails

Représentation de l'écran Simule l'écran de l'ordinateur : chaque fois que vous demanderez d'afficher "quelque chose", c'est à cet endroit que cela apparaîtra. Cet écran peut être agrandi en déplaçant le coin inférieur droit s'il y a beaucoup d'affichages.
Représentation du clavier Simule le clavier : quand le programme demandera une données à l'utilisateur, c'est par là que vous pourrez la taper au clavier et la valider avec la touche "Entrée" ou "Enter".
Bouton Corriger Vous permet de revenir dans la phase d'édition de votre programme afin de pouvoir le modifier.
Bouton Quitter Vous permet de sortir de l'exercice pour retourner au menu... Attention, si vous êtes dans votre tableau de bord personnel, votre programme sera enregistré. Si ce n'est pas le cas, tout votre programme s'efface quand vous quittez et il n'est plus récupérable. Si vous voulez en garder "un souvenir" pour vos archives, vous pouvez en faire une copie-écran avant de quitter.
Information sur les détails d'exécution
Choix de montrer les détails d'exécution
Choix de masquer les détails d'exécution
Afficher ou ne pas afficher, telle est la question.
Oui vous permet d'avoir une explication de qui va se passer avant chaque étape importante du programme. Remarque, actuellement, cette fonctionalité n'est pas encore bien au point. Nous y travaillons.
Non vous permet d'exécuter votre programme à grande vitesse afin de vérifier rapidement s'il fonctionne.
Vous pouvez faire le changement entre ces deux options en cliquant sur le Oui ou sur le Non.
Bouton de démarrage du programme Permet de démarrer l'exécution de la première ligne de votre code. Si vous recliquez dessus en cours de programme, l'exécution se réinitialise au début. Ce bouton changera de couleur (rouge si une erreur, verte si le programme aboutit). Attention : ce n'est pas parce qu'un programme s'exécute totalement, sans erreur fatale, qu'il est correct. Vous devez le faire valider par la ou le responable qui vérifiera si votre programme exécute correctement et complètement ce qui est demandé dans l'énoncé.
Bouton pas suivant Permet d'exécuter la ligne de code suivante. En cas de réussite ou d'erreur fatale, ce bouton disparaît.
Fenêtre des résultats des tests fenêtre qui vous communique les informations quant à l'exécution du programme. Elle sera surtout intéressante aux moments des tests (elle vous donnera le résultat du test effectué) et en cas d'erreur (elle essaiera de vous expliquer de la manière la plus précise possible la raison de votre erreur). Bien entendu, ce n'est pas magique, il faudra parfois faire preuve de sagacité pour corriger votre erreur correctement.
Fenêtre signalant la réussite du programme Vous propose de demander confirmation à votre formatrice ou formateur, si il/elle est présente, afin de confirmer que votre programme répond bien aux prescriptions de l'énoncé.
Demande de lecture au clavier Vous demande d'introduire une donnée au clavier. Vous pouvez directement taper votre donnée même si la donnée précédente est toujours présente. Elle s'effacera automatiquement. Quand vous aurez terminé d'introduire la nouvelle donnée, tapez la touche "Entrée".

Comme pour les robots, un excellent exercice est de prédire ce qui va se passer à la ligne suivante. Si vous arrivez à ne plus faire d'erreur, vous êtes en train de devenir une excellente codeuse ou un excellent codeur. C'est tout ce que nous vous souhaitons !!!

Voilà, vous savez tout... Il ne vous reste plus qu'à vous lancer.

Remarque : si vous constatez le moindre problème technique dans l'exécution des programmes, ne manquez pas de nous le faire savoir à l'adresse info@fadagogo.com, nous ferons le nécessaire pour rectifier cela le plus rapidement possible. Merci de nous préciser au maximum les circonstances de ce problème en joignant, si possible, une copie de l'écran.

Bon courage et bonne réussite.

Retour