CHAPITRE 5 : LA BOUCLE REPETER...JUSQU'A

La boucle REPETER…JUSQU'A execute un bloc au moins une fois, puis le repete tant que la condition de sortie n'est pas satisfaite.

1. Le principe

Contrairement a TANTQUE, la condition est verifiee a la fin. On dit que REPETER possede une condition de sortie.

Debut de la boucle
        │
        ▼
Execution des instructions
        │
        ▼
Test de la condition
        │
   ┌────┴────┐
 Faux      Vrai
   │         │
   ▼         ▼
Retour     Sortie

2. Syntaxe

Repeter

    Instructions

Jusqu'a(condition)

Il n'y a pas de FinRepeter : la boucle se termine directement par Jusqu'a(…).

3. Premier exemple

i <- 1;

Repeter

    Ecrire(i);
    i <- i + 1;

Jusqu'a(i > 5)
Iterationi affichei apresCondition i > 5
112Faux
223Faux
334Faux
445Faux
556Vrai → arret

4. Pourquoi au moins une execution ?

Le test a lieu apres les instructions. Meme si la condition est deja vraie au depart, la premiere execution a lieu.

i <- 10;

Repeter
    Ecrire(i);
Jusqu'a(i > 5)

// Affiche : 10

5. La difference avec TANTQUE

Comparons le meme cas de depart.

i <- 10;

TantQue(i <= 5) Faire
    Ecrire(i);
FinTantQue

// Affiche : rien du tout
i <- 10;

Repeter
    Ecrire(i);
Jusqu'a(i > 5)

// Affiche : 10

La difference est essentielle, et c'est une question d'examen classique.

6. La saisie controlee

C'est l'usage le plus naturel de cette boucle : on doit forcement demander une premiere fois.

Repeter

    Lire(note);

Jusqu'a(note >= 0 ET note <= 20)

La saisie est repetee tant que la note n'est pas valide.

7. Un calcul iteratif : la methode de Newton-Raphson

Cette methode calcule une approximation d'une racine carree. On repete le calcul jusqu'a atteindre la precision voulue.

k <- 0;

Repeter

    xn  <- (x0 + c/x0) / 2;
    pas <- x0;
    x0  <- xn;
    k   <- k + 1;

Jusqu'a(abs(xn - pas) <= prec)

Le principe : une estimation est calculee, l'erreur est mesuree, et si elle reste trop grande une nouvelle iteration est lancee. Une premiere estimation est forcement necessaire : REPETER est donc la structure adaptee.

8. Les erreurs frequentes

  • Oublier de modifier la variable de controle : la condition n'est jamais satisfaite, la boucle devient infinie.
  • Ecrire une mauvaise condition de sortie. Avec REPETER, on ecrit la condition qui met fin a la boucle, et non celle qui la poursuit.
  • Confondre condition d'arret et condition de repetition. C'est l'erreur la plus courante au passage de TANTQUE a REPETER.

A retenir

  • REPETER…JUSQU'A possede une condition de sortie
  • Le bloc est execute au moins une fois
  • La condition est testee a la fin de chaque iteration
  • Structure adaptee aux saisies controlees et aux calculs iteratifs

Exercices d'application

Exercice 1. Saisie d'un age valideDemandez un age jusqu'a obtenir une valeur entre 0 et 120. Utilisez REPETER et expliquez pourquoi c'est le bon choix.
Exercice 2. Deviner un nombreL'ordinateur pense a un nombre. L'utilisateur propose jusqu'a trouver. Affichez « plus grand » ou « plus petit ».
Exercice 3. Comparer les deux bouclesEcrivez le meme affichage de 1 a 5 avec TANTQUE puis avec REPETER. Partez ensuite de i <- 10 et comparez les resultats.

Cherchez avant de regarder la solution : c'est en butant sur les difficultes que l'on progresse.

Questions / Réponses

Aucune question. Soyez le premier à poser une question.
★ ★ ★ ★ ★
2 votes. Moyenne 5 sur 5.

Ajouter un commentaire

Anti-spam