Textul subiectului și baremului
Subiect BAC Informatică Mate-Info C/C++ 2013 – varianta 6
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 6 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 2013 Proba E. d) Informatică Limbajul C/C++ Varianta 6 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. Valoarea expresiei C/C++ alăturate este: (4p.) 7+5/2 a. 6 b. 9 c. 9.5 d. 10 2. Se consideră algoritmul alăturat, reprezentat în pseudocod. S-a notat cu x%y restul împărţirii numărului natural x la numărul natural nenul y şi cu [z] partea întreagă a numărului real z. citeşte a,b (numere naturale nenule, a≤b) nr0 ┌pentru ia,b execută │ xi │ cx%10 │┌cât timp x≠0 şi x%10=c execută ││ x[x/10] │└■ │┌dacă x=0 atunci ││ nrnr+1 │└■ └■ scrie nr a) Scrieţi numărul afişat dacă pentru variabila a se citeşte valoarea 65, iar pentru variabila b se citeşte valoarea 80. (6p.) b) Dacă pentru variabila a se citeşte valoarea 1234, scrieţi cel mai mare număr de patru cifre care poate fi citit pentru variabila b astfel încât, în urma executării algoritmului, valoarea afişată să fie 5. (4p.) c) Scrieţi în pseudocod un algoritm, echivalent cu cel dat, în care să se înlocuiască structura pentru...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ă Varianta 6
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. Variabila i este de tip întreg (0≤i≤99), iar variabila a memorează elementele unui tablou
bidimensional cu 100 de linii şi 100 de coloane, numerotate de la 0 la 99. În limbajul
C/C++, un element aflat pe linia i și pe diagonala principală a tabloului poate fi accesat
prin: (4p.)
a. a[i,i] b. a(i,i) c. a(i)(i) d. a[i][i]
2. Se consideră un graf neorientat conex cu 50 de noduri şi 52 de muchii. Numărul minim de
muchii ce pot fi eliminate astfel încât graful parţial obţinut să nu aibă niciun ciclu este: (4p.)
a. 1 b. 2 c. 3 d. 4
Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.
3. Se consideră arborele cu 8 noduri, numerotate de la 1 la 8, reprezentat prin vectorul de
„taţi”: (3, 0, 2, 5, 2, 5, 2, 5). Enumeraţi nodurile arborelui care au acelaşi „tată” cu nodul 4.
(6p.)
4. În declarările alăturate:
• variabila p memorează coordonatele unui punct în
sistemul de coordonate xOy;
• variabila d memorează în câmpurile A şi B
coordonatele, în acelaşi sistem de coordonate, ale
vârfurilor din stânga – sus, respectiv din dreapta – jos
ale unui dreptunghi cu laturile paralele cu axele
sistemului de coordonate.
struct punct {
int x,y;
} p;
struct dreptunghi {
punct A, B;
} d;
Scrieţi o expresie C/C++ care să aibă valoarea 1 dacă punctul corespunzător variabilei p
se află în interiorul dreptunghiului corespunzător variabilei d (dar nu pe laturile acestuia)
sau valoarea 0 în caz contrar. (6p.)
5. Se consideră un text cu cel mult 100 de caractere (litere mici ale alfabetului englez şi
spaţii), în care cuvintele sunt separate prin unul sau mai multe spaţii. Înaintea primului
cuvânt şi după ultimul cuvânt nu există spaţiu.
Scrieţi un program C/C++ care citeşte de la tastatură un text de tipul menţionat mai sus şi
determină transformarea acestuia în memorie prin eliminarea unor spaţii, astfel încât între
oricare două cuvinte alăturate să rămână exact un spaţiu. Programul afişează pe ecran
textul obţinut.
Exemplu: pentru textul
in vacanta plec la mare
se obţine şi se afişează
in vacanta plec la mare
(10p.)Subiectul · pagina 3
Ministerul Educaţiei Naționale
Centrul Naţional de Evaluare şi Examinare
Probă scrisă la informatică Varianta 6
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. Se consideră subprogramul f, definit
alăturat. Indicaţi ce se afişează în urma
apelului de mai jos.
f(3); (4p.)
void f (int n)
{ if (n!=0)
{ f (n-1);
cout<<n; | printf(”%d”,n);
}
}
a. 12 b. 123 c. 321 d. 3210
Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.
2. Utilizând metoda backtracking, se generează în ordine lexicografică toate şirurile de câte 5
litere distincte din mulţimea {A, B, C, D, E}, astfel încât în fiecare şir litera D precede literele
A şi B. Primele cinci soluţii generate sunt, în această ordine: CDABE, CDAEB, CDBAE,
CDBEA, CDEAB. Scrieţi cea de a şasea şi cea de a şaptea soluţie, în ordinea generării
acestora. (6p.)
3. Se consideră subprogramul sub, cu trei parametri:
• n, prin care primeşte un număr natural (2<n<50);
• v, prin care primeşte un tablou unidimensional cu n elemente, numere naturale cu cel
mult 4 cifre;
• k, prin care primeşte un număr natural (1<k≤n).
Subprogramul returnează suma primelor k elemente cu valoare impară ale tabloului. Dacă
nu există k elemente impare în tablou, subprogramul returnează valoarea -1.
Scrieţi definiţia completă a subprogramului.
Exemplu: dacă n=8, v=(2, 7, 6, 8, 3, 7, 5, 1), k=3, atunci subprogramul returnează
valoarea 17 (7+3+7=17). (10p.)
4. Fiind date două numere a şi b, îl numim pe a sufix al lui b dacă a este egal cu b sau dacă
b se poate obţine din a prin alipirea la stânga a unor noi cifre.
Exemplu: 12 este sufix al lui 12, iar 15 este sufix al lui 31415.
Fişierul bac.txt conţine pe prima linie un număr natural x, cu cel mult nouă cifre, iar pe a
doua linie un şir de cel puţin două şi cel mult 1000000 de numere naturale cu cel mult
nouă cifre. Numerele din şir sunt separate prin câte un spaţiu.
Se cere să se afişeze pe ecran ultimul termen al şirului care are ca sufix numărul x. Dacă
în șir nu există o astfel de valoare, pe ecran se afişează mesajul Nu exista.
Pentru determinarea numărului cerut se utilizează un algoritm eficient din punctul de
vedere al memoriei şi al timpului de executare.
Exemplu: dacă fişierul bac.txt conţine numerele
12
3445 89312 1245 12 67120 312 1234578
atunci pe ecran se afişează 312.
a) Descrieţi în limbaj natural algoritmul utilizat, justificând eficienţa acestuia. (4p.)
b) Scrieţi programul C/C++ corespunzător algoritmului descris. (6p.)Baremul
Deschide PDF-ul originalBaremul · pagina 1
Ministerul Educaţiei Naționale Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică Varianta 6 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 2013 Proba E. d) Informatică Barem de evaluare și de notare (comun pentru limbajele C/C++ şi Pascal) Varianta 6 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. b 4p. 2. a) Răspuns corect: 2 6p. b) Răspuns corect: 7776 4p. c) Pentru algoritm pseudocod corect -echivalenţa prelucrării realizate, conform cerinţei (*) -corectitudinea globală a algoritmului1) 6p. 5p. 1p. (*) Se acordă numai 2p. dacă algoritmul are o structură repetitivă de tipul indicat, 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 corectă -instrucţiuni repetitive corecte (*) -atribuiri corecte -corectitudine globală a programului1) 10p. 1p. 1p. 1p. 2p. 3p. 1p. 1p. (*) Se acordă numai 2p. dacă doar una dintre instrucţiuni este corectă. SUBIECTUL al II - lea (30 de puncte) 1. d 4p. 2. c 4p. 3. Răspuns corect: 6, 8 6p. Se acordă câte 3p. pentru fiecare dintre cele două noduri enumerate corect. Se acordă punctajul şi dacă este inclus în enumerare nodul 4.
Baremul · pagina 2
Ministerul Educaţiei Naționale Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică Varianta 6 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ă -accesul corect la câmpurile de pe primul nivel al înregistrării -accesul corect la câmpurile de pe al doilea nivel al înregistrării -condiții principial corecte pentru coordonate -operatori logici utilizați conform cerinței 6p. 2p. 1p. 2x1p. 1p. 5. Pentru program corect -declararea corectă a unei variabile care să memoreze un șir de caractere -citirea şirului -identificarea unui caracter spațiu -identificarea unui spațiu suplimentar -transformarea șirului conform cerinței (*) -afişarea datelor -declarare variabile simple, corectitudinea globală a programului1) 10p. 1p. 1p. 1p. 1p. 4p. 1p. 1p. (*) Se acordă câte 2p. pentru fiecare aspect al cerinței (caractere suport eliminate, transformare în memorie). SUBIECTUL al III - lea (30 de puncte) 1. b 4p. 2. Răspuns corect: CDEBA CEDAB 6p. Se acordă câte 2p. pentru fiecare aspect al cerinţei (conţinut prima soluţie scrisă, conţinut a doua soluţie scrisă, ordinea soluţiilor). 3. Pentru subprogram corect -structură antet principial corectă -declararea corectă a parametrilor (de tip simplu și tablou) -accesarea corectă a unui element al tabloului -determinarea numărului cerut (*) -returnarea rezultatului și tratarea cazului -1 -declararea tuturor variabilelor locale, corectitudinea globală a subprogramului1) 10p. 1p. 2x1p. 1p. 4p. 1p. 1p. (*) Se acordă câte 1p. pentru fiecare aspect al cerinței (număr elemente suport, paritate elemente suport, algoritm de numărare principial corect, algoritm de însumare principial corect). 4. a) Pentru răspuns corect -coerenţa explicării metodei (*) -explicarea unor elemente de eficienţă 4p. 2p. 2x1p. (*) 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 -determinarea valorilor cerute (*, **) -afişarea datelor şi tratarea cazului Nu exista -utilizarea unui algoritm eficient (***) 6p. 1p. 3p. 1p. 1p. (*) Se acordă punctajul chiar dacă soluţia propusă nu prezintă elemente de eficienţă. (**) Se acordă doar 2p. dacă numai una dintre cele două condiţii impuse (sufix, ultima valoare din şir cu proprietatea cerută) este conform cerinţei. (***) Se acordă punctajul numai pentru un algoritm liniar (de complexitate O(n)) şi care utilizează eficient memoria. O soluţie posibilă determină numărul p=10k, unde k este numărul de cifre ale primei valori din fişier (x), apoi parcurge fişierul memorând ultima valoare pentru care restul împărţirii acesteia la p este x. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.