La structure Tant que … faire …:
a. Activité :
On se propose de calculer le PGCD de deux entiers positifs en utilisant la méthode de différences : Le plus grand des entiers A et B reçoit la valeur de la différence des entiers jusqu’à A = B. Le PGCD est égal alors à A (ou B).
Analyse et spécification :
Résultat : Ecrire(A)
Traitement : il s’agit d’un traitement itératif dont le nombre d’itérations est inconnu à l’avance.
On a besoin d’une structure itérative à condition d’arrêt avec - traitement itératif : Si A > B alors
A A – B Sinon
B B-A Finsi
- Condition d’arrêt : A = B.
A, B = Répéter
A, B = Donnée Jusqu’à (A>0) et (B>0) Constatation :
Le traitement itératif peut ne pas avoir lieu si A et B donnés sont égaux. On utilise alors la structure Tant que … faire …
b. Syntaxe :
En algorithmique :
………. {Init}
Tant que Condition Faire Instruction 1
Instruction 2 ………..
Instruction N Fin Tant que
En Pascal :
……….{Init} ; While Condition Do Begin
Instruction 1 ; Instruction 2 ; ………..
Instruction N ; End ;
Remarques
Dans cette boucle, Condition sera tout d’abord évaluée. Si elle a la valeur Vrai, alors le traitement itératif sera exécuté, sinon le traitement itératif ne s’exécutera pas.
Dans la structure Tant que … Faire …, Condition est la négation de la condition d’arrêt.
Exemple : Si la condition d’arrêt est X > 0, alors on écrit Tant que X ≤ 0 Faire …………
Traitement itératif Traitement itératif
Le traitement itératif peut ne pas avoir lieu si la première évaluation de Condition donne la valeur Faux.
Condition peut être simple ou composée.
Reprenons l’activité :
La condition d’arrêt est A=B. Donc, dans la structure Tant que …. Faire …, on donne la négation de cette condition : A ≠ B
Algorithme : 0) Début PGCD 1) Répéter
Ecrire (" donner deux entiers positifs ")
Lire (A,B)
Jusqu’à (A > 0) et (B > 0) 2) Tant que A ≠ B faire
Si A > B Alors A A – B Sinon
B B –A Finsi
Fin Tant que
3) Ecrire (" Le PGCD est ", A)