Informatică Gimnaziu (5-8)

Structura repetitiva cu test initial: cat timp (while)

Structura repetitivă cu test inițial, cunoscută și sub numele de „while” („cât timp”), este o comandă fundamentală în programare care permite executarea repetată a unui set de instrucțiuni atâta timp cât o condiție booleana este adevărată. Spre deosebire de structura repetitivă cu test final (do-while sau repetă...până când), aici condiția se verifică înainte de a intra în corpul buclei. Aceasta înseamnă că dacă de la început condiția este falsă, corpul buclei nu se execută nici măcar o singură dată.

În limbajul pseudocod din programa școlară românească, această structură se scrie astfel: cât timp (condiție) execută ... sfârșit cât timp. De exemplu, dacă vrem să citim numere de la tastatură până când utilizatorul introduce 0, putem scrie: citește x; cât timp x ≠ 0 execută { prelucrează x; citește x }. Este esențial ca, în interiorul buclei, să existe o instrucțiune care să modifice variabila din condiție, altfel se va crea o buclă infinită (programul rulează la nesfârșit).

De aceea, elevii trebuie să fie atenți la actualizarea variabilei de control. În exemple concrete, while este folosit pentru calcularea sumei numerelor până la o limită, pentru generarea de șiruri (de exemplu, afișarea numerelor pare mai mici decât 100) sau pentru ghicirea unui număr secret. În limbajul C++, structura while se scrie: while (condiție) { instrucțiuni; }.

În Python: while condiție: instrucțiuni. Înțelegerea corectă a while este esențială pentru a trece la bucle mai complexe (for) și pentru a rezolva probleme care necesită procesarea datelor până la îndeplinirea unei condiții. De asemenea, se recomandă utilizarea diagramelor de tip „flowchart” pentru a vizualiza fluxul de execuție: se evaluează condiția, dacă e adevărată se execută corpul, apoi se reia evaluarea; dacă e falsă, se iese din buclă.

Elevii trebuie să înțeleagă diferența dintre while și do-while: la while, corpul s-ar putea să nu se execute niciodată, în timp ce la do-while se execută cel puțin o dată. Exercițiile pe care le propun acoperă atât identificarea corectă a condiției, cât și scrierea de cod simplu, pentru a dezvolta gândirea algoritmică.

Exemple

  • Exemplul 1: Să se scrie un program care citește numere întregi de la tastatură până când se introduce numărul 0 și afișează suma acestora. (Pseudocod: sumă ← 0; citește x; cât timp x ≠ 0 execută { sumă ← sumă + x; citește x }; scrie sumă.) În C++: int x, s=0; cin>>x; while(x!=0){ s+=x; cin>>x; } cout<<s;
  • Exemplul 2: Să se afișeze toate numerele naturale pare mai mici sau egale cu 100, folosind structura while. (Pseudocod: i ← 2; cât timp i ≤ 100 execută { scrie i; i ← i + 2 }). Se observă că variabila i se actualizează în interiorul buclei pentru a evita repetiția infinită.
  • Exemplul 3: Să se scrie un program care generează un număr aleator între 1 și 10, iar utilizatorul trebuie să îl ghicească. Se citește o încercare, iar bucla while rulează cât timp numărul ghicit este diferit de cel secret. La final, se afișează un mesaj de felicitare. (Pseudocod: secret ← random(1,10); citește ghicit; cât timp ghicit ≠ secret execută { scrie 'Mai încearcă'; citește ghicit }; scrie 'Felicitări!') Elevii învață cum să construiască o buclă care se oprește când condiția devine falsă.

Concepte cheie: Testarea condiției la intrarea în buclă (test inițial), Necesitatea actualizării variabilei de control pentru evitarea buclelor infinite, Execuția zero sau de mai multe ori a corpului buclei, Comparația cu structura repetitivă cu test final (do-while), Utilizarea while în citirea secvențială a datelor până la o valoare de oprire

Vrei exerciții pe lecția asta + AI care te ajută pas cu pas?
Cont gratuit — 20 întrebări AI/zi, exerciții nelimitate.

Creează cont