Algorithme -7-

Schéma d’algorithme: Structure Conditionnelle

Il est souvent nécessaire lorsque nous écrivons un algorithme de distinguer plusieurs cas conditionnant l’exécution de telles ou telles instructions. Pour ce faire, on utilise une structure conditionnelle : si on est dans tel cas, alors on fait cela sinon on fait ceci. L’idée est donc de base est de faire telle ou telle action selon la vérification d’une condition.

Pour exprimer une condition on utilise une expression booleéenne dont la valeur sera Vrai ou Faux. Une expression booléenne peut s’exprimer avec de opérateurs de comparaison, par exemple, l’expression  » 10 plus grand que 4″ aura la valeur « vrai«  et l’expression la  » 5 plus petit que 4 est « faux« . Une expression booléenne peut être composée par les 3 opérateurs logiques ET, OU, NON. Un exemple d’expression booléenne qui combine opérateurs de comparaison et opérateurs logiques serait:

( x < 10 ) OU ( x > 2) ) ET ( y > 0)
Structure conditionnelle « Si Alors »

Le premier type de structure conditionnelle telles instruction est celle permettant d’exécuter des instructions seulement dans le cas où une condition est réalisée :

Syntaxe
Si (condition booléenne) Alors
   instructions -- les instructions entre Alors et Fin-Si 
   ...          -- seront exécutées si la condition est vraie
Fin-Si
Fonction
  • Exécuter des instructions si une condition est vérifiée
  • <condition booléenne> prend une valeur vrai ou faux
Exemple

Cet algorithme présenté dans un précédent article, utilise un structure conditionnelle pour déterminer si l’élément courant est égal à l’élément recherché dans une structure de donnée de type File.

Schéma Algorithme CompterElement
    Description
        Objectif: Comptage du nombre d'occurrences d'un 
                  élément donné dans une file.
        Données:  File, element, nombreOccurence
        Résultat: Le  nombre d'occurrence de l'élément dans la file
        Remarque: La File et element ne sont pas modifiés par cette action
    Action
        Donnée: compteur, elementCourant
        Premier(File)
        Assigner(0,compteur)
        TantQue Non Dernier(File)
        Faire
            Prendre(File,elementCourant)
            Si estEgal(elementCourant,element)
            Alors
                Ajouter(1,compteur)
            Fin-Si
            Avancer(File)
        Fin-Faire
        Assigner (compteur,nombreOccurence)
        Afficher("Le résultat est", nombreOccurence)
    Fin-Action
Fin-Schéma

 

Structure conditionnelle « Si Alors Sinon »

Le deuxième type de structure conditionnelle utilise les deux mots clés SI et SINON.

Syntaxe
Si (condition booléenne) Alors
   instructions-vrai 
Sinon
   instructions-faux 
Fin-Si
Fonction

Les instructions entre Alors et Sinon seront exécutées si la condition est vraie, les instructions entre Sinon et Fin-Si seront exécutées si la condition est fausse.

Exemple

L’algorithme suivant recherche le maximum entre deux nombres

Schéma Algorithme Max-Nombre    
    Description 
        Objectif:    Recherche du maximum de deux nombres
        Donnée:      premierNombre, secondNombre
        Résultat:    Afficher le nombre le plus grand des deux             
        Remarque:    Les nombres ne sont pas modifiés

    Action
        Prendre("Votre premier nombre ?",premierNombre)
        Afficher( premierNombre)
        Prendre("Votre second nombre ?",secondNombre)
        Afficher(secondNombre)    
        Si EstPlusGrand(premierNombre,secondNombre)
        Alors
            Afficher("Le premier nombre ",premierNombre)
            Afficher("est supérieur au second nombre",secondNombre)
        Sinon
            Si EstEgal(premierNombre,secondNombre)
            Alors
               Afficher("Le premier nombre ",premierNombre)
               Afficher("est égal au second nombre ",secondNombre)
            Sinon
               Afficher("Votre premier nombre",premierNombre) 
               Afficher("est inférieur au second nombre",secondNombre)
            Fin-Si 
         Fin-Si 
    Fin-Action
Fin-Schéma 

 

Structure conditionnelle « Selon Faire »

L’instruction de choix multiple Selon Faire permet d’activer certaines actions en fonction de valeurs précises.

Syntaxe
Selon variable Faire
   cas valeur1 
      ... instructions à réaliser si la variable vaut valeur1 
   cas valeur2 
      ... instructions à réaliser si la variable vaut valeur2
   cas valeur3 
      ... instructions à réaliser si la variable vaut valeur3 
   cas défaut  
      ... instructions à réaliser par défaut
Fin-Faire
Fonction
  • Utile lorsqu’il y a plus de deux choix possibles
  • Effectuer un seul test, simplification d’écriture
Exemple

Algorithme affichant le nom d’un mois en fonction de son numéro.

Schéma Algorithme Calendrier    
    Description 
        Objectif:   Trouver les 3 premiers mois en fonction de leur numéro
        Donnée:     n
        Résultat:   Afficher le nom du mois 
        Remarque:   L'algorithme se termine lorsque l'utilisateur 
                    entre le nombre 0
    Action 
        Afficher("Entrez un nombre de 0 à 3, puis entrez 0 pour terminer")
        Répéter
            Prendre("Entrez un nombre",n)
            Selon n Faire
                cas 1 
                    Afficher("Janvier")
                cas 2
                    Afficher("Février")
                cas 3
                    Afficher("Mars")
                Défaut
                    Si non Egal(n,0) Alors 
                        Afficher("Entrez un nombre de 1 à 3")
                    Fin-Si
            Fin-Selon 
        Jusqua Egal(n,0)
        Afficher("Fin de l'algorithme")
    Fin-Action
Fin-Schéma 
Structure conditionnelle imbriquées

L’algorithme précédent peut s’écrire en imbriquant les structure conditionnelles Si-Alors-Sinon mais cela implique beaucoup de tests et donne une certaine lourdeur dans l’algorithme. La meilleure alternative est d’utiliser une structure Selon Faire.

Exemple
Schéma Algorithme  Calendrier   
    Description 
        Objectif:   Trouver le nom des 3 premiers mois en fonction de leur numéro
        Donnée:     n
        Résultat:   Afficher le nom du mois 
        Remarque:   L'algorithme se termine lorsque l'utilisateur 
                    entre le nombre 0
    Action 
        Afficher ("Entrez un nombres de 1 à 3,  Entrez 0 pour terminer")
        Répéter
            Prendre("Entrez un nombre",n)
            Si Egal(n,1) Alors
                Afficher("Janvier")
            Sinon 
                Si Egal(n,2) Alors 
                    Afficher("Février")
                Sinon 
                    Si Egal(n,3) Alors
                        Afficher("Mars")
                    Sinon
                        Si non Egal(n,0) Alors 
                            Afficher("Entrez seulement un nombre de 1 à 3")
                        Fin-Si 
                    Fin-Si
                Fin-Si
            Fin-Si
        Jusqua Egal(n,0)
        Afficher("Fin de l'algorithme")
    Fin-Action
Fin-Schéma