Algoritmii fundamentali de prelucrare a secvențelor de numere (sau a listelor) sunt baza programării. Aceștia ne ajută să calculăm rapid proprietăți globale ale unui set de date, fără a fi nevoie să memorăm toate valorile în același timp. În practică, citim numerele unul câte unul (de la tastatură, dintr-un fișier sau dintr-o listă) și actualizăm o variabilă de acumulare sau de comparație.
Suma se calculează inițializând o variabilă s = 0, apoi pentru fiecare număr citit x, adunăm: s = s + x. La final, variabila s conține suma tuturor numerelor.
Produsul se calculează similar, dar inițializăm p = 1 (deoarece 1 este elementul neutru la înmulțire). Pentru fiecare număr x, facem p = p * x. Atenție: dacă în listă există un 0, produsul devine 0 și rămâne 0.
Numărarea (contorizarea) constă în a număra câte elemente îndeplinesc o anumită condiție. Inițializăm un contor cnt = 0, iar pentru fiecare element care satisface condiția (de exemplu, numere pare, numere mai mari decât 10), incrementăm cnt = cnt + 1.
Maximul și minimul se determină prin comparații succesive. Pentru maxim: inițializăm max = -infinit (sau prima valoare citită, dacă știm că lista nu e goală). Pentru fiecare număr x, dacă x > max, atunci actualizăm max = x. Pentru minim, procedăm analog: min = +infinit, iar când x < min, actualizăm min = x.
Toți acești algoritmi au complexitate O(n), adică parcurg fiecare element o singură dată. Ei sunt fundamentali pentru înțelegerea conceptelor de acumulator, contor și variabilă de referință.
Exemplu practic: Avem numerele 3, 7, 2, 9, 5. Suma = 3+7+2+9+5 = 26. Produsul = 3*7*2*9*5 = 1890. Numărul de numere pare = 1 (doar 2). Maximul = 9, minimul = 2.
Concepte cheie: Acumulator (variabila de sumă/produs), Contor (variabila de numărare), Comparație și actualizare (maxim/minim), Inițializare corectă (0 pentru sumă, 1 pentru produs, primul element sau +/- infinit pentru max/min), Parcurgerea secvențială a datelor
Vrei exerciții pe lecția asta + AI care te ajută pas cu pas?
Cont gratuit — 20 întrebări AI/zi, exerciții nelimitate.