Instructiunea for
Instrucţiunea FOR este o instrucţiune repetitivă care permite execuţia repetată a unei instrucţiuni în funcţie de valoarea unui contor.
Nu este o instrucţiune strict necesară, ea poate fi simulată cu ajutorul instrucţiunii WHILE. Totuşi, majoritatea programatorilor preferă să utilizeze instrucţiunea FOR.
Instrucţiunea for are două forme:
1)FOR identificator:=expresie1 TO expresie2 DO instrucţiune;(CAZUL CRESCĂTOR)
2)FOR identificator:=expresie1 DOWNTO expresie2 DO instrucţiune;(CAZUL DESCRESCĂTOR)
Principiul de executie:
-
dacă valoarea obţinută în urma evaluării expresiei1 este egală cu valoarea obţinută în urma evaluării expresiei2, se atribuie variabilei de ciclare valoarea obţinută în urma evaluării expresiei1, se execută instrucţiunea abordată şi execuţia instrucţiunii FOR este încheiată;
-
dacă valoarea obţinută în urma evaluării expresiei1 este strict mai mică decît valoarea obţinută în urma evaluării expresiei2, se atribuie variabilei de ciclare valoarea obţinută în urma evaluării expresiei1 şi se trece la pasul următor;se execută instrucţiunea subordonată;
-
dacă valoarea reţinută de variabila de ciclare este strict mai mică decît valoarea obţinută în urma evaluării expresiei2, (evaluare efectuată la început) se adună 1 variabilei de ciclare şi se trece la executarea instrucţiunii subordonate; dacă valoarea reţinută de variabila de ciclare este egală cu valoarea obţinută în urma evaluării expresiei2, execuţia instrucţiunii FOR se încheie.
Diagrama de sintaxa:

Exemplu Program:
Program ce calculeaza cate numere se impart la 3 sau 4 din intervalul de la 1 la 1000.
Program Divizor; {Divizor - numele programului}
uses crt; {Directiva ce permite utilizarea bibliotecii CRT, adica pot fi executate astfel de functii, precum: curatarea ecranului dupa executare, adaugarea culorilor, sunetelor in program etc.}
var n3, n4, i: integer; {Declaram variabilele n3, n4 si i de tip integer - numere intregi}
begin {Inceputul programului}
clrscr; {Comanda ce va curata automat ecranul dupa executie}
textcolor(5); {Coloreaza textul programului in culoarea cu nr. 5 - magenta}
textbackground(7); {Coloreaza fundalul programului in culoarea cu nr. 7 - lightgray}
n3:=0; {Ii atribuim variabilei n3, care va calcula numarul de numere care se impart la 3, valoarea initiala 0}
n4:=0 {Ii atribuim variabilei n4, care va calcula numarul de numere care se impart la 4, valoarea initiala 0}
for i:=1 to 1000 do {Cat i<=1000 se efectueaza}
begin {Inceputul ciclului}
if (i mod 3=0) then inc(n3); {Daca i este divizibil prin 3, atunci se adauga la valoarea lui n3, 1}
if (i mod 4=0) then inc(n4); {Daca i este divizibil prin 4, atunci se adauga la valoarea lui n4, 1}
end; {Sfarsitul ciclului; intoarcerea la sintaxa for}
writeln('La 3 se impart: ',n3, ' numere'); {Afiseaza pe ecran "La 3 se impart: ", afiseaza valoarea lui n3, afiseaza "numere", trece in rand nou}
writeln('La 4 se impart: ',n4, ' numere'); {Afiseaza pe ecran "La 4 se impart: ", afiseaza valoarea lui n4, afiseaza "numere", trece in rand nou}
writeln('Autor: Mirela Burduja'); {Se afiseaza pe ecran fraza: " Autor: Mirela Burduja", trece in rand nou}
readkey; {la apasarea unei taste, trece din ecranul negru in ecranul albastru}
end. {Sfarsitul programului}


Screenshot-uri:

