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