La structure de choix
Très souvent le traitement que l’on souhaite effectuer dépend de la valeur que prend une variable. Cette variable doit prendre un nombre fini de valeurs, par exemple la variable niveau qui représente le niveau de difficulté d’un jeu peut prendre les valeurs “FACILE”, “MOYEN” et “DIFFICILE”.
Syntaxe
Ci-dessous la synthaxe, pour implémenter une structure de choix
SUIVANT variable FAIRE
valeur 1:
Instruction 1
Instruction ..
valeur 2:
Instruction 1
Instruction ..
valeur 3:
Instruction 1
Instruction ..
SINON
Instruction 1
Instruction ..
FINSUIVANT
L'utilisation de SUIVANT n'est pas nécessaire dans les contextes binaires.
Application
Un algorithme qui demande à l'utilisateur de saisir et qui lui affiche un message de salutation avec la civilité "Bonjour Mr/Mme".
ALGORITHME SaisirInfo
VAR civilite : chaîne de caractères
sexe : caractère
DÉBUT
AFFICHER("Sexe : ")
SAISIR(sexe)
SUIVANT sexe FAIRE
'M':
civilite <- "Mr"
'F':
civilite <- "Mme"
SINON
civilite <- "Mr/Mme"
FINSUIVANT
AFFICHER("Bonjour ", civilite, ".")
FIN
SUIVANT <variable> FAIRE
Instruction 1
Instruction 2
Instruction ..
SINON
Instruction ..
FINSUIVANT
Applications
Énoncé
Écrire un algorithme qui demande à l’utilisateur de saisir un nombre et qui lui fait reprendre la saisie tant que le nombre saisi n’est pas supérieur à 0.
Solution
ALGORITHME
VAR note: entier
appreciation : chaîne de caractères
DEBUT
AFFICHER(“Saisir la note :”)
SAISIR(note)
SUIVANT note FAIRE
0, 1, 2, 3, 4, 5, 6, 7, 8, 9:
appreciation <- "PASSABLE"
0, 1, 2, 3, 4, 5, 6, 7, 8, 9:
appreciation <- "PASSABLE"
6, 7:
appreciation <- "TRES-INSUFFISANT"
8, 9:
appreciation <- "INSUFFISANT"
10, 11:
appreciation <- "PASSABLE"
12, 13:
appreciation <- "ASSEZ-BIEN"
14, 15:
appreciation <- "BIEN"
16, 17:
appreciation <- "TRES-BIEN"
18, 19, 20:
appreciation <- "EXCELLENT"
FIN TANT QUE
AFFICHER(Note : ", note, " - Appreciation : ", appreciation)
FIN
Les instructions dans le bloc REPETER seront exécutées au moins une fois contrairement au TANT QUE. En effet dans le TANT QUE on vérifie la condition avant d’exécuter les instructions tandis que dans le REPETER la condition est vérifiée après l’exécution des instructions.
ALGORITHME
VAR nombre: entier
DEBUT
REPETER
AFFICHER(“Saisir un nombre positif :”)
SAISIR(nombre)
JQA nombre <= 0
FIN