Aceasta lectie acopera algoritmii fundamentali de prelucrare a numerelor naturale si a sirurilor de caractere, esentiali pentru pregatirea examenului de Bacalaureat la Informatica (atât profil real, cât și uman). Vom începe cu algoritmi de sume și produse, care implică parcurgerea unor mulțimi finite (de la 1 la n, sau citite de la tastatură) și acumularea rezultatelor. De exemplu, suma primelor n numere naturale se realizează cu o buclă for și o variabilă s inițializată cu 0.
Produsul numerelor pare dintr-un șir de n numere se construiește cu o variabilă p inițializată cu 1, iar pentru fiecare număr par se înmulțește. Atenție la cazul când nu există niciun număr par – produsul rămâne 1, dar de multe ori se cere să afișăm mesaj corespunzător. Prelucrările cifrelor unui număr natural se bazează pe extragerea ultimei cifre prin n%10 și eliminarea ei prin n/10, într-o buclă while.
Astfel putem determina suma cifrelor, oglinditul (inversul), numărul de cifre, sau să verificăm dacă numărul este palindrom (egal cu oglinditul său). De exemplu, pentru 12321, oglinditul este tot 12321, deci palindrom. Algoritmii cu divizori implică testarea divizibilității: pentru a afla divizorii unui număr n, parcurgem i de la 1 la sqrt(n) și verificăm dacă n % i == 0; dacă da, atât i cât și n/i sunt divizori (cu excepția cazului când i = n/i).
Astfel putem determina suma divizorilor, numărul de divizori, sau dacă numărul este prim (are exact 2 divizori). Prelucrarea șirurilor de caractere se face prin parcurgerea caracterelor cu ajutorul funcției length() și accesarea prin index (sir[i]). Operații frecvente: numărarea aparițiilor unui caracter, transformarea literelor mici în mari (prin scăderea lui 32 din codul ASCII), verificarea dacă un șir este palindrom, sau eliminarea spațiilor.
Toți acești algoritmi se implementează în pseudocod sau în limbajul C++ (de obicei, la Bac se cere pseudocod sau C++). Recomand să scrieți întâi algoritmul pe hârtie, să testați cu exemple simple, și apoi să îl transpuneți în cod. În lecția de față vom vedea aplicații concrete, cu rezolvări pas cu pas.
Concepte cheie: Inițializarea corectă a variabilelor de acumulare (suma cu 0, produsul cu 1), Extragerea și eliminarea cifrelor unui număr natural (n%10, n/10), Parcurgerea eficientă a divizorilor până la radical din n, Testarea apartenenței unui șir la clasa palindromurilor, Transpunerea algoritmilor în pseudocod și C++ pentru Bacalaureat
Vrei exerciții pe lecția asta + AI care te ajută pas cu pas?
Cont gratuit — 20 întrebări AI/zi, exerciții nelimitate.