Enseignement > Pascal > Cours > Structures itératives  

For ... : = ... To ... Do ...

Cette instruction permet d'incrémenter une variable à partir d'une valeur inférieur jusqu'à une valeur supérieur et d'exécuter une ou des instructions entre chaque incrémentation. Les valeurs extrémum doivent être des entiers (integer) ou des caractères de la table ASCII (char). De manière plus générale, les bornes doivent être de type intervalle c'est-à-dire qu'ils doivent êtres de type entier ou compatibles avec un type entier. La boucle n'exécute les instructions de son bloc interne que si la valeur inférieur est effectivement inférieur ou égale à celle de la borne supérieur. Le pas de variation est l'unité et ne peut pas être changé.
Syntaxe :

For variable := borne inférieur To borne supérieur Do
   
bloc instructions ;

Program exempleFor ;
Var i : integer ;
BEGIN
For i := 10 To 20 Do writeln ('Valeur de i : ', i ) ;
END.

variante For ... : = ... DownTo ... Do ...

Cette instruction permet de décrémenter une variable à partir d'une valeur supérieur jusqu'à une valeur inférieur 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 :

For variable := borne supérieur DownTo borne inférieur Do
  
bloc in=nstruction
;

Repeat ... Until ...

Cette strcuture effectue les instructions placées entre repeat et until et évalue à chaque répétition une condition de type booléenne 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. Il est nécessaire qu'au moins une variable intervenant lors de l'évaluation de fin de boucle soit sujette à modification à l'intérieur de la structure exécutive interne à la boucle.
Syntaxe :

Repeat
...
commandes
...
Until expression booléenne;

Program exemple_Repeat
;
Uses crt ;
var c: char
BEGIN
   writeln('Appuyer sur ESPACE pour terminer');
  
Repeat
      c := readkey;
   Until c=' ';
END.

While ... Do ...

Contrairement à la précédente, cette structure é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. De plus, au moins une variable de l'expression d'évaluation doit être sujette à modification au sein de la structure de répétition pour qu'on puisse en sortir.
Syntaxe :

While expression booléenne Do 
  
bloc instructions ;

Program palindrome ;
{un palindrome est un mot qui est identique si on le lit de gauche à droite ou de droite à gauche. Kayak est un palindrom}
Var mot : string ;
    i1,i2:integer
BEGIN
  Write('Entrer un mot :');readln(mot);
  i1=1; i2=length(mot);
  while (i1<i2) and (mot[i1]=mot[i2]) do
    begin
      i1:=i1+1;
      i2:=i2-1;
   end;
  if mot[i1]=mot[i2]
     then writeln(mot,' est un palidrome')
     then writeln(mot,' n'est pas un palidrome')
END.