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

2.1. Prelucrarea cifrelor unui număr

Învățăm să extragem, să eliminăm și să adăugăm cifre, apoi folosim aceste operații pentru sume, produse, inversare și construcția numerelor.

EXTRAGE
→
PRELUCREAZĂ
→
CONSTRUIEȘTE
→
TESTEAZĂ
01
OBIECTIVE

La finalul lecției vei putea...

01

Extragi cifre

Folosești % 10 pentru a obține ultima cifră.

02

Elimini cifre

Folosești // 10 pentru a elimina ultima cifră.

03

Prelucrezi cifre

Calculezi suma, produsul, minimul sau numărul cifrelor.

04

Construiești numere

Adaugi cifre și construiești numărul invers.

✓
Checkpoint

Ce operație extrage ultima cifră și ce operație o elimină?

02
EXPLICAȚIE

Două operații care permit parcurgerea cifrelor

1

Extrage

c = n % 10 obține cifra unităților.

2

Elimină

n = n // 10 elimină ultima cifră.

3

Repetă

Continuăm cât timp mai există cifre de prelucrat.

4

Acumulează

Actualizăm suma, produsul sau un contor.

Simulează prelucrarea lui 583

Apasă „Pasul următor” pentru a vedea cum se modifică numărul și cifra extrasă.

Pasul 0

De ce funcționează?

Împărțirea la 10 separă ultima cifră de restul numărului: n = 10 · (n // 10) + (n % 10).

Ideea-cheie: aceeași pereche de operații poate fi combinată cu diferite prelucrări ale cifrelor.
03
EXEMPLU INTUITIV

Desfacem numărul 4725

Imaginează-ți că citești numărul de la dreapta la stânga și, după ce citești o cifră, o acoperi.

Ordinea obținută este 5 → 2 → 7 → 4. Exact aceasta este ordinea produsă de % 10 și // 10.

4725→ 5→ 472→ 2→ 47→ 7→ 4
04
PYTHON

De la cifră la rezultat

n = int(input())
c = n % 10
print(c)
n = n // 10
print(n)

Prima instrucțiune extrage ultima cifră, iar a doua păstrează în n numărul rămas.

Suma cifrelor

n = int(input())
suma = 0
while n > 0:
    c = n % 10
    suma = suma + c
    n = n // 10
print(suma)

Inversarea cifrelor

n = int(input())
invers = 0
while n > 0:
    c = n % 10
    invers = invers * 10 + c
    n = n // 10
print(invers)

Activitate: completează modelul

Ce trebuie pus în locul semnelor ? pentru a calcula suma cifrelor?

05
ALGORITM / PSEUDOCOD

Modele fundamentale

Parcurgerea cifrelor

citește n
cât timp n > 0 execută
    c ← n mod 10
    scrie c
    n ← n div 10
sfârșit cât timp

Suma cifrelor

citește n
suma ← 0
cât timp n > 0 execută
    c ← n mod 10
    suma ← suma + c
    n ← n div 10
sfârșit cât timp
scrie suma

Inversarea cifrelor

citește n
invers ← 0
cât timp n > 0 execută
    c ← n mod 10
    invers ← invers · 10 + c
    n ← n div 10
sfârșit cât timp
scrie invers
06
ATENȚIE!

Erori frecvente

Nu confunda % cu //

% extrage ultima cifră; // elimină ultima cifră.

Nu uita actualizarea

Într-o buclă while n > 0, trebuie să modificăm n.

Produsul începe de la 1

Un produs inițializat cu 0 va rămâne 0.

Tratează n = 0

Numărul 0 are o singură cifră.

07
EXEMPLU REZOLVAT

Raportul cifrelor unui număr

Problemă

Se citește un număr natural n. Determinați numărul de cifre, suma cifrelor, produsul cifrelor și numărul obținut prin inversarea cifrelor.

Idee

Extragem fiecare cifră cu % 10, actualizăm toate rezultatele și eliminăm cifra cu // 10. Astfel facem o singură parcurgere.

Python

n = int(input())

if n == 0:
    numar_cifre = 1
    suma = 0
    produs = 0
    invers = 0
else:
    numar_cifre = 0
    suma = 0
    produs = 1
    invers = 0
    while n > 0:
        c = n % 10
        numar_cifre += 1
        suma += c
        produs *= c
        invers = invers * 10 + c
        n //= 10

print(numar_cifre)
print(suma)
print(produs)
print(invers)

Urmărirea pentru n = 583

Pascnr. cifresumăprodusinvers
131333
282112438
35316120385

Testare

583 → 3 cifre, suma 16, produs 120, invers 385.

0 → 1 cifră, suma 0, produs 0, invers 0.

120 → 3 cifre, suma 3, produs 0, invers 21.

08
EXERCIȚII DE BAZĂ

Aplică direct modelele

  1. Pentru 4725, afișează cifrele în ordinea extragerii.
  2. Afișează ultima cifră a unui număr n.
  3. Elimină ultima cifră a lui n.
  4. Calculează suma cifrelor lui 583.
  5. Calculează produsul cifrelor lui 4725.
  6. Determină numărul de cifre al unui număr natural, inclusiv pentru n = 0.
  7. Numără cifrele pare ale unui număr.
  8. Adaugă cifra 7 la dreapta lui 42.
  9. Adaugă cifra 3 la stânga lui 58.
  10. Construiește inversul lui 4821.
09
EXERCIȚII DE APROFUNDARE

Combină prelucrările

  1. Determină cea mai mare cifră a lui n.
  2. Determină cea mai mică cifră a lui n.
  3. Numără câte cifre sunt egale cu 0.
  4. Determină dacă toate cifrele sunt pare.
  5. Determină dacă apare cifra 7.
  6. Calculează suma cifrelor aflate pe poziții impare, numărând de la dreapta.
  7. Verifică dacă n este palindrom prin compararea cu inversul său.
  8. Construiește numărul obținut prin adăugarea unei cifre c la dreapta lui n.
  9. Construiește numărul obținut prin adăugarea lui c la stânga lui n.
  10. Compară o soluție cu o singură parcurgere cu una care face mai multe parcurgeri.
10
VERIFICARE

Quiz final

Verifică ce ai înțeles

11
MINI-PROIECT

Analizorul unui număr

MISIUNE

Construiește un raport al cifrelor

Realizează un program Python care primește un număr natural și afișează numărul de cifre, suma, produsul, cifra maximă, cifra minimă, numărul cifrelor pare și inversul.

  1. Scrie analiza problemei.
  2. Proiectează pseudocodul.
  3. Implementează soluția.
  4. Urmărește variabilele pentru un exemplu.
  5. Testează cel puțin 8 cazuri, inclusiv 0, o cifră, zerouri și palindrom.

Rubrică

Analiză20%
Algoritm20%
Cod25%
Testare25%
Explicație10%

Ai terminat lecția?

Marchează lecția numai după ce poți explica singur rolul operatorilor % 10 și // 10.