Cours NF01
Cours

Boucles à bornes non définies : Comparaison de deux boucles

Les deux boucles peuvent être choisies indifféremment. Cependant, l'une est le contraire de l'autre, au niveau de la condition d'arrêt :

  • Tant que condition1 est vraie, faire bloc d'instructions

  • Répéter bloc d'instructions, jusqu'à ce que condition2 soit vraie Dans ce cas, condition1 est l'opposé de condition2

les deux boucles suivantes sont équivalentes :

  • tant que (i <> 10) faire i <- i+1 (on fait varier i jusqu'à 10)

  • répéter i <- i+1 jusqu'à (i=10)

Il est toujours équivalent d'utiliser une boucle TANT QUE ou une boucle REPETER.

Cependant, il existe une différence entre les deux boucles :

Dans le cas d'une boucle REPETER ... JUSQU'A, le bloc d'instructions est effectué au moins une fois, ce qui n'est pas forcément vrai pour une boucle TANT QUE.

En effet, pour ce dernier type de boucle, si la condition est fausse dès le départ, le bloc d'instructions ne sera pas du tout exécuté. En revanche, avec une boucle REPETER ... JUSQU'A, si la condition est fausse dès le départ, le bloc d'instructions sera quand même exécuté une fois.

Les boucles REPETER et TANT QUE peuvent être utilisées même si les bornes sont définies. Il est cependant préférable d'utiliser dans ce cas une boucle POUR.

Reprenons l'exemple de la paie de N personnes

  1. Données N, PR, PL

  2. Initialiser I avec la valeur 1

  3. Tant  que  I  est  inférieur  ou égal à  N, faire:

    1. Lire NH, SH

    2. SB  <-  SH x NH

    3. R <-  SB x PR

    4. Si  R > PL alors R  <-  PL

    5. SN  <-  SB - R

    6. Ecrire  SN

    7. Donner à  I  la valeur suivante.

  4. Fin de l'itération

Il en est de même avec Répéter...jusqu'à...

  1. Données N, PR, PL

  2. Initialiser I avec la valeur 1

  3. Répéter les instructions suivantes :

    1. Lire NH, SH

    2. SB  <-  SH x NH

    3. R <-  SB x PR

    4. Si  R > PL alors R  <-  PL

    5. SN  <-  SB - R

    6. Ecrire  SN

    7. Donner à  I  la valeur suivante.

  4. Jusqu'à ce que I=N

Chapitre 6 - TableauxEn Pascal : repeat ... until
AccueilRéalisé avec SCENARI