Un plan de pregătire pentru BAC informatică funcționează doar dacă respectă ordinea naturală a materiei: nu poți scrie un subprogram care lucrează pe vectori dacă încă nu ești sigur pe while, iar backtracking-ul nu are sens fără recursivitate. Planul de mai jos împarte programa în 12 săptămâni, cu circa 5–6 ore de lucru pe săptămână, și lasă ultimele patru săptămâni pentru simulări complete.
Dacă ai mai mult timp, întinde-l. Dacă ai mai puțin, comprimă primele săptămâni, dar nu sări peste simulări — ele îți arată cel mai clar ce nu știi.
Cum arată o săptămână
Fiecare săptămână are aceeași structură, ca să nu pierzi timp decizând ce faci:
- 2 sesiuni de teorie + exemple (câte 45–60 min): citești tema, urmărești de mână exemplele rezolvate;
- 2 sesiuni de probleme: scrii cod pe hârtie, apoi îl verifici pe calculator;
- o sesiune de recapitulare: grile scurte și flashcard-uri din temele săptămânilor anterioare.
Scrisul de mână e important: la examen nu ai compilator care să-ți spună că ai uitat o acoladă.
Săptămânile 1–4: fundația
Săptămâna 1 — pseudocod, tipuri de date, operatori
Convențiile de pseudocod (←, [x], %, cât timp, repetă … până când, pentru), tipurile int, long long, double, char, bool, operatorii / și %, expresiile logice. Exersezi urmărirea cu tabel pe cel puțin 10 algoritmi scurți.
Săptămâna 2 — structuri repetitive și cifrele unui număr
Traducerea din pseudocod în C++ și rescrierea cu structuri repetitive echivalente. Algoritmii pe cifre: sumă, produs, oglindit, palindrom, cifra maximă, eliminarea cifrelor pare. Aceasta e baza itemului II.1.
Săptămâna 3 — divizibilitate
Divizorii unui număr în O(√n), verificarea primalității, CMMDC prin algoritmul lui Euclid, CMMMC, conversii între baze de numerație, șirul lui Fibonacci.
Săptămâna 4 — subprograme
Funcții care returnează o valoare, funcții void, parametri prin valoare și prin referință (int x față de int &x). Rescrii algoritmii din săptămânile 2–3 ca subprograme, exact în forma cerută la III.1.
Săptămânile 5–8: tablouri, șiruri, fișiere
Săptămâna 5 — recursivitate și vectori
Recursivitatea: condiția de oprire, stiva de apeluri, urmărirea cu arbore de apeluri. Apoi vectorii: citire, afișare, minim, maxim, sumă, inserare și ștergere de elemente.
Săptămâna 6 — sortare, căutare, frecvențe
Metoda bulelor, sortarea prin selecție și inserție, căutarea binară, interclasarea, vectorul de frecvență. Începe să te întrebi la fiecare problemă: „care e complexitatea?”.
Săptămâna 7 — matrice
Parcurgeri pe linii și coloane, zonele matricei pătratice (diagonale, triunghiuri, margini), construirea unei matrice după o regulă. Notează-ți condițiile pe indici pentru fiecare zonă.
Săptămâna 8 — șiruri de caractere și struct
strlen, strcpy, strcat, strcmp, strchr, strstr, separarea cuvintelor cu strtok, probleme clasice (palindrom, vocale, majuscule). La final, tipul struct: declarare, câmpuri, vectori de înregistrări.
Săptămânile 9–12: metode avansate și simulări
Din acest moment, în fiecare săptămână faci și o simulare completă de 3 ore, corectată cu baremul. Temele noi se lucrează în celelalte zile.
| Săptămâna | Temă nouă | Simulare |
|---|---|---|
| 9 | Fișiere text, citirea până la sfârșitul fișierului, algoritmi eficienți pentru III.3 | Simularea 1 |
| 10 | Backtracking: schema generală, permutări, aranjamente, combinări | Simularea 2 |
| 11 | Grafuri neorientate și orientate, conexitate, arbori și vectorul de tați | Simularea 3 |
| 12 | Stive și cozi, recapitulare generală din caietul de greșeli | Simulările 4 și 5 |
Primele simulări vor avea goluri — normal, pentru că backtracking-ul și grafurile vin abia acum. Asta nu e o problemă: la Subiectul I sari peste grilele pe care nu le-ai studiat încă și te concentrezi pe ce știi.
Caietul de greșeli
De la prima săptămână, ține un caiet (sau o notă pe telefon) în care scrii fiecare greșeală, cu exemplul concret:
- „Am uitat să inițializez
s = 0în subprogram.” - „La
repetă … până când n = 0am scriswhile (n == 0)în loc dewhile (n != 0).” - „În matrice am scris condiția pentru diagonala secundară
i + j == n, dar indicii începeau de la 0, deci trebuiai + j == n - 1.”
Înaintea fiecărei simulări recitești caietul. Greșelile scrise o dată se repetă mult mai rar.
Recapitularea: cum nu uiți ce ai învățat în săptămâna 2
Problema oricărui plan lung e că până în săptămâna 11 ai uitat jumătate din săptămâna 3. Soluția e recapitularea scurtă și deasă: 10–15 minute pe zi cu grile sau flashcard-uri amestecate din toate temele parcurse. Nu trebuie să rezolvi probleme întregi — e suficient să-ți reamintești ideea: „divizorii merg în perechi până la √n”, „la ștergere deplasez elementele spre stânga, începând de la poziția ștearsă”.
Dacă ai mai puțin de 12 săptămâni
Prioritizează după punctaj și frecvență. Algoritmii pe cifre și divizibilitate, traducerea pseudocod → C++, subprogramele, vectorii, șirurile de caractere și citirea din fișier apar în aproape fiecare variantă și acoperă cea mai mare parte din Subiectele II și III. Grafurile, recursivitatea și backtracking-ul apar mai ales în grilele de la Subiectul I și la itemii scurți. Nu le sări, dar dacă timpul e foarte scurt, lucrează-le pe tipurile de întrebări care apar în variantele oficiale, nu exhaustiv.
De reținut
- ● Ordinea contează: pseudocod și algoritmi elementari → subprograme și recursivitate → tablouri și șiruri → fișiere și eficiență → backtracking și grafuri.
- ● O sesiune de lucru eficientă: puțină teorie, multă scriere de cod de mână, apoi recapitulare scurtă.
- ● Începe simulările complete din săptămâna 9 și corectează-le cu baremul.
- ● Ține un caiet de greșeli și recitește-l înainte de fiecare simulare.
- ● Recapitularea periodică (flashcard-uri, grile scurte) împiedică uitarea temelor din primele săptămâni.