Școala Româno-Britanică
Modulul 1 Clasa a IX-a | Python

Ora 4: Etapele elaborării unui program

Ce vei învăța astăzi: Analiză, proiectare, implementare, testare și depanare

Rezultat practic: Descrii cele cinci etape ale elaborării unui program și le aplici pas cu pas la o problemă concretă (Competența 2.3).

Competența 2.3 Săptămâna 2

Înainte de a începe

De ce contează? A urma cele cinci etape — analiză, proiectare, implementare, testare, depanare — te salvează de cele mai multe erori: un program care pornește direct de la cod, fără analiză și pseudocod, este greu de corectat.

Ce știi deja?

În lecția anterioară („Gândirea computațională”) ai învățat ce este un algoritm și ce sunt datele de intrare, de ieșire și de manevră. Identifică aceste trei tipuri de date pentru problema: „se citește un număr n și se afișează dublul lui”.

Ideea-cheie: Orice program se construiește în cinci etape ordonate: analiza, proiectarea, implementarea, testarea și depanarea.
SINTEZĂ TEORETICĂ ȘI EXEMPLE GHIDATE

Ce vei învăța astăzi?

După această lecție vei putea descrie cele cinci etape ale elaborării unui program și vei ști rolul fiecărei etape.

Analiza problemei
Proiectarea algoritmului
Implementarea în Python
Testarea și depanarea

Cele cinci etape ale elaborării unui program

Elaborarea unui program nu înseamnă doar „scrierea de cod". Este un proces cu mai multe etape, pe care le respectăm mereu:

Etapa Ce facem Întrebarea la care răspunde
1. Analiza Înțelegem problema, identificăm datele de intrare și de ieșire Ce știu? Ce trebuie să obțin?
2. Proiectarea Scriem algoritmul (în pseudocod (o descriere structurată a algoritmului, scrisă aproape ca în limbajul natural) sau organigramă (reprezentarea grafică a algoritmului, cu figuri geometrice pentru fiecare pas)) Cum rezolv problema, pas cu pas?
3. Implementarea Transformăm algoritmul în program Python Cum scriu pașii în limbaj de programare?
4. Testarea Rulăm programul cu date de test și verificăm rezultatele Funcționează corect?
5. Depanarea Găsim și corectăm erorile descoperite la testare Cum corectez ce nu merge?

Exemplu aplicat: „media a trei note"

Cele 5 etape aplicate
ANALIZA
- Intrare: notele n1, n2, n3 (numere întregi)
- Ieșire: media aritmetică (număr real)

PROIECTAREA (algoritm în pseudocod)
- citește n1, n2, n3
- media = (n1 + n2 + n3) / 3
- scrie media

IMPLEMENTAREA (program Python)
- transformăm fiecare pas în instrucțiuni Python

TESTAREA
- rulăm cu n1=8, n2=10, n3=9 → trebuie să obținem 9.0

DEPANAREA
- dacă rezultatul este greșit, căutăm eroarea și o corectăm

De la algoritm la program Python

Implementarea presupune transformarea pașilor din algoritm în instrucțiuni Python. Exemplu pentru „media a trei note":

Algoritmul MediaTreiNote: citește n1, n2, n3 s = n1 + n2 + n3 media = s / 3 scrie media
Program Python complet
n1 = int(input())
n2 = int(input())
n3 = int(input())

media = (n1 + n2 + n3) / 3

print(media)

De reținut: la fiecare problemă începem cu analiza, continuăm cu proiectarea, abia apoi scriem cod. Testarea ne spune dacă am gândit corect.

Exercițiu de completare

Așază etapele elaborării unui program în ordinea corectă:

1. ______
2. ______
3. ______
4. ______
5. ______

Bancă de cuvinte:
Analiza Proiectarea Implementarea Testarea Depanarea

Test de înțelegere

Test rapid - etapele unui program:

