top of page

Instructiunea while

 

Instrucţiunea WHILE este ciclul cu test iniţial care conţine o expresie booleană care controlează execuţia repetată a altei instrucţiuni.

 

 

 

InstrucÅ£iunea while are forma: 

 

 

While <expresie> do <instrucţiune>;

unde <expresie> trebuie sa fie de tip boolean, iar <instrucÅ£iune> poate fi orice instrucÅ£iune Pascal , ce se va executa atît timp cît <expresie> ia valoarea TRUE. Dacă iniÅ£ial <expresie> are valoarea false, <instrucÅ£iune> nu se va executa niciodată. 

 

 

 

 

 

 

 

 

  Principiul de executie:
  • se evaluează expresia logică;
  • dacă valoarea expresiei este False, se iese din instrucÅ£iunea WHILE,dacă valoarea expresiei este True, se execută instrucÅ£iunea,apoi se revine la 1;
  • instrucÅ£iunea cere execuÅ£ia repetată a unei instrucÅ£iuni PASCAL în funcÅ£ie de valoarea de adevăr a expresiei logice. Dacă valoarea iniÅ£ială este FALSE, instrucÅ£iunea WHILE nu se execută nici o dat
  • De remarcat că ieÅŸirea din instrucÅ£iune se va face doar cînd condiÅ£ia va returna valoarea False.
  • InstrucÅ£iunea WHILE în limbaj natural ar suna: Cît timp condiÅ£ia_e_adevarată Fă ceva.

Diagrama de sintaxa:

Exemplu Program:

Program ce calculeaza media aritmetica a numerelor pare mai mari ca 50 si produsul numerelor impare mai mici ca 50 (n=1000).

 

Program P50; {P50 - 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 i, nr: integer; {Declaram variabilele nr si de tip integer - numere intregi}

par, p, ma: real; {Declaram variabilele ma, par si de tip real - numere reale}

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}

par:=0; {Ii atribuim variabilei par, care va calcula suma numerelor pare , valoarea initiala 0}

p:=1; {Ii atribuim variabilei p, care va calcula produsul numerelor impare , valoarea initiala 0}

i:=1; {Ii atribuim variabilei i, cu care vom parcurge numerele de 1 la n , valoarea initiala 1}

nr:=0; {Ii atribuim variabilei nr, care va calcula numarul numerelor pare , valoarea initiala 0}

while i<=1000 do {Daca i<=1000 intra in ciclu}

begin {Inceputul ciclului}

if (i<=50) and (i mod 2<>0) then {Daca i<=50 si i este impar }

p:=p*i; {Inmultim valoarea lui p cu valoarea lui i }

if  (i>50) and (i mod 2=0) then {Daca i>50 si i este par}

begin {Inceputul ciclului}

par:=par+i; {Adaugam la valoarea lui par, valoarea lui i}

inc(nr); {Adaugam la valoarea lui nr 1}

end; {Sfarsitul ciclului; intoarcere la sintaxa if}

i:=i+1; {Crestem valoarea lui i cu 1}

end; {Sfarsitul ciclului; intoarcere catre sintaxa while}

ma:=par/nr; {Calculam media aritmetica: impartim valoarea lui par la valoarea lui nr}

writeln('Produsul numerelor impare <=50: ', p:3:2); {Afiseaza pe ecran  "Produsul numerelor impare <=50: ", afiseaza valoarea lui pe 3 pozitii, cu 2 cifre dupa virgula, trece in rand nou}

writeln('Media aritmetica a numerelor pare >50: ', ma:3:2); {Afiseaza pe ecran  "Media aritmetica a numerelor pare >50: ", afiseaza valoarea lui ma pe 3 pozitii, cu 2 cifre dupa virgula, 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:

© Creat in 2015 de Mirela. Toate drepturile rezervate!!

bottom of page