Explici generarea
Explici ce înseamnă generarea sistematică a elementelor unei liste și identifici regula unei secvențe.
Valori cu proprietăți date și termeni ai unor expresii matematice
Explici ce înseamnă generarea sistematică a elementelor unei liste și identifici regula unei secvențe.
Construiești secvențe consecutive, pare, impare sau cu un pas dat.
Generezi termenii unei expresii matematice folosind formula termenului general.
Folosești append(), pseudocodul, urmărirea variabilelor și teste relevante.
Care este ideea centrală a generării sistematice?
În capitolele anterioare am folosit liste existente și am învățat să le parcurgem și să le prelucrăm. Uneori lista nu este dată de utilizator: trebuie să o construim. Dacă elementele pot fi obținute după o regulă clară, spunem că generăm sistematic elementele listei.
A genera sistematic înseamnă să stabilim o regulă și să o aplicăm în mod repetat, în aceeași manieră, pentru a obține toți termenii necesari. De exemplu, secvența 2, 4, 6, 8, 10 poate fi generată pornind de la 2 și adăugând 2 sau folosind formula 2 · i.
Dacă valorile sunt obținute prin deplasări egale, range(start, stop, pas) este foarte potrivit. Limita stop nu este inclusă.
Dacă termenul general este aᵢ = f(i), alegem valorile lui i și calculăm fiecare termen. De exemplu, pentru aᵢ = i², la i = 1, 2, 3, 4 obținem 1, 4, 9, 16.
Lista începe goală, iar fiecare valoare nouă este adăugată cu append(). Astfel, lista poate fi prelucrată ulterior.
De ce folosim n + 1 în range(1, n + 1)?
Imaginează-ți că un aparat produce etichete numerotate. Dacă trebuie să producă etichetele 2, 4, 6, 8, 10, regula este „pornește de la 2 și adaugă 2”. Programul face același lucru: produce fiecare valoare și o adaugă în listă.
Alege o secvență și apasă „Generează”.
Fiecare element este obținut după o regulă stabilită înaintea parcurgerii.
valori = []
for x in range(2, 11, 2):
valori.append(x)
print(valori)Rezultatul este [2, 4, 6, 8, 10]. Variabila x primește succesiv valorile generate de range(), iar append() adaugă fiecare valoare la sfârșitul listei.
n = int(input())
valori = []
for i in range(1, n + 1):
valori.append(i * i)
print(valori)Pentru n = 4, lista este [1, 4, 9, 16].
citește n
valori []
pentru i 1,n execută
x f(i)
adaugă x la valori
sfârșit pentru
scrie valoriÎnlocuim f(i) cu regula problemei. Pentru aᵢ = i², calculăm x = i · i. Pentru o secvență cu pas constant putem folosi direct valorile produse de range().
range() nu include limita finalăPentru 1, 2, ..., n folosim range(1, n + 1).
Generarea stabilește cum obținem valorile; prelucrarea analizează valorile deja obținute.
append() adaugă un singur elementÎntr-o parcurgere, fiecare termen calculat poate fi adăugat separat.
Dacă formula folosește i = 1, ..., n, bucla trebuie să respecte aceeași convenție.
Pentru n citit, generați lista [1², 2², ..., n²].
Intrare: n. Ieșire: lista pătratelor. Idee: parcurgem indicii 1 până la n, calculăm i² și îl adăugăm în listă.
citește n
valori []
pentru i 1,n execută
valori.append(i * i)
sfârșit pentru
scrie valorin = int(input())
valori = []
for i in range(1, n + 1):
valori.append(i * i)
print(valori)| i | i² | valori |
|---|---|---|
| 1 | 1 | [1] |
| 2 | 4 | [1, 4] |
| 3 | 9 | [1, 4, 9] |
| 4 | 16 | [1, 4, 9, 16] |
| Test | Date | Rezultat așteptat |
|---|---|---|
| Caz-limită | n = 1 | [1] |
| Caz normal | n = 4 | [1, 4, 9, 16] |
| Valoare relevantă | n = 6 | [1, 4, 9, 16, 25, 36] |
i din 1,...,n se adaugă exact i². Prin urmare, lista conține în ordine toți termenii ceruți.aᵢ = 3i + 2.aᵢ = i² + i.a + (i - 1)b.aᵢ = i² - 3i + 2 și determinați câte sunt negative.aᵢ = ai² + bi + c, pentru i=1,...,n.1. Ce înseamnă generarea sistematică a unei liste?
2. Ce produce range(2,11,2)?
3. Ce rol are append() în exemplul de generare?
4. Pentru a_i=i², ce calculăm la i=4?
5. De ce folosim range(1,n+1) pentru n termeni indexați de la 1?
6. Ce trebuie stabilit înaintea generării?
Realizați un program care citește n și permite generarea uneia dintre secvențele: numere pare, numere impare, pătrate sau cuburi. Lista generată trebuie afișată, iar pentru ea să se calculeze suma și maximul. Folosiți o singură parcurgere pentru generare și prelucrare.
Verifică regula de generare, numărul de termeni și faptul că prelucrarea se realizează corect.