1. În care etapă identificăm datele de intrare și de ieșire?

2. În care etapă scriem algoritmul în pseudocod?

3. Ce facem în etapa de depanare?

Test de verificare

Test rapid - etapele elaborării unui program:

1. Prima etapă în elaborarea unui program este...

2. Scrierea codului în Python se face în etapa de...

3. Găsirea și corectarea erorilor se face în etapa de...

Ai grijă la: Să sari peste etapa de testare și depanare: un program care „merge” pe un singur exemplu poate fi greșit pe alte date, deci testarea se face întotdeauna cu mai multe seturi de date.

Aprofundare

De ce analiza este cea mai importantă etapă? O greșeală în analiză se propagă (adică se transmite mai departe) în toate etapele următoare: dacă identificăm greșit datele de intrare, programul va fi greșit chiar dacă codul este impecabil. Programatorii cu experiență petrec adesea mai mult timp analizând și proiectând decât scriind codul propriu-zis. Este exact ca la matematică: o problemă greșit înțeleasă nu poate fi rezolvată corect.

Depanarea este o artă, nu doar o etapă. Depanarea înseamnă mai mult decât „să scoatem erorile". Ea include strategii precise: citirea cu atenție a mesajului de eroare, folosirea unor afișaje temporare (print()) pentru a vedea valorile intermediare, și tabelul de urmărire a variabilelor (un tabel în care notăm valorile variabilelor la fiecare pas, pentru a descoperi unde apare eroarea). Un programator bun nu corectează la întâmplare: urmează un plan sistematic.

Cazuri particulare în testare. Etapa de testare are cazuri particulare esențiale: testarea cu valori minime (n = 0), cu valori maxime, cu valori negative atunci când problema nu le permite și cu valori „în mijlocul" intervalului. Fiecare categorie descoperă un alt tip de eroare posibilă.

APLICARE ȘI REZOLVARE DE PROBLEME

PbInfo - Aria dreptunghiului

Enunț:

Cerință: Se citesc lungimea L și lățimea l ale unui dreptunghi. Să se afișeze aria acestuia.

Date de intrare:

Programul citește de la tastatură numerele L și l.

Date de ieșire:

Programul va afișa aria dreptunghiului.

Restricții și precizări:

Numerele citite sunt numere naturale, iar rezultatul este un număr întreg sau real.

Exemplu:

Intrare:

5 3

Ieșire:

15
Cum gândim soluția (pe etape):
  1. Analiza: intrare L, l; ieșire aria = L * l
  2. Proiectarea: citește L, l; aria = L * l; scrie aria
  3. Implementarea: transformăm pașii în Python
Scrie soluția în Python:
Soluție corectă:
L = int(input())
l = int(input())

aria = L * l

print(aria)

Ce învățăm: am respectat etapele: analiză (identificăm L, l, aria), proiectare, apoi implementare.

PbInfo - Dublul unui număr

Enunț:

Cerință: Se citește un număr natural n. Să se afișeze dublul acestuia.

Date de intrare:

Programul citește de la tastatură numărul n.

Date de ieșire:

Programul va afișa valoarea 2 * n.

Restricții și precizări:

Numerele citite sunt numere naturale, iar rezultatul este un număr întreg sau real.

Exemplu:

Intrare:

7

Ieșire:

14
Cum gândim soluția:
  1. Analiza: intrare n; ieșire 2 * n
  2. Proiectarea: citește n; dublu = 2 * n; scrie dublu
  3. Implementarea: scriem programul Python
  4. Testarea: verificăm cu n = 7 → 14
Scrie soluția în Python:
Soluție corectă:
n = int(input())

dublu = 2 * n

print(dublu)

Ce învățăm: respectăm ordinea etapelor și testăm întotdeauna programul înainte de a-l considera gata.

EXERCIȚII PRACTICE

Exercițiul Practic: Aplicarea etapelor

Sarcini de lucru

Aplică cele cinci etape ale elaborării unui program pentru probleme concrete

Sarcina 1: Analiză și proiectare

Cerință: Pentru problema „perimetrul unui dreptunghi", scrie: datele de intrare, datele de ieșire și algoritmul în pseudocod.

Soluție pentru Sarcina 1:
ANALIZA:
- Intrare: lungimea L și lățimea l
- Ieșire: perimetrul P = 2 * (L + l)

PROIECTAREA (pseudocod):
- citește L, l
- P = 2 * (L + l)
- scrie P
Sarcina 2: Implementare și testare

Cerință: Implementează în Python algoritmul de la Sarcina 1, apoi notează rezultatul pentru testul L = 6, l = 4.

Soluție pentru Sarcina 2:
L = int(input())
l = int(input())

P = 2 * (L + l)

print(P)

# Testare: L = 6, l = 4 → P = 2 * 10 = 20

Verificare: pentru L=6 și l=4 obținem P = 20. Dacă ai alt rezultat, verifică formula și pașii.

Scrie pe caiet - De reținut

Titlul lecției

Ora 4: Etapele elaborării unui program

Definiția lecției

Elaborarea unui program nu înseamnă doar „scrierea de cod", ci este un proces cu cinci etape, pe care le respectăm mereu. În etapa de analiză înțelegem problema și identificăm datele de intrare și de ieșire. În etapa de proiectare scriem algoritmul în pseudocod sau organigramă, pas cu pas. Implementarea transformă pașii algoritmului în instrucțiuni Python, apoi testarea rulează programul cu date de test pentru a verifica rezultatele. În etapa finală, depanarea, găsim și corectăm erorile descoperite la testare. De exemplu, pentru calculul mediei a trei note, analizăm ce știm (notele), proiectăm pașii (adunare, împărțire), implementăm în Python, testăm cu notele 8, 10 și 9, apoi corectăm eventualele greșeli, exact ca la rezolvarea unei probleme de matematică, pas cu pas.

Definiții esențiale

  • Analiza - identificăm datele de intrare, de ieșire și de manevră ale problemei.
  • Proiectarea - scriem algoritmul în pseudocod, pas cu pas.
  • Implementarea - transformăm pașii algoritmului în instrucțiuni Python.
  • Testarea - rulăm programul cu date de test și verificăm rezultatele.
  • Depanarea - găsim și corectăm erorile descoperite la testare.

Algoritmul cheie - pseudocod

Algoritmul MediaTreiNote: citește n1, n2, n3 s = n1 + n2 + n3 media = s / 3 scrie media

Algoritmul cheie - cod Python

n1 = int(input())
n2 = int(input())
n3 = int(input())

s = n1 + n2 + n3
media = s / 3

print(media)

Greșeli comune de evitat

  • Sărirea peste analiză și proiectare - programul se scrie direct, fără algoritm.
  • Testarea cu un singur exemplu și declararea programului corect.
  • Confuzia dintre datele de intrare și cele de ieșire în analiză.
  • Corectarea erorilor la întâmplare, fără a înțelege cauza lor.

Sfaturi practice și trucuri

  • La orice problemă, scrie mai întâi pe hârtie: ce date intră, ce date ies, ce prelucrăm.
  • Proiectează algoritmul în pseudocod și abia apoi implementează-l în Python.
  • Testează cu valori diferite și verifică rezultatul pe calculator, nu doar „cu ochiul".
  • La depanare, citește mesajul de eroare complet și începe corectarea de la prima eroare raportată.

Exemplu practic

Când îți calculezi media la sfârșitul semestrului, aplici fără să-ți dai seama etapele elaborării unui program: analizezi notele pe care le ai (intrare), planifici cum să le aduni și să împarți (proiectare), faci calculul (implementare), verifici rezultatul cu un alt calcul (testare) și, dacă a ieșit greșit, refaci pașii ca să găsești eroarea (depanare).