[Algorithmique] Les conditions

Alexandre | 29 janvier 2013 | Commentaires (0)

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 :

Si age > 17 alors
  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.

 

Si (age > 0) ET (age < 6) alors
  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 :

Si (age > 0) ET (age < 6) alors ...

<

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 :

Si (age = 18) OU (age = 25) alors
  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 ! :)