De ce contează?
Un pilot verifică manual lista de pre-decolare înainte să pornească motoarele — nu pentru că nu are încredere în avioane, ci pentru că o eroare la 10.000 de metri nu se mai poate repara. La fel, urmărirea manuală a algoritmului pe hârtie e cel mai rapid mod de a prinde o eroare de logică înainte să petreci ore căutând-o în cod.
Ce este urmărirea manuală?
Urmărirea manuală (trace) înseamnă să execuți un algoritm pe hârtie, pas cu pas, cu date concrete — notând valoarea fiecărei variabile după fiecare instrucțiune executată.
Nu ai nevoie de calculator. Hârtie, pix și câteva date de test concrete sunt suficiente.
Cum faci un tabel de urmărire
Algoritmul: calculează suma cifrelor lui 153.
n = 153, suma = 0
Pas 1: suma += 153 % 10 = 3 → suma = 3, n = 15
Pas 2: suma += 15 % 10 = 5 → suma = 8, n = 1
Pas 3: suma += 1 % 10 = 1 → suma = 9, n = 0
Conditie while: 0 > 0 = false → stop
Rezultat: 9 ✓Sub formă de tabel:
| Pas | n | n % 10 | suma |
|---|---|---|---|
| Start | 153 | — | 0 |
| 1 | 15 | 3 | 3 |
| 2 | 1 | 5 | 8 |
| 3 | 0 | 1 | 9 |
| Stop | — | — | 9 |
Urmărești toate variabilele relevante, nu doar rezultatul final. O valoare intermediară greșită trădează exact unde algoritmul deviază față de ce ai intenționat.
Reguli practice pentru urmărire
- Alege date mici și concrete — n=3 sau n=5 sunt de ajuns. Cu n=1000 nu poți urmări manual.
- Verifică cazurile limită — ce se întâmplă când n=0? Când n=1? Când toate valorile sunt egale?
- Notează condiția de oprire — la
while/for, scrie explicittruesaufalselângă condiție la fiecare iterație. Altfel e ușor să ratezi o buclă infinită sau una prea scurtă. - Calculează independent rezultatul corect — mai întâi afli cât ar trebui să fie (ex: suma cifrelor lui 153 = 1+5+3 = 9), apoi verifici că algoritmul produce același număr.
Exemplu cu structura alternativă
Algoritmul decide dacă n e perfect pătrat. Testăm cu n=16:
n = 16
radacina = sqrt(16) = 4.0
(int)radacina = 4
4 * 4 = 16 == n → afiseaza "DA" ✓Testăm cu n=15:
n = 15
radacina = sqrt(15) ≈ 3.872...
(int)radacina = 3
3 * 3 = 9 ≠ 15 → afiseaza "NU" ✓Greșeala 1: Urmărești cu date prea mari sau prea „normale". n=100 nu testează ce se întâmplă la n=0 sau n=1. Alege intenționat cazuri care pot stresa limitele algoritmului.
Greșeala 2: Calculezi valorile în minte fără să le notezi. Memoria de lucru e limitată — pierzi firul după 2–3 pași. Pune fiecare valoare pe hârtie, chiar dacă pare evident.
Greșeala 3: Urmărești „ca să confirmi" că algoritmul e corect. Urmărirea e eficientă când ești sceptic — întreabă-te la fiecare pas: „de ce această valoare e corectă?".
De reținut în 3 idei:
- Urmărirea manuală = execuție cu date concrete + notarea valorilor la fiecare pas
- Tabelul de urmărire (coloane per variabilă, linii per pas) e cel mai clar format
- Testează mereu cazurile limită — n=0, n=1, valori negative, valori identice