Chapitre 3 : la conditionnelle

Mise en Projet

Nous allons voir que programmer n'est pas seulement aligner des instructions les unes après les autres. Il y a des moments où il faudra tenir compte de certains critères ou événements et faire des choix afin de les prendre en compte.

Il s'agira de comprendre et de voir comment faire pour gérer ces situations correctement et avec efficacité.

Un test de 9 questions et 4 robots à programmer permettront de vérifier si cette étape importante de la programmation est bien maîtrisée.

Objectifs

À l'issue de ce chapitre, l'élève sera capable :

  1. de comprendre le fait que toutes les instructions d'un programme ne se réalisent pas nécessairement;
  2. de gérer parfaitement les sauts de lignes produits dans le programme par les différents éléments des structures de contrôle conditionnelles;
  3. de pouvoir vérifier si un programmme faisant appel à des structures de contrôle conditionnelles est correct ou non;
  4. de mettre en œuvre les structures de contrôle conditionnelles afin de gérer parfaitement les situations rencontrées.

Exposé

Programmer ne se résume pas à aligner des instructions les unes après les autres ; certains événements peuvent entraîner des ruptures ou sauts dans la séquence. C’est le cas quand se présente une condition. Par exemple, si je désire partir me promener, une personne bien intentionnée pourra me donner les instructions suivantes :

  • Quand il pleut, prends ton parapluie.
  • Lorsqu’il fait froid, mets ton blouson.
  • En cas de grand soleil, prends tes lunettes de soleil,…
Les instructions « prends ton parapluie », « mets ton blouson », « prends tes lunettes de soleil »,… sont donc « soumises » à certaines conditions : le fait qu’il pleuve, qu’il fasse froid, qu’il y ait du soleil. Le fait de prendre son parapluie dépend donc d’une condition : le fait qu’on ait vérifié le temps qu’il fait et que l’on constate qu’il pleut.

Nous constatons que la condition peut prendre plusieurs formes : quand, lorsque, si, au cas où,… Afin de simplifier ces différentes variantes de la conditionnelle, la programmation utilise uniquement la variante «SI la condition est vraie ALORS instruction(s)». Cela peut parfois se compléter d’un SINON contenant des instructions à réaliser si la condition n’est pas vraie, si elle est fausse.

La structure de contrôle conditionnelle va donc se dérouler en deux temps :

  1. D’abord le fait de tester une condition qui donnera un résultat soit VRAI, soit FAUX;
  2. Ce résultat entraînera le fait que certaines instructions seront exécutées et d'autres pas.

Par exemple, si je me trouve à un carrefour devant un feu pour piétons, la structure conditionnelle du code de la route sera la suivante :

  • SI le feu pour piétons est vert ALORS
    • Traverse sur le passage pour piétons
  • SINON
    • Attends sur le trottoir.
Si la vérification de la condition «feu vert» donne un résultat VRAI, je traverserai, sinon, j’attendrai sur le trottoir.

Dans certains cas, le ALORS ou le SINON pourront contenir plusieurs instructions. Il y aura alors une ambiguïté : savoir quand les instructions appartenant à la conditionnelle sont terminées et que recommencent les instructions qui suivent la conditionnelle et n'en font plus partie : celles qui seront réalisées dans tous les cas. Afin de bien marquer cette limite, nous compléterons cette structure conditionnelle par un FIN SI qui marquera sans ambiguïté la fin de cette structure.

Schématiquement, on pourrait représenter une conditionnelle complète de la façon suivante :

Si schématique
Lors de l'exécution du programme, les instructions avant et après la conditionnelle seront toujours exécutées
MAIS soit le bloc vert (si la condition est VRAIE) soit le bloc rouge (si la condition est FAUSSE) s'exécutera
JAMAIS TOUS LES DEUX À LA FOIS LORS DE L'EXÉCUTION DU PROGRAMME.

Si la condition donne un résultat VRAI, nous aurons l'exécution suivante :
Si schématique
Le programme va exécuter les instructions qui suivent le ALORS. Arrivé au SINON, il va sauter à la ligne qui suit le FIN SI.

Si la condition donne un résultat FAUX, nous aurons l'exécution suivante :
Si schématique
Le programme va sauter à la première ligne qui suit le SINON et exécuter toutes les instructions qu'il contient.
Le FIN SI n'aura aucun effet, le programme passera outre et continuera a exécuter les instructions qui suivent.

Exemple : essaie d'imaginer le parcours de la souris dans les deux cas suivants... L'important étant de bien saisir la notion de saut dans la marche à suivre et d'identifier avec précision les lignes auxquelles le programme saute.

Souris 1
Souris 2

Il se peut que certaines conditionnelles soient imbriquées les unes dans les autres, il faudra traiter ces cas avec beaucoup d’attention.

Voici l'exemple d'un feu tricolore pour voitures que nous allons construire pas à pas.

Feu tricolor 1

Feu tricolor 2

Feu tricolor 3

Cette méthode progressive utilisant des plages de couleurs est, à ma connaissance, une des plus pratiques. Je te conseille vivement de l'utiliser dans les situations plus difficiles.

Voilà, pour terminer, essaie d'imaginer toutes les possibilités qui peuvent se présenter devant un feu tricolore et d'exécuter le programme final ci-dessus pour chacune de ces possibilités... L'important étant de bien saisir la notion de saut dans la marche à suivre et d'identifier avec précision les lignes auxquelles le programme saute.

Un petit test va te permettre de vérifier si tu as bien intégré ces notions de sauts, indispensables pour la suite de ton apprentissage.

Retour