pentru

Structura repetitivă pentru este o buclă cu test inițial, unde numărul de pași este cunoscut.

Asemănător celorlalte structuri repetitive, pentru tratează un „caz de bază”, pentru a părăsi bucla după un anumit număr de pași de execuție.

Reprezentare grafică

Diagramă structura repetitivă pentru

Structura se folosește de un iterator (contor), care își modifică valoarea (pas), fiind din ce în ce mai aproape de condiția de oprire odată cu fiecare buclă executată.


Sintaxă

┌─pentru <contor> <- <valoare_inițială>, <valoare_finală> [,<pas>] execută
   <instrucțiuni>
└■

De unde interpretăm:

  • <contor> este indicele pe care îl folosim să ținem evidența parcurgerii buclei;
  • <valoare_inițială> este prima valoare pe care o primește contorul (la prima iterație);
  • <valoare_finală> este valoarea contorului la care se va realiza ultima execuție a buclei;
  • <pas> este un argument opțional, care reprezintă valoarea adunată la contor după finalizarea unei iterații. Dacă lipsește, acesta este considerat implicit ca fiind +1+1.

Atenție! În pseudocod, al doilea argument din structura pentru reprezintă direct valoarea finală pentru contor, nu o condiție de oprire propriu-zisă (cu valoare logică), așa cum este implementată structura echivalentă for în C++, sau alte limbaje de programare.


Publicitate

Implementare

Buclele de tip pentru sunt ideale pentru situațiile în care știm exact câte repetări vor fi necesare, cum ar fi:

  • parcurgerea elementelor unui vector;
  • efectuarea unei operații de nn ori;
  • generarea unei secvențe numerice.

Exemplul 1

Enunț: Se citește un număr natural nn. Să se afișeze descrescător numerele naturale impare mai mici sau egale cu nn.

citește n
┌─dacă n % 2 = 0 atunci
   n <- n - 1
└■
┌─pentru i <- n, 1, -2 execută
   scrie i, " "
└■
> 11
11 9 7 5 3 1 
> 8
7 5 3 1 

Prima verificare din algoritm ne asigură că valoarea cu care inițializăm mai apoi contorul este impară.

În structura pentru, pornim de la valoarea citită, până la cifra 11, cu pasul 2-2 la fiecare iterație. Pornind de la un număr impar întotdeauna, putem fi siguri că ceea ce afișăm este tot un număr impar și conform cu enunțul exemplului.

Exemplul 2

Enunț: Se citește un număr natural nenul nn. Să se afișeze suma S=(1)+(12)+(123)+...+(123...n)S = (1) + (1 * 2) + (1 * 2 * 3) + ... + (1 * 2 * 3 * ... * n).

citește n
s <- 0
p <- 1
┌─pentru i <- 1, n execută
   p <- p * i
   s <- s + p
└■
scrie s
> 5
153
> 3
9

La fiecare pas ținem minte actualul factorial pe care îl adunăm la sumă. Deoarece argumentul pentru „pas” lipsește în structura pentru, acesta este considerat implicit 11.