Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul de lucru efectiv 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. Variabilele x, y i z sunt de tip ntreg i memoreaz numere naturale din intervalul [1,103]. Indicai o expresie C/C++ care are valoarea 1 dac i numai dac valoarea variabilei x este strict mai mare dect valoarea oricreia dintre variabilele y i z. (4p.) a. x*y>y*z && x*z>y*z b. x*z>x*y && y*z>y*x c. y*z>x*z && y*x>z*x d. y*z>y*x && y*z>z*x
2. Se consider algoritmul alturat, reprezentat citete n
n pseudocod. (numr natural nenul) S-a notat cu a%b restul mpririi numrului natural a k 1 la numrul natural nenul b i cu [c] partea ntreag m 1 a numrului real c. ct timp n>9 execut dac n%10=[n/10]%10 atunci a) Scriei valoarea afiat n urma executrii k k+1 algoritmului dac se citete numrul dac k>m atunci 81112337. (6p.) m k b) Scriei numrul de valori din intervalul [10000,99999] care s nceap cu cifra 1, altfel care pot fi citite pentru variabila n, astfel nct, k 1 n urma executrii algoritmului, pentru fiecare dintre acestea, s se afieze valoarea 4. (4p.) n [n/10]
scrie m c) Scriei n pseudocod un algoritm echivalent cu cel dat, nlocuind structura ct timp...execut cu o structur repetitiv de alt tip. (6p.) d) Scriei programul C/C++ corespunztor algoritmului dat. (10p.)
Prob scris la informatic Varianta 4
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. Variabilele i i j sunt de tip ntreg, iar variabila m memoreaz un tablou bidimensional cu 5 linii i 5 coloane, numerotate de la 0 la 4, cu elemente numere ntregi. O expresie C/C++ a crei valoare este egal cu produsul dintre primul element de pe linia i i ultimul element de pe coloana j din acest tablou este: (4p.) a. m[0,i]*m[j,4] b. m(0,i)*m(j,4) c. m(i)(0)*m(4)(j) d. m[i][0]*m[4][j] 2. Un graf orientat are 12 arce, 3 componente tare conexe, iar fiecare vrf al su are gradul interior un numr nenul. Numrul maxim de noduri pe care le poate avea graful este: (4p.) a. 12 b. 11 c. 9 d. 8
Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Un arbore cu 8 noduri, numerotate de la 1 la 8, este reprezentat prin urmtorul vector de tai (3, 0, 2, 5, 2, 5, 1, 5). Determinai cel mai lung lan elementar care are o extremitate n rdcin i enumerai nodurile sale, n ordinea apariiei n acesta. (6p.) 4. Variabilele i i s sunt ntregi, iar variabila p struct parcare memoreaz, pentru fiecare dintre cele 20 de { int nrLocuriInchiriate; zone de parcare ale unui ora, numrul de int pretOra; locuri nchiriate pe parcursul orei curente, } p[20]; precum i preul practicat de zona respectiv pentru nchirierea unui loc pentru o or. Fr a utiliza alte variabile dect cele menionate, scriei o secven de instruciuni n urma executrii creia variabila s s memoreze suma total obinut n urma nchirierii locurilor de parcare din ora pe parcursul orei curente. (6p.) 5. Scriei un program C/C++ care citete de la tastatur, n aceast ordine, un numr natural n, apoi n cuvinte, separate prin Enter, urmate de un numr natural k. Numerele citite sunt din intervalul [1,20], iar fiecare cuvnt este format din cel mult 20 de caractere, numai litere mici ale alfabetului englez. Cel puin unul dintre cuvinte are k litere. Programul construiete n memorie, apoi afieaz pe ecran, un ir care s cuprind cuvintele citite, separate prin cte un spaiu, astfel nct toate cele care au k litere s ocupe primele poziii, iar celelalte s se regseasc n continuarea acestora, ntr-o ordine oarecare. Exemplu: dac se citesc, n aceast ordine, datele alturate, unul dintre 5 irurile obinute poate fi: am am un de cires mai un (10p.) cires de mai 2
Prob scris la informatic Varianta 4
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. Subprogramul f este definit alturat. void f(int n, int p) Indicai cea mai mare valoare din { if(n>0) intervalul [20,25] pe care o poate { if(n%2==1) avea variabila ntreag x, astfel nct, cout<<p<<" "; | printf(" ",p); n urma apelului de mai jos, s se f(n/2, p*2); afieze numerele 2 4 16. } } f(x,1); (4p.) a. 21 b. 22 c. 23 d. 24
Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Utiliznd metoda backtracking se genereaz, n ordine lexicografic, toate irurile de cte 6 cifre din mulimea {0,1} cu proprietatea c au cel mult dou cifre cu valori egale pe poziii consecutive. Primele 5 soluii generate sunt, n aceast ordine: 001001, 001010, 001011, 001100, 001101. Scriei a 7-a i a 8-a soluie, n ordinea generrii acestora. (6p.) 3. Subprogramul minDivPrim are un singur parametru, n, prin care primete un numr natural (n [2,109]). Subprogramul returneaz cel mai mic numr natural care are aceiai divizori primi ca n. Scriei definiia complet a subprogramului. Exemplu: dac n=75, subprogramul returneaz numrul 15, iar dac n=7, subprogramul returneaz numrul 7. (10p.) 4. Se consider irul 1, -1, 2 ... definit astfel: f1=1, f2=-1, iar fn=1-2fn-1-fn-2, dac n3 (unde n este un numr natural). Se citete de la tastatur un numr natural, n (n [1,109]), i se cere s se scrie n fiierul text bac.out, separai prin cte un spaiu, primii n termeni ai irului, n ordine invers apariiei lor n acesta. Pentru determinarea i afiarea numerelor cerute se utilizeaz un algoritm eficient din punctul de vedere al spaiului de memorie i al timpului de executare. Exemplu: dac n=3, fiierul conine valorile 2 -1 1 a) Descriei n limbaj natural algoritmul utilizat, justificnd eficiena acestuia. (4p.) b) Scriei programul C/C++ corespunztor algoritmului descris. (6p.)