La fiecare sesiune, odată cu subiectele se publică și baremul de evaluare. Pentru BAC informatică, baremul e documentul care îți spune cel mai clar ce contează: ce primește puncte, ce nu, și cum se împart punctele la itemii de programare. Mulți elevi îl citesc doar ca să-și afle nota după examen. E mai util să-l citești înainte, ca să știi cum gândește corectorul.
Descrierea de mai jos e una generală, bazată pe forma baremelor din ultimii ani. Detaliile exacte diferă de la o variantă la alta, așa că verifică întotdeauna baremele oficiale de pe subiecte.edu.ro.
Regulile generale
- Nota se obține împărțind punctajul total la 10. Din cele 100 de puncte, 10 se acordă din oficiu.
- Nu se acordă punctaje intermediare altele decât cele precizate în barem: la un item de 6 puncte, punctajele intermediare posibile sunt cele scrise explicit în barem.
- Se punctează orice soluție corectă, nu doar cea din barem. Dacă algoritmul tău diferă de soluția oficială, dar respectă cerința, primești punctajul. Baremul conține de obicei o mențiune în acest sens.
Itemi cu răspuns exact: Subiectul I și II.1a, II.1b
La cele cinci grile din Subiectul I (4 puncte fiecare) contează doar litera corectă. La fel la II.1a („ce se afișează dacă se citește…”) și, în general, la II.1b („scrieți valori pentru care se afișează…”): rezultatul e corect sau nu. Tabelul de urmărire de pe ciornă nu aduce puncte dacă rezultatul final e greșit.
Ce înseamnă asta pentru tine: la itemii aceștia, viteza fără verificare e periculoasă. O cifră greșită la jumătatea urmăririi strică tot rezultatul. Dacă ai timp, refă urmărirea a doua oară, eventual pe alt drum (de exemplu, după ce ai înțeles ce face algoritmul, verifică rezultatul „logic”).
La II.1b, citește atent ce se cere: „două valori distincte”, „cel mai mic număr de trei cifre”, „toate numerele din intervalul…”. O singură valoare când se cer două sau o valoare care nu respectă restricția din enunț înseamnă puncte pierdute.
Programele: punctajul pe elemente
Aici baremul devine cu adevărat interesant. La itemii unde scrii cod — II.1c, III.1, III.2, III.3b — punctajul nu e „totul sau nimic”. Baremul împarte punctele pe elemente distincte, de exemplu:
- declararea corectă a variabilelor (și includerea bibliotecilor necesare);
- citirea datelor, respectiv afișarea rezultatelor în formatul cerut;
- structurile repetitive și decizionale scrise corect;
- atribuirile și operațiile specifice algoritmului;
- corectitudinea globală a programului (programul funcționează pentru toate datele valide).
Consecința practică: scrie întotdeauna ceva. Un program care citește corect datele, are structura repetitivă potrivită și afișează rezultatul în formatul cerut poate aduna puncte chiar dacă logica din interior e incompletă. O foaie goală aduce zero.
La II.1c, „corectitudinea globală” înseamnă că programul tău C++ face exact ce face pseudocodul. Greșelile de traducere, cum ar fi condiția nenegată la repetă … până când sau o împărțire care nu e întreagă, se depunctează chiar dacă restul e perfect.
Subprogramul de la III.1: antetul contează
La subprogram, baremul punctează separat antetul: tipul returnat, numele exact și parametrii cu tipurile lor. Dacă enunțul cere subprogramul nrDiv cu un parametru n care returnează numărul de divizori ai lui n, atunci antetul corect este int nrDiv(int n). Un nume diferit sau un parametru în plus costă puncte, chiar dacă algoritmul e bun.
int nrDiv(int n) {
int k = 0;
for (int d = 1; d * d <= n; d++)
if (n % d == 0) {
k++; // divizorul d
if (d != n / d) k++; // perechea lui, n / d
}
return k;
}
Pentru n = 12, perechile găsite sunt (1, 12), (2, 6), (3, 4), deci funcția returnează 6. Pentru n = 16: (1, 16), (2, 8) și apoi 4, numărat o singură dată — rezultat 5.
Alte depunctări frecvente la subprogram: afișarea rezultatului cu cout în loc de return, citirea lui n în interiorul funcției (deși îl primește ca parametru) sau lipsa transmiterii prin referință atunci când subprogramul trebuie să modifice o variabilă primită.
main. Citește cerința: dacă nu ți se cere un program complet, nu pierde timp scriindu-l.Problema de eficiență (III.3): cum se împart cele 10 puncte
Itemul III.3 are două părți. La a) (2 puncte) descrii algoritmul în limbaj natural și justifici eficiența. Corectorul urmărește ca descrierea să fie coerentă (să se înțeleagă ce faci) și ca justificarea să fie concretă: câte parcurgeri faci, ce memorie folosești și de ce nu depinde de numărul de valori.
La b) (8 puncte) scrii programul. O parte din punctaj e legată de corectitudine (citirea din fișier, algoritmul, afișarea), iar o parte de eficiență. Două reguli importante, care apar în forme asemănătoare în baremele recente:
- punctajul pentru eficiență se acordă doar dacă algoritmul e corect — o soluție rapidă, dar greșită, nu primește puncte pe eficiență;
- o soluție corectă, dar neeficientă (de exemplu, memorezi toate numerele și faci două bucle imbricate), primește doar o parte din punctaj.
Strategia care rezultă e simplă: dacă nu vezi imediat soluția eficientă, scrie-o pe cea corectă. Și descrie la a) exact algoritmul pe care l-ai implementat la b), nu altul.
Itemul II.1d: structura echivalentă
La rescrierea cu altă structură repetitivă, baremul urmărește două lucruri: că ai folosit efectiv tipul de structură cerut și că algoritmul nou e echivalent cu cel inițial, adică afișează același lucru pentru orice date de intrare. Cea mai frecventă depunctare apare la trecerea de la repetă la cât timp: bucla repetă se execută cel puțin o dată, iar cât timp poate să nu se execute deloc. Dacă nu tratezi diferența, algoritmul nu mai e echivalent pentru anumite valori.
Cum folosești baremul în pregătire
După fiecare simulare, corectează-te singur cu baremul oficial, punct cu punct, fără indulgență. Notează unde ai pierdut puncte: la antet? La format? La eficiență? În câteva săptămâni vei avea o hartă clară a punctelor tale slabe — mult mai utilă decât o notă generală.
De reținut
- ● Nota = punctaj total / 10; 10 puncte se dau din oficiu.
- ● La grile și la II.1a, II.1b contează doar răspunsul final — nu există punctaj parțial pentru raționament.
- ● La programe, punctajul e împărțit pe elemente (declarări, citire, structuri, afișare, corectitudine), deci și o soluție incompletă aduce puncte.
- ● La subprogram, antetul (tip, nume, parametri) se punctează separat — copiază-l fidel din enunț.
- ● La III.3, punctajul de eficiență vine doar împreună cu un algoritm corect; o soluție corectă, dar neeficientă, primește de regulă doar o parte din puncte.
- ● Consultă baremele oficiale publicate odată cu subiectele pe subiecte.edu.ro.