Cours de Turbo Pascal 7


précédentsommairesuivant

Chapitre 6 - Structures répétitives

For ... := ... to ... do ...

Cette instruction permet d'incrémenter une variable à partir d'une valeur inférieure jusqu'à une valeur supérieure et d'exécuter une ou des instructions entre chaque incrémentation. Les extrema doivent être de type scalaire. La boucle n'exécute les instructions de son bloc interne que si la valeur inférieure est effectivement inférieure ou égale à celle de la borne supérieure.

Le pas de variation est l'unité et ne peut pas être changé.

Syntaxe :

 
Sélectionnez

For variable := borne_inferieure to borne_superieure do {instruction};

Autre syntaxe :

 
Sélectionnez

For variable := borne_inferieure to borne_superieure do
  begin
    ...
  end;

Exemple :

 
Sélectionnez

Program Exemple5;

Var i : Integer;

Begin
  For i := 10 to 53 do WriteLn ('Valeur de i : ', i);
End.

For ... := ... downto ... do ...

Cette instruction permet de décrémenter une variable à partir d'une valeur supérieure jusqu'à une valeur inférieure et d'exécuter une ou des instructions entre chaque décrémentation.
S'appliquent ici les mêmes remarques que précédement.

Syntaxe :

 
Sélectionnez

For variable := borne_superieure downto borne_inferieur do {instruction};

Autre syntaxe :

 
Sélectionnez

For variable := borne_superieure downto borne_inferieure do
  begin
    ...
  end;

Exemple :

 
Sélectionnez

Program Exemple6;

Var i : Integer;

Begin
  For i := 100 downto 0 do
    begin
      WriteLn ('Valeur de i : ', i );
    end;
End.

Repeat ... until ...

Cette boucle effectue les instructions placées entre deux bornes (repeat et until) et évalue à chaque répétition une condition de type booléenne avant de continuer la boucle pour décider l'arrêt ou la continuité de la répétition.

Il y a donc au moins une fois exécution des instructions.

Syntaxe :

 
Sélectionnez

Repeat
  ...
until condition_est_vraie;

Exemple :

 
Sélectionnez

Program Exemple7;

Var i : Integer;

Begin
  Repeat
    Inc(i);
    Writeln ('Boucle itérée ', i, ' fois.');
  until i > 20 ;
End.

Ce programme Exemple7 permet de répéter l'incrémentation de la variable i jusqu'à ce que i soit supérieure à 20.

Note :

L'instruction Inc permet d'incrémenter une variable d'une certaine valeur. L'instruction Dec permet au contraire de décrémenter une variable d'une certaine valeur. Si la valeur en question est 1, elle peut être omise.
Ces instructions permettent d'éviter la syntaxe : variable := variable + 1 et variable := variable - 1.

Syntaxe :

 
Sélectionnez

Inc(variable,nombre);
Dec(variable);   (* Décrémentation de 1 *)

While ... do ...

Ce type de boucle, contrairement à la précédente, évalue une condition avant d'exécuter des instructions.

C'est-à-dire qu'on peut ne pas entrer dans la structure de répétition si les conditions ne sont pas favorables.

Syntaxe :

 
Sélectionnez

While condition_est_vraie do {instruction};

Autre syntaxe :

 
Sélectionnez

While condition_est_vraie do
  begin
    ...
  end;

Exemple :

 
Sélectionnez

Program Exemple8;

Var 
  CodeCorrect : Boolean;
  Essai : String;

Const 
  LeVraiCode = 'password';

Begin
  CodeCorrect := False;
  While not CodeCorrect do
    begin
      Write('Entrez le code secret : ');
      Readln(Essai);
      if Essai = LeVraiCode then CodeCorrect := True;
    end ;
End.

Break

Il est possible de terminer une boucle For, While ou Repeat> en cours grâce à la commande Break lorsque celle-ci est placée au sein de la boucle en question.

Exemple :

 
Sélectionnez

Program Arret;

Var i, x : Integer;

Begin
  x := 0 ;
  Repeat
    Inc(i);
    Break;
    x := 50;
  until i > 10;
  WriteLn(i);
  WriteLn(x);
End.

L'exécution des instructions contenues dans la boucle repeat est stoppée à l'instruction Break, et donc x := 50; n'est jamais exécuté. En sortie de boucle, i vaudra donc 1 et x vaudra 0.

Continue

Continue interrompt l'exécution du tour de boucle en cours, et renvoie à l'instruction de fin du bloc d'instructions de la boucle, qui passe alors au tour suivant (ou s'arrête, si la condition d'arrêt est vraie).
Par exemple, avec le programme suivant :

 
Sélectionnez

Program test_continue;

Var
  i : Integer

Begin
  i := 0;
  while i < 13 do
    begin
      Inc(i);
      if i < 10 then Continue;
      WriteLn('i = ',i);
    end;
End.

on obtient comme résultat :

 
Sélectionnez

i = 10
i = 11
i = 12
i = 13

car la ligne

 
Sélectionnez

if i < 10 then Continue;

renvoie à la fin de la boucle si i est inférieur à 10, et renvoie donc au end; ,ce qui fait sauter le Writeln('i = ',i); et la boucle reprend au début tant que la condition de sortie reste fausse.

Le principe est le même pour les autres types de boucle.


précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2001-2013 Hugo Etievant. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.