[Algorithmique] Les structures conditionnelles

Alexandre | 2 février 2012 | Commentaires (0)

Que de mots compliqués pour définir ce que l'on fait tous les jours.

Qu'est-ce qu'un structure conditionnelle ?

Une structure conditionnelle permet en algorithmique de poser des conditions pour effectuer une ou plusieurs actions. Exemple : Si la pièce est allumée, alors j'entre dans la pièce. Sinon je passe mon chemin (oui parce que j'ai peur du noir :p ). Un autre petit exemple : Selon ce qu'il va se passer, soit je prend le métro, soit je prend le bus (Marcher n'est pas une solution, je suis aussi flemmard :) ).

On peut déjà remarquer ici une certaine structure :

Si la pièce est allumée, alors j'entre dans la pièce. Sinon je passe mon chemin.

Selon ce qu'il va se passer, soit je prend le métro, soit je prend le bus.

En Bleu nous avons la structure conditionnelle.

En Orange c'est la condition.

En Vert nous avons l'action à effectuée si la condition est respectée ou non.

 

Bon elle sont pas très belles mes couleurs mais le principe est la. En algorithmique c'est exactement pareil ! Il existe deux types de structures conditionnelles :

  • Si condition alors je fais ça sinon je fais ça
  • Selon condition soit je fais ça soit je fais ça

Ce qui donne une fois mis en forme à la sauce algorithme :

Si condition alors
    je fais ça
   
    Sinon
        Je fais ça
Fin Si

Et

Selon condition
    cas 1: Je fais ça
    cas 2: Je fais ça
Fin Selon

 

La structure Si

Vous vous souvenez des variable (alias le chapitre précédent) ? Il serait peut être temps de les utiliser, vous ne pensez pas ? Voici un petit exemple de pseudo algorithme : Si ma variable âge est égale à 18 alors j'affiche à l'écran "Bonjour monsieur", sinon j'affiche à l'écran "Salut jeunot".

Maintenant, traduisons ça en algorithme :

Si age = 18 alors
    afficher_écran "Bonjour Monsieur"

    Sinon
        afficher_écran "Salut Jeunot"
Fin Si

La structure est fortement similaire au langage courant. Il y a quand même quelques petites remarques à retenir :

  • Dans notre condition vous aurez remarqué le "=". Il n'y a plus de ":", comme avec les variables. Dans une condition pour exprimer l'égalité on ne met jamais de ":" avant le égale. L'expression ":=" est réservée pour attribuer une valeur à une variable.
  • Lorsque l'on "ouvre" un Si il faut obligatoirement le "fermer" avec le terme Fin Si.
  • Le sinon est facultatif.
  • La fonction "afficher_écran" est assez parlante d'elle même. Il vous suffit de mettre votre texte entre guillemet pour afficher du texte.

Un autre exemple de structure valable sans le sinon :

Si age = 18 alors
    afficher_écran "Bonjour"
Fin Si

Maintenant ajoutons la déclaration de variable (Bah oui parce que une variable n'apparaît pas comme par magie) :

age := 18

Si age = 18 alors
    afficher_écran "Bonjour Monsieur"

    Sinon
        afficher_écran "Salut Jeunot"
Fin Si

 

Tout ça c'est le B.A.-BA. Heureusement pour nous, la structure Si peut faire un peut plus que ça ! Imaginez que vous aillez une idée en tête et que pour la réaliser vous aillez préparé un plan A, un plan B et un plan C. Ce qui signifie que si telle condition est vraie alors j'exécute le plan A, sinon si telle condition est vérifiée alors j'exécute le plan B, sinon j'exécute le plan C. Vous commencez à avoir une petite idée ?  Voila ce que ça donnera appliqué à un algorithme :

Si condition1 alors
    j'exécute le plan A
   
    Sinon Si condition2 alors
        J'exécute le plan B
   
        Sinon
            j'exécute le plan C
    Fin Si
Fin Si

Le Sinon Si est souvent utilisé pour gérer plusieurs conditions sur le même élément (ici l'âge). Bien sur le nombre de Sinon Si dépend uniquement de vous. Par contre, il peut n'y avoir qu'un seul Sinon et qu'un seul Si dans une structure. Voici deux exemples d'algorithmes valides :

Si condition1 alors
    j'exécute le plan A

    Sinon Si condition2 alors
        J'exécute le plan B
    Fin Si
Fin Si

ou

Si condition1 alors
    j'exécute le plan A

    Sinon Si condition2 alors
        J'exécute le plan B

        Sinon Si condition3 alors
            J'exécute la plan C
        Fin Si
    Fin Si
Fin Si

 

Une dernière petite chose avant d'en finir avec le Si : vous pouvez les imbriquer ! C'est à dire que vous pouvez les mettre les uns dans les autres :

Si condition alors
    Je fais ça

    Sinon Si condition alors
        je fais ça Sinon je fais ça
    Fin Si
Fin Si

Attention à ne pas oublier de fermer vos Si au bon endroit, sinon c'est le bug assuré ! Je vous rassure on ne va pas tout de suite les enchaîner comme ça ^^.

 

La structure Selon

Pour ceux qui n'ont pas la force de remonter la page pour voir à quoi ressemble la structure Selon, voici un exemple tout simple:

Selon condition
    cas 1: Je fais ça
    cas 2: Je fais ça
Fin Selon

Bon d'accord ce n'est pas très parlant. Surtout que les "soit" du début ont disparues. Je vais vous donner un autre exemple pour clarifier tout ça :

 

Selon age
    cas 1: afficher écran "Salut"
    cas 2: afficher_écran "aurevoir";
Fin Selon

Voici la traduction en bon français :

Selon la valeur de la variable "age", dans le cas où elle vaut 1 je fais ça, dans le cas où elle vaut 2 je fais ça.

Vous l'aurez compris, dans le terme "cas X", X représente la valeur que doit prendre la variable pour que l'action se lance. C'est à dire que si la variable vaut 18, c'est le cas n°18 qui exécutera l'action qu'il contient. Par contre, si vous avez 30 possibilités, il faudra mettre 30 cas. Ce n'est pas très pratique mais si vous utilisez la structure pour faire un menu qui compte 3-4 choix, c'est largement suffisant. ;)

Pour l'instant nous utiliserons la structure Selon qu'avec les variables numériques. Il est possible de remplacer les chiffres par du texte (entre guillemets) mais nous l'utiliserons plus tard.

N'oubliez pas :

  • De mettre 2 petits points après le numéro du cas (cas 1:, cas 2:, etc.)
  • De fermer le Selon avec un Fin selon

Vous l'avez peut être remarqué mais l'utilisation du Si avec des Sinon si est similaire au Selon. Dans la pratique la structure Selon est employée pour les menus (En général ! Pas tout le temps ;) ), le reste est géré par la structure Si. Vous vous ferez bien votre petite idée avec le temps.

Voila nous avons fait le tour des structure conditionnelles ! Vous pouvez relâcher la pression :p

 

Pour résumer :

  • Il existe deux structures conditionnelles : Si et Selon
  • Plusieurs possibilités pour une condition peuvent être gérées en ajoutant des Sinon si à votre structure Si
  • Chaque Si ouvert doit être fermé, même les Sinon SI !