Algorithmes : Tests et boucles
Les algorithmes que nous avons utilisés dans le chapitre précédent exécutent toujours la méme téche ce qui limite drélement leur intérét. Les tests et les boucles vont enrichir nos algorithmes leur permettant déagir différemment en fonction des données entrées par l'utilisateur.
1. Test
Définition
Un test est une instruction qui permet déeffectuer un traitement différent selon quéune condition est vérifiée ou non.
La premiére forme possible est la suivante :
instructions
fin si
Les instructions ne seront exécutées que si la condition est vérifiée. Par exemple :
x : entier
début algorithme
lire x
si x > 10 alors
x ← 10
fin si
écrire x
fin algorithme
Si l'utilisateur entre un entier supérieur à 10 l'algorithme affichera 10 sinon il affichera le nombre saisi par l'utilisateur.
La seconde forme est légérement plus complexe :
instructions 1
sinon
instructions 2
fin si
Si la condition est vraie, l'algorithme effectuera les "instructions 1" puis passera aux instructions situées aprés le fin si. Si la condition est fausse, l'algorithme effectuera les "instructions 2" puis passera aux instructions situées aprés le fin si.
Exemple
âge, prix : entier
début algorithme
écrire "entrez votre âge :é
lire âge
si âge<16 alors
écrire "vous bénéficiez du tarif réduit"
prix=10
sinon
écrire "vous ne bénéficiez pas du tarif réduit"
prix=15
fin si
écrire "vous devez payer" prix "euros"
fin algorithme
Si vous entrez 15 comme âge, vous obtiendrez le résultat suivant :
Vous devez payer 10 euros
Si vous entrez 16 comme âge, vous obtiendrez :
Vous devez payer 15 euros
2. Conditions
Une condition est une expression qui peut prendre l'une des deux valeurs suivantes vrai ou faux. On dit également que c'est une valeur de type "logique" ou "booleen".
Les principaux opérateurs de comparaison que vous rencontrerez sont les suivants :
- égal à (= en pseudo code)
- différent de (!= en pseudo code)
- strictement supérieur (> en pseudo code)
- strictement inférieur (< en pseudo code)
- supérieur ou égal (>= en pseudo code)
- inférieur ou égal (<= en pseudo code)
Ces comparaisons n'ont un sens que si les variables que l'on compare sont de méme type.
Exemple
nom : texte
début algorithme
écrire "entrez votre nom :"
lire nom
si nom="Jean" alors
écrire "Bonjour Jean!"
sinon
écrire "Je ne vous connais pas"
fin si
fin algorithme
On peut écrire des conditions plus complexes en reliant des comparaisons à léaide des opérateurs logiques ET, OU et NON.
- Condition 1 ET condition 2 sera vraie si les deux conditions sont toutes les deux vraies.
Par exemple, la condition : "âge supérieur à 5 ET âge inférieur à 10" sera vraie si la variable âge est strictement comprise entre 5 et 10. - Condition 1 OU condition 2 sera vraie si l'une au moins des deux conditions est vraie.
Par exemple, la condition "prénom = Jean OU nom = Dupont" sera vraie pour :- Jean Dupont (conditions 1 et 2 vraies)
- Jean Durand (condition 1 vraie)
- Pierre Dupont (condition 2 vraie)
mais fausse pour
- Pierre Durand (conditions 1 et 2 fausses)
- NON (condition 1) sera vraie si et seulement si condition 1 est fausse.
Par exemple : "NON (x<3)" sera vraie si x>=3
3. Boucle
Définition
Une boucle permet de répéter un traitement un certain nombre de fois.
Boucle tant que
instructions
fin tant que
L'algorithme ci-dessus effectuera les instructions tant que la condition sera vraie. Dès que la condition devient fausse, on se branchera sur l'instruction suivant le fin tant que.
Exemple
nombre, somme: nombres
réponse: texte
début algorithme
continuer ← "oui" // initialisation
écrire 'entrez un nombre :'
lire nombre
somme ← nombre
tant que continuer = "oui"
écrire "entrez le nombre suivant"
lire nombre
somme ← somme + nombre
écrire "voulez-vous continuer (oui/non)"
lire continuer
fin tant que
écrire "la somme des nombres entrés est" somme
fin algorithme
L'algorithme précédent demande à l'utilisateur d'entrer un premier nombre.
Puis il lui demande s'il veut entrer un autre nombre.
tant que l'utilisateur répond "oui", l'ordinateur lui demande un nouveau nombre qu'il additionne au contenu de la variable somme.
Dès que l'utilisateur répond autre chose que "oui", l'algorithme sort de la boucle, affiche le total et se termine.