Explică memorarea
Diferențiezi prelucrarea cu memorare de prelucrarea fără memorare.
Căutare, selecție, numărare și prelucrare secvențială
Diferențiezi prelucrarea cu memorare de prelucrarea fără memorare.
Construiești căutări secvențiale pentru existența unei valori.
Prelucrezi valorile care satisfac o condiție și numeri aparițiile.
Alegi ce informație trebuie păstrată și testezi soluția pe cazuri relevante.
Care este ideea centrală a lecției?
Fără memorare înseamnă că nu păstrăm toate valorile citite. Păstrăm doar informația necesară rezultatului: un contor, o sumă, un minim, un maxim sau o variabilă logică.
Cu memorare înseamnă că păstrăm valorile pentru utilizări ulterioare. În Capitolul 8 vom studia sistematic clasa list din Python.
Verificăm elementele în ordine până când rezultatul cerut este cunoscut. Pentru simpla existență este suficientă o variabilă logică, precum gasit.
Selecția prelucrează numai valorile care satisfac o condiție. De exemplu, putem calcula suma valorilor pozitive fără să memorăm celelalte valori.
Pentru numărare folosim un contor inițializat cu 0. Este important să nu confundăm „există?” cu „de câte ori apare?”.
Ce idee trebuie reținută înainte de a aplica algoritmul?
Întrebarea „Există o notă de 10?” are nevoie doar de răspunsul DA/NU. În schimb, „Care sunt toate notele de 10?” cere păstrarea valorilor selectate.
Rezultatul va apărea aici.
Selectăm valorile pozitive din 3 -2 8 0 -5 4.
Apasă butonul.
n = int(input())
k = int(input())
gasit = False
for i in range(n):
x = int(input())
if x == k:
gasit = True
if gasit:
print("DA")
else:
print("NU")
Variabila gasit păstrează o singură informație: dacă valoarea a fost întâlnită sau nu.
n = int(input())
k = int(input())
numar = 0
for i in range(n):
x = int(input())
if x == k:
numar = numar + 1
print(numar)
n = int(input())
numar = 0
suma = 0
for i in range(n):
x = int(input())
if x > 0:
numar = numar + 1
suma = suma + x
print(numar)
print(suma)
ALGORITM Cautare
citește n, k
gasit ← fals
pentru i ← 1,n execută
citește x
dacă x = k atunci
gasit ← adevărat
sfârșit dacă
sfârșit pentru
dacă gasit atunci
scrie "DA"
altfel
scrie "NU"
sfârșit dacă
SFÂRȘIT ALGORITM
Pentru numărare, înlocuim variabila logică cu un contor inițializat cu 0 și îl incrementăm la fiecare apariție.
gasit răspunde la DA/NU; un contor răspunde la „de câte ori?”.
Variabila logică începe cu False, iar contorul începe cu 0.
A selecta înseamnă a prelucra valorile care respectă o condiție; dacă trebuie păstrate toate, este necesară memorarea.
Păstrează numai ceea ce cere problema. Nu memora date inutil.
Se citesc n rezultate întregi. Determinați numărul și suma rezultatelor cel puțin 5, numărul valorilor 10 și dacă există valoarea 1. Nu memorați șirul.
Avem trei prelucrări care pot fi realizate simultan. Folosim două contoare, o sumă și o variabilă logică.
citește n
numar5 ← 0
suma5 ← 0
numar10 ← 0
exista1 ← fals
pentru fiecare x execută
dacă x ≥ 5 atunci
numar5 ← numar5 + 1
suma5 ← suma5 + x
sfârșit dacă
dacă x = 10 atunci
numar10 ← numar10 + 1
sfârșit dacă
dacă x = 1 atunci
exista1 ← adevărat
sfârșit dacă
sfârșit pentru
scrie numar5, suma5, numar10, exista1
n = int(input())
numar5 = 0
suma5 = 0
numar10 = 0
exista1 = False
for i in range(n):
x = int(input())
if x >= 5:
numar5 = numar5 + 1
suma5 = suma5 + x
if x == 10:
numar10 = numar10 + 1
if x == 1:
exista1 = True
print("Cel puțin 5:", numar5)
print("Suma lor:", suma5)
print("Valori 10:", numar10)
print("Există 1:", exista1)
Pentru 2, 4, 7, 4, 4, 1 și k=4, contorul aparițiilor lui 4 evoluează: 0 → 1 → 1 → 2 → 3 → 3.
Caz normal: există mai multe valori ≥5 și apare 10.
Caz-limită: n=1.
Caz particular: valoarea căutată nu apare; apoi toate valorile sunt egale cu ea.
Fiecare valoare este analizată o singură dată. Contoarele se modifică exact atunci când condițiile cerute sunt adevărate, iar exista1 devine adevărat dacă și numai dacă întâlnim valoarea 1.
1. Ce înseamnă prelucrare fără memorare?
2. Pentru a număra valorile pozitive, ce tip de variabilă este potrivit?
3. Cu ce valoare se inițializează în mod obișnuit un contor?
4. Ce urmărește o căutare secvențială pentru verificarea existenței unei valori?
5. Ce este selecția într-o prelucrare secvențială?
6. Când este necesară memorarea valorilor?
7. Ce diferență există între „există o valoare 10” și „de câte ori apare 10”?
8. De ce trebuie testat și cazul în care nu există nicio valoare selectată?
Filtrul de rezultate. Citiți n rezultate întregi. Calculați numărul și suma celor cel puțin 5, numărul valorilor 10 și dacă există valoarea 1. Nu memorați șirul. Includeți trei teste.
Revizuiește activitățile, verifică testele și apoi marchează lecția ca finalizată.