Appearance
Executa cat timp
┌ executa
│ Instructiune
└ cat timp <conditie>Mod de executie:
- Se executa
Instructiune - Se evalueaza
<conditie> - Daca este adevarata, se revine la pasul 1
- Daca este falsa, se trece la urmatoarea instructiune
Important: Instructiunile se executa cel putin o data, indiferent de valoarea conditiei — testarea conditiei are loc la final.
Exemplu – Numarul cifrelor unui numar natural:
citeste n
cnt ← 0
┌ executa
│ cnt ← cnt + 1
│ n ← [n/10]
└ cat timp n ≠ 0
scrie cntEchivalenta cu do...while din C/C++
Instructiunea executa ... cat timp este echivalenta directa cu do...while din C/C++ — conditia are acelasi sens in ambele variante, fara nicio inversare.
| Pseudocod | C/C++ |
|---|---|
| Se repeta cat timp conditia e adevarata | Se repeta cat timp conditia e adevarata |
cpp
// C/C++
do {
Instructiune;
} while (conditie);// Pseudocod echivalent
┌ executa
│ Instructiune
└ cat timp <conditie>`executa cat timp` vs `repeta pana cand`
Ambele testeaza conditia la final si executa corpul minim o data, dar sensul conditiei este opus:
executa ... cat timpcontinua cat timp conditia e adevarata (la fel cado...while).repeta ... pana candse opreste cand conditia devine adevarata.
Deci executa cat timp n ≠ 0 si repeta ... pana cand n = 0 fac acelasi lucru — conditiile sunt una opusul celeilalte.
Exemplu concret – Numarul cifrelor unui numar natural:
// Pseudocod
citeste n
cnt ← 0
┌ executa
│ cnt ← cnt + 1
│ n ← [n/10]
└ cat timp n ≠ 0
scrie cntcpp
// C/C++ echivalent
cin >> n;
int cnt = 0;
do {
cnt++;
n /= 10;
} while (n != 0);
cout << cnt;