for et pour se sert d’une variable d’incrémentation par
exemple j (doit être déclarée comme variable locale).
Première syntaxe
On précise entre des parenthèses et en les séparant par
un point virgule, la valeur de départ, la condition d’arrêt
et la façon dont on incrémente la variable d’incrémentation, puis on
met un bloc d’instructions :
for permet de faire plusieurs fois un bloc d’instructions selon
la valeur de la variable d’incrémentation.
for (j:=j1;j<=j2;j:=j+3) {<instructions> }
Par exemple :
S:=0;for (j:=3;j<20;j:=j+3) {S:=S+j;}
Deuxième syntaxe
On commence par for, puis, on précise avec les mots from, to
et step, la valeur de départ, la condition d’arrêt et la faç on
dont on incrémente cette variable d’incrémentation, puis on met les
instructions à effectuer entre do et end_for :
for j from j1 to j2 step p do <instructions> end_for;
Ou on utilise sa traduction. On commence par pour, puis, on précise avec
les mots de, jusque et pas, la valeur de départ, la
condition d’arrêt et la façon dont on incrémente cette variable
d’incrémentation, puis on met les instructions à effectuer entre faire
et fpour :
pour j de j1 jusque j2 pas p faire <instructions> fpour;
Par exemple :
S:=0;for j from 3 to 20 step 3 do S:=S+j; end_for;
S:=0;pour j de 3 jusque 20 pas 3 faire S:=S+j; fpour;
Troisième syntaxe
On peut à l’aide d’un ensemble, d’une liste ou d’une plage de valeurs A
donner les différentes valeurs que doit prendre la variable d’incrémentation j
en mettant :
for j in A do ....end_for;.
ou sa traduction :
pour j in A faire <instructions> fpour;
Par exemple lorsque j s’incrémente de 1:
S:=0;for j in 1..5 do S:=S+j; end_for;
ou sa traduction
S:=0;pour j in 1..5 faire S:=S+j; fpour;
lorsque j décrit un ensemble de valeurs :
A:=[3,6,9,15,30,45];S:=0;for j in A do S:=S+j; end_for;
ou sa traduction
A:=[3,6,9,15,30,45];S:=0;pour j in A faire S:=S+j; fpour;
ou
A:=%3,6,9,15,30,45%;S:=0;for j in A do S:=S+j; end_for;
ou sa traduction
A:=%3,6,9,15,30,45%;S:=0;pour j in A faire S:=S+j; fpour;
Attention
Ne pas choisir i comme variable d’incrémentation car
i représente un nombre complexe !!!
On tape :
somfor(n):={ local j,s:=0; for (j:=1;j<=n;j++){ s:=s+1/j; } return s; }
sompour(n):={ local j,s:=0; pour j de 1 jusque n faire s:=s+1/j; fpour retourne s; }
puis:
ou
On obtient :