180 likes | 304 Views
Algorithmique et programmation en Deust @mrl. Itérations (boucles) Types numériques simples (suite). Itérations. objectif répéter une ou plusieurs instructions sous certaines conditions quelles instructions comment répéter. Exemple minimum. donner à une variable n les valeurs successives
E N D
Algorithmique et programmation en Deust @mrl Itérations (boucles) Types numériques simples (suite)
Itérations • objectifrépéter une ou plusieurs instructions sous certaines conditions • quelles instructions • comment répéter
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;
Exemple minimum méthode avec boucle : n:=1; répéter n:=n+1; jusqu’à ce que n dépasse 4 on utilise n ici
Boucle Repeat • répéter...jusqu’à ce qu’une condition soit remplie • repeat instructionsuntil exp logique;
Repeat (exemple 1) var n:integer; begin n:=1; repeat n:=n+1; until n>4; end;
Boucle While • tant qu’une condition est remplie, faire ... • while exp logique do begin instructionsend;
While (exemple 1) var n:integer; begin n:=1; while n<=4 do begin n:=n+1; end; end;
Boucle For • pour les valeurs successives d’un compteur faire ... • For variable := début To fin do begin instructionsend; • la variable compteur • début et fin cas Downto
For (exemple 1) var n:integer; begin for n:=1 to 4 do begin end; end;
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é automatiquementmais entier et variant de 1 en 1-1 si downto
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
While (exemple 2) var position:integer; begin position:=20; {par exemple} while Label1.Left<=position do begin Label1.Left:=Label1.Left+1; end; end;
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
Repeat (exemple 2) begin Label1.Left:=50; {par exemple} repeat Label1.Left:=Label1.Left-1; until Label1.Left=0; end;
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
For (exemple 2) var p,Somme:integer; begin Somme:=0; for p:=1 to 20 do begin Somme:=Somme+p; end; end;
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 10les propriétés Value rencontrées sont de type extended