Vous êtes sur la page 1sur 18

Algorithmique et programmation

en Deust @mrl
Itérations (boucles)
Types numériques simples (suite)

1
Itérations
• objectif
répéter une ou plusieurs instructions
sous certaines conditions
• quelles instructions
• comment répéter

2
Exemple minimum
donner à une variable n les valeurs successives
1, 2, 3 et 4
méthode simple :

n:=1;
n:=2;
n:=3;
n:=4;

3
Exemple minimum
N vaut 1 P ha se initia le
méthode avec boucle :

n:=1;
on utilise N a u gm e nte d e 1 P ha se ré p é té e
répéter n ici
n:=n+1;
jusqu’à ce que F a u t-il
n dépasse 4 oui ré p é te r ? non

4
Boucle Repeat
• répéter...jusqu’à ce qu’une condition soit
remplie
• repeat
instructions
until exp logique;

5
Repeat (exemple 1)

var n:integer;
begin
n:=1;
repeat
n:=n+1;
until n>4;
end;
6
Boucle While
• tant qu’une condition est remplie, faire ...
• while exp logique do begin
instructions
end;

7
While (exemple 1)
var n:integer;
begin
n:=1;
while n<=4 do begin
n:=n+1;
end;
end;
8
Boucle For
• pour les valeurs successives d’un compteur
faire ...
• For variable := début To fin do begin
instructions
end;
• la variable compteur
• début et fin
cas Downto
9
For (exemple 1)
var n:integer;
begin
for n:=1 to 4 do begin
end;
end;

10
Premier bilan
• repeat : test avant de répéter
• while : test avant l’entrée
• for : nombre de rotations bien contrôlé
compteur géré automatiquement
mais entier et variant de 1 en 1
-1 si downto

11
While (exemple 2)
• on veut déplacer vers la droite un composant
Label tant que son bord gauche n'a pas atteint
ou dépassé une position qu’on se fixe
• algorithme :
tant que propriété Left du composant<=position
on modifie Left

12
While (exemple 2)
var position:integer;
begin
position:=20; {par exemple}
while Label1.Left<=position
do begin
Label1.Left:=Label1.Left+1;
end;
end;
13
Repeat (exemple 2)
• on veut déplacer un composant Label vers
la gauche jusqu'à ce qu'il touche le bord
gauche de la fiche
• algorithme :
on place le bord gauche du composant (Left),
on répète
la diminution de Left de un
jusqu'à ce que Left soit égal à zéro
14
Repeat (exemple 2)

begin
Label1.Left:=50; {par exemple}
repeat
Label1.Left:=Label1.Left-1;
until Label1.Left=0;
end;

15
For (exemple 2)
• on veut calculer la somme des 20 premiers
nombres entiers positifs
• algorithme :
on initialise cette somme à zéro,
pour chaque valeur de p allant de 1 à 20
on ajoute p à la somme précédente

16
For (exemple 2)
var p,Somme:integer;
begin
Somme:=0;
for p:=1 to 20 do begin
Somme:=Somme+p;
end;
end;
17
Types entiers
• Byte 0 à 256 1 octet
• Integer -2 milliards à 2 milliards 4
octets
(rappel) Types non entiers

valeur abs. chiffres octets


• Real 10-324 .. 10308 15-16 8
• Extended 10-4932 .. 104932 19-20 10
les propriétés Value rencontrées sont de
type extended 18

Vous aimerez peut-être aussi