Informatică Gimnaziu (5-8)

Structura repetitiva cu test final: repeta...pana cand (do...while)

Structura repetitivă cu test final, cunoscută în pseudocod ca 'repeta...pana cand' și în limbajele de programare ca 'do...while', este o structură de control care permite executarea unui bloc de instrucțiuni de cel puțin o dată, după care se verifică o condiție pentru a decide dacă repetiția continuă. Spre deosebire de structura cu test inițial ('cat timp' sau 'while'), unde condiția se verifică înainte de execuție, aici corpul buclei se execută mai întâi, iar apoi se evaluează condiția. Dacă condiția este falsă, bucla se reia (instrucțiunile se execută din nou); dacă condiția devine adevărată, bucla se oprește.

Aceasta este principala caracteristică: repetiția continuă 'până când' condiția devine adevărată. De exemplu, dacă vrem să citim un număr de la tastatură până când utilizatorul introduce un număr pozitiv, putem folosi 'repeta...pana cand' pentru a cere măcar o dată introducerea. În pseudocod, structura se scrie astfel:

repeta

<instrucțiuni>

pana cand <condiție>

În limbajul C/C++, echivalentul este

do {

<instrucțiuni>

} while (!condiție); // deci while (<condiție falsă>)

Este important de reținut că testul se face la final, deci corpul buclei se execută întotdeauna cel puțin o dată. Aceasta este utilă în situații în care trebuie să procesăm date de intrare sau să efectuăm o acțiune înainte de a verifica o condiție, cum ar fi afișarea unui meniu de opțiuni, validarea intrărilor, sau simularea unui joc în care jucătorul acționează mai întâi. De asemenea, trebuie să avem grijă ca în interiorul buclei să modificăm variabilele care influențează condiția, altfel bucla poate deveni infinită.

În concluzie, 'repeta...pana cand' oferă o modalitate naturală de a repeta o acțiune cel puțin o dată, cu verificarea condiției de oprire la sfârșitul fiecărei iterații.

Exemple

  • Exemplul 1: Citirea unui număr până când acesta este mai mare decât 10. Programul cere utilizatorului să introducă un număr, apoi verifică dacă numărul este mai mare decât 10. Dacă nu, se repetă cererea. Pseudocod:
repeta

citește num

pana cand num > 10

Aceasta va citi cel puțin o dată, apoi va continua până când condiția este adevărată.

  • Exemplul 2: Calculul sumei numerelor introduse până când utilizatorul introduce 0. Programul adună numerele introduse, iar când se introduce 0, se oprește și afișează suma. Pseudocod:
suma <- 0

repeta

citește x

suma <- suma + x

pana cand x = 0

afișează suma

Observație: 0 se adună și el, dar nu afectează suma; bucla se oprește după adunare.

  • Exemplul 3: Afișarea unui meniu de opțiuni până când utilizatorul alege opțiunea de ieșire. Programul afișează opțiunile (1. Joc, 2. Setări, 3. Ieșire), citește alegerea și, dacă nu este 3, execută acțiunea corespunzătoare și reafișează meniul. Pseudocod:
repeta

afișează 'Alege: 1-Joc, 2-Setari, 3-Iesire'

citește optiune

dacă optiune = 1 atunci 'Joaca'

altfel dacă optiune = 2 atunci 'Setari'

pana cand optiune = 3

afișează 'La revedere'

Concepte cheie: Structura repetitivă cu test final asigură executarea corpului cel puțin o dată., Condiția de oprire se verifică după fiecare iterație; bucla continuă cât timp condiția este falsă., În pseudocod se scrie 'repeta...pana cand <condiție>', iar în C++ 'do { ... } while (!condiție);', Se folosește pentru validarea intrărilor, meniuri, sau procesări care trebuie să se execute măcar o dată., Atenție la variabilele care modifică condiția pentru a evita bucle infinite.

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