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

Ora 14: Recapitulare și evaluare

Ce vei învăța astăzi: Recapitularea întregului modul: algoritmi, pseudocod, Python, decizii, bucle, modularitate și eficiență

Rezultat practic: Rezolvi o problemă completă care combină tot ce ai învățat în cele 14 lecții ale modulului și te autoevaluezi (Competența 6.3).

Competența 6.3 Săptămâna 7

Înainte de a începe

De ce contează? Recapitularea leagă toate conceptele modulului într-un singur tablou — algoritm, pseudocod, Python, decizii, bucle, modularitate, eficiență, testare — iar autoevaluarea îți arată exact ce să mai exersezi înaintea testului.

Ce știi deja?

În lecția anterioară („Criterii de elaborare a testelor și urmărirea evoluției variabilelor”) ai testat programe cu date valide, invalide și cazuri limită. Care sunt cele cinci etape prin care trece orice program, în ordine?

Ideea-cheie: Toate structurile învățate — secvențiale, de decizie și repetitive — se combină în orice program, iar recapitularea scoate în evidență legăturile dintre ele.
SINTEZĂ TEORETICĂ ȘI EXEMPLE GHIDATE

Ce vei învăța astăzi?

După această lecție vei fi recapitulat toate noțiunile modulului, vei compara structurile învățate într-un tabel rezumativ și vei rezolva o problemă completă de evaluare.

Recapitularea tuturor lecțiilor modulului
Tabel rezumativ al structurilor
Problema completă de evaluare
Autoevaluare și plan de îmbunătățire

Recapitularea modulului 1

În cele 13 lecții anterioare am construit, pas cu pas, imaginea completă a programării în Python. Hai să o parcurgem din nou, de la idee la program eficient.

Lecția Ce am învățat Ideea cheie
Ora 1-2 Ce este informatica, instalarea Python Programul = instrucțiuni; print() afișează
Ora 3 Gândirea computațională, algoritmul Pași finiți, clari, ordonați
Ora 4 Etapele elaborării unui program Analiză, proiectare, implementare, testare, depanare (găsirea și corectarea erorilor)
Ora 5 Reprezentarea algoritmilor Pseudocod și organigramă, limbaje înalte
Ora 6 Elemente de bază în Python Variabile, tipuri, input(), print()
Ora 7 Structuri de decizie if, elif, else - alegerea unei căi
Ora 8 Structuri repetitive for și while - repetarea pașilor
Ora 9 Proiectarea modulară, erorile Împărțim problema; erori de sintaxă, logică, executare
Ora 10 Eficiența algoritmilor Notația O: O(1), O(n), O(n^2)
Ora 11-12 IDE, corespondența pseudocod-Python citește→input(), scrie→print(), dacă→if
Ora 13 Testarea programelor Date valide, invalide, cazuri limită

Analogie: modulul este ca învățatul condusului

Mai întâi am învățat ce este mașina (informatica), apoi cum se pornește (instalarea), cum se conduce drept (secvențele), cum se face la un drum cu intersecții (deciziile), cum se merge în jurul blocului (buclele) și, la final, cum să conducem economic (eficiența). Acum ești gata să conduci singur: rezolvi probleme complete!

Tabel rezumativ al structurilor

Toate structurile din Python se încadrează în trei categorii mari, după modul în care sunt executate: secvențial (una după alta), decizional (se alege o cale) și repetitiv (se repetă pași). Iată tabelul care le rezumă pe toate.

Structură Pseudocod Python Exemplu
Secvențială citește, scrie, atribuie input(), print(), = a = int(input())
Decizională dacă ... atunci ... altfel if ... elif ... else if n % 2 == 0:
Repetitivă cu număr cunoscut pentru i de la 1 la n for i in range(1, n + 1): for i in range(5):
Repetitivă cu condiție cât timp condiție while condiție: while n > 0:

Exemplu: toate structurile într-un singur program

