Structures de contrôle d’un algorithme :
1. Structure séquentielle .
2. Structure conditionnelle simple . 3.Dualité (alternative).
4. tests imbriqués .
5. Structure de branchement sélective.
********************************************************
1. Structure séquentielle : c’est une suite d'instructions, les instructions sont exécutées dans l'ordre l'une après l'autre.
Syntaxe : Début
Instruction 1 ; Instruction 2 ;
…..
Instruction n ; Fin.
Une instruction se termine toujours par ;
Exemple : algorithme de permutation entre deux entiers.
2. Structure conditionnelle simple :
Le traitement est ou n'est pas effectué suivant le résultat de la condition, c'est pour ça que l'on parle de traitement "conditionnel".
L'algorithmique propose une syntaxe type pour ce cas de figure :
Si condition alors traitement
FSi
Exemple : donner l’algorithme qui lit un entier puis affiche si cet entier est pair Note : Plusieurs conditions peuvent être combinées en une seule, par exemple : si (nb_courant mod 2 = 1) et (nb_courant > 20) alors ...
Une condition est une expression booléenne.
On donne cette liste de propriétés : Non (x et y) = (Non x) ou (non y) {1}
ex: non( A <3 et A>0) = non (A< 3) ou non ( A> 0) = A=> 3 ou A <= 0 non (x ou y) = (non x) et (non y) {2}
x et (y ou z) = (x et y) ou (x et z) {3}
x ou (y et z) = (x ou y) et (x ou z) {4}
x ou vrai = x {5}
x ou faux = x {6}
non x ou x = vrai {7}
non (u < v) = (u >= v) {8}
non (u = v) = (u <> v) {9}
x ou y = y ou x (idem pour et) {10}
3.Dualité (alternative)
La dualité suppose le choix entre une alternative de traitements (on rappelle qu'alternative s'emploie au singulier et désigne les deux cas en balance).
L'algorithmique propose une extension de la syntaxe précédente :
Si expression booléenne alors Traitement 1
Sinon
Traitement 2 Fsi
Exemple : Reprenons le cas des nombres pairs et impairs et modifions cet exemple de manière à afficher un message si nb_courant est impair et un autre message s'il est pair
4. tests imbriqués :
Le test imbriqué est une généralisation de la structure de contrôle conditionnelle, lorsque le nombre de traitements différents est plus grand que deux.
Par exemple, un programme devant donner l’état de l’eau selon sa température doit pouvoir choisir entre trois réponses possibles (solide, liquide ou gazeuse).
L'algorithmique actuelle propose une syntaxe basée sur l'emploi de plusieurs conditions imbriquées.
Si expression booléenne1 alors Traitement 1
Sinon si expression booléenne2 alors Traitement 2
Sinon si expression booléenne3 alors Traitement 3
Sinon
Traitement par défaut Fsi
Fsi Fsi
Note : En cas d'ambiguïté, le sinon est toujours lié au Si le plus proche.
Exemple : Ecrire un algorithme qui demande deux nombres à l’utilisateur et l’informe ensuite si leur produit est négatif ou positif ou nul. Attention toutefois : on ne doit pas calculer le produit des deux nombres.
5. Structure de branchement sélective:
C’est une extension du si … alors … sinon … Elle permet une programmation plus claire en évitant une trop grande imbrication de Si successifs.
Le branchement multiple sélectif permet de faire plusieurs conditions sur une même variable. La structure globale est la suivante :
Syntaxe :
Cas de var-sélecteur faire Liste-Val1 : debut
………
Fin Liste-Val2 : début ……
Fin Liste-Valn :début ……..
Fin
Sinon traitement par défaut ; Fin
Liste-Val 1 , liste-Val 2 …..liste-Valn : sont les valeurs qui peuvent être prise par la variable sélecteur
- ListeValeurs peut être :
- une valeur
- une suite de valeurs : 1, 3, 5, 7, 9
- une fourchette : 0 à 9
- une plage : >= 10
- Supprimer le début et fin si vous avez une seule instruction dans un bloc.
- La variable sélecteur doit être de type ordinal.
• Une seule Expression (ou une simple variable) est testée au début puis est comparée avec les listes de valeurs.
• A la première concordance les instructions correspondantes sont exécutées puis le programme sort de la structure.
• Si aucune concordance n’est trouvée les instructions placées après le Sinon sont exécutées.
Exercice : écrire la suite d’instructions qui affiche une saison , tel que la lettre entrée par l’utilisateur est la première lettre de cette saison.