[Algorithmique] Les conditions
Dans le chapitre précédent nous avons abordé les structures conditionnelles. Comme nous l’avons vu, une structure conditionnelle utilise des conditions pour effectuer ou non une action. Ici nous allons nous préoccuper uniquement des conditions. Rien de bien méchant mais il y a quelques points qui doivent être claires pour tout le monde avant de continuer.
Toujours dans le chapitre précédent, j’avais pris l’exemple de l’âge (personne majeure ou mineure). Repartons de cet exemple : Si je suis majeur alors afficher à l’écran « Vous êtes majeur », sinon afficher à l’écran « Vous êtes mineur ».
Vous serez d’accord sur le fait qu’être majeur c’est avoir 18 ans ou plus. Ce qui signifie que notre âge doit être strictement supérieur à 17 :
action(s)
Sinon
autre action(s)
Fin Si
Ceci n’est qu’un exemple. Pour former vos conditions vous avez à disposition plusieurs symboles que vous connaissez déjà :
= | égal |
> | supérieur |
< | inférieur |
>= | supérieur ou égal |
<= | inférieur ou égal |
<> | différent |
Vous l’aurez remarqué (ou pas) mais il n’y a pas d’intervalle dans la liste ci-dessus. Il y a une bonne raison à ça : On n’utilise pas d’intervalle dans une condition. Ce qui nous amène à la partie suivante.
Combiner les conditions
On ne peut donc pas utiliser les intervalles comme on pourrait le faire dans une expression mathématique classique. La solution ? Combiner deux conditions. Car même sans parler d’intervalles, la plus part du temps une seule condition n’est pas suffisante pour exécuter l’action voulue.
Gardons l’exemple de l’âge. Ce coup-ci je vais ajouter quelques conditions :
- Si la personne est âgée de 0 à 6 ans (non-inclus) alors on affiche « Tu veux un bonbon ? »
- Si la personne est âgée entre 6 et 12 ans (non-inclus) alors on affiche « Tu veux un Kinder ? »
- Si la personne est âgée entre 12 et 17 (inclus) alors afficher « Tu veux des Twix ? »
- Si personne est majeur on lui propose un « Mon Chéri »
- Si l’âge ne correspond à aucun de ces critères on affiche une belle erreur :)
Normalement, vous devriez y arriver tout seul ;) Essayez de trouver l’algorithme tout seul avant de continuer.
…
…
…
…
…
afficher_écran "Tu veux un bonbon ?"
Sinon Si (age >= 6) ET (age < 12) alors
afficher_écran "Tu veux un Kinder ?"
Sinon Si (age >= 12) ET (age <= 17) alors
afficher_écran "Tu veux un Twix ?"
Sinon Si age > 17 alors
afficher_écran "T'es pas un vieux pour ça ?"
Sinon
afficher_écran "T'es sûr que tu as entré un âge correct ?"
Fin Si
Fin Si
Fin Si
Fin Si
Il est possible de réaliser cet algorithme avec que des Si et des Sinon (aucun Sinon Si) mais ça reviendrait à sortir une tronçonneuse pour découper une part de gâteau. Et puis ce n’est pas le but du tuto d’ajourd’hui :p
Analysons ensemble la première condition :
<
Ici pour effectuer l’action contenu dans le Si, il est obligatoire de respecter les deux conditions :
l’âge doit être strictement supérieur à zéro ET l’âge doit être strictement inférieur à 6
Ce qui revient à notre intervalle ( 0 < age > 6 ) de l’énoncé. Le terme ET permet donc de combiner différentes conditions dans un seul Si. Retenez bien que lorsque vous utilisez le ET, toutes les conditions doivent être respectées ! Si une seule n’est pas respectées la condition n’est pas remplie et l’action ne sera pas effectuée. Voici un petit tableau récapitulatif des différentes situations que nous offre cette simple combinaison de conditions :
Valeur de la variable âge | condition age > 0 | condition age < 6 | Condition remplie ? |
0 | FAUX | VRAI | NON |
1 | VRAI | VRAI | OUI |
… | … | … | … |
5 | VRAI | VRAI | OUI |
6 | VRAI | FAUX | NON |
Vous pouvez mettre à la suite du terme ET autant de conditions que vous le désirez. Pour en revenir à la structure générale, le Sinon sert à gérer l’éventualité ou la personne aurait entrée un âge négatif ou des lettres. On ne sait jamais ce que va saisir l’utilisateur, même lorsque l’on précise quoi entrer. Il est donc préférable de gérer ces exceptions pour ne pas faire planter vos futures algo. Parce que si l’utilisateur vous rentre son prénom alors que vous lui demandez son âge et que deux lignes plus tard vous faites des calculs sur son âge les erreurs risquent d’être… folklorique. Pour finir, pensez bien à fermer vos Si avec un Fin Si ;)
Ok on peut donc utiliser le terme ET pour combiner les conditions. Mais il y en a un deuxième ;) Si on peut utiliser ET, on peut forcément utiliser… *roulement de tambour*… OU !
La chose qui change avec le OU est qu’une seule des condition doit être vraie pour pouvoir exécuter l’action. Si nous remplacions les ET par des OU dans notre exemple, vous serez d’accord que l’algorithme n’aurait plus aucun sens. Pour preuve, voila à quoi ressemblerait notre tableau :
Valeur de la variable âge | condition age > 0 | condition age < 6 | Condition remplie ? |
0 | FAUX | VRAI | OUI |
1 | VRAI | VRAI | OUI |
… | … | … | … |
5 | VRAI | VRAI | OUI |
6 | VRAI | FAUX | OUI |
Nous allons donc modifier l’exemple pour qu’il soit un peut plus utile :
afficher_écran "Vous pouvez entrer"
Fin Si
Je résume : Si l’âge entré est égal à 18 ou 25 alors, le texte « vous pouvez entrer » sera affiché. Il faut donc avoir 18 ou 25 ans exactement pour pouvoir entrer :
Valeur de la variable âge | condition age = 18 | condition age = 25 | Condition remplie ? |
0 | FAUX | FAUX | NON |
10 | FAUX | FAUX | NON |
… | … | … | … |
18 | VRAI | FAUX | OUI |
25 | FAUX | VRAI | OUI |
Si nous aurions utilisé un ET, il aurait fallu avoir 18 et 25, ce qui est bien évidement impossible.
Nous avons fait le tour des petites subtilités des conditions. Faites attention à l’utilisation que vous ferez des OU et ET car utilisés à mauvais escient, c’est le sort du monde qui peut être à jamais modifié (nan nan je déconne pas) :)
Pour résumer :
- Plusieurs symboles pour composer une condition : >, <, =, >=, <=, <>
- ET requiert que les deux conditions soient vraies
- OU requiert qu’une des deux conditions soient vraies
Je vous annonce que vous en savez assez pour pouvoir faire des petits programmes tout simple. Dans le chapitre suivant, nous allons voir comment écrire la structure générale d’un algorithme. Puis le chapitre encore après nous passerons à…. la PRATIQUE ! :)