Textul subiectului și baremului
Model oficial BAC Informatică Mate-Info C/C++ 2018
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 Naționale Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică MODEL Limbajul C/C++ Filiera teoretică, profilul real, specializările: matematică-informatică, matematică-informatică intensiv informatică Filiera vocaţională, profilul militar, specializarea matematică-informatică 1 din 3 Examenul de bacalaureat naţional 2018 Proba E. d) Informatică Limbajul C/C++ MODEL Filiera teoretică, profilul real, specializările: matematică-informatică matematică-informatică intensiv informatică Filiera vocaţională, profilul militar, specializarea matematică-informatică • Toate subiectele sunt obligatorii. Se acordă 10 puncte din oficiu. • Timpul de lucru efectiv este de 3 ore. • În rezolvările cerute, identificatorii utilizaţi 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ă). • În programele cerute, datele de intrare se consideră corecte, validarea acestora nefiind necesară. SUBIECTUL I (30 de puncte) Pentru itemul 1, scrieţi pe foaia de examen litera corespunzătoare răspunsului corect. 1. Variabilele x, y și z sunt de tip întreg și memorează câte un număr natural. Știind că expresia C/C++ alăturată are valoarea 1, indicați șirul crescător format cu valorile acestor variabile, în ordinea precizată mai jos. (4p.) !(x>=y) && z>y a. x, y, z b. y, z, x c. z, x, y d. z, y, x 2. Algoritmul alăturat este reprezentat în pseudocod. citeşte x,y (numere naturale, x≤y) b0 c1 ┌pentru zx,y execută │┌cât timp c<z execută ││ ab ││ bc ││ ca+b │└■ │┌dacă z=c atunci ││ scrie z,’ ’ │└■ └■ a) Scrieţi valorile afișate dacă se citesc, în această ordine, numerele 3 și 10. (6p.) b) Dacă pentru variabila x se citește numărul 18, scrieţi cel mai mic și cel mai mare număr care pot fi citite pentru variabila y astfel încât, în urma executării algoritmului, pentru fiecare dintre acestea, să se afișeze o singură valoare. (4p.) c) Scrieţi în pseudocod un algoritm echivalent cu cel dat, înlocuind adecvat structura cât timp...execută cu o structură repetitivă cu test final. (6p.) d) Scrieţi programul C/C++ corespunzător algoritmului dat. (10p.)
Subiectul · pagina 2
Ministerul Educaţiei Naționale Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică MODEL Limbajul C/C++ Filiera teoretică, profilul real, specializările: matematică-informatică, matematică-informatică intensiv informatică Filiera vocaţională, profilul militar, specializarea matematică-informatică 2 din 3 SUBIECTUL al II-lea (30 de puncte) Pentru fiecare dintre itemii 1 şi 2 scrieţi pe foaia de examen litera corespunzătoare răspunsului corect. 1. Un graf orientat are 8 vârfuri, numerotate de la 1 la 8, și arcele (1,4), (1,6), (3,4), (3,6), (3,7), (3,8), (5,4), (5,8), (6,4), (6,7), (8,4), (8,7). Numărul vârfurilor care au gradul extern nul este: (4p.) a. 1 b. 2 c. 3 d. 4 2. Se consideră un graf neorientat complet, cu 21 de noduri. Pentru a obține un graf parțial al său cu două componente conexe, fiecare dintre acestea fiind grafuri complete, numărul maxim de muchii care pot fi eliminate este: (4p.) a. 100 b. 105 c. 108 d. 110 Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare. 3. Pentru o mașină, în variabila m se memorează următoarele informații: data cumpărării (luna și anul) şi marca. Știind că expresiile C/C++ de mai jos au ca valori luna (un număr natural din intervalul [1,12]) și anul cumpărării mașinii (număr natural), respectiv marca acesteia (un șir de cel mult 20 de caractere), scrieți definiția unei structuri cu eticheta masina, care permite memorarea informațiilor pentru o mașină, și declarați corespunzător variabila m. m.data.luna m.data.an m.marca (6p.) 4. Variabilele s și x permit memorarea câte unui șir cu maximum 20 de caractere. Fără a utiliza alte variabile, scrieți o secvență de instrucțiuni C/C++ în urma executării căreia variabila x să permită memorarea șirului corespunzător variabilei s, dacă el are un număr par de caractere, sau a unui șir obținut din acesta prin eliminarea caracterului din mijloc, în caz contrar, ca în exemplu. Exemplu: dacă șirul corespunzător variabilei s este pictura șirul memorat prin intermediul variabilei x este picura (6p.) 5. Scrieţi un program C/C++ care citeşte de la tastatură un număr natural n (n∈∈∈∈[3,50]) și construiește în memorie un tablou bidimensional cu n linii şi n coloane, astfel încât fiecare element aflat pe diagonala secundară a sa, precum și elementele vecine aflate pe aceeași linie cu el, pe coloana din stânga, respectiv pe coloana din dreapta sa, dacă există, au valoarea 1, iar toate celelalte elemente ale tabloului au valoarea 2, ca în exemplu. Programul afişează pe ecran tabloul obținut, câte o linie a tabloului pe câte o linie a ecranului, elementele fiecărei linii fiind separate prin câte un spaţiu. Exemplu: dacă n=7, se afișează pe ecran 2 2 2 2 2 1 1 2 2 2 2 1 1 1 2 2 2 1 1 1 2 2 2 1 1 1 2 2 2 1 1 1 2 2 2 1 1 1 2 2 2 2 1 1 2 2 2 2 2 (10p)
Subiectul · pagina 3
Ministerul Educaţiei Naționale
Centrul Naţional de Evaluare şi Examinare
Probă scrisă la informatică MODEL
Limbajul C/C++
Filiera teoretică, profilul real, specializările: matematică-informatică, matematică-informatică intensiv informatică
Filiera vocaţională, profilul militar, specializarea matematică-informatică
3 din 3
SUBIECTUL al III-lea (30 de puncte)
Pentru itemul 1, scrieţi pe foaia de examen litera corespunzătoare răspunsului corect.
1. Se consideră subprogramul f, definit alăturat.
Valoarea f(20,18) este:
(4p.)
int f(int x, int y)
{ if (x==y) return 0;
if(x>y) return 1+f(x/2,y);
return 1+f(x,y/2);
}
a. 2 b. 4 c. 6 d. 8
Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.
2. Utilizând metoda backtracking, se generează toate posibilitățile de a forma succesiuni de
câte 5 genuri muzicale distincte din mulțimea {baladă, doină, fado, romanță, trova},
astfel încât în fiecare succesiune genul fado precede genul romanță. Două succesiuni sunt
distincte dacă genurile muzicale sunt în altă ordine.
Primele cinci soluţii generate sunt, în această ordine, (baladă, doină, fado, romanță,
trova), (baladă, doină, fado, trova, romanță), (baladă, doină, trova, fado,
romanță), (baladă, fado, doină, romanță, trova), (baladă, fado, doină, trova,
romanță). Scrieți, în ordinea obținerii, ultimele două soluții generate imediat înainte de
(trova, fado, romanță, baladă, doină). (6p.)
3. Se consideră subprogramul divizori, cu patru parametri:
• n, prin care primeşte un număr natural (n∈∈∈∈[2,106]);
• x, y și z, prin care furnizează câte un divizor al lui n (0<x<y<z) cu proprietatea că
x+y+z=n, sau valoarea 0, prin fiecare dintre aceștia, dacă n nu are astfel de divizori.
Scrieţi definiţia completă a subprogramului.
Exemplu: pentru numărul n=24, în urma apelului, x=4, y=8 şi z=12, iar pentru numărul
n=9, în urma apelului, x=0, y=0 şi z=0. (10p.)
4. Un număr natural x, format din exact două cifre, este numit sub-număr al unui număr
natural y dacă cifrele lui x apar, în aceeași ordine, pe ranguri consecutive, în numărul y.
Exemplu: 21 este sub-număr al lui 12145, al lui 213, al lui 21, dar nu și al lui 123 sau al
lui 231.
Fișierul bac.txt conține cel mult 106 numere naturale din intervalul [10, 109], separate
prin câte un spațiu.
Se cere să se afișeze pe ecran, separate prin câte un spațiu, sub-numerele care apar o
singură dată în scrierea numerelor din fișier, sau mesajul nu exista dacă nu există
niciun astfel de sub-număr. Proiectați un algoritm eficient din punctul de vedere al timpului
de executare.
Exemplu: dacă fişierul bac.txt conţine numerele
3 9 1 7 7 7 2 4 3 5 8 2 3 9 7 2
atunci pe ecran se afișează valorile de mai jos, nu neapărat în această ordine:
91 43 35 58 23 97
a) Descrieţi în limbaj natural algoritmul proiectat, justificând eficienţa acestuia. (2p.)
b) Scrieţi programul C/C++ corespunzător algoritmului descris. (8p.)Baremul
Deschide PDF-ul originalBaremul · pagina 1
Ministerul Educaţiei Naționale Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică MODEL Filiera teoretică, profilul real, specializările: matematică-informatică, matematică-informatică intensiv informatică Filiera vocaţională, profilul militar, specializarea matematică-informatică Barem de evaluare şi de notare 1 din 2 Examenul de bacalaureat naţional 2018 Proba E. d) Informatică Barem de evaluare și de notare (comun pentru limbajele C/C++ şi Pascal) MODEL Filiera teoretică, profilul real, specializările: matematică-informatică matematică-informatică intensiv informatică Filiera vocaţională, profilul militar, specializarea matematică-informatică • Se punctează oricare alte modalităţi de rezolvare corectă a cerinţelor. • Nu se acordă punctaje intermediare, altele decât cele precizate explicit prin barem. Nu se acordă fracţiuni de punct. • Se acordă 10 puncte din oficiu. Nota finală se calculează prin împărţirea punctajului total acordat pentru lucrare la 10. • Utilizarea unui tip de date care depăşeşte domeniul de valori precizat în enunţ este acceptată dacă acest lucru nu afectează corectitudinea în funcţionarea programului. • Se vor lua în considerare atât implementările concepute pentru compilatoare pe 16 biţi, cât şi cele pentru compilatoare pe 32 de biţi. SUBIECTUL I (30 de puncte) 1. a 4p. 2. a) Răspuns corect: 3 5 8 6p. Se acordă câte 2p. pentru fiecare valoare conform cerinței. b) Răspuns corect: 21 33 4p. Se acordă câte 2p. pentru fiecare număr conform cerinței. c) Pentru algoritm pseudocod corect -echivalenţă a prelucrării realizate, conform cerinţei (*) -corectitudine globală a algoritmului1) 6p. 5p. 1p. (*) Se acordă numai 2p. dacă algoritmul are o structură repetitivă conform cerinței, principial corectă, dar nu este echivalent cu cel dat. Se va puncta orice formă corectă de structură repetitivă conform cerinței. d) Pentru program corect -declarare a tuturor variabilelor -citire a datelor -afişare a datelor -instrucţiune de decizie -instrucţiuni repetitive (*) -atribuiri -corectitudine globală a programului1) 10p. 1p. 1p. 1p. 2p. 3p. 1p. 1p. (*) Se acordă numai 2p. dacă doar una dintre instrucţiuni este conform cerinței. SUBIECTUL al II - lea (30 de puncte) 1. c 4p. 2. d 4p. 3. Pentru rezolvare corectă -definire principial corectă a unei înregistrări -definire a câmpurilor înregistrării (*) -declarare a variabilei -corectitudine globală a secvenței1) 6p. 1p. 3p. 1p. 1p. (*) Se acordă câte 1p. pentru fiecare câmp definit conform cerinței.
Baremul · pagina 2
Ministerul Educaţiei Naționale Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică MODEL Filiera teoretică, profilul real, specializările: matematică-informatică, matematică-informatică intensiv informatică Filiera vocaţională, profilul militar, specializarea matematică-informatică Barem de evaluare şi de notare 2 din 2 4. Pentru rezolvare corectă -determinare a lungimii unui șir -memorare a șirului cerut (*) -corectitudine globală a secvenței1) 6p. 1p. 4p. 1p. (*) Se acordă numai 2p. dacă șirul este obținut conform cerinței doar pentru unul dintre cazuri. 5. Pentru program corect -declarare a variabilei de tip tablou -memorare a valorilor elementelor (*) -afişare a unui tablou (**) -declarare și citire a variabilelor simple, corectitudine globală a programului1) 10p. 1p. 6p. 2p. 1p. (*) Se acordă câte 1p. pentru fiecare aspect al cerinței (valori 1 pe diagonala secundară, valori 1 deasupra diagonale secundare, valori 1 sub diagonala secundară, valori 2 deasupra diagonalei secundare, valori 2 sub diagonala secundară, construire în memorie). (**) Se acordă numai 1p. dacă sunt afișate toate elementele, dar nu în formatul cerut. SUBIECTUL al III - lea (30 de puncte) 1. c 4p. 2. Pentru răspuns corect (trova, fado, doină, baladă, romanță) (trova, fado, doină, romanță, baladă) 6p. Se acordă câte 2p. pentru fiecare aspect al cerinței (prima soluție, a doua soluție, ordine a soluțiilor). 3. Pentru subprogram corect -structură antet principial corectă -declarare corectă a parametrilor -determinare a tripletelor cu proprietatea cerută (*) -furnizare a valorilor nule conform cerinței -declarare a tuturor variabilelor locale, corectitudine globală a subprogramului1) 10p. 1p. 1p. 6p. 1p. 1p. (*) Se acordă câte 2p. pentru fiecare proprietate a numerelor x, y și z (divizori, 0<x<y<z, x+y+z=n) conform cerinței. 4. a) Pentru răspuns corect -descriere coerentă a algoritmului (*) -justificare a unor elemente de eficienţă 2p. 1p. 1p. (*) Se acordă punctajul chiar dacă algoritmul ales nu este eficient. b) Pentru program corect -operaţii cu fişiere: declarare, pregătire în vederea citirii, citire din fişier -determinare a valorilor cerute (*, **) -afișare a datelor și tratare a cazului nu exista -utilizare a unui algoritm eficient (***) -afișare a datelor, declarare a tuturor variabilelor, corectitudine globală a programului1) 8p. 1p. 4p. 1p. 1p. 1p. (*) Se acordă punctajul chiar dacă soluţia propusă nu prezintă elemente de eficienţă. (**) Se acordă numai 2p. pentru algoritm principial corect, dar care nu conduce la rezultatul cerut pentru toate cazurile. (***) Se acordă punctajul numai pentru un algoritm liniar. O soluţie posibilă utilizează un vector de apariții, v, în care se actualizează numărul de apariții vi pentru fiecare sub-număr i, la parcurgerea fişierului și prelucrarea corespunzătoare a termenilor șirului. Numerele cerute corespund valorilor i pentru care vi are valoarea 1. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.