Programul de mai jos combină secvențe, decizii și bucle: citește un număr n, numără câte cifre are și câte dintre ele sunt pare, apoi afișează rezultatele.

Algoritmul Recapitulare: citește n nr_cifre = 0 nr_pare = 0 cât timp n > 0 execută cifra = n % 10 nr_cifre = nr_cifre + 1 dacă cifra % 2 = 0 atunci nr_pare = nr_pare + 1 n = n // 10 scrie nr_cifre, nr_pare
Program Python complet (rulabil)
# Program de recapitulare: numărul de cifre și cifrele pare
n = int(input())

nr_cifre = 0
nr_pare = 0

while n > 0:
    cifra = n % 10
    nr_cifre = nr_cifre + 1
    if cifra % 2 == 0:
        nr_pare = nr_pare + 1
    n = n // 10

print(nr_cifre, nr_pare)

Observă: am folosit input() și int() (secvențial), while (repetitiv cu condiție), if (decizie) și acumulatorii (variabile care strâng suma sau numărul valorilor întâlnite în buclă) nr_cifre, nr_pare. Pentru n = 2468 afișează 4 4.

Evaluarea modulului: ce știi să faci acum?

După acest modul, ești capabil să parcurgi întregul drum al unui programator: analizezi problema, scrii algoritmul în pseudocod, îl transformi în Python, îl testezi cu date potrivite și îl faci eficient.

Analizezi

Identifici datele de intrare, de ieșire și de manevră

Proiectezi

Scrii algoritmul în pseudocod, cu pași clari

Implementezi

Scrii programul Python complet și corect

Testezi

Verifici cu date valide, invalide și cazuri limită

Pentru evaluare: rezolvă independent problema de la secțiunea „Aplicare", apoi verifică soluția și notează-ți ce concepte mai trebuie exersate. Sinteza modulului și testul de evaluare te așteaptă în pagina resurselor.

Exercițiu de completare - recapitulare

Completează enunțul cu cuvintele potrivite:

Un ______ este o secvență finită de pași care rezolvă o problemă. În Python, decizia se scrie cu ______, iar repetarea cu ______ sau ______. Un program care execută un număr constant de operații are complexitatea ______.

Bancă de cuvinte:
algoritm if for while O(1)

Exercițiu de completare - programul

Completează programul de recapitulare:

n = int(______())
s = 0
______ n > 0:
    s = s + n % ______
    n = n // ______
______(s)

Bancă de cuvinte:
input while 10 print

Test de înțelegere

Test rapid - evaluarea modulului:

1. Care este ordinea corectă a etapelor de elaborare a unui program?

2. O buclă for cu range(1, n + 1) execută corpul...

3. Dacă n = 2468, programul de recapitulare (numărul de cifre) afișează...

Ai grijă la: Să confunzi sintaxa (setul de reguli după care se scrie corect codul) structurilor la recapitulare: if, for și while se termină cu două puncte și au corpul indentat, în timp ce atribuirea folosește = iar comparația ==.

Aprofundare

Cum se leagă toate conceptele? Fiecare lecție a modulului a adăugat o piesă la imaginea de ansamblu: algoritmii ne dau structura gândirii, pseudocodul ne ajută să o exprimăm, Python ne permite să o rulăm, iar testarea și eficiența ne asigură că rezultatul este corect și rapid. Un programator bun pornește mereu de la algoritm, nu de la cod.

Ce urmează în Modulul 2? Acum că stăpânești secvențele, deciziile și buclele, vei învăța modelul liniar - lista: memorarea mai multor valori în aceeași variabilă și prelucrarea lor cu bucle. Toate structurile de astăzi se vor folosi intens acolo, la fel și conceptul de eficiență.

Autoevaluarea sinceră. Cele mai frecvente dificultăți la finalul modulului sunt: inițializarea acumulatorilor, diferența dintre = și ==, și limitele lui range(). Dacă le-ai întâlnit și tu, rezolvă din nou câteva probleme de recapitulare înainte de testul de evaluare. Sinteza modulului te ajută să recapitulezi rapid toate definițiile și algoritmii.

