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

1.2. Structurile de control

Instrucțiuni liniare și alternative; repetarea cu număr cunoscut de pași (for) și cu număr necunoscut de pași (while); aplicații.

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

La finalul lecției vei putea...

  • să explici ce este o structură de control;
  • să identifici o instrucțiune liniară;
  • să utilizezi structura alternativă pentru alegerea unei acțiuni;
  • să utilizezi for când numărul de repetări este cunoscut;
  • să utilizezi while când repetarea este controlată de o condiție;
  • să scrii aceste structuri în pseudocod și Python;
  • să urmărești variabilele și să testezi/depanezi programe cu structuri de control.
02
EXPLICAȚIE

Instrucțiuni și structuri de control

2.1. Ce este o structură de control?

Instrucțiunile unui program nu sunt întotdeauna executate pur și simplu una după alta. Uneori alegem între variante sau repetăm un grup de instrucțiuni.

LINIARALTERNATIVREPETITIV

2.2. Instrucțiunea liniară

citește a
citește b
s ← a + b
scrie s

2.3. Structura alternativă

dacă x > 0 atunci
    scrie "pozitiv"
altfel
    scrie "nepozitiv"
sfârșit dacă
if x > 0:
    print("pozitiv")
else:
    print("nepozitiv")

2.4. Alternativa simplă

Dacă dorim să executăm instrucțiuni numai când condiția este adevărată, putem omite ramura else.

2.5. Structura repetitivă

for → știm de câte ori repetăm. while → repetăm cât timp o condiție este adevărată.

03
EXEMPLU INTUITIV

Repetarea și alegerea unei acțiuni

for

„Ridicați mâna de 5 ori.” Știm numărul de repetări.

while

„Ridicați mâna până când vă spun să vă opriți.” Nu știm dinainte numărul de repetări.

Alege structura potrivită

Vrem să afișăm numerele de la 1 la 100. Ce alegem?

04
PYTHON

Structurile de control în Python

for și range()

for i in range(1, 6):
    print(i)

Rezultatul este 1, 2, 3, 4, 5. În range(start, stop), valoarea stop nu este inclusă.

for i in range(2, 11, 2):
    print(i)

Rezultatul este 2, 4, 6, 8, 10.

while

i = 1
while i <= 5:
    print(i)
    i = i + 1

Condiția este verificată înaintea fiecărei repetări.

Interactiv: range()

Câte valori produce range(3, 15, 3)?

05
ALGORITM / PSEUDOCOD

Descriem algoritmul înainte de cod

Pentru suma numerelor de la 1 la n, pseudocodul este:

citește n
S ← 0
pentru i ← 1, n execută
  S ← S + i
sfârșit pentru
scrie S
06
ATENȚIE!

Greșeli frecvente în structurile de control

  • range() nu include limita finală. Pentru 1–10 se folosește range(1, 11).
  • În while, variabila de control trebuie modificată atunci când aceasta este necesară pentru terminarea repetării.
  • Condiția din while este verificată înaintea fiecărei repetări.
  • Indentarea stabilește apartenența instrucțiunilor la blocul if, for sau while.
  • Alege structura potrivită problemei: for pentru repetări controlate natural de număr de pași și while pentru repetări controlate de condiție.
07
EXEMPLU REZOLVAT

Rezolvăm o problemă pas cu pas

Problema

Se citește un număr natural n. Să se calculeze suma numerelor de la 1 la n.

Analiză

Intrare: n. Ieșire: S. Idee: adunăm pe rând valorile 1, 2, ..., n.

Pseudocod

citește n
S ← 0
pentru i ← 1, n execută
    S ← S + i
sfârșit pentru
scrie S

Python — for

n = int(input())
S = 0
for i in range(1, n + 1):
    S = S + i
print(S)

Python — while

n = int(input())
S = 0
i = 1
while i <= n:
    S = S + i
    i = i + 1
print(S)

Pentru n = 5, rezultatul este 15.

Urmărirea variabilelor

Pentru n = 4, care este valoarea finală a lui S?

08
EXERCIȚII DE BAZĂ

Aplicarea directă a structurilor

  1. Afișați dacă un număr este pozitiv, negativ sau zero.
  2. Afișați toate numerele de la 1 la n.
  3. Afișați toate numerele pare de la 0 la n.
  4. Calculați suma numerelor de la 1 la n folosind for.
  5. Rezolvați exercițiul anterior folosind while.
  6. Calculați produsul 1 · 2 · ... · n.
  7. Se citesc n numere. Calculați suma lor.
  8. Se citesc numere până la 0. Determinați suma fără a include 0.
09
EXERCIȚII DE APROFUNDARE

Combinăm structurile în probleme mai complexe

  1. Se citesc n numere întregi. Determinați câte sunt pozitive.
  2. Se citesc n numere întregi. Determinați cea mai mare valoare.
  3. Se citesc numere până la 0. Determinați primul număr pozitiv.
  4. Se citește n. Afișați toți divizorii lui n.
  5. Se citește n. Determinați numărul divizorilor săi.
  6. Determinați suma cifrelor unui număr natural.
  7. Realizați teste pentru suma 1 + ... + n: n = 1, n = 5, n = 10 și o valoare mare.
  8. Identificați eroarea din i = 1; while i <= 10: print(i); i = i - 1. Explicați de ce repetarea nu se termină.
10
VERIFICARE

Quiz final

Mini-quiz

11
MINI-PROIECT

Aplicarea integrată a structurilor de control

„Analizatorul numerelor”

Realizează un program care citește n și apoi n numere întregi. Determină suma, câte sunt pozitive, câte sunt negative, câte sunt zero, maximul și minimul.

Realizează analiza problemei, pseudocodul, o variantă Python cu for și una cu while. Testează cu cel puțin trei seturi de date și notează valorile variabilelor importante.

Provocare: determină și prima valoare pozitivă din secvență.