Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore. n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun (bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile 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, scriei pe foaia de examen litera corespunztoare rspunsului corect. 1. Indicai expresia C/C++ care are valoarea 1 dac i numai dac numrul memorat n variabila ntreag x aparine mulimii {2015, 2016, 2017}. (4p.) a. x==2015 && !(x<2016 || x<2017) b. x==2015 && !(x<2016 && x<2017) c. x==2015 || !(x<2016 || x>2017) d. x==2015 || !(x<2016 && x>2017)
2. Se consider algoritmul alturat, reprezentat n pseudocod. m 0
S-a notat cu a%b restul mpririi numrului natural a la numrul repet natural nenul b. citete x (numr natural) a) Scriei valoarea afiat dac se citesc, n aceast ordine, y x numerele 29678, 125, 1233345, 2, 78664, 0. (6p.) repet b) Scriei un ir de date de intrare, format din numere naturale, c y%10 astfel nct, n urma executrii algoritmului, s se afieze y [y/10] valoarea 2016. (4p.) pn cnd cy%10 dac y0 atunci c) Scriei n pseudocod un algoritm, echivalent cu cel dat, m m*10+c nlocuind a doua structur repet ...pn cnd cu o
structur repetitiv de alt tip. (6p.) pn cnd x=0 d) Scriei programul C/C++ corespunztor algoritmului dat. (10p.) scrie m
Prob scris la informatic Simulare
Limbajul C/C++ Filiera teoretic, profilul real, specializrile: matematic-informatic, matematic-informatic intensiv informatic Filiera vocaional, profilul militar, specializarea matematic-informatic 1 Ministerul Educaiei Naionale i Cercetrii tiinifice Centrul Naional de Evaluare i Examinare
SUBIECTUL al II-lea (30 de puncte)
Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera corespunztoare rspunsului corect. 1. Se consider arborele cu 7 noduri, numerotate de la 1 la 7, reprezentat prin vectorul de tai (5,4,5,3,0,3,1). Mulimea tuturor frunzelor arborelui este: (4p.) a. {2} b. {1, 4} c. {3, 5} d. {2, 6, 7} 2. Se consider graful neorientat cu cinci noduri, reprezentat alturat. Numrul minim de muchii ce trebuie adugate astfel nct, n graful obinut, ntre oricare dou noduri distincte s existe cel puin un lan elementar de lungime 3, este: (4p.)
a. 1 b. 2 c. 3 d. 4
Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Se consider declararea alturat, n care struct triunghi variabilele t1 i t2 memoreaz baza i nlimea { int baza,inaltime; a dou triunghiuri. } t1, t2; Scriei o secven de instruciuni C/C++ care afieaz pe ecran mesajul aceeasi arie, dac cele dou triunghiuri au arie egal, sau mesajul arii diferite, n caz contrar. (6p.) 4. Variabilele i i j din secvena de instruciuni de mai jos sunt de tip ntreg, iar variabila a memoreaz un tablou bidimensional cu 5 linii i 5 coloane, numerotate de la 0 la 4, cu elemente de tip char. Fr a utiliza alte variabile, scriei una sau mai multe instruciuni care pot nlocui punctele de suspensie astfel nct, n urma executrii secvenei obinute, tabloul memorat n variabila a s aib elementele din figura de mai jos. for(i=0;i<5;i++) ! ? ! ? ! for(j=0;j<5;j++) ? ! ? ! ? ............... (6p.) ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! 5. Dou fraze se numesc anagrame dac literele lor sunt identice, dispuse eventual n alt ordine. Scriei un program C/C++ care citete de la tastatur dou fraze, separate prin Enter, fiecare fiind format din cel mult 100 de caractere. Cuvintele din fiecare fraz conin numai litere mici ale alfabetului englez i sunt separate prin cte un spaiu. Programul afieaz pe ecran mesajul DA, dac cele dou fraze sunt anagrame, sau mesajul NU, n caz contrar. Exemple: dac se citesc, n aceast ordine, frazele: quid est veritas est vir qui adest pe ecran se afieaz mesajul DA iar dac se citesc, n aceast ordine, frazele: lycophron ptolemaios chronophyl apo melitos pe ecran se afieaz mesajul NU. (10p.)
Prob scris la informatic Simulare
Limbajul C/C++ Filiera teoretic, profilul real, specializrile: matematic-informatic, matematic-informatic intensiv informatic Filiera vocaional, profilul militar, specializarea matematic-informatic 2 Ministerul Educaiei Naionale i Cercetrii tiinifice Centrul Naional de Evaluare i Examinare
SUBIECTUL al III-lea (30 de puncte)
Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect. 1. Se consider subprogramul f, definit void f(int x, int nr) alturat. Indicai numrul valorilor { if(x*nr>0) ntregi afiate n urma apelului de mai { if(x%4==0) jos. cout<<x<< ; | printf(%d ,x); f(2024,2); f(x-4,nr-1); (4p.) } cout<<x<< ; | printf(%d ,x); } a. 3 b. 4 c. 5 d. 6
Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Utiliznd metoda backtracking se genereaz, n ordine lexicografic, toate irurile de 4 litere distincte din mulimea {s, i, m, u, l, a, r, e}, n care nu exist dou vocale sau dou consoane alturate. Primele 5 iruri generate sunt, n aceast ordine: alem, aler, ales, alim, alir. Scriei, n ordinea obinerii lor, urmtoarele dou iruri generate imediat dup irul ruse. (6p.) 3. Un numr natural nenul se numete sPar dac att el, ct i suma divizorilor si proprii (divizori diferii de 1 i de el nsui), sunt numere pare. Subprogramul sPar are un singur parametru, n, prin care primete un numr natural [1,109]). Subprogramul returneaz cel mai mic numr sPar, strict mai mare dect n. (n Scriei definiia complet a subprogramului. Exemplu: dac n=95, atunci subprogramul returneaz 98 (att 98, ct i 72=2+7+14+49, sunt numere pare). (10p.) 4. Un numr x se numete sufix al unui numr y dac y se poate obine din x prin alipirea, la stnga sa, a cel puin unei alte cifre. Fiierul bac.in conine un ir de cel mult 109 numere naturale din intervalul [0,109]. Numerele din ir sunt separate prin cte un spaiu. Se cere s se afieze pe ecran, n ordine strict cresctoare, toate numerele din intervalul [100,999] care sunt termeni ai irului aflat n fiier i sunt sufixe pentru cel puin un alt termen al aceluiai ir. Numerele sunt afiate cte unul pe linie, iar dac n ir nu exist astfel de numere, se afieaz pe ecran mesajul Nu exista. Pentru determinarea numerelor cerute se utilizeaz un algoritm eficient din punctul de vedere al timpului de executare. Exemplu: dac fiierul bac.in are coninutul 15502 49 54321 6149 76149 123 123 502 4321 321 321 atunci pe ecran se afieaz numerele 321 502 a) Descriei n limbaj natural algoritmul utilizat, justificnd eficiena acestuia. (4p.) b) Scriei programul C/C++ corespunztor algoritmului descris. (6p.)