Pe scurt
Elaborarea unui program începe cu înțelegerea cerinței: ce date intră, ce rezultat trebuie produs și ce limite au datele. Urmează alegerea unui algoritm, transcrierea în cod, testarea și corectarea. Pentru problema „suma a două numere”, intrarea este perechea , algoritmul adună, iar ieșirea așteptată este 8.
Etapele explicite sunt analiza problemei (ce date primim și ce rezultat cerem), proiectarea algoritmului (pașii de calcul), implementarea sau codificarea (scrierea programului), testarea (compararea rezultatului cu exemple cunoscute) și depanarea (găsirea și corectarea erorilor). Pentru o sumă, analiza stabilește cele două numere de intrare și suma de ieșire; proiectarea alege adunarea; implementarea scrie instrucțiunile; testul 3+5 trebuie să producă 8. Dacă apare 15, depanarea verifică operația folosită.
În detaliu
Etapele elaborării unui program se parcurg în această ordine, cu reveniri atunci când testarea arată o eroare. Analiza problemei stabilește datele de intrare, rezultatul cerut și limitele datelor. Proiectarea algoritmului alege pașii de calcul. Implementarea (codificarea) scrie programul într-un limbaj. Testarea compară rezultatul cu exemple cunoscute, inclusiv cu cazuri-limită. Depanarea găsește și corectează erorile. După fiecare corecție, testele se repetă, pentru că o schimbare poate strica un rezultat corect. Un test reușit nu dovedește corectitudinea pentru toate intrările: se aleg cazuri relevante și se justifică algoritmul.
Exemplul 1 — de la cerință la program. Problema: „Afișează maximul a trei întregi”. Analiza stabilește trei valori de intrare și un întreg de ieșire. Proiectarea pornește cu primul număr ca maxim provizoriu și îl compară cu următoarele două. Implementarea în Python este:
a, b, c = map(int, input().split())
maxim = a
if b > maxim:
maxim = b
if c > maxim:
maxim = c
print(maxim)
Pe intrarea 3 7 5, maxim trece prin 3, apoi 7, apoi rămâne 7; ieșirea este 7. Algoritmul face două comparații și folosește memorie auxiliară constantă, indiferent de valori.
Exemplul 2 — testare cu cazuri-limită. Un set bun de teste acoperă situații diferite, nu doar un exemplu favorabil. Pentru maximul a trei numere, testele sunt 3 7 5 → 7, 5 5 5 → 5 (valori egale), 9 2 4 → 9 (maximul este primul), 1 2 3 → 3 (maximul este ultimul) și -2 -1 -3 → -1 (valori negative). Programul de mai sus dă aceste cinci rezultate. Dacă s-ar fi pornit cu maxim = 0 în loc de maxim = a, ultimul test ar fi dat 0, iar depanarea ar găsi inițializarea: pornirea artificială de la zero este greșită când toate valorile sunt negative. După corecție, toate cele cinci teste se repetă.
Exemplul 3 — depanarea unei expresii. Problema: „media aritmetică a două numere”. Analiza stabilește intrarea 3 și 5 și ieșirea așteptată 4. Codul:
a, b = map(int, input().split())
print(a + b / 2)
produce 5.5 pentru 3 5, deci testul eșuează. Depanarea compară valoarea așteptată cu cea obținută: împărțirea are prioritate mai mare decât adunarea, deci se calculează . Corecția este print((a + b) / 2), care dă 4.0. Etapa greșită nu a fost implementarea instrucțiunii print, ci transcrierea formulei, iar testul a descoperit-o.
Exemplul 4 — o eroare de analiză descoperită la testare. Problema: „Afișează numărul de cifre ale unui număr natural”. Un elev scrie:
int n, nr = 0;
cin >> n;
while (n > 0) {
nr++;
n /= 10;
}
cout << nr;
Pentru 583 programul afișează 3, iar pentru 7 afișează 1, deci ambele teste trec. Pentru 0 afișează 0, dar numărul 0 se scrie cu o cifră. Testul cu cazul-limită a arătat că analiza nu a cerut să se stabilească ce se întâmplă pentru 0. Corecția cere revenirea la proiectare: ciclul trebuie să execute corpul măcar o dată, deci while se înlocuiește cu do ... while (n > 0);. După corecție se repetă toate cele trei teste.
Tipuri de erori. Etapa în care apare o eroare arată cum se caută. O eroare de sintaxă, de pildă ; lipsă după cin >> n, este semnalată de compilator, cu linia aproximativă. O eroare la execuție, de pildă împărțirea la 0, oprește programul în timpul rulării. O eroare de logică, ca a + b / 2 pentru medie, nu produce niciun mesaj, iar programul rulează și dă un rezultat greșit; ea se descoperă numai prin comparația cu rezultatul așteptat.
Greșeli frecvente
- Greșit: codarea începe înainte de a stabili intrările și ieșirea.Corect: clarifică mai întâi cerința.
- Greșit: un test reușit dovedește corectitudinea pentru toate intrările.Corect: testează cazuri relevante și justifică algoritmul.
- Greșit: pentru
-2 -1 -3poți inițializa maximul cu 0.Corect: maximul trebuie inițializat cu o valoare din intrare; rezultatul este-1.
Testează-te pe această lecție
Lecția o citești aici, fără cont. Testele pe lecții și capitole sunt în cont, cu grile originale Didaxis și explicația fiecăreia: gratuit 10 grile pe zi, fără limită cu Premium, 49 de lei pe lună pentru fiecare copil.
Înainte și după
Surse și referințe
Redactare proprie, conform programei:
- OMEC 6930/2025, MO 4 bis/2026, Informatică CS, p. 1632–1633 și 1653–1654; OMEC 4370/2026, anexa 8, p. 155–156; rocnee.eu
- OMEC 4370/2026, anexa 8, Informatică IX intensiv, p. 155–156
- OMEC 6930/2025, MO 4 bis/2026, Informatică CS, p. 1632–1633; rocnee.eu
- OMEC 6930/2025, anexa 66, Informatică IX CS militar, Monitorul Oficial nr. 4 bis/8.01.2026, pp. 2563–2578; cdn.edupedu.ro; centralizator oficial actualizat prin OMEC 3224/2026, legislatie.just.ro
- OMEC 6930/2025, MO 4 bis/2026, Informatică CS, p. 1653–1654; rocnee.eu
Documente consultate
- OMEC 4370/2026, anexa 8, p. 155–156
- Programa școlară de informatică, clasa a IX-a (OMECI 5099/2009, anexa 5), CNCE; rocnee.eu
- Programa școlară de informatică, clasa a IX-a, matematică-informatică (OMEC 6930/2025, anexa 42), p. 1632–1633 și 1653–1654; rocnee.eu
- Programa de bacalaureat la informatică, matematică-informatică (anexa 2 la OMECTS 4800/2010), Ministerul Educației; edu.ro
- Subiectele și baremele Bacalaureatului 2026; subiecte2026.edu.ro
Desene: Redactare proprie (desen original), conform Programa școlară de informatică, clasa a IX-a (OMECI 5099/2009, anexa 5), CNCE; rocnee.eu
