Primul lucru pe care ar trebui să-l faci când începi pregătirea pentru BAC informatică nu este să rezolvi probleme, ci să înțelegi forma lucrării. Structura examenului este aceeași de la o sesiune la alta: se schimbă enunțurile, dar tipurile de itemi rămân. Asta înseamnă că poți ști dinainte unde se pierd de obicei puncte, cât timp merită să petreci pe fiecare parte și ce trebuie să exersezi până devine reflex.
Articolul descrie modelul actual pentru limbajul C/C++, profil real. Punctajele de mai jos sunt cele din modelele recente — înainte de examen, verifică întotdeauna ultimul model oficial publicat pe subiecte.edu.ro.
Pe scurt: 3 ore, 100 de puncte
Proba durează 3 ore și se notează cu 100 de puncte, dintre care 10 se acordă din oficiu. Rămân 90 de puncte împărțite în trei subiecte:
| Subiect | Ce conține | Punctaj |
|---|---|---|
| Subiectul I | 5 itemi cu alegere multiplă, câte 4p | 20p |
| Subiectul II | Algoritm în pseudocod (a, b, c, d) + doi itemi scurți | 40p |
| Subiectul III | Subprogram, program cu șiruri/tablouri, problemă cu fișier | 30p |
| Oficiu | — | 10p |
Subiectul I: cinci grile, 20 de puncte
Primești cinci întrebări cu patru variante de răspuns, fiecare de 4 puncte. Nu există punctaj parțial: ori ai încercuit litera corectă, ori nu. Temele variază, dar apar frecvent:
- evaluarea unei expresii C++ (cu
/,%, operatori logici); - grafuri și arbori — număr de muchii, grade, vectori de tați, componente conexe;
- o funcție recursivă la care trebuie să afli valoarea returnată sau ce se afișează;
- backtracking — care este soluția generată pe o anumită poziție.
Exemplu tipic de expresie: cât valorează 17 % 5 * 3 / 2? Operatorii %, * și / au aceeași prioritate și se evaluează de la stânga la dreapta: 17 % 5 = 2, apoi 2 * 3 = 6, apoi 6 / 2 = 3. Grilele de felul acesta se rezolvă în un-două minute, dacă ai regulile clare în cap.
Subiectul II: algoritmul în pseudocod și doi itemi scurți
Subiectul II valorează 40 de puncte, iar cea mai mare parte vine din primul item: un algoritm scris în pseudocod, urmat de patru cerințe.
| Item | Cerința | Punctaj |
|---|---|---|
| 1a | Ce se afișează pentru datele de intrare date | 6p |
| 1b | Găsește valori de intrare pentru care se afișează un rezultat dat | 6p |
| 1c | Scrie programul C++ corespunzător algoritmului | 10p |
| 1d | Rescrie algoritmul în pseudocod cu altă structură repetitivă | 6p |
| 2 | Item scurt (de exemplu grafuri/arbori, struct) | 6p |
| 3 | Item scurt (de exemplu șiruri de caractere, matrice) | 6p |
Itemul 1 aduce 28 de puncte dintr-un singur algoritm de 8–12 rânduri. E cea mai „previzibilă” parte a lucrării: la a) urmărești execuția cu un tabel de variabile, la b) înțelegi ce face algoritmul și lucrezi invers, la c) traduci în C++, la d) transformi, de exemplu, un cât timp într-un repetă … până când sau un pentru într-un cât timp.
Itemii 2 și 3 sunt scurți, dar cer precizie: completezi o secvență de cod, scrii o declarare de struct, construiești o matrice după o regulă sau răspunzi la o întrebare despre un graf. Aici un indice greșit costă tot itemul.
Subiectul III: programare în C++
Ultimul subiect, de 30 de puncte, este numai cod.
- Un subprogram (10p). Enunțul îți dă numele, parametrii și ce trebuie să returneze sau să modifice. Antetul trebuie să respecte exact cerința.
- Un program cu șiruri de caractere sau tablouri (10p) — de exemplu, prelucrarea cuvintelor dintr-un text sau construirea și afișarea unei matrice.
- O problemă cu date dintr-un fișier text, la care se cere un algoritm eficient din punctul de vedere al timpului de executare și al memoriei:
- a) descrii în limbaj natural algoritmul și justifici de ce e eficient (2p);
- b) scrii programul C++ (8p).
La III.3, „eficient” înseamnă de obicei: citești numerele o singură dată, nu le memorezi pe toate dacă nu e nevoie și eviți buclele imbricate inutile. Tehnici ca vectorul de frecvență sau păstrarea doar a ultimelor valori citite fac diferența între punctajul maxim și unul parțial.
Cum îți împarți cele 3 ore
Nu există o împărțire obligatorie, dar una care funcționează pentru majoritatea elevilor arată așa:
| Etapă | Timp orientativ |
|---|---|
| Citirea întregii lucrări, notițe pe ciornă | 10 min |
| Subiectul I | 25–30 min |
| Subiectul II | 50–60 min |
| Subiectul III | 60–70 min |
| Verificare finală | 10–15 min |
Ordinea nu trebuie să fie I–II–III. Mulți elevi încep cu itemul II.1, pentru că e punctaj sigur și îi „încălzește”, apoi trec la Subiectul III cât sunt încă odihniți și lasă grilele la final. Important e să nu rămâi blocat: dacă o grilă îți ia mai mult de 5–6 minute, marchează-o și revino.
La Subiectul III, scrie mai întâi pe ciornă ideea în 2–3 rânduri, apoi codul. Un program scris direct pe foaie, fără plan, ajunge de obicei plin de tăieturi și cu variabile uitate.
Ce înseamnă asta pentru pregătirea ta
Structura fixă îți spune clar ce să exersezi. Pentru Subiectul II ai nevoie de mulți algoritmi în pseudocod urmăriți de mână și traduși în C++. Pentru Subiectul III ai nevoie de câteva „șabloane” scrise de zeci de ori: subprogram cu cifre sau divizori, prelucrare de șiruri cu strtok sau parcurgere manuală, citire din fișier cu while (f >> x). Iar pentru Subiectul I ai nevoie de teorie solidă pe grafuri, recursivitate și backtracking.
Cea mai bună verificare este o simulare completă, cronometrată, corectată apoi cu baremul. Abia acolo vezi dacă îți ajunge timpul și unde pierzi puncte.
De reținut
- ● Proba durează 3 ore și are 100 de puncte, dintre care 10 din oficiu.
- ● Subiectul I: 5 grile × 4p. Subiectul II: 40p, din care 28p vin din algoritmul în pseudocod. Subiectul III: 30p, numai cod C++.
- ● Itemul II.1 (a, b, c, d) e cel mai „sigur” punctaj din lucrare — nu-l grăbi.
- ● La III.3, eficiența contează: un algoritm liniar care citește datele o singură dată valorează mai mult decât unul cu vectori mari și bucle imbricate.
- ● Lasă 10–15 minute la final pentru verificare: punct și virgulă, inițializări, formatul afișării.
- ● Punctajele de aici descriu modelul actual; verifică mereu ultimul model oficial pe subiecte.edu.ro.