APLICARE ȘI REZOLVARE DE PROBLEME

PbInfo - Evaluare: numărul de cifre pare

Enunț:

Cerință: Se citește numărul natural n. Să se afișeze câte cifre pare conține numărul.

Date de intrare:

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

Date de ieșire:

Programul va afișa numărul de cifre pare ale lui n.

Restricții și precizări:

n este un număr natural.

Exemplu:

Intrare:

2468

Ieșire:

4
Cum gândim soluția:
  1. Inițializăm contorul cnt cu 0
  2. Cât timp n > 0, verificăm ultima cifră (n % 10)
  3. Dacă cifra este pară (cifra % 2 == 0), creștem contorul
  4. Eliminăm cifra și repetăm; la final afișăm contorul
Scrie soluția în Python:
Soluție corectă:
n = int(input())

cnt = 0
while n > 0:
    cifra = n % 10
    if cifra % 2 == 0:
        cnt = cnt + 1
    n = n // 10

print(cnt)

Ce învățăm: problemă de recapitulare completă: buclă while, decizie if, contor. Testează cu 2468 → 4 și cu cazul limită n = 0 → 0.

PbInfo - Evaluare: suma primelor n numere pare

Enunț:

Cerință: Se citește numărul natural n. Să se afișeze suma primelor n numere pare: 2 + 4 + 6 + ... + 2n.

Date de intrare:

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

Date de ieșire:

Programul va afișa suma primelor n numere pare.

Restricții și precizări:

n este un număr natural.

Exemplu:

Intrare:

3

Ieșire:

12
Cum gândim soluția:
  1. Observăm că al i-lea număr par este 2 * i
  2. Parcurgem cu for i in range(1, n + 1)
  3. Adunăm 2 * i la acumulatorul s
  4. Afișăm suma
Scrie soluția în Python:
Soluție corectă:
n = int(input())

s = 0
for i in range(1, n + 1):
    s = s + 2 * i

print(s)

Ce învățăm: pentru n = 3, programul calculează 2 + 4 + 6 = 12. Am folosit bucla for și acumulatorul s, iar eficiența este O(n).

EXERCIȚII PRACTICE

Exercițiul Practic: Evaluarea finală a modulului

Sarcini de lucru

Rezolvă problema completă a modulului și construiește planul tău de recapitulare

Sarcina 1: Problema completă a modulului

Cerință: Scrie un program care citește un număr n, apoi afișează: numărul de cifre, suma cifrelor și numărul de cifre pare, fiecare pe un rând.

Soluție pentru Sarcina 1:
n = int(input())

nr_cifre = 0
suma = 0
nr_pare = 0

while n > 0:
    cifra = n % 10
    nr_cifre = nr_cifre + 1
    suma = suma + cifra
    if cifra % 2 == 0:
        nr_pare = nr_pare + 1
    n = n // 10

print(nr_cifre)
print(suma)
print(nr_pare)

Verifică: pentru n = 2468 programul afișează 4, 20, 4. Testează și cu n = 0 (caz limită): afișează 0, 0, 0.

Sarcina 2: Planul tău de recapitulare

Cerință: Scrie cele trei noțiuni ale modulului pe care le-ai înțeles cel mai greu și câte un exercițiu concret prin care le poți exersa.

Soluție pentru Sarcina 2:

Exemplu de răspuns corect:

1. Buclele while - exercițiu: suma cifrelor unui număr
2. Diferența dintre = și == - exercițiu: program de paritate
3. range(1, n + 1) - exercițiu: suma 1 + 2 + ... + n

Plan: rezolv câte o problemă pentru fiecare noțiune,
apoi refac testul de evaluare al modulului.

Verifică: pentru fiecare noțiune dificilă, alege un exercițiu concret din lecțiile modulului și rezolvă-l din nou pe cont propriu.

Scrie pe caiet - De reținut

Titlul lecției

Ora 14: Recapitulare și evaluare

Definiția lecției

Această lecție încheie Modulul 1, unind toate conceptele învățate: algoritmul, ca secvență finită de pași care rezolvă o problemă, pseudocodul și organigrama, ca forme de reprezentare, și Python, ca limbaj de implementare. Am învățat că un program se construiește în cinci etape: analiză, proiectare, implementare, testare și depanare, folosind structuri secvențiale, decizionale (if, elif, else) și repetitive (for, while). Am înțeles, de asemenea, cum se testează corect un program, cu date valide, invalide și cazuri limită, cum se urmărește evoluția variabilelor și cum se apreciază eficiența unui algoritm prin notația O. De exemplu, programul de recapitulare, care numără cifrele unui număr și cifrele pare, folosește toate aceste noțiuni împreună: citire, buclă, decizie și acumulatori. Exact ca la învățatul condusului, fiecare lecție a adăugat o abilitate nouă, iar acum ești pregătit să rezolvi probleme complete.

Definiții esențiale

  • Algoritmul - secvență finită de pași, bine definită și ordonată, care transformă datele de intrare în date de ieșire.
  • Pseudocodul - reprezentarea algoritmului cu cuvinte cheie: citește, scrie, dacă, pentru, cât timp.
  • Variabila - etichetă care reține o valoare; atribuirea se face cu =, comparația cu ==.
  • Structuri de decizie - if / elif / else; structuri repetitive - for și while.
  • Etapele elaborării - analiză, proiectare, implementare, testare, depanare.
  • Eficiența - notația O: O(1), O(log n), O(n), O(n^2).

Algoritmul cheie - pseudocod

Algoritmul Recapitulare: citește n nr_cifre = 0 nr_pare = 0 cât timp n > 0 execută cifra = n % 10 nr_cifre = nr_cifre + 1 dacă cifra % 2 = 0 atunci nr_pare = nr_pare + 1 n = n // 10 scrie nr_cifre, nr_pare

Algoritmul cheie - cod Python

# Program de recapitulare: numărul de cifre și cifrele pare
n = int(input())

nr_cifre = 0
nr_pare = 0

while n > 0:
    cifra = n % 10
    nr_cifre = nr_cifre + 1
    if cifra % 2 == 0:
        nr_pare = nr_pare + 1
    n = n // 10

print(nr_cifre, nr_pare)

Greșeli comune de evitat

  • Omiterea inițializării acumulatorilor (s, cnt) înainte de bucle.
  • Confuzia dintre = (atribuire) și == (comparație).
  • Scrierea range(1, n) în loc de range(1, n + 1).
  • Testarea programului doar cu un singur exemplu, fără cazuri limită.
  • Scrierea codului direct, fără algoritm în pseudocod mai întâi.

Sfaturi practice și trucuri

  • La orice problemă nouă, aplică mereu cele cinci etape: analiză, proiectare, implementare, testare, depanare.
  • Folosește tabelul de urmărire a variabilelor pentru valori mici înainte de a rula programul.
  • Recapitulează rapid cu pagina „Sinteza Modulului" din resurse, apoi rezolvă testul de evaluare.
  • Pentru nota maximă la proiect, modularizează soluțiile cu funcții și explică fiecare linie de cod.

Exemplu practic

Un casier verifică dacă un număr de bon este par sau impar pentru a decide la care raft să trimită comanda. Programul care face această verificare pune cap la cap tot ce ai învățat în modul: citește numărul, îl prelucrează într-o buclă, ia o decizie și afișează rezultatul:

n = int(input())
nr_cifre = 0
while n > 0:
    nr_cifre = nr_cifre + 1
    n = n // 10
if nr_cifre % 2 == 0:
    print("Bon par")
else:
    print("Bon impar")