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.

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.

Voici ce à quoi va ressembler ce tableau de bord et l'utilité des chacun de ses composants.

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 :

Mode d'emploi

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 ou des chaînes de caractères fixes, ou les concepts Vrai ou Faux. Vous pourrez le faire en introduisant ces données dans les rectangles oranges, mais attention, le cadre du haut est réservé exclusivement aux Nombres et celui en dessous sert pour les chaînes de caractères. Fonctionnement : tapez vos données dans le cadre orange adéquat. Quand vous quitterez ce cadre (avec la touche Tabulation par exemple), la donnée se recopiera automatiquement dans le cadre jaune situé en dessous. Vous pourrez alors traîner ce cadre jaune à l'endroit voulu de votre marche à suivre ou code. Les deux concepts booléens sont également disponibles afin d'être traînés dans le programme aux endroits voulus.

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. 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 1 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 orange des "Constantes" marqué "Nombre ?" tapez la valeur 0 au clavier et tapez sur la touche de tabulation;
  7. Traînez le cadre jaune dans lequel s'est inscrit le 0 derrière le signe égal 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

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 "Affiche" des "Instructions d'actions élémentaires" sur une ligne libre du cadre magnétique;
  2. Dans le cadre orange 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 jaune dans lequel s'est inscrite cette phrase derrière le bloc "Affiche" que vous venez de placer;
  4. Trainez le bloc "Lis et colle sur" des "Instructions d'actions élémentaires" sur une ligne libre en dessous de la précédente;
  5. Déclarer la variable Prénom en tapant ce mot dans le cadre orange marqué "Nom ?" d'une variable libre;
  6. 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;
  7. Déroulez le menu et sélectionnez "Caractères" ou tapez 2 fois sur la touche "Flèche bas";
  8. Traînez le cadre mauve derrière le bloc "Lis et colle sur" 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

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 orange marqué "Nombres ?" tapez la valeur "1" au clavier et tapez sur la touche de tabulation;
  6. Traînez le cadre jaune 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

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

Et l'exécution ?

Lorsque vous demandez de tester le 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 Exécution du programme

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 s'il y a beaucoup d'affichages.

Le 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".

Mode d'emploi permet d'afficher le mode d'emploi tel qu'il apparaît plus haut dans cette page.

Aide affiche le raisonnement à tenir pour vous aider à réussir votre programme. Elle consistera bientôt en une vidéo.

Corriger vous permet de revenir en phase d'édition de votre programme afin de pouvoir le modifier.

Quitter vous permet de sortir de l'exercice pour retourner au menu... Attention, tout votre programme s'efface quand vous faites cela 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.

Afficher ou ne pas afficher, telle est la question. L'affichage vous permet d'avoir une pause qui attire votre attention avant chaque étape importante du programme. Lorsque ces informations vous seront inutiles ou que vous désirerez exécuter un programme à grande vitesse, vous pourrez cliquer sur Oui qui deviendra Non. Vous pourrez à tout moment faire le changement inverse si nécessaire. Ces changements peuvent se faire à n'importe quel moment de l'exécution du programme et prennent cours immédiatement.

Démarrer le 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é.

Pas suivant (grand bouton mauve non illustré ici) vous permettra d'exécuter la ligne de code suivante. En cas d'erreur fatale, ce bouton disparaîtra.

Lecture au clavier (grand bouton saumon non illustré ici) vous demandera d'introduire une donnée au clavier suivie de la touche Entrée.

Résultat de l'exécution est la fenêtre qui vous communiquera les informations quant à l'exécution du programme. Elle sera surtout intéressante aux moments des tests (elle vous donnera le résultat) 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.

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 afin que le problème soit résolu le plus rapidement possible. Merci de nous préciser au maximum les circonstances de cet ennui, éventuellement avec une copie-écran.

Bon courage et bonne réussite.

Retour