Textul subiectului și baremului
Simulare BAC Informatică Mate-Info C/C++ 2024 – 6 martie 2024
Acesta este textul selectabil extras automat din documentele PDF ale acestei variante. Pentru formule, tabele, pseudocod sau grafice, verifică pagina originală din PDF înainte de a rezolva exercițiile.
Subiectul
Deschide PDF-ul originalSubiectul · pagina 1
Ministerul Educației
Centrul Național de Politici și Evaluare în Educație
Probă scrisă la INFORMATICĂ Simulare
Limbajul C/C++
Filieră teoretică, profil real, specializare matematică-informatică / matematică-informatică intensiv informatică
Filieră vocațională, profil militar, specializare matematică-informatică
Pagina 1 din 2
Examenul național de bacalaureat 2024
Proba E. d)
INFORMATICĂ
Limbajul C/C++
Simulare
Filieră teoretică, profil real, specializare matematică-informatică / matematică-informatică intensiv informatică
Filieră vocațională, profil militar, specializare matematică-informatică
• Toate subiectele sunt obligatorii. Se acordă zece puncte din oficiu.
• Timpul de lucru efectiv este de trei ore.
• Identificatorii utilizați în rezolvări trebuie să respecte precizările din enunț (bold), iar în lipsa unor
precizări explicite, notațiile trebuie să corespundă cu semnificațiile asociate acestora (eventual
în formă prescurtată). Datele de intrare se consideră corecte, validarea lor nefiind necesară.
• În grafurile din cerințe oricare arc/muchie are extremități distincte și oricare două arce/muchii
diferă prin cel puțin una dintre extremități.
SUBIECTUL I (20 de puncte)
Pentru fiecare dintre itemii de la 1 la 5, scrieți pe foaia de examen litera corespunzătoare răspunsului
corect. Fiecare răspuns corect se notează cu 4 puncte.
1. Indicați valoarea expresiei C/C++ alăturate. 6.3/20+24
a. 0 b. 24 c. 24.315 d. 24.9
2. Subprogramul f este definit alăturat.
Indicați ce se afișează în urma apelului
de mai jos.
f(2024);
void f(int x)
{ if(x>=24) if(x%2==0)
{ cout<<2; | printf("2");
f(x/2);
}
else
{ f(x/2);
cout<<4; | printf("4");
}
else cout<<0; | printf("0");
}
a. 04424222 b. 22220444 c. 22242440 d. 44402222
3. Utilizând metoda backtracking se generează toate variantele prin care patru persoane pot plăti o
consumație totală de 24 de lei în următoarele condiții:
• fiecare plătește o sumă nenulă, strict mai mică decât 10;
• primul plătește mai puțin decât al doilea, al doilea mai puțin decât al treilea, iar acesta mai puțin decât
al patrulea.
O soluție constă în patru valori, reprezentând, în ordine, sumele plătite de fiecare dintre cele patru persoane.
Primele patru soluții generate sunt, în această ordine: (1, 6, 8, 9), (2, 5, 8, 9), (2, 6, 7, 9), (3, 4, 8, 9). Indicați
soluția generată imediat după (3, 6, 7, 8).
a. (3, 5, 7, 9) b. (4, 5, 6, 9) c. (4, 5, 7, 8) d. (5, 5, 6, 8)
4. În declararea de mai jos, câmpurile structurii memorează date referitoare la un joc video: categoria, numărul
de niveluri de dificultate (maximum cinci) și numărul maxim de puncte care pot fi obținute la fiecare nivel.
Indicați expresia C/C++ care are valoarea 1 dacă și numai
dacă numărul maxim de puncte care se pot obține pe nivelul
notat cu 2 este strict mai mare decât 4.
struct joc
{ int categorie, nrNiveluri;
int puncte[5];
}g;
a. joc(puncte[2])>4 b. puncte.joc[2]>4 c. puncte[2].g>4 d. g.puncte[2]>4
5. Într-un oraș sunt 5 parcuri, notate cu A, B, C, D și E, care sunt conectate prin piste pentru biciclete, pe
care se circulă într-un singur sens, astfel: o pistă de la parcul A către parcul B, o pistă de la parcul B
către parcul E, o pistă de la parcul C către parcul D, o pistă de la parcul D către parcul C, o pistă de la
parcul E către parcul A, o pistă de la parcul E către parcul C și o pistă de la parcul E către parcul D.
Indicați numărul minim de piste pentru care trebuie schimbat sensul de circulație, astfel încât graful
orientat obținut, în care parcurile reprezintă vârfurile, iar pistele reprezintă arcele, să fie tare conex.
a. 1 b. 2 c. 4 d. 6Subiectul · pagina 2
Ministerul Educației Centrul Național de Politici și Evaluare în Educație Probă scrisă la INFORMATICĂ Simulare Limbajul C/C++ Filieră teoretică, profil real, specializare matematică-informatică / matematică-informatică intensiv informatică Filieră vocațională, profil militar, specializare matematică-informatică Pagina 2 din 2 SUBIECTUL al II-lea (40 de puncte) 1. Algoritmul alăturat este reprezentat în pseudocod. S-a notat cu a%b restul împărțirii numărului natural a la numărul natural nenul b și cu [c] partea întreagă a numărului real c. citește n (număr natural nenul) s0; d2 ┌cât timp d*d≤n execută │ p0 │┌cât timp n%d=0 execută ││ n[n/d]; p1 │└■ │ ss+d*p; dd+1 └■ ┌dacă n≠1 atunci │ ss+n └■ scrie s a. Scrieți valoarea afișată în urma executării algoritmului dacă se citește numărul 32625. (6p.) b. Scrieți două numere din intervalul [10,100] care pot fi citite pentru variabila n, astfel încât, pentru fiecare dintre acestea, în urma executării algoritmului, să se afişeze valoarea 2. (6p.) c. Scrieți programul C/C++ corespunzător algoritmului dat. (10p.) d. Scrieți în pseudocod un algoritm echivalent cu cel dat, înlocuind adecvat a doua structură cât timp...execută cu o structură repetitivă cu test final. (6p.) 2. Un arbore cu 10 noduri, numerotate de la 1 la 10, este reprezentat prin vectorul de „tați” (8,1,4,5,0,9,4,5,4,3). Enumerați toate nodurile arborelui care au câte un singur descendent direct („fiu”).(6p.) 3. Variabilele i şi j sunt de tip întreg, iar variabila a memorează un tablou bidimensional cu 5 linii şi 5 coloane, numerotate începând de la 0, având iniţial toate elementele egale cu 1. Scrieţi secvenţa de instrucţiuni C/C++ de mai jos, înlocuind punctele de suspensie cu instrucțiuni adecvate, dintre care cel mult patru de atribuire, astfel încât, în urma executării secvenţei obţinute, variabila a să memoreze tabloul alăturat. for(i=0;i<5;i++) for(j=0;j<5;j++) .................. (6p.) 0 0 0 0 0 0 2 2 2 2 0 2 4 4 4 0 2 4 6 6 0 2 4 6 8 SUBIECTUL al III-lea (30 de puncte) 1. Subprogramul Impare are un parametru, n, prin care primește un număr natural (n∈[1,104]). Subprogramul returnează numărul obținut prin duplicarea fiecărei cifre impare a lui n sau -1 dacă acesta nu are nicio cifră impară. Scrieți definiția completă a subprogramului. Exemplu: dacă n=3361, subprogramul returnează 3333611. (10p.) 2. Un șablon este un text în care cuvintele sunt separate prin câte un spațiu și sunt formate fie numai din litere mici și mari ale alfabetului englez, fie numai din caractere *, în ultimul caz numindu-se cuvinte generice. Lungimea unui cuvânt este egală cu numărul de caractere care îl compun. Un computer generează o frază pe baza unui astfel de șablon, prin înlocuirea fiecărui cuvânt generic cu unul dintre cuvintele de aceeași lungime, preluat dintr-o listă dată. Scrieți un program C/C++ care citește de la tastatură un număr natural, n (n∈[1,100]), și o listă de n cuvinte, urmată de un șablon de tipul precizat. Fiecare cuvânt din listă este format din maximum 10 litere mici și mari ale alfabetului englez și la citire este introdus singur pe linie. Șablonul conține maximum 100 de caractere. Programul obține în memorie și apoi afișează pe ecran una dintre frazele care pot fi generate pe baza șablonului și a listei citite sau mesajul imposibil dacă nu se poate genera o astfel de frază. Exemplu: dacă n=6, iar lista de cuvinte este cea alăturată, pentru șablonul Era o vreme ******* si ***** din belsug ***** se generează fraza Era o vreme placuta si soare din belsug soare sau fraza Era o vreme calduta si soare din belsug acasa etc., iar pentru șablonul *** o vreme ******* si ************ se afișează mesajul imposibil (10p.) rece placuta acasa calduta innorata soare 3. Un șir se numește de tip api dacă numărul de apariții ale fiecărui termen este mai mic sau egal cu acel termen și are o paritate egală cu a acestuia. Fișierul bac.in conține un șir de cel mult 106 numere naturale din intervalul [1,103], separate prin câte un spațiu. Se cere să se afișeze pe ecran mesajul DA, dacă șirul este de tip api, sau mesajul NU în caz contrar. Proiectați un algoritm eficient din punctul de vedere al timpului de executare. Exemplu: dacă fișierul conține numerele 6 27 2 6 27 6 6 14 14 2 27 se afișează pe ecran DA (termenul par 6 apare de 4 ori, 4 fiind tot număr par și 4≤6, termenii pari 2 și 14 apar de câte 2 ori, 2 fiind tot număr par și 2≤2, respectiv 2≤14, iar termenul impar 27 apare de 3 ori, 3 fiind tot număr impar și 3≤27). a. Descrieți în limbaj natural algoritmul proiectat, justificând eficiența acestuia. (2p.) b. Scrieți programul C/C++ corespunzător algoritmului proiectat. (8p.)
Baremul
Deschide PDF-ul originalBaremul · pagina 1
Ministerul Educației Centrul Național de Politici și Evaluare în Educație Probă scrisă la INFORMATICĂ Simulare Filieră teoretică, profil real, specializare matematică-informatică / matematică-informatică intensiv informatică Filieră vocațională, profil militar, specializare matematică-informatică Barem de evaluare și de notare Pagina 1 din 2 Examenul național de bacalaureat 2024 Proba E. d) INFORMATICĂ BAREM DE EVALUARE ȘI DE NOTARE (comun pentru limbajele C/C++ şi Pascal) Simulare Filieră teoretică, profil real, specializare matematică-informatică / matematică-informatică intensiv informatică Filieră vocaţională, profil militar, specializare matematică-informatică • Se punctează orice modalitate de rezolvare corectă a cerinţelor. • Nu se acordă punctaje intermediare, altele decât cele precizate explicit în barem. Nu se acordă fracţiuni de punct. • Se acordă zece puncte din oficiu. Nota finală se calculează prin împărțirea la zece a punctajului total acordat pentru lucrare. • Utilizarea unui tip de date care depăşeşte domeniul de valori precizat în enunţ (de exemplu tipuri întregi cu semn pentru memorarea numerelor naturale, dimensiune a tablourilor) este acceptată din punctul de vedere al corectitudinii programului, dacă acest lucru nu afectează funcționarea sa. SUBIECTUL I (20 de puncte) 1c 2b 3b 4d 5a 5x4p. SUBIECTUL al II - lea (40 de puncte) 1. a. Răspuns corect: 37 6p. b. Pentru răspuns corect 6p. Se acordă câte 3p. pentru fiecare dintre cele două numere conform cerinței (oricare dintre numerele 16, 32 sau 64) și numai câte 1p. pentru fiecare dintre cele două numere care conduc la scrierea valorii cerute, dar care nu aparțin intervalului indicat (numere de forma 2k, unde k este număr natural nenul, dar k≤3 sau k≥7). c. Pentru program corect - declarare a variabilelor conform cerinței - citire a datelor conform cerinței - afișare a datelor conform cerinței - instrucțiuni repetitive conform cerinței (*) - instrucțiune de decizie conform cerinței - atribuiri conform cerinței - corectitudine globală a programului1) 10p. 1p. 1p. 1p. 3p. 2p. 1p. 1p. (*) Se acordă numai 2p. dacă doar una dintre instrucțiunile repetitive este conform cerinței. d. Pentru algoritm pseudocod corect - utilizare a unei structuri repetitive cu test final (*) - aspecte specifice ale secvenței obținute prin înlocuire, conform cerinței (**) - algoritm complet, corectitudine globală a algoritmului1) 6p. 2p. 3p. 1p. (*) Se va puncta orice formă corectă de structură repetitivă conform cerinței (repetă ... până când, repetă...cât timp, do...while etc.). (**) Se acordă numai 2p. dacă un singur aspect specific (expresie pentru testul final, tratare a cazului inițial n%d=0) este conform cerinței. 2. Răspuns corect: 1, 3, 8, 9 6p. Se acordă numai 2p. dacă un singur nod este conform cerinței, numai 3p. dacă doar două noduri sunt conform cerinței, numai 4p. dacă doar trei noduri sunt conform cerinței și numai 5p. dacă au fost enumerate cinci sau șase noduri, dintre care patru sunt conform cerinței. 3. Pentru rezolvare corectă - expresie de accesare a unui element al tabloului - valori ale elementelor tabloului atribuite conform cerinței (*) - secvență completă, corectitudine globală a secvenței1) 6p. 1p. 4p. 1p. (*) Se acordă câte 2p. pentru fiecare aspect (identificare a cel puțin unei relații între valoarea elementului și poziția acestuia în tablou, valori suport în corelare cu pozițiile elementelor utilizând numărul indicat de instrucțiuni de atribuire) conform cerinței.
Baremul · pagina 2
Ministerul Educației Centrul Național de Politici și Evaluare în Educație Probă scrisă la INFORMATICĂ Simulare Filieră teoretică, profil real, specializare matematică-informatică / matematică-informatică intensiv informatică Filieră vocațională, profil militar, specializare matematică-informatică Barem de evaluare și de notare Pagina 2 din 2 SUBIECTUL al III - lea (30 de puncte) 1. Pentru subprogram corect - antet al subprogramului (*) - determinare a numărului cerut (**) - instrucțiune/instrucțiuni de returnare a rezultatului și tratare a cazului -1 - declarare a tuturor variabilelor locale, corectitudine globală a subprogramului1) 10p. 2p. 6p. 1p. 1p. (*) Se acordă câte 1p. pentru fiecare aspect al antetului (structură, parametru de intrare) conform cerinței. (**) Se acordă câte 1p. pentru fiecare aspect (acces la o cifră a unui număr, cifre suport analizate, identificare a unei cifre pare/impare, adăugare a unei cifre la un număr, cifre suport adăugate/păstrate - inclusiv cifre nule pe ultimele poziții, ordine a cifrelor) conform cerinței. 2. Pentru program corect - declarare a unor variabile care să permită memorarea unei liste de cuvinte și a unui șablon/fraze, conform cerinței - citire a datelor, conform cerinței - determinare a unei fraze conform cerinței (*) - afișare a frazei și tratare a cazului imposibil - declarare a variabilelor simple, corectitudine globală a programului1) 10p. 1p. 1p. 6p. 1p. 1p. (*) Se acordă câte 1p. pentru fiecare aspect (cuvinte suport analizate în șablon, identificare a unui cuvânt generic, algoritm de bază de căutare, identificare a unui cuvânt adecvat pe baza lungimii acestuia, adăugare/înlocuire în memorie a unui cuvânt într-un șir, caractere suport înlocuite/adăugate/păstrate – inclusiv spații între cuvinte) conform cerinței. 3. a. Pentru răspuns corect - descriere coerentă a algoritmului (*) - justificare a elementelor de eficienţă 2p. 1p. 1p. (*) Se acordă punctajul chiar dacă algoritmul ales nu este eficient. (**) Se acordă numai 3p. dacă algoritmul este principial corect, dar nu oferă rezultatul cerut pentru toate seturile de date de intrare. (***) Se acordă punctajul numai pentru un algoritm liniar. O soluție posibilă utilizează un vector de apariții, ap, unde api memorează numărul de apariții ale valorii i în șirul dat. Pe măsura citirii datelor din fișier se actualizează api pentru fiecare valoare i citită. După citirea tuturor termenilor șirului se parcurg toate elementele tabloului api, pentru verificarea proprietății cerute: variabila ok (inițial ok=1) se actualizează corespunzător (ok=0) dacă există o valoare i care a apărut în șir (api≠0), dar api%2≠i%2 sau api>i. După parcurgerea vectorului de apariții se afișează mesajul DA, dacă ok=1 sau NU, în caz contrar. b. Pentru program corect - operații cu fișiere: declarare, pregătire în vederea citirii, citire din fişier - verificare a proprietății cerute (*),(**) - utilizare a unui algoritm eficient (***) - declarare a variabilelor, afișare a datelor, corectitudine globală a programului1) 8p. 1p. 5p. 1p. 1p. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.