Python clasa a 9-a · Manual Python
Laborator Python
LECȚIE

1.3. Elaborarea, testarea și evaluarea algoritmilor

Nu memorăm doar cod. Construim o soluție, o urmărim pas cu pas, găsim erori și justificăm de ce este eficientă.

ANALIZĂ
→
PROIECTARE
→
IMPLEMENTARE
→
TESTARE
→
DEPANARE
01
OBIECTIVE

La finalul lecției vei putea...

01

Analizezi o problemă

Identifici datele de intrare, ieșire, restricțiile și cerința.

02

Proiectezi algoritmul

Alegi pașii potriviți și îi poți reprezenta prin pseudocod sau schemă logică.

03

Testezi și depanezi

Construiești cazuri de test și urmărești valorile variabilelor.

04

Evaluezi eficiența

Compari soluții după timp și memorie și recunoști ordine precum O(n) și O(n²).

✓
Checkpoint

Într-o propoziție: ce diferență există între „algoritmul este corect” și „algoritmul este eficient”?

02
EXPLICAȚIE

Ciclul rezolvării unei probleme

1

Analiză

Ce știm? Ce trebuie să obținem? Ce restricții există?

2

Proiectare

Construim pașii soluției înainte de a scrie codul.

3

Implementare

Transpunem algoritmul într-un limbaj, aici Python.

4

Testare

Încercăm cazuri normale, limită și cazuri speciale.

5

Depanare

Localizăm cauza erorii și corectăm algoritmul/codul.

Ce aparține analizei?

Pe desktop, trage fiecare element în zona potrivită. Pe telefon sau tabletă, atinge un element, apoi atinge zona în care vrei să-l plasezi.

Date / restricțiiLasă aici datele de intrare și restricțiile.
Date de ieșireLasă aici rezultatele cerute.
ProiectareLasă aici ideile despre pașii algoritmului.

Algoritm vs. program

Algoritm

Pașii, independenți de un limbaj anume.

Program

Implementarea algoritmului într-un limbaj de programare.

Ideea-cheie: dacă nu poți explica soluția fără cod, probabil încă nu ai proiectat-o suficient de clar.
03
EXEMPLU INTUITIV

Găsește cea mai mare temperatură

Ai temperaturile măsurate într-o zi: 18, 21, 17, 24, 22. Vrei temperatura maximă.

Nu trebuie să ții minte toate valorile. Păstrezi o singură valoare: maxim. O actualizezi când întâlnești o temperatură mai mare.

Pornire

04
PYTHON

Implementarea soluției

def maxim_valori(valori):
    maxim = valori[0]

    for x in valori[1:]:
        if x > maxim:
            maxim = x

    return maxim
CONSOLĂ
Apasă „Simulează rularea exemplului”.

De ce pornim cu maxim = valori[0]?

05
ALGORITM / PSEUDOCOD

Reprezentăm soluția înainte de cod

citește n
citește x
maxim ← x

pentru i ← 2, n execută
    citește x
    dacă x > maxim atunci
        maxim ← x
    sfârșit dacă
sfârșit pentru

scrie maxim
START
↓
citește n, x
↓
maxim ← x
↓
x > maxim ?
DA → maxim ← xNU → continuă
↓
scrie maxim
↓
STOP

Construiește ordinea corectă

Apasă pașii în ordinea în care ai proiecta soluția.

06
ATENȚIE!

Erorile nu sunt toate la fel

SINTAXĂ

Codul nu respectă regulile limbajului

Ex.: lipsește : după if.

RUNTIME

Programul se oprește în timpul execuției

Ex.: împărțire la zero sau accesarea unei poziții inexistente.

LOGICĂ

Programul rulează, dar răspunsul este greșit

Ex.: actualizezi maximul cu < în loc de >.

Regulă de aur: un singur test care funcționează nu demonstrează corectitudinea algoritmului.
07
EXEMPLU REZOLVAT

Suma numerelor pare

PROBLEMĂ

Se citesc n numere naturale. Determină suma numerelor pare.

Analiză

  • Intrare: n și cele n valori.
  • Ieșire: suma numerelor pare.
  • Variabilă de stare: suma, inițial 0.
suma = 0
pentru fiecare x:
    dacă x % 2 == 0:
        suma = suma + x
scrie suma

Testează algoritmul

IntrareRezultat așteptatDe ce?
5: 1 2 3 4 562 + 4
4: 1 3 5 70Nu există numere pare
3: 2 2 26Toate sunt pare
1: 000 este par
08
EXERCIȚII DE BAZĂ

Verifică ideile esențiale

01

Care este primul pas într-o rezolvare bine proiectată?

02

Ce urmărești într-un „trace”?

03

Un algoritm care funcționează, dar dă un rezultat greșit, are cel mai probabil o eroare...

09
EXERCIȚII DE APROFUNDARE

Gândește ca un evaluator

1. Care este mai eficient?

2. Potrivește complexitatea

O(1)O(n)O(n²)

Important: notația O(...) descrie ordinul de creștere al resurselor, nu timpul exact în secunde pe un anumit calculator.
10
VERIFICARE

Quiz final

11
MINI-PROIECT

Detectivul de algoritmi

MISIUNE

Construiește un „Algorithm Lab”

Creează un mic program Python care primește n numere și oferă un raport: suma, minimul, maximul și numărul valorilor pare.

  1. Scrie analiza: intrare, ieșire, restricții.
  2. Proiectează algoritmul în pseudocod.
  3. Implementează în Python.
  4. Pregătește cel puțin 5 teste: normal, limită, toate pare, niciun par, valori egale.
  5. Adaugă o secțiune în care explici complexitatea.

Rubrică de evaluare

Analiză20%
Algoritm20%
Cod25%
Testare/depanare25%
Explicație10%

Ai terminat lecția?

Bifează doar după ce poți explica singur diferența dintre analiză, proiectare, testare și depanare.