Instructiunea repeat
Instrucţiunea REPEAT este un ciclu cu test final care indică repetarea unei secvenţe de instrucţiuni în funcţie de valoarea unei expresii booleene.
Instrucţiunea case are două forme:
REPEAT
secvenţă
UNTIL condiţie;
unde secvenţă reprezintă instrucţiunile din corpul instrucţiunii REPEAT, trebuie să fie de tip boolean şi se evaluează după fiecare iteraţie.
Atenţie: spre deosebire de While, ieşirea din această instrucţiune se face atunci cînd valoarea condiţiei este True.
Principiul de executie:
-
se execută secvenţa de instrucţiuni;
-
se evaluează expresia logică;
-
dacă rezultatul evaluării este FALSE atunci se execută din nou secvenţa de instrucţiuni, în caz contrar se trece mai departe;
-
secvenţa de instrucţiuni se execută cel putin o dată, după care se pune problema reluării sau nu a execuţiei, după evaluarea expresiei logice.
Diagrama de sintaxa:

Exemplu Program:
Program ce calculeaza cate numere pare si cate numere impare sunt in intervalul de la 1 la 1000.
Program IP; {IP - 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 par, impar, i: integer; {Declaram variabilele par, impar si i de tip integer - numere intregi}
begin {Inceputul programului}
clrscr; {Comanda ce va curata automat ecranul dupa executie}
textcolor(4); {Coloreaza textul programului in culoarea cu nr. 4 - red}
textbackground(7); {Coloreaza fundalul programului in culoarea cu nr. 7 - lightgray}
i:=1; {Ii atribuim variabilei i, cu care vom parcurge numerele de 1 la n , valoarea initiala 1}
par:=0; {Ii atribuim variabilei par, care va calcula numarul numerelor pare , valoarea initiala 0}
impar:=0; {Ii atribuim variabilei impar, care va calcula numarul numerelor impare , valoarea initiala 0}
repeat {Inceputul ciclului repeat}
if (i mod 2<>0) then {Daca i este impar }
inc(impar); {Adaugam la valoarea lui impar 1}
if (i mod 2=0) then {Daca i este par}
inc(par); {Adaugam la valoarea lui par 1}
i:=i+1; {Crestem valoarea lui i cu 1}
until i=1000; {Reincepe ciclul pana cand i=1000}
writeln('Sunt ', impar, ' numere impare in intervalul de la 1 la 1000'); {Afiseaza pe ecran "Sunt ", afiseaza valoarea lui impar, afiseaza " numere impare in intervalul de la 1 la 1000", trece in rand nou}
writeln('Sunt ', par, ' numere pare in intervalul de la 1 la 1000'); {Afiseaza pe ecran "Sunt ", afiseaza valoarea lui par, afiseaza " numere pare in intervalul de la 1 la 1000", 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:


