300 DE LEI Pachetul care îți asigură nota 10 la BAC, disciplina informatică! 📚 Conține toată materia de liceu ( C++ ), sute de probleme rezolvate ( PBinfo și modele BAC ) și subiectele din anii trecuți, rezolvate și explicate integral ( Pseudocod și C++ )! 🤩
Niște concepte foarte întâlnite în programare și algoritmică sunt vectorii caracteristici și cei frecvență. În tutorialul de astăzi vă voi arăta cum funcționează ambele tipuri de mulțimi speciale și le vom implementa în limbajul de programare C++
Înainte de a începe implementările efective trebuie să înțelegem cum funcționează acești algoritmi. Vectorii caracteristici sunt folosiți pentru a stoca dacă un număr anume, care, de exemplu, respectă o proprietate, apare într-un alt număr, mulțime de numere sau alte cazuri. Mai exact, pentru vectorul caracteristic, denumit prezent[10], vom seta prezent[2] = 1, dacă cifra 2 apare în numărul n citit de la tastatură. La final vom afișa dacă acesta apare sau nu. Mai jos poți vedea implementarea în limbajul de programare C++ a acestui program care parcurge un număr și marchează prezența sau absența singurei cifre pare și prime într-un vector caracteristic.
În programul anterior avem de verificat un singur număr, iar această problemă putea fi rezolvată folosind o singură variabilă de tip boolean, însă dacă problema ar fi cerut mai multe numere această abordare nu ar fi fost eficientă, fiind astfel nevoie de un vector pentru stocarea fiecăruia. Acum apare următoarea problemă, cum putem număra de câte ori apare această cifră într-un număr?
Acest tip de vectori este folosit la numărarea aparițiilor, în timp ce vectorii caracteristici sunt folosiți la verificarea apariției unui element. Mai exact, pentru vectorul de frecvență denumit freq[10], care va stoca numărul de apariții a cifrei 2, vom executa comanda freq[2]++. Sub acest paragraf poți vedea algoritmul care numără de câte ori apare 2 într-un număr n citit de la tastatură în limbajul C++.
Din nou, algoritmul nu este neapărat mai eficient în acest caz, deoarece trebuie să verificăm un singur număr. În caz contrar, avem nevoie de un vector în care putem stoca aparițiile pentru fiecare element. Atenție, acest tip de vector poate avea multe apariții la un singur element astfel se recomandă setarea acestuia de tip long long int, în timp ce un vector caracteristic poate folosi doar variabile de tip boolean pentru a salva memoria de execuția a programului.
La final, pentru a fixa mai bine cunoștințele nou acumulate recomandăm spre rezolvare următoarele probleme de pe platforma PBinfo: numere8, numere1, ciffrecv.
Fondatorul platformei - mentor Academia
Plată securizată și procesată de terminalul online: