• 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. Variabila x este de tip întreg. Numărul de valori întregi distincte ale lui x/2017 x pentru care expresia C/C++ alăturată are valoarea 0 este: (4p.) a. 2016 b. 2017 c. 2·2016+1 d. 2·2017+1
2. Se consideră algoritmul alăturat, citeşte a,b
reprezentat în pseudocod. (numere naturale nenule, a≤b) S-a notat cu a%b restul împărţirii numărului s 0 natural a la numărul natural nenul b, cu [a] ┌pentru x a,b execută partea întreagă a numărului real a. │┌pentru j 1,[x/2] execută a) Scrieţi ce se afişează dacă se citesc, ││ ┌dacă x%j=0 și [ ]*[ ]=j atunci în această ordine, numerele 11 şi 16. ││ │ s s+j (6p.) ││ └■ │└■ b) Scrieţi un set de date care pot fi citite └■ astfel încât, în urma executării scrie s algoritmului, să se afişeze valoarea 10. (4p.) c) Scrieţi în pseudocod un algoritm echivalent cu cel dat, înlocuind adecvat prima structură pentru...execută cu o structură repetitivă de alt tip. (6p.) d) Scrieţi programul C/C++ corespunzător algoritmului dat. (10p.)
Probă scrisă la informatică Varianta 5
Limbajul C/C++ Filiera teoretică, profilul real, specializările: matematică-informatică, matematică-informatică intensiv informatică Filiera vocaţională, profilul militar, specializarea matematică-informatică 1 Ministerul Educaţiei Naționale Centrul Naţional de Evaluare şi Examinare
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 s permite accesarea unui șir de maximum 49 de caractere. Indicați expresia egală cu 1 dacă și numai dacă șirul 2017 coincide cu subșirul format din primele patru caractere ale șirului accesat prin variabila s și NU mai apare pe alte poziții în acesta. (4p.) a. strstr(s,”2017”)==0 && strstr(s+4,”2017”)==s+4 b. strstr(s,”2017”)!=s || strstr(s+4,”2017”)!=s+4 c. strstr(s,”2017”)!=0 || strstr(s+4,”2017”)!=0 d. strstr(s,”2017”)==s && strstr(s+4,”2017”)==0 2. Într-un arbore cu rădăcină considerăm că un nod se află pe nivelul x dacă lanţul elementar care are o extremitate în nodul respectiv şi cealaltă extremitate în rădăcina arborelui are lungimea x. Pe nivelul 0 se află un singur nod (rădăcina). Pe fiecare nivel nenul al unui arbore cu rădăcină există cel puțin o frunză. Dacă ultimul nivel este 3, atunci numărul minim de noduri din arbore este: (4p.) a. 5 b. 6 c. 7 d. 8
Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.
3. Se consideră declararea alăturată, în care variabila t struct triunghi { memorează, pentru fiecare dintre cele 10 triunghiuri, int x,y,z; lungimile laturilor. } t[10]; Scrieţi o expresie C/C++ care are valoarea 1 dacă şi numai dacă primul triunghi dintre cele menţionate este echilateral. (6p.) 4. Scrieţi matricea de adiacenţă a unui graf orientat cu 5 vârfuri şi 3 arce, ştiind că el are un număr maxim de vârfuri care au gradul intern egal cu gradul extern. (6p.) 5. Scrieţi un program C/C++ care citeşte de la tastatură două numere naturale din intervalul [2,50], m şi n, şi elementele unui tablou bidimensional cu m linii şi n coloane, numere naturale distincte, din intervalul [0,104]. Programul interschimbă valoarea minimă din ultima coloană a tabloului cu valoarea minimă din prima coloană a tabloului, 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ă m=4, n=3 şi tabloul este 7 5 19 atunci se obţine tabloul următor: 7 5 19 3 8 4 1 8 4 23 6 1 23 6 3 10 2 9 10 2 9 (10p.)
Probă scrisă la informatică Varianta 5
Limbajul C/C++ Filiera teoretică, profilul real, specializările: matematică-informatică, matematică-informatică intensiv informatică Filiera vocaţională, profilul militar, specializarea matematică-informatică 2 Ministerul Educaţiei Naționale Centrul Naţional de Evaluare şi Examinare
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ă toate modalităţile de a scrie numărul 6 ca sumă de numere naturale impare. Termenii fiecărei sume sunt în ordine crescătoare. Cele patru soluţii sunt obţinute în această ordine: 1+1+1+1+1+1; 1+1+1+3; 1+5; 3+3. Aplicând acelaşi algoritm, numărul soluţiilor obţinute pentru scrierea lui 8 este: (4p.) a. 5 b. 6 c. 8 d. 9
Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.
2. Se consideră subprogramul f, definit alăturat. Scrieţi ce se int f (int x) afișează în urma executării instrucțiunii: { if (x%2==0) cout<<f(10)<<’ ’<<f(11); | return x; printf(”%d %d”,f(10),f(11)); return f(x/2); (6p.) } 3. Subprogramul produs are doi parametri: • a, prin care primește un număr natural (a∈[1,106]); • k, prin care furnizează cea mai mare valoare naturală impară cu proprietatea că produsul tuturor numerelor impare din intervalul [1,k] este mai mic sau egal cu a. Scrieți definiția completă a subprogramului. Exemplu: dacă a=200, atunci k=7 (1⋅⋅3⋅⋅5⋅⋅7≤200<1⋅⋅3⋅⋅5⋅⋅7⋅⋅9). (10p.) 4. Fişierul bac.txt conţine un şir de cel mult 106 numere naturale din intervalul [1,109], ordonate crescător. Numerele din şir sunt separate prin câte un spaţiu. Se cere să se afişeze pe ecran cel mai mic număr din şir care apare în fişier de un număr impar de ori. Dacă în fişier nu se află o astfel de valoare, pe ecran se afişează mesajul nu exista. 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 numerele 5 5 8 8 8 8 20 20 20 34 54 54 65 65 65 atunci pe ecran se afişează 20. 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.)
Probă scrisă la informatică Varianta 5
Limbajul C/C++ Filiera teoretică, profilul real, specializările: matematică-informatică, matematică-informatică intensiv informatică Filiera vocaţională, profilul militar, specializarea matematică-informatică 3 Ministerul Educaţiei Naționale Centrul Naţional de Evaluare şi Examinare
• 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. c 4p. 2. a) Răspuns corect: 14 6p. b) Pentru răspuns corect 4p. c) Pentru algoritm pseudocod corect 6p. (*) Se acordă numai 2p. dacă algoritmul are -echivalenţă a prelucrării realizate, o structură repetitivă conform cerinţei, conform cerinţei (*) 5p. principial corectă, dar nu este echivalent cu -corectitudine globală a algoritmului1) 1p. cel dat. Se va puncta orice formă corectă de structură repetitivă conform cerinței. d) Pentru program corect 10p. (*) Se acordă numai 1p. dacă s-a scris o -declarare variabile 1p. instrucțiune de decizie, dar expresia logică nu -citire date 1p. este conform cerinței. -afişare date 1p. (**) Se acordă numai 2p. dacă numai una -instrucţiune de decizie conform dintre instrucţiuni este conform cerinței. cerinței (*) 2p. -instrucţiuni repetitive conform cerinței (**) 3p. -atribuiri corecte 1p. -corectitudine globală a programului1) 1p.
SUBIECTUL al II - lea (30 de puncte)
1. d 4p. 2. b 4p. 3. Pentru rezolvare corectă 6p. -acces la primul element al tabloului 1p. -acces la câmpurile înregistrării 2p. -verificarea egalităţii perechilor de laturi 2p. -operatori logici utilizaţi conform cerinţei 1p.
Probă scrisă la informatică Varianta 5
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 Ministerul Educaţiei Naționale Centrul Naţional de Evaluare şi Examinare
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 vârfuri cu gradele indicate) conform cerinței. 5. Pentru program corect 10p. (*) Se acordă câte 2p. pentru fiecare aspect -declarare a variabilei de tip tablou 1p. specificat (minim prima coloană, minim -citire a tabloului 1p. ultima coloană, interschimbare) al cerinţei. -modificare a tabloului (*) 6p. -afişare a datelor în formatul cerut 1p. -declarare și citire a variabilelor simple, corectitudine globală a programului1) 1p.
SUBIECTUL al III - lea (30 de puncte)
1. b 4p. 2. Răspuns corect: 10 2 6p. Se acordă câte 3p. pentru fiecare valoare conform cerinţei. 3. Pentru subprogram corect 10p. (*) Se acordă câte 2p. pentru fiecare aspect -structură antet principial corectă 1p. al cerinței (algoritm principial corect pentru -declarare corectă a parametrilor 1p. produs, factori impari, valoare maximă din -determinare a numărului cu interval). proprietatea cerută (*) 6p. -furnizare a rezultatului prin parametru 1p. -declarare a tuturor variabilelor locale, corectitudine globală a subprogramului1) 1p. 4. a) Pentru răspuns corect 2p. (*) Se acordă punctajul chiar dacă metoda -coerenţă a descrierii algoritmului (*) 1p. aleasă nu este eficientă. -justificare a unor elemente de eficienţă conform cerinței 1p. b) Pentru program corect 8p. (*) Se acordă punctajul chiar dacă soluţia -operaţii cu fişiere: declarare, propusă nu prezintă elemente de eficienţă. pregătire în vederea citirii, citire din (**) Se acordă numai 2p. pentru algoritm fişier 1p. principial corect, dar care nu conduce la -determinare a valorii cerute (*, **) 4p. rezultatul cerut pentru toate cazurile. -afișare a datelor și tratare a cazului (***) Se acordă punctajul numai pentru un nu exista 1p. algoritm liniar (de complexitate O(n)), care -utilizare a unui algoritm eficient (***) 1p. utilizează eficient memoria. -corectitudine globală a programului1) 1p. O soluţie posibilă parcurge cel mult o dată fişierul, numărând apariţiile fiecărei valori distincte din şir, până la întâlnirea primei valori care apare de un număr impar de ori. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.
Probă scrisă la informatică Varianta 5
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