Sunteți pe pagina 1din 2

prof.

Mihaela Ildegez

TEORIE- Instrucțiunea while


Instrucțiunea while este o structură repetitivă cu număr necunoscut de pași și test inițial.

Sintaxa:

while (Expresie)
Instructiune;

Mod de execuție:

1. Se evaluează Expresie
2. Dacă Expresie este nenulă
o Se execută Instructiune;
o Se reia pasul 1.
3. Dacă Expresie este nulă, se trece la instrucțiunea de după while.

Observații

 Instructiune; se execută cât timp Expresie este nenulă – condiție adevărată.


 Dacă Expresie este de început vidă, Instructiune; nu se execută deloc.
 Instructiune; poate fi orice fel de instrucțiune, dar una singură. Dacă sunt
necesare mai multe instrucțiuni, se va folosi instrucțiunea compusă.
 Este necesar ca cel puțin o variabilă care apare în Expresie să-și modifice valoarea
în Instructiune;. Altfel se obține o buclă infinită.

APLICATII IF+WHILE(Suma lui GAUSS)


Putină recapitulare de la matematică:

1. Calculați matematic și apoi scrieți un program C++ care să calculeze suma


primelor n numere naturale:

n∗(n+1)
S=0+1+2+3+…+n = 2

folosind formula de calcul si apoi folosind instrucțiunea while.

2. Calculați matematic și apoi scrieți un program C++ care să calculeze suma primelor n numere
naturale pare.
n∗(n+1)
S=2+3+6+8+…+2n = 2*(1+2+3+…+n) = 2* = n ∗ (n + 1)
2

folosind formula de calcul si apoi folosind instrucțiunea while.


prof. Mihaela Ildegez

3. Calculați matematic și apoi scrieți un program C++ care să calculeze suma primelor n numere
naturale pare impare:

S=1 + 3 + 5 + 7 + 9 +…+ (2*(n-1)+1) +(2*n+1)=

= (2*0+1) +(2*1+1)+(2*2+1)+… +(2(n-1)+1) +(2n+1)=

=2*0 + 2*1 + 2*2 + 2*3+…+2n +1+1+1+…+1=

=2*(1+2+3+…+n) + n=

n∗(n+1)
= 2∗ + n=
2

= n ∗ (n + 1)+n=

=n*(n+2)

folosind formula de calcul si apoi folosind instrucțiunea while.

Probleme de concurs:
 #1943 Bacterie, Concursul Urmașii lui Moisil, Iași, 2017
 #1044 Piramide, OJI, clasa V, 2014
 #2448 Patrate3, OJI, clasa V, 2018

TEMĂ: Suma numerelor naturale din intervalul [a,b].

Indicații :
𝑎∗(𝑎−1)
 Aplică suma lui Gauss pentru a calcula suma următoare: S1=1+2+…+(a-1) = 2
𝑏∗(𝑏+1)
 Aplică suma lui Gauss pentru a calcula suma următoare : S2=1+2+…+(b-1)+b = 2
𝑏∗(𝑏+1) 𝑎∗(𝑎−1)
 Calculează: S=S2-S1= -
2 2