Examenul de bacalaureat naţional 2018 Proba E. d) Informatică Limbajul C/C++ SIMULARE
Filiera teoretică, profilul real, specializarea științe ale naturii
• 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.) 2018/3/22 a. 30 b. 30.5758 c. 14784 d. 14798.7
2. Algoritmul alăturat este reprezentat în citeşte n
pseudocod. (număr natural) S-a notat cu [a] partea întreagă a numărului real x 1 a și cu a%b restul împărțirii numărului natural a la ┌cât timp x≤[n/3] execută numărul natural nenul b. │ y x+1 │┌cât timp y≤[n/3] execută a) Scrieţi ce se afișează dacă se citește ││ z n-x-y numărul 9. (6p.) ││┌dacă z%2=x%2 atunci b) Scrieți cel mai mic număr natural care poate │││ scrie x,y,z,’*’ fi citit astfel încât, în urma executării ││└■ algoritmului, să se afișeze o singură dată ││ y y+1 simbolul *. (4p.) │└■ │ x x+1 c) Scrieţi în pseudocod un algoritm echivalent └■ cu cel dat, înlocuind adecvat prima structură scrie ’#’ cât timp...execută cu o structură repetitivă de tip pentru...execută. (6p.) d) Scrieţi programul C/C++ corespunzător algoritmului dat. (10p.)
Probă scrisă la informatică Simulare
Limbajul C/C++ Filiera teoretică, profilul real, specializarea științe ale naturii 1 din 3 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. Variabilele di și dj sunt de tip întreg. Indicați expresia C/C++ care are valoarea 1 dacă și numai dacă perechea (di,dj) este una dintre următoarele: (-2018,0), (0,-2018), (0,2018), (2018,0). (4p.) a. abs(di)-abs(dj)==2018 && abs(di)*abs(dj)==0 b. abs(di)-abs(dj)==0 && abs(di)/abs(dj)==2018 c. abs(di)+abs(dj)==2018 && abs(di)*abs(dj)==0 d. abs(di)+abs(dj)==0 && abs(di)-abs(dj)==2018 2. În secvența C/C++ alăturată toate variabilele sunt întregi, iar r=0; m>n. Expresia care poate înlocui punctele de suspensie x=n; astfel încât, în urma executării secvenţei obţinute, variabila r y=m; să memoreze diferenţa m-n este: do (4p.) { x=x+1; y=y-1; r=r+1; }while(......); r=2*r; if(x!=y)r=r-1; a. r<=x/2 b. r<y/2 c. x<y d. x<=y
Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.
3. Variabilele întregi temp1 și temp2 memorează două temperaturi (în grade Celsius), iar variabilele întregi an1 și an2 memorează anul în care a fost înregistrată prima, respectiv cea de a doua dintre cele două temperaturi. Scrieți o secvență de instrucțiuni C/C++ în urma executării căreia să se afișeze pe ecran media celor două temperaturi și, pe rândul următor, mesajul ACTUAL în cazul în care ambele temperaturi sunt înregistrate în anul 2018, sau mesajul ISTORIC în caz contrar. Exemplu: dacă valorile variabilelor temp1 și temp2 sunt 20, respectiv 21, iar valoarea fiecăreia dintre variabilele an1 și an2 este 2018, se afișează pe ecran 20.5 ACTUAL (6p.) 4. Se citește un număr natural, n (n≥1), și se cere să se scrie, în această ordine, numerele naturale x și y, cu proprietatea că √n poate fi scris sub forma x ∙ y, unde x are o valoare maximă. Exemplu: pentru numărul n=15000, se scriu numerele 50 6, iar pentru numărul n=9, se scriu numerele 3 1. a) Scrieți, în pseudocod, algoritmul de rezolvare pentru problema enunțată. (10p.) b) Precizați rolul tuturor variabilelor care au intervenit în algoritmul realizat la punctul a) și indicați datele de intrare, respectiv datele de ieșire ale problemei enunțate. (6p.)
Probă scrisă la informatică Simulare
Limbajul C/C++ Filiera teoretică, profilul real, specializarea științe ale naturii 2 din 3 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. Variabilele i şi j sunt de tip întreg. Indicați expresia care 1 1 1 1 1 1 1 8 8 poate înlocui punctele de suspensie astfel încât, în urma 1 1 1 1 1 1 8 8 8 executării secvenţei obţinute, să se afișeze pe ecran, în 1 1 1 1 1 8 8 8 1 această ordine, valorile alăturate. 1 1 1 1 8 8 8 1 1 for(i=0;i<9;i++) 1 1 1 8 8 8 1 1 1 { for(j=0;j<9;j++) 1 1 8 8 8 1 1 1 1 if( ..................) 1 8 8 8 1 1 1 1 1 cout<<”8 ”; | printf(”8 ”); 8 8 8 1 1 1 1 1 1 else 8 8 1 1 1 1 1 1 1 cout<<”1 ”; | printf(”1 ”); cout<<endl; | printf(”\n”); } (4p.) a. i+j>=7 || i+j<=9 b. i+j>=7 && i+j<=9 c. i+j>7 || i+j<9 d. i+j>7 && i+j<9
Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.
2. Pentru a verifica dacă printre cele 7 elemente ale unui tablou unidimensional există unul cu valoarea x=20, se aplică metoda căutării binare. Scrieți elementele unui tablou (în ordinea în care apar în acesta), astfel încât succesiunea celor a căror valoare se compară cu valoarea lui x pe parcursul aplicării metodei indicate să fie: 22, 3, 18. (6p.) 3. O pereche de valori naturale, una cu număr par de cifre, iar cealaltă cu număr impar de cifre, se numește descentrată dacă se poate obține valoarea cu număr par de cifre din cealaltă, prin duplicarea cifrei din mijlocul acesteia. Exemplu: perechile 32345 și 323345, respectiv 1 și 11 sunt descentrate. Scrieţi un program C/C++ care citeşte de la tastatură un număr natural n (n∈ ∈[2,102]), apoi un șir de n numere naturale din intervalul [1,104) şi afișează pe ecran mesajul DA, dacă acesta conține cel puțin o pereche descentrată, sau mesajul NU în caz contrar. Exemplu: dacă se citesc numerele 7 233 2018 2333 11 3 1221 233 se afișează pe ecran mesajul DA (10p.) 4. Se consideră un șir ai cărui termeni sunt numere naturale nenule, de o singură cifră. Numim număr asociat al acestui șir un număr natural format cu termenii șirului, în ordinea în care aceștia apar în șir. Exemplu: numărul asociat șirului 1, 2, 5, 3, 2 este 12532. Fişierul text bac.txt conţine numere naturale din intervalul [1,9]: pe prima linie un număr, x, iar pe a doua linie un șir de cel puţin trei şi cel mult 105 termeni. Numerele aflate pe aceeași linie a fișierului sunt separate prin câte un spațiu. Se cere inserarea valorii x în șirul aflat pe a doua linie fișierului, astfel încât numărul asociat șirului obținut să fie minim. Termenii șirului obținut se afișează pe ecran, separați prin câte un spațiu. Proiectați un algoritm eficient din punctul de vedere al memoriei utilizate și al timpului de executare. Exemplu: dacă fişierul bac.txt conţine numerele 6 1 7 5 atunci, pentru că numerele asociate șirurilor care se pot obține sunt 6175, 1675, 1765, 1756, pe ecran se afişează șirul: 1 6 7 5 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ă Simulare
Limbajul C/C++ Filiera teoretică, profilul real, specializarea științe ale naturii 3 din 3