DauExamen
Bacalaureat 2017 Sesiunea iunie–iulie Sn 3h

Informatică 2017

Informatică – Sn – Bacalaureat 2017, sesiunea iunie–iulie (varianta 04)

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++ Varianta 4 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. Indicaţi o expresie C/C++ care are valoarea 1 dacă şi numai dacă numărul natural memorat în variabila întreagă x are exact o cifră. (4p.) a. x%10==x b. x/10==x c. x%10==x/10 d. (x%10)/10==x 2. Se consideră algoritmul alăturat, citeşte n reprezentat în pseudocod. (număr natural nenul) a) Scrieţi ce se afișează dacă se citește ┌pentru i 1,n execută numărul 3. (6p.) │┌pentru j 1,n execută ││┌dacă i=j sau i+j=n+1 atunci b) Scrieți un număr care poate fi citit, astfel │││ scrie ’#’ încât, în urma executării algoritmului │││altfel numărul de simboluri # afișate să fie 100. │││ scrie j (4p.) ││└■ │└■ └■ c) Scrieţi în pseudocod un algoritm echivalent cu cel dat, înlocuind adecvat prima structură pentru...execută cu o structură repetitivă cu test inițial. (6p.) d) Scrieţi programul C/C++ corespunzător algoritmului dat. (10p.) Probă scrisă la informatică Varianta 4 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. O expresie C/C++ care are valoarea 1 este: (4p.) a. ceil(6.15)<ceil(5.61) b. ceil(6.15)>floor(5.61) c. floor(6.15)<ceil(5.61) d. floor(6.15)<floor(5.61) 2. Se consideră secvenţa de mai jos, în care toate variabilele sunt de tip întreg. i=2; while(.....) { if(x%i==0) cout<<i<<’ ’; | printf(”%d ”,i); i=i+1; } Pentru a afişa în ordine crescătoare toţi divizorii pozitivi ai numărului natural nenul memorat în variabila x, cu excepţia lui 1 şi a numărului respectiv, o expresie care poate înlocui punctele de suspensie este: (4p.) a. i>0 b. i>=2 c. i<=x/2 d. i<=x Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare. 3. Variabilele întregi media1 şi media2 memorează mediile semestriale obținute de un elev la informatică, iar variabila initiala memorează prima literă a numelui elevului. Declarați variabila initiala și scrieţi o secvență de instrucțiuni C/C++ în urma executării căreia să se afişeze pe ecran prima literă a numelui și, pe linia următoare, media anuală la informatică a acestui elev. Exemplu: dacă elevul are numele Popescu, iar cele două medii sunt 9, respectiv 10, se afișează pe ecran P 9.5 (6p.) 4. Se citeşte un număr natural nenul, n, şi se cere să se scrie numărul obţinut din n, prin inserarea, după fiecare cifră pară din scrierea lui, a unei cifre egale cu jumătate din aceasta. Exemplu: dacă se citește 2380 se obţine 2138400, iar dacă se citește 35 se obţine 35. 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ă Varianta 4 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. În secvenţa de instrucţiuni de mai jos toate variabilele sunt de tip întreg. for(i=0;i<5;i++) 1 1 1 1 1 { for(j=0;j<5;j++) 1 2 2 2 1 if(...........) 1 2 2 2 1 cout<<″1 ″; | printf(″1 ″); 1 2 2 2 1 else 1 1 1 1 1 cout<<″2 ″; | printf(″2 ″); cout<<endl; | printf(″\n″); } Indicaţi o expresie care poate înlocui punctele de suspensie astfel încât, în urma executării secvenţei obţinute, să se afişeze pe ecran valorile din figura de mai sus, în această ordine. (4p.) a. (4-i)%4==0 || (4-j)%4==0 b. (4-i)%4==0 && (4-j)%4==0 c. (4-i)%4!=0 || (4-j)%4!=0 d. (4-i)%4!=0 && (4-j)%4!=0 Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare. 2. Se consideră două tablouri unidimensionale A și B: A=(1,7,9) și B=(5,7,8,12). Scrieţi elementele unui tablou obținut prin interclasarea tablourilor A și B, în ordinea în care ele apar în acesta. (6p.) 3. Scrieţi un program C/C++ care citeşte de la tastatură un număr natural n (n∈ ∈[2,50]) şi cele n elemente ale unui tablou unidimensional, numere naturale din intervalul [0,104]. Cel puțin două elemente ale tabloului sunt nenule. Programul modifică în memorie tabloul prin ordonarea descrescătoare a elementelor nenule ale acestuia, celelalte elemente păstrându-şi poziția iniţială, apoi afișează pe ecran elementele tabloului obținut, separate prin câte un spațiu. Exemplu: dacă n=9, iar tabloul citit este (5, 0, 0, 9, 3, 4, 0, 7, 3), atunci se obține tabloul (9, 0, 0, 7, 5, 4, 0, 3, 3). (10p.) 4. Numim secvență pară într-un șir o succesiune de termeni ai șirului cu proprietatea că sunt numere pare și că se află pe poziții consecutive în șir; orice secvență are cel puțin doi termeni și este maximală în raport cu proprietatea precizată (dacă i se adaugă un alt termen, secvența își pierde această proprietate). Fişierul bac.txt conţine un şir de cel mult 106 numere naturale din intervalul [0,109]. Numerele din şir sunt separate prin câte un spaţiu. Se cere să se afişeze pe ecran numărul de secvențe pare din șir. 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 valorile 1 2 3 4 6 10 2 8 5 7 9 4 6 14 121 20 4 se afişează pe ecran numărul 3. 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 4 Limbajul C/C++ Filiera teoretică, profilul real, specializarea ştiinţe ale naturii 3

Alte subiecte la Informatică – Sn