DauExamen
Bacalaureat 2017 Simulare Sn 3h

Informatică 2017

Informatică – Sn – Bacalaureat 2017, simulare

Textul subiectului
Ministerul Educaţiei Naționale Centrul Naţional de Evaluare şi Examinare Examenul de bacalaureat naţional 2017 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. Expresia C/C++ alăturată are valoarea: (4p.) 17/3/2%17 a. 0 b. 2 c. 10 d. 17 2. Se consideră algoritmul alăturat, citeşte n,a,b reprezentat în pseudocod. (numere naturale nenule, a≤n, b≤n) S-a notat cu a%b restul împărţirii numărului ←0 ok← natural a la numărul natural nenul b. ←1 x← a) Scrieţi ce se afişează dacă se citesc, în ┌cât timp x≤n execută această ordine, numerele 15, 3 şi 4. (6p.) │┌dacă x%a=0 şi x%b≠0 sau ││ x%a≠0 şi x%b=0 atunci b) Scrieţi două seturi distincte de date de ││ scrie x,’ ’ intrare astfel încât, în urma executării ←1 ││ ok← algoritmului, pentru fiecare dintre acestea │└■ să se afişeze valoarea 0. (4p.) ←x+1 │ x← c) Scrieţi în pseudocod un algoritm echivalent └■ cu cel dat, înlocuind adecvat structura ┌dacă ok=0 atunci cât timp...execută cu o structură │ scrie 0 └■ 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 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 x şi y sunt de tip real și memorează valori pozitive. O x2 + y / 2 transcriere în limbajul C/C++ a expresiei alăturate poate fi: (4p.) a. pow(sqrt(x,2)+y/2,1/2) b. pow(sqrt(x)+y/2,2) c. sqrt(pow(x,2)+y/2,1/2) d. sqrt(pow(x,2)+y/2) 2. Variabilele x şi y sunt de tip întreg şi memorează numere y=0; naturale, iar x are o valoare nenulă. Indicați expresia care while(x>=2017) poate înlocui punctele de suspensie astfel încât, la finalul { y=y+1; executării secvenţei obţinute, variabila y să memoreze x=........ câtul împărţirii la 2017 a numărului memorat inițial în } variabila x. (4p.) a. x-2017 b. x+2017 c. x+1 d. x-1 Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare. 3. Variabila întreagă an memorează anul fabricației unei mașini, iar variabila carburant, de tip char, memorează o literă, în funcție de tipul de carburant folosit în prezent: litera B pentru benzină, litera M pentru motorină sau litera G pentru gaz petrolier lichefiat. Scrieţi o secvență de instrucțiuni C/C++ în urma executării căreia se afișează pe ecran anul fabricației mașinii, urmat, pe linia următoare, de mesajul rezervor clasic, dacă mașina folosește carburant de tip benzină sau motorină, sau de mesajul adaptor GPL dacă mașina folosește carburant de tip gaz petrolier lichefiat. (6p.) 4. Se citeşte un număr natural, n (n≥10), și se cere să se scrie numărul de cifre ale lui n care sunt egale cu pozițiile pe care le ocupă în scrierea acestuia. Pozițiile sunt numerotate de la dreapta la stânga, iar cifra unităților ocupă poziția 0. Exemplu: dacă n=6594270, se scrie 4. a) Scrieţi, în pseudocod, un algoritm 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 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. Pentru a verifica dacă într-un tablou unidimensional există elementul cu valoarea x=2017, se aplică metoda căutării binare, iar succesiunea de elemente ale tabloului a căror valoare se compară cu valoarea lui x pe parcursul aplicării metodei indicate este: 3, 17, 2017. Elementele tabloului pot fi (în ordinea în care apar în tablou): (4p.) a. (-2016,-17,2,3,17,20,2017) b. (-2016,-10,2,3,16,17,2017) c. (-2016,-17,20,3,2017,17,21) d. (-2016,-16,-10,2,3,17,2017) 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 p=............; întreg. Scrieţi secvența, înlocuind punctele de for(i=1;i<=10;i++) suspensie astfel încât, în urma executării { cin>>x; | scanf(”%d”,&x); secvenţei obţinute, valoarea variabilei p să fie ...........; egală cu produsul valorilor nenule citite. (6p.) } 3. Scrieţi un program C/C++ care citește de la tastatură un număr natural n (n∈ ∈[2,30]), și construiește în memorie un tablou unidimensional cu 2·n elemente, numerotate de la 0 la 2·n-1, astfel încât: • elementul de pe poziția 0 are valoarea 1; • elementele de pe poziții impare sunt numere naturale din intervalul [0,109], citite de la tastatură; • oricare alt element aflat pe o poziție pară este obţinut prin însumarea celor două elemente vecine cu el, unul aflat pe poziția din dreapta, iar celălalt pe poziția din stânga, ca în exemplu. Elementele tabloului obținut se afișează pe ecran, separate prin câte un spațiu. Exemplu: dacă n=4, iar celelalte numere citite de la tastatură sunt 2, 7, 3, 3, se obține tabloul: (1,2,9,7,10,3,6,3) (10p.) 4. Fișierul bac.in conține pe prima linie două numere naturale din intervalul [2,104], m și n, iar pe fiecare dintre următoarele două linii câte un șir de m, respectiv n numere naturale din intervalul [0,109], ordonate crescător. Numerele aflate pe aceeași linie a fișierului sunt separate prin câte un spațiu. Se cere să se afișeze pe ecran, în ordine descrescătoare, toate numerele pare aflate în cele două șiruri. Numerele afișate sunt separate prin câte un spațiu, iar dacă nu există niciun astfel de număr, se afișează pe ecran mesajul nu exista. Pentru determinarea numerelor cerute se va utiliza un algoritm eficient din punctul de vedere al timpului de executare. Exemplu: dacă fișierul conține numerele 5 6 1 4 8 9 10 2 4 10 10 15 18 se afișează pe ecran 18 10 10 10 8 4 4 2 a) Descrieți în limbaj natural algoritmul utilizat, 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

Alte subiecte la Informatică – Sn