DauExamen
Bacalaureat 2018 Sesiunea iunie–iulie Sn 3h

Informatică 2018

Informatică – Sn – Bacalaureat 2018, sesiunea iunie–iulie (varianta 02)

Textul subiectului
Ministerul Educaţiei Naționale Centrul Naţional de Evaluare şi Examinare Examenul de bacalaureat naţional 2018 Proba E. d) Informatică Limbajul C/C++ Varianta 2 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. Variabilele x și y sunt de tip întreg și memorează câte un !(x%y!=0 || y<2) număr natural nenul. O expresie echivalentă cu cea alăturată poate fi: (4p.) a. x%y==y%x && y>1 b. (x+y)%y==0 || y>=1 c. (x/y)*y==x && y>=2 d. x%y==0 || y>2 2. Algoritmul alăturat este reprezentat în citeşte n pseudocod. (număr întreg nenul) S-a notat cu a%b restul împărţirii numărului natural a ┌dacă n<0 atunci la numărul natural nenul b şi cu [a] partea întreagă a │ n -n numărului real a. └■ s 0 a) Scrieţi numărul afişat dacă se citeşte valoarea ┌repetă 2018. (6p.) │ x n%10 b) Scrieţi patru numere distincte din intervalul │┌pentru i 1,x execută [10,103] care pot fi citite astfel încât, în urma ││ s s+x executării algoritmului, pentru fiecare dintre │└■ acestea, să se afișeze valoarea 100. (4p.) │ n [n/10] └până când n=0 c) Scrieţi în pseudocod un algoritm echivalent cu scrie s cel dat, înlocuind adecvat structura pentru...execută cu o atribuire. (6p.) d) Scrieţi programul C/C++ corespunzător algoritmului dat. (10p.) Probă scrisă la informatică Varianta 2 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. Variabila x memorează un număr real din intervalul [1,2]. ceil(x)+floor(x) Indicați numărul de valori posibile ale expresiei C/C++ alăturate. (4p.) a. 1 b. 2 c. 3 d. 4 2. În secvențele de mai jos, notate cu S1, S2 și S3, toate variabilele sunt întregi, iar n și k memorează câte un număr natural nenul. //S1 //S2 //S3 nr=0; nr=0; nr=n/k; for(i=n;i>0;i--) for(i=1;i<=n;i++) { p=i; if(i%k==0) nr=nr+1; while(p>=k) p=p-k; if(p==0) nr=nr+1; } Variabila nr memorează numărul multiplilor lui k din intervalul [1,n] în urma executării, independent, a secvențelor: (4p.) a. S1 și S2 b. S1 și S3 c. S2 și S3 d. S1, S2 și S3 Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare. 3. Pentru un medicament se memorează prețul, precum și date despre substanța activă specifică: doza și codul acesteia. Variabilele întregi pret1, doza1 și cod1 memorează prețul, respectiv date despre substanța activă specifică unui medicament, iar variabilele întregi pret2, doza2 și cod2 memorează prețul, respectiv date despre substanța activă specifică unui alt medicament. Două medicamente distincte pot avea aceeași substanță activă specifică, însă numai în doze diferite. Să se scrie o secvenţă de instrucţiuni C/C++ în urma executării căreia să se afişeze prețul medicamentului cu doză mai mare de substanță activă specifică, dacă ele au o aceeaşi astfel de substanţă, sau mesajul ALTA CATEGORIE în caz contrar. (6p.) 4. Se citesc patru numere naturale nenule, n, x, y și r (r<x<y<n) și se cere să se afișeze numărul de valori naturale din intervalul [1,n] pentru care atât restul împărțirii la x, cât și restul împărțirii la y, sunt egale cu r. Exemplu: pentru n=200, x=5, y=14 și r=2, se afișează numărul 3 (pentru numerele 2, 72 și 142 restul împărțirii la 5, cât și restul împărțirii la 14, este 2). 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ă Varianta 2 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 poate 0 1 2 3 4 5 6 7 0 înlocui punctele de suspensie, astfel încât, în urma executării 1 0 3 4 5 6 7 0 1 secvenţei obţinute, să se afișeze numerele alăturate. 2 3 0 5 6 7 0 1 2 for(i=0;i<9;i++) 3 4 5 0 7 0 1 2 3 { for(j=0;j<9;j++) 4 5 6 7 0 1 2 3 4 if(i==j) 5 6 7 0 1 0 3 4 5 cout<<”0 ”; | printf(”0 ”); 6 7 0 1 2 3 0 5 6 else 7 0 1 2 3 4 5 0 7 cout<<......<<’ ’; | printf(”%d ”,....); 0 1 2 3 4 5 6 7 0 cout<<endl; | printf(”\n”); } (4p.) a. (i-j)%8 b. (i+j)%8 c. (i-j)/8 d. (i+j)/8 Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare. 2. În secvenţa alăturată toate variabilele sunt de tip bun=.........; întreg, iar numerele citite sunt naturale. for(i=1;i<=20;i++) Scrieţi secvența înlocuind punctele de suspensie { cin>>k; | scanf(“%d”,&k); astfel încât, în urma executării secvenţei obţinute, ....... valoarea variabilei bun să fie 0 dacă toate valorile } citite au fost diferite de 2018, sau 1 altfel. (6p.) 3. Fiind date două șiruri de valori naturale, s și c, cu număr egal de termeni, numim codificare a lui s pe baza codului c operația de construire a unui nou șir, în care inițial se copiază prima valoare din s, apoi, parcurgând de la stânga la dreapta restul șirului s, se adaugă valoarea curentă din s la începutul noului șir, dacă termenul de pe aceeași poziție în c este par, sau la finalul noului șir, în caz contrar. Exemplu: dacă șirul s este 7, 3, 6, 2, 8, iar codul c este 0, 12, 5, 23, 14 se obține șirul codificat 8, 3, 7, 6, 2 (inițial șirul conține termenul 7, apoi se adaugă, în ordinea parcurgerii lui s, termenii 3 și 8 la început, iar restul termenilor la final). Scrieţi un program C/C++ care citeşte de la tastatură numere naturale din intervalul [0,102]: ns, nc (ns≥2, nc≥2), cei ns termeni ai șirului s, apoi cei nc termeni ai șirului c. Programul afișează pe ecran, separați prin câte un spațiu, termenii șirului obținut prin codificarea lui s pe baza lui c, dacă cele două șiruri au același număr de termeni, sau mesajul cod incorect, în caz contrar. Exemplu: dacă ns=5, nc=5, s=(7,3,6,2,8), iar c=(0,12,5,23,14), se afişează: 8 3 7 6 2 (10p.) 4. Numim secvență neuniformă a unui șir de numere naturale un subșir al acestuia, format din termeni aflați pe poziții consecutive în șirul dat, cu proprietatea că oricare doi termeni aflați pe poziții vecine sunt diferiți. Lungimea secvenței este egală cu numărul de termeni ai acesteia. Fișierul bac.txt conține un șir de cel mult 106 numere naturale din intervalul [0,9]. Numerele sunt separate prin câte un spațiu, iar în șir există cel puțin doi termeni diferiți pe poziții consecutive. Se cere să se afișeze pe ecran lungimea maximă a unei secvențe neuniforme a șirului aflat în fișier. Proiectați un algoritm eficient din punctul de vedere al timpului de executare și al memoriei utilizate. Exemplu: dacă fişierul bac.txt conţine numerele 7 7 1 3 1 1 7 3 3 3 7 3 9 atunci pe ecran se afișează valoarea 4 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 2 Limbajul C/C++ Filiera teoretică, profilul real, specializarea științe ale naturii 3 din 3

Alte subiecte la Informatică – Sn