Parcurgerea unei liste cu for și cu indici.
Parcurgerea unei liste cu for și cu indici.
for, indici, acumulare, numărare, selectare și prelucrare
Parcurgerea unei liste cu for și cu indici.
Calcularea sumei, produsului, minimului și maximului prin parcurgere.
Numărarea și selectarea elementelor care îndeplinesc o condiție.
Construirea unor liste noi pe baza unei liste existente, fără a introduce încă generarea sistematică din capitolul 9.
Proiectarea, testarea și verificarea unor algoritmi de bază pentru liste.
Poți explica, în propriile cuvinte, ideea centrală a lecției?
Am învățat să memorăm, să accesăm, să căutăm și să modificăm liste. Acum reunim aceste operații cu structurile repetitive studiate anterior.
Parcurgerea unei liste înseamnă examinarea elementelor sale, unul câte unul, pentru a realiza o prelucrare. Parcurgerea secvențială examinează fiecare element într-o ordine stabilită, de regulă de la primul la ultimul.
Forma for x in L este potrivită când ne interesează valorile. Forma for i in range(len(L)) este potrivită când avem nevoie și de indice.
Pentru sumă folosim un acumulator inițializat cu 0. Pentru produs folosim un acumulator inițializat cu 1. Pentru minim și maxim este sigur să folosim primul element drept valoare inițială, apoi să comparăm restul elementelor.
Pentru numărare folosim un contor inițializat cu 0 și îl incrementăm atunci când condiția este adevărată. Pentru selecție construim o listă nouă și adăugăm elementele care respectă o condiție, folosind append().
—
L=[8,3,10,5,12]
L = [4, 7, 2, 9]
s = 0
for x in L:
s = s + x
print(s)
L = [3, 5, 8, 10, 7]
numar = 0
for x in L:
if x >= 8:
numar = numar + 1
print(numar)
L = [8, 3, 10, 5, 12]
selectate = []
for x in L:
if x % 2 == 0:
selectate.append(x)
print(selectate)
L = [7, 4, 12, 3]
minim = L[0]
maxim = L[0]
for i in range(1, len(L)):
if L[i] < minim:
minim = L[i]
if L[i] > maxim:
maxim = L[i]
print(minim, maxim)
ALGORITM Suma
suma ← 0
pentru fiecare x din L execută
suma ← suma + x
sfârșit pentru
afișează suma
SFÂRȘIT ALGORITM
ALGORITM Numărare
numar ← 0
pentru fiecare x din L execută
dacă x îndeplinește condiția atunci
numar ← numar + 1
sfârșit dacă
sfârșit pentru
afișează numar
SFÂRȘIT ALGORITM
ALGORITM Selectare
S ← listă vidă
pentru fiecare x din L execută
dacă x îndeplinește condiția atunci
adaugă x în S
sfârșit dacă
sfârșit pentru
afișează S
SFÂRȘIT ALGORITM
Se dă o listă de n numere întregi. Determinați suma elementelor pare, numărul elementelor pozitive și construiți lista elementelor mai mari decât media aritmetică. Se consideră n>0.
Parcurgem lista pentru sumă și numărare, calculăm media, apoi realizăm o a doua parcurgere pentru selecție. Această abordare este clară și ușor de verificat.
ALGORITM Suma
suma ← 0
pentru fiecare x din L execută
suma ← suma + x
sfârșit pentru
afișează suma
SFÂRȘIT ALGORITM
ALGORITM Numărare
numar ← 0
pentru fiecare x din L execută
dacă x îndeplinește condiția atunci
numar ← numar + 1
sfârșit dacă
sfârșit pentru
afișează numar
SFÂRȘIT ALGORITM
ALGORITM Selectare
S ← listă vidă
pentru fiecare x din L execută
dacă x îndeplinește condiția atunci
adaugă x în S
sfârșit dacă
sfârșit pentru
afișează S
SFÂRȘIT ALGORITM
n = int(input())
L = []
for i in range(n):
L.append(int(input()))
suma_pare = 0
numar_pozitive = 0
for x in L:
if x % 2 == 0:
suma_pare = suma_pare + x
if x > 0:
numar_pozitive = numar_pozitive + 1
media = sum(L) / n
peste_medie = []
for x in L:
if x > media:
peste_medie.append(x)
print("Suma numerelor pare:", suma_pare)
print("Numărul numerelor pozitive:", numar_pozitive)
print("Media:", media)
print("Peste medie:", peste_medie)| Test | Date | Rezultat așteptat |
|---|---|---|
| Caz normal | [4,-2,7,9,0] | 2; 2; media 3.6; [4,7,9] |
| Caz-limită | [5] | suma pare 0; pozitive 1; media 5; lista peste medie vidă |
| Caz particular | toate valorile negative | numărul pozitiv este 0; media este negativă |
Fiecare operație din program corespunde unei cerințe. Rezultatul poate fi controlat pornind de la lista inițială și urmărind efectul fiecărei instrucțiuni. Testele verifică atât comportamentul obișnuit, cât și situațiile relevante.
1. Când este potrivit for x in L?
2. Când folosim for i in range(len(L))?
3. Cu ce valoare inițializăm suma și produsul?
4. De ce folosim L[0] pentru inițializarea minimului?
5. Cum construim o listă de elemente care respectă o condiție?
6. Ce cazuri trebuie testate pentru un algoritm care prelucrează o listă?
1. Când este potrivit for x in L?
2. Cu ce inițializăm suma?
3. Cu ce inițializăm produsul?
4. Cum inițializăm sigur minimul?
5. Cum construim o listă selectată?
6. Ce trebuie inclus în testare?
Analizor de rezultate școlare: memorează notele unui elev, calculează media, minimul, maximul, numărul notelor cel puțin 9, numărul notelor sub 5 și construiește lista notelor care sunt peste medie. Include analiză, pseudocod, implementare Python, urmărirea variabilelor, testare și justificarea corectitudinii.
Recitește obiectivele, verifică exercițiile și testează mini-proiectul.