Textul subiectului și baremului
Subiect BAC Informatică Mate-Info C/C++ 2017 – varianta 4
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ă Varianta 4 Limbajul C/C++ Filiera teoretică, profilul real, specializările: matematică-informatică, matematică-informatică intensiv informatică Filiera vocaţională, profilul militar, specializarea matematică-informatică 1 Examenul de bacalaureat naţional 2017 Proba E. d) Informatică Limbajul C/C++ Varianta 4 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. Indicaţi o expresie C/C++ care are valoarea 1 dacă şi numai dacă numărul natural memorat în variabila întreagă x are exact o cifră. (4p.) a. x%10==x b. x/10==x c. x%10==x/10 d. (x%10)/10==x 2. Se consideră algoritmul alăturat, reprezentat în pseudocod. citeşte n (număr natural nenul) ┌pentru i1,n execută │┌pentru j1,n execută ││┌dacă i=j sau i+j=n+1 atunci │││ scrie ’#’ │││altfel │││ scrie j ││└■ │└■ └■ a) Scrieţi ce se afișează dacă se citește numărul 3. (6p.) b) Scrieți un număr care poate fi citit, astfel încât, în urma executării algoritmului numărul de simboluri # afișate să fie 100. (4p.) c) Scrieţi în pseudocod un algoritm echivalent cu cel dat, înlocuind adecvat prima structură pentru...execută cu o structură repetitivă cu test inițial. (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ă Varianta 4
Limbajul C/C++
Filiera teoretică, profilul real, specializările: matematică-informatică, matematică-informatică intensiv informatică
Filiera vocaţională, profilul militar, specializarea matematică-informatică
2
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. Indicați șirul afișat pe ecran în urma executării instrucțiunii următoare:
cout<<strstr(”veni,vidi,vici”,”vi”); |
printf(”%s”,strstr(”veni,vidi,vici”,”vi”));
(4p.)
a. vidi b. vidi,vici c. 2 d. 6
2. Se consideră un graf neorientat cu 7 noduri şi 21 de muchii. Indicaţi numărul minim de
muchii care pot fi eliminate, astfel încât graful parţial obţinut să aibă două componente
conexe, cu cel puţin două noduri fiecare. (4p.)
a. 6 b. 8 c. 10 d. 12
Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.
3. În declararea alăturată, variabila x
memorează numele unui elev şi cele două
medii semestriale obținute de acesta la
informatică. Scrieţi o secvență de instrucțiuni
C/C++ în urma executării căreia să se afişeze
pe ecran prima literă a numelui și, pe linia
următoare, media anuală la informatică a
acestui elev. (6p.)
struct elev
{ char nume[30];
int media1, media2;
} x;
Exemplu: dacă elevul are numele Popescu, iar cele două medii sunt sunt 9, respectiv 10,
se afișează pe ecran
P
9.5
4. Într-un graf orientat două circuite sunt distincte dacă ele diferă prin cel puţin un arc.
Scrieți matricea de adiacență a unui graf orientat cu 5 vârfuri şi 6 arce, care are două
circuite elementare distincte. (6p.)
5. Scrieţi un program C/C++ care citeşte de la tastatură două numere naturale din intervalul
[3,50], n şi m, și elementele unui tablou bidimensional cu n linii şi m coloane, numere
naturale din intervalul [0,104].
Programul modifică în memorie tabloul dat, atribuind valoarea elementului aflat pe ultima
linie și pe ultima coloană a tabloului fiecărui element aflat pe conturul acestuia (pe prima
linie, ultima linie, prima coloană, ultima coloană), apoi afişează pe ecran tabloul modificat,
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=5, m=4 și tabloul este
0 5 2 11 atunci se obţine tabloul următor: 5 5 5 5
3 2 10 2 5 2 10 5
7 3 1 4 5 3 1 5
4 5 0 12 5 5 0 5
8 13 7 5 5 5 5 5 (10p.)Subiectul · pagina 3
Ministerul Educaţiei Naționale
Centrul Naţional de Evaluare şi Examinare
Probă scrisă la informatică Varianta 4
Limbajul C/C++
Filiera teoretică, profilul real, specializările: matematică-informatică, matematică-informatică intensiv informatică
Filiera vocaţională, profilul militar, specializarea matematică-informatică
3
SUBIECTUL al III-lea (30 de puncte)
Pentru itemul 1, scrieţi pe foaia de examen litera corespunzătoare răspunsului corect.
1. Utilizând metoda backtracking se generează, în ordine strict crescătoare, toate numerele
de trei cifre din mulţimea {1, 2, 5, 7, 8}, numere cu proprietatea că au cel mult două cifre
impare. Primele şapte numere generate sunt, în această ordine: 112, 118, 121, 122, 125,
127, 128. Al optulea număr generat este: (4p.)
a. 151 b. 152 c. 157 d. 158
Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.
2. Subprogramul f este definit alăturat. Scrieţi
valorile f(3,9) şi f(1,1000). (6p.)
int f(int x,int y)
{ if(x*5>y/5)
return x;
return f(x*5,y/5);
}
3. Subprogramul duplicare are un singur parametru, n, prin care primește un număr
natural (n∈∈∈∈[1,104)). Subprogramul furnizează, prin același parametru, numărul obţinut
din n prin inserarea, după fiecare cifră pară din scrierea lui, a unei cifre egale cu jumătate
din aceasta.
Scrieți definiția completă a subprogramului.
Exemplu: dacă n=2380 după apel, n=2138400, iar dacă n=35 după apel, n=35. (10p.)
4. Numim secvență pară într-un șir o succesiune de termeni ai șirului cu proprietatea că sunt
numere pare și că se află pe poziții consecutive în șir; orice secvență are cel puțin doi
termeni și este maximală în raport cu proprietatea precizată (dacă i se adaugă un alt
termen, secvența își pierde această proprietate). Lungimea secvenței este egală cu
numărul termenilor săi.
Fişierul bac.txt conţine un şir de cel mult 106 numere naturale din intervalul [0,109].
Numerele din şir sunt separate prin câte un spaţiu.
Se cere să se afişeze pe ecran numărul de secvențe pare de lungime maximă din șir.
Proiectați un algoritm eficient din punctul de vedere al spațiului de memorie utilizat şi al
timpului de executare.
Exemplu: dacă fişierul bac.txt conţine valorile
1 2 3 4 6 10 2 8 5 7 9 4 6 10 121 20 4 11 10 2 5 2 6 8 10 16
se afişează pe ecran numărul 2.
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ă Varianta 4 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 Examenul de bacalaureat naţional 2017 Proba E. d) Informatică Barem de evaluare și de notare (comun pentru limbajele C/C++ şi Pascal) Varianta 4 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: #2#1#3#2# 6p. Se acordă numai 3p. dacă datele sunt parțial corecte și includ secvența #2# b) Răspuns corect: 50 4p. 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 variabile -citire date -afişare date -instrucţiune de decizie conform cerinței (*) -instrucţiuni repetitive conform cerinței (**) -corectitudine globală a programului1) 10p. 1p. 1p. 1p. 3p. 3p. 1p. (*) Se acordă numai 1p. dacă s-a scris o instrucțiune de decizie, dar expresia logică nu este conform cerinței. (**) Se acordă numai 2p. dacă doar una dintre instrucțiunile repetitive este conform cerinței. SUBIECTUL al II - lea (30 de puncte) 1. b 4p. 2. c 4p. 3. Pentru rezolvare corectă -acces la câmpurile înregistrării (*) -acces la prima literă a numelui -expresie corectă pentru calculul mediei (**) -afișare a datelor conform cerinței 6p. 2p. 1p. 2p. 1p. (*) Se acordă numai 1p. dacă doar un câmp este accesat corect. (**) Se acordă numai 1p. dacă media se calculează corect doar dacă rezultatul este un număr întreg.
Baremul · pagina 2
Ministerul Educaţiei Naționale Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică Varianta 4 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 4. Pentru rezolvare corectă 6p. Se acordă câte 2p. pentru fiecare parametru al matricei de adiacență (dimensiuni, număr de valori nenule/nule, elemente nenule corespunzătoare numărului de circuite elementare ale grafului) conform cerinței. 5. Pentru program corect -declarare a variabilei de tip tablou -citire a tabloului -modificare a tabloului (*) -afişare a datelor în formatul cerut -declarare și citire a variabilelor simple, corectitudine globală a programului1) 10p. 1p. 1p. 6p. 1p. 1p. (*) Se acordă câte 1p. pentru fiecare aspect al cerinţei (identificare elemente de pe prima linie, identificare elemente de pe ultima linie, identificare elemente de pe prima coloană, identificare elemente de pe ultima coloană, valoare plasată pe contur, modificare în memorie). SUBIECTUL al III - lea (30 de puncte) 1. b 4p. 2. Pentru răspuns corect 6p. Se acordă câte 3p. pentru fiecare valoare afişată conform cerinţei: f(3,9)=3 f(1,1000)=25 3. Pentru subprogram corect -structură antet principial corectă -declarare corectă a parametrului -determinare a numărului cu proprietatea cerută (*) -furnizare a rezultatului -declarare a tuturor variabilelor locale, corectitudine globală a subprogramului1) 10p. 1p. 1p. 6p. 1p. 1p. (*) Se acordă câte 1p. pentru fiecare aspect al cerinței (identificare a unei cifre a numărului, identificare a unei cifre pare, inserare a unei cifre într-un număr, păstrare a ordinii cifrelor, inserare a valorilor corespunzătoare doar după cifre pare, inserare corectă după cifrele nule de la sfârşitul numărului). 4. a) Pentru răspuns corect -coerenţă a descrierii algoritmului (*) -justificare a unor elemente de eficienţă, conform cerinței 2p. 1p. 1p. (*) Se acordă punctajul chiar dacă metoda aleasă nu este eficientă. b) Pentru program corect -operaţii cu fişiere: declarare, pregătire în vederea citirii, citire din fişier -determinare a valorii cerute (*, **) -utilizare a unui algoritm eficient (***) -afișare a datelor, corectitudine globală a programului1) 8p. 1p. 5p. 1p. 1p. (*) Se acordă punctajul chiar dacă soluţia propusă nu prezintă elemente de eficienţă. (**) Se acordă numai 3p. pentru algoritm principial corect, dar care nu conduce la rezultatul cerut pentru toate cazurile. (***) Se acordă punctajul numai pentru un algoritm liniar (de complexitate O(n)), care utilizează eficient memoria. O soluţie posibilă parcurge o dată fişierul memorând numărul de termeni pari de pe poziții consecutive din secvența curentă, număr care se incrementează la întâlnirea fiecărui termen par, respectiv se inițializează cu 0 la întâlnirea fiecărui termen impar. La fiecare pas se actualizează, după caz, numărul de termeni din secvența pară de lungime maximă și numărul de astfel de secvențe. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.