Conectează-te Înregistrare gratuită
Informatică Liceu (9-12)

Algoritmi elementari (prelucrarea numerelor, siruri de caractere)

Pe scurt

Algoritmii elementari pentru prelucrarea numerelor și a șirurilor de caractere constituie fundamentul programării, fiind baza pentru înțelegerea structurilor de date avansate. Aceștia includ operații aritmetice repetitive pentru extragerea cifrelor și verificarea proprietăților numerelor, precum și parcurgerea și manipularea șirurilor prin acces direct la index sau funcții specifice. Stăpânirea acestor algoritmi este esențială pentru rezolvarea problemelor de la Bacalaureat și pentru dezvoltarea gândirii algoritmice.

Prelucrarea numerelor

Algoritmii elementari pentru prelucrarea numerelor includ operații precum

  • Determinarea cifrelor unui număr
  • Verificarea proprietăților (palindrom, prim, perfect)
  • Calculul sumei cifrelor
  • Inversarea numărului
  • Descompunerea în factori primi
  • Aflarea celui mai mare divizor comun (CMMDC) și celui mai mic multiplu comun (CMMMC)

Acești algoritmi se bazează pe operații aritmetice (împărțiri, modulo) și pe structuri repetitive (while, for).

Extragerea cifrelor unui număr natural n:

  • Se folosește o buclă care rulează cât timp n > 0
  • În fiecare iterație se extrage ultima cifră prin n % 10
  • Apoi se elimină ultima cifră prin n = n / 10

Exemplu – Verificare palindrom:

  • Se citește un număr natural n
  • Se salvează numărul original într-o variabilă
  • Se inversează numărul într-o buclă: while(n>0) { ogl = ogl*10 + n%10; n/=10; }
  • Se compară numărul inversat cu originalul
  • Dacă sunt egale, atunci este palindrom
  • Complexitate: O(număr de cifre)

Prelucrarea șirurilor de caractere

Algoritmii elementari pentru prelucrarea șirurilor includ

  • Parcurgerea șirului
  • Căutarea unui caracter
  • Înlocuirea caracterelor
  • Inversarea șirului
  • Verificarea palindromului
  • Conversia între majuscule și minuscule

În limbajul C++, șirurile de caractere sunt reprezentate ca

  • Vectori de caractere (char[]) – operații prin funcții precum strlen(), strcmp(), strcpy()
  • Tipul string – operații prin metode specifice: length(), find(), substr()

Operațiile se fac prin acces direct la index.

Exemplu – Numărarea aparițiilor unui caracter:

  • Se dă un șir s (de tip string) și un caracter c
  • Se parcurge șirul cu un for de la 0 la s.length()-1
  • Dacă s[i] == c, se incrementează un contor
  • Se afișează contorul
  • Alternativ: se poate folosi funcția count(s.begin(), s.end(), c)

Combinarea algoritmilor

Algoritmii de prelucrare a numerelor și șirurilor sunt adesea combinați, de exemplu:

  • Când se transformă un număr în șir pentru a-i analiza cifrele
  • Când se transformă un șir în număr

Exemplu – Conversia unui număr în baza 2:

  • Se citește un număr natural n
  • Se construiește un șir de caractere (sau se afișează direct)
  • Se extrag resturile împărțirii la 2, într-o buclă while(n>0)
  • Se adaugă restul (char)('0'+n%2) la începutul șirului (sau într-un vector și apoi inversat)
  • Se afișează șirul rezultat

Concepte cheie

  • Extragerea cifrelor unui număr folosind modulo și împărțire
  • Parcurgerea și manipularea șirurilor de caractere (indexare, funcții)
  • Algoritmi de bază: palindrom, prim, CMMDC, inversare număr/șir

Verifică-te!

  1. Ce operații aritmetice se folosesc pentru a extrage cifrele unui număr natural într-o buclă?
  2. Care sunt cele două moduri de reprezentare a șirurilor de caractere în limbajul C++?
  3. Ce complexitate are algoritmul de verificare a palindromului pentru un număr natural?

Vrei exerciții pe lecția asta + AI care te ajută pas cu pas?
Cont gratuit — 20 întrebări AI/zi, exerciții nelimitate.

Creează cont