Repetă o instrucțiune sau o mulțime de instrucțiuni cât timp este adevărată o condiție. Fiecare repetare a instrucțiunilor (adică fiecare pas) se numește iterație iar programul se numește iterativ. Mulțimea totală de iterații realizate pentru ajungerea la un rezultat se numește buclă.

Vom realiza un program care:
- Afișează primele n numere naturale.
- Face suma primelor n numere naturale și o afișează.
- Face produsul(factorialul) primelor n numere naturale și îl afișează.
#include <iostream> // Pentru input/output
using namespace std; // Elimină nevoia de a scrie "std::" înainte de cin și cout
int main()
{
int i, n;
cout << "Dati numarul n="; // Afișează mesajul pentru utilizator
cin >> n; // Citește valoarea introdusă în variabila n
i = 1;
while (i <= n)
{
cout << i << " "; // Afișează numerele de la 1 la n separate prin spațiu
i++;
}
int suma = 0;
i = 1;
while (i <= n)
{
suma += i; // Adună i la suma totală
i++;
}
cout << "\nSuma=" << suma; // Afișează suma numerelor
unsigned int produs = 1;
i = 1;
while (i <= n)
{
produs *= i; // Înmulțește produsul cu i (calcul factorial)
i++;
}
cout << "\nFactorial=" << produs; // Afișează factorialul
return 0;
}
Explicație linie cu linie:
#include <iostream>
Include biblioteca standard C++ pentru funcții de intrare/ieșire (înlocuiește <stdio.h> din C).
using namespace std;
Face posibilă utilizarea cin, cout etc. fără a mai scrie std:: în fața lor. Este util pentru cod simplu sau începători, dar evitat în proiecte mari (poate duce la conflicte de nume).
int main()
Este punctul de pornire al programului. Toată logica se execută în această funcție.
{
Deschide blocul de cod al funcției main (corpul de instructiuni al functiei main()).
int i, n;
Declară două variabile de tip int:
nva fi numărul introdus de utilizator,iva fi folosit în bucle pentru numărare.
cout << "Dati numarul n=";
Afișează un mesaj pe ecran pentru ca utilizatorul să introducă un număr.
cin >> n;
Citește valoarea introdusă de utilizator și o stochează în variabila n.
i = 1;
Inițializează variabila i cu 1 înainte de prima buclă.
while (i <= n)
Buclă care se repetă cât timp i este mai mic sau egal cu n.
{
cout << i << " ";
i++;
}
Afișează fiecare număr de la 1 la n, urmat de un spațiu, apoi îl incrementează.
int suma = 0;
Inițializează variabila suma cu 0 pentru a calcula suma numerelor.
i = 1;
Resetează i la 1 pentru următoarea buclă while.
while (i <= n)
{
suma += i;
i++;
}
Adună toate valorile de la 1 la n și stochează rezultatul în suma.
cout << "\nSuma=" << suma;
Afișează suma calculată.
unsigned int produs = 1;
Declară variabila produs, de tip unsigned int (fără semn), și o inițializează cu 1 pentru calculul factorialului.
i = 1;
Resetează i la 1 pentru bucla care va calcula factorialul.
while (i <= n)
{
produs *= i;
i++;
}
Înmulțește toate valorile de la 1 la n, obținând factorialul (n!).
cout << "\nFactorial=" << produs;
Afișează valoarea factorialului.
return 0;
}
Încheie funcția main. 0 înseamnă că programul s-a executat cu succes.
Exemplu de rulare:
Dacă introduci n = 4, programul va afișa:
Dati numarul n=1 2 3 4
Suma=10
Factorial=24
Temă:
- Să se explice programul de mai sus linie cu linie.
- Să se modifice programul de mai sus astfel încât să se elimine de tot variabila contor i și să se păstreze doar variabila n (nota 10).
