DauExamen
Bacalaureat 2015 Sesiunea specială Mi 3h

Informatică 2015

Informatică – Mi – Bacalaureat 2015, sesiunea specială (varianta 05)

Textul subiectului
Ministerul Educaţiei și Cercetării Științifice Centrul Naţional de Evaluare şi Examinare Examenul de bacalaureat naţional 2015 Proba E. d) Informatică Limbajul C/C++ Varianta 5 Filiera teoretică, profilul real, specializările: matematică-informatică matematică-informatică intensiv informatică Filiera vocaţională, profilul militar, specializarea matematică-informatică • 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.) 4+5%7*2 a. 4 b. 8 c. 9 d. 14 2. Se consideră algoritmul alăturat, reprezentat în citeşte m,n pseudocod. (numere naturale, m≤n) S-a notat cu a%b restul împărţirii numărului natural a la numărul nr 0 natural nenul b şi cu [c] partea întreagă a numărului real c. ┌pentru x m,n execută │ y 0 a) Scrieţi valoarea afişată dacă se citesc, în această ordine, │ z x numerele 997 și 1005. (6p.) │┌repetă b) Dacă pentru m se citește numărul 54321, scrieți cel mai ││ y y*10+z%10 mare număr care poate fi citit pentru n astfel încât, în urma ││ z [z/10] executării algoritmului, valoarea afişată să fie 0. (4p.) │└până când z=0 │┌dacă x=y atunci c) Scrieţi în pseudocod un algoritm, echivalent cu cel dat, ││ nr nr+1 înlocuind structura pentru...execută cu o structură de │└■ tip cât timp...execută. (6p.) └■ d) Scrieţi programul C/C++ corespunzător algoritmului dat. scrie nr (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ă Pagina 1 din 3 Ministerul Educaţiei și Cercetării Științifice 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. În declarările alăturate, variabilele A și B memorează struct punct coordonatele câte unui punct în sistemul de coordonate { int x,y; xOy. Indicați expresia care are valoarea 1 dacă şi numai }A,B; dacă cele două puncte coincid. (4p.) a. A[x]==B[x] && A[y]==B[y] b. A.x==B.x && A.y==B.y c. x[A]==x[B] && y[A]==y[B] d. x.A==x.B && y.A==y.B 2. Un graf orientat cu 5 vârfuri, numerotate de la 1 la 5, este reprezentat alăturat. Numărul maxim de arce care se pot elimina, astfel încât graful parţial obţinut să fie tare conex este: (4p.) a. 2 b. 3 c. 4 d. 5 Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare. 3. Un arbore cu 8 noduri, numerotate de la 1 la 8, este reprezentat prin vectorul de „taţi” (4,4,0,3,6,3,2,7). Scrieți un lanţ elementar care are o extremitate în rădăcina arborelui și cealaltă extremitate în una dintre frunzele acestuia. (6p.) 4. Variabilele i şi j sunt de tip întreg, iar variabila a memorează un tablou bidimensional cu 5 linii şi 5 coloane, numerotate de la 1 la 5, având iniţial toate elementele nule. Fără a utiliza alte variabile decât cele menționate, scrieţi secvenţa de 1 0 1 0 1 instrucţiuni de mai jos, înlocuind punctele de suspensie astfel încât, în 0 1 0 1 0 urma executării secvenţei obţinute, variabila a să memoreze tabloul 1 0 1 0 1 alăturat. 0 1 0 1 0 for(i=1;i<=5;i++) 1 0 1 0 1 for(j=1;j<=5;j++) .................. (6p.) 5. Se consideră un text cu cel mult 100 de caractere, în care cuvintele sunt formate numai din litere mari și mici ale alfabetului englez și sunt separate prin câte un spațiu. Textul reprezintă numele unei instituţii sau al unei organizaţii. Scrieţi un program C/C++ care citeşte de la tastatură un text de tipul precizat şi construieşte în memorie, apoi afişează pe ecran, un şir de caractere ce reprezintă acronimul corespunzător numelui citit. Acronimul este format din primul caracter al fiecărui cuvânt al numelui care începe cu majusculă. Exemplu: dacă şirul citit este Universitatea de Arte Plastice BUCURESTI se va obţine şirul UAPB (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ă Pagina 2 din 3 Ministerul Educaţiei și Cercetării Științifice 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 șiragurile formate din câte 5 pietre distincte din mulţimea {opal, rubin, safir, smarald, topaz}. Două șiraguri sunt distincte dacă pietrele sunt dispuse în altă ordine. Primele patru soluţii obţinute sunt, în această ordine: (opal, rubin, safir, smarald, topaz), (opal, rubin, safir, topaz, smarald), (opal, rubin, smarald, safir, topaz) şi (opal, rubin, smarald, topaz, safir). Indicați soluția care trebuie eliminată din enumerarea următoare, astfel încât cele rămase să apară în ordinea generării lor, pe poziții consecutive: (smarald, safir, opal, topaz, rubin) (smarald, safir, topaz, opal, rubin) (smarald, safir, topaz, rubin, opal) (smarald, topaz, opal, rubin, safir). (4p.) a. (smarald, safir, opal, topaz, rubin) b. (smarald, safir, topaz, opal, rubin) c. (smarald, safir, topaz, rubin, opal) d. (smarald, topaz, opal, rubin, safir) Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare. 2. Subprogramul F este definit alăturat. void F (long a, int b) Scrieţi ce se afişează în urma apelului { if(a*b!=0) de mai jos. if(a%2==0) F(154678,3); { cout<<a%10; | printf(”%d”,a%10); (6p.) F(a/10,b-1); } else { F(a/10,b+1); cout<<a%10; | printf(”%d”,a%10); } } 3. Subprogramul DivImpar are doi parametri, a şi b, prin care primeşte două numere naturale din intervalul [1,105]. Subprogramul returnează cel mai mare divizor comun impar al numerelor a şi b. Scrieţi definiţia completă a subprogramului. Exemplu: dacă a=30 şi b=60, subprogramul returnează valoarea 15. (10p.) 4. Fişierul date.in conţine un şir de cel mult un milion de numere naturale din intervalul [0,109], separate prin câte un spațiu. Șirul are cel puțin doi termeni pari și cel puțin doi termeni impari. Se cere să se afișeze pe ecran mesajul DA dacă șirul aflat în fișier are un subșir ordonat crescător, format din toți termenii pari ai săi, și un subșir ordonat descrescător, format din toți termenii impari ai săi. Dacă nu există două astfel de subșiruri, programul afișează pe ecran mesajul NU. Pentru verificarea proprietății cerute utilizați un algoritm eficient din punctul de vedere al timpului de executare și al memoriei necesare. Exemplu: dacă fişierul date.in conţine numerele 7 2 5 2 4 3 8 se afişează pe ecran mesajul DA iar dacă fișierul conține numerele 5 2 7 2 4 3 8 se afişează pe ecran mesajul NU a) Descrieți în limbaj natural algoritmul utilizat, justificând eficiența acestuia. (4p.) b) Scrieți programul C/C++ corespunzător algoritmului descris. (6p.) 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ă Pagina 3 din 3

Alte subiecte la Informatică – Mi