Instrucțiunea while în C++

🎯 Introducere în instrucțiunea while

Ce este instrucțiunea while?

Instrucțiunea while este o structură de control repetitivă care execută un bloc de cod atâta timp cât o condiție specificată este adevărată (true).

Sintaxa generală:

while (condiție) {
// instrucțiuni care se repetă
}

Exemplu simplu:

int i = 1;
while (i <= 5) {
    cout << "Numărul: " << i << endl;
    i++; // incrementare
}

Acest cod va afișa numerele de la 1 la 5.

🎮 Activități de verificare

Activitatea 1: Identifică rezultatul

Ce va afișa următorul cod?

int x = 3;
while (x > 0) {
    cout << x << " ";
    x--;
}

Introdu rezultatul (valorile separate prin spațiu)

Activitatea 2: Completează codul

Completează condiția pentru a afișa numerele pare de la 2 la 10:

int num = 2;
while (___________) {
    cout << num << " ";
    num += 2;
}

Introdu condiția

Activitatea 3: Analiză logică

Câte iterații va face următoarea buclă while?

int cnt = 10;
while (cnt >= 5) {
    cnt -= 2;
}

Numărul de iterații

⚙️ Structura și funcționarea while

Cum funcționează instrucțiunea while?

Instrucțiunea while urmează următorii pași:

  1. Evaluarea condiției - Se verifică dacă condiția este adevărată
  2. Execuția blocului - Dacă condiția este true, se execută instrucțiunile din bloc
  3. Revenirea la pasul 1 - După execuția blocului, se revine la evaluarea condiției
  4. Ieșirea din buclă - Când condiția devine false, bucla se oprește

Exemplu cu explicații pas cu pas:

int suma = 0;
int numar = 1;
while (numar <= 4) {
    suma += numar; // adaugă numărul la sumă
    numar++; // incrementează numărul
}
cout << "Suma: " << suma; // va afișa 10
⚠️ Atenție la bucla infinită! Dacă condiția nu devine niciodată false, bucla va rula la infinit.

🎮 Activități de verificare

Activitatea 1: Urmărește execuția

Care va fi valoarea finală a variabilei 'rezultat'?

int rezultat = 1;
int i = 1;
while (i <= 3) {
    rezultat *= i;
    i++;
}

Valoarea finală

Activitatea 2: Identifică eroarea

De ce următorul cod va crea o buclă infinită?

int x = 5;
while (x > 0) {
    cout << x << endl;
}

Activitatea 3: Calculează suma

Ce sumă va calcula următorul cod?

int suma = 0;
int n = 2;
while (n <= 8) {
    suma += n;
    n += 2;
}

Suma calculată

💡 Exemple practice și aplicații

Aplicații comune ale instrucțiunii while

1. Validarea input-ului utilizatorului:

int nota;
cout << "Introdu nota (0-10): ";
cin >> nota;
while (nota < 0 || nota > 10) {
    cout << "Nota invalidă! Încearcă din nou: ";
    cin >> nota;
}

2. Calculul factorialului:

int n = 5;
int factorial = 1;
int i = 1;
while (i <= n) {
    factorial *= i;
    i++;
}
// factorial va fi 120 (5!)

3. Citirea unei secvențe de numere:

int numar;
int suma = 0;
cout << "Introdu numere (0 pentru stop): ";
cin >> numar;
while (numar != 0) {
    suma += numar;
    cin >> numar;
}
cout << "Suma: " << suma;

🎮 Activități de verificare

Activitatea 1: Calculul puterii

Ce va afișa următorul cod?

int baza = 2;
int exponent = 4;
int rezultat = 1;
int i = 0;
while (i < exponent) {
    rezultat *= baza;
    i++;
}
cout << rezultat;

Rezultatul afișat

Activitatea 2: Numărarea cifrelor

Câte cifre are numărul natural nenul procesat în următorul cod?

int numar = 12345;
int contor = 0;
while (numar > 0) {
    numar /= 10;
    contor++;
}
cout << contor;

Numărul de cifre

Activitatea 3: Inversarea unui număr

Ce număr va fi afișat la final?

int numar = 1234;
int inversat = 0;
while (numar > 0) {
    inversat = inversat * 10 + numar % 10;
    numar /= 10;
}
cout << inversat;

Numărul inversat

📝 Test final de evaluare

Răspunde la următoarele 5 întrebări pentru a-ți testa cunoștințele despre instrucțiunea while în C++.

Întrebarea 1:

Care este sintaxa corectă pentru instrucțiunea while în C++?

Întrebarea 2:

Ce se întâmplă dacă condiția din while este inițial false?

Întrebarea 3:

Ce va afișa următorul cod?

int i = 0;
while (i < 3) {
    cout << i * 2 << " ";
    i++;
}

Întrebarea 4:

Care este principala cauză a unei bucle infinite în while?

Întrebarea 5:

Câte iterații va face următoarea buclă?

int x = 15;
while (x > 3) {
    x -= 4;
}

📊 Rezultatele tale

✅ Rezultatele au fost salvate cu succes!

👩‍🏫 Panou Profesor - Rezultate în timp real

Total elevi testați

0

Media clasei

0%

Elevi promovați (≥50%)

0

Cel mai bun rezultat

0%

Nume elev Punctaj Procent Status Data/Ora Acțiuni
Nu există rezultate încă. Rezultatele vor apărea automat când elevii completează testul.