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. Variabilele x i y sunt de tip ntreg (0<x<y). Indicai expresia care are valoarea 1 dac i numai dac n intervalul deschis (x,y)NU sunt numere naturale pare. (4p.) a. x%2==0 && y-x<=2 || x%2==1 && y-x==1 b. x%2==0 || y-x<=2 && x%2==1 || y-x==1 c. x%2==0 && y-x<=2 && x%2==1 && y-x==1 d. x%2==0 || y-x<=2 || x%2==1 || y-x==1
2. Se consider algoritmul alturat, reprezentat n pseudocod. S-a notat cu x%y restul mpririi numrului natural x la numrul natural nenul y i cu [z] partea ntreag a numrului real z. a) Scriei valoarea afiat dac se citesc, n aceast ordine, numerele 5, 6782, 123, 5421, 2, 78664. (6p.) b) Scriei un ir de date de intrare, format doar din numere naturale cu cel mult dou cifre fiecare, astfel nct n urma executrii algoritmului, s se afieze valoarea 2012. (4p.) citete n (numr natural, n9) m 0 ct timp n>0 execut n n-1 citete x (numr natural) c 0 ct timp x%10<[x/10]%10 execut c [x/10]%10 x [x/10]
m m*10+c
scrie m c) Scriei n pseudocod un algoritm, echivalent cu cel dat, n care s se nlocuiasc prima structur ct timp...execut cu o structur repetitiv de tip pentru ... execut. (6p.) d) Scriei programul C/C++ corespunztor algoritmului dat. (10p.)
Ministerul Educaiei, Cercetrii, Tineretului i Sportului Centrul Naional de Evaluare i Examinare
Prob scris la Informatic Varianta 2 Limbajul C/C++ Filiera teoretic, profilul real, specializrile: matematic-informatic, matematic-informatic intensiv informatic Filiera vocaional, profilul militar, specializarea matematic-informatic 2 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 (0,1,1,3,4,4,5). Nodurile de tip frunz ale arborelui sunt: (4p.) a. 1 b. 1,4,7 c. 2,6,7 d. 1,3,4,5 2. Se consider graful neorientat cu ase noduri, reprezentat alturat. Numrul minim de muchii ce pot fi eliminate, astfel nct n graful parial obinut gradele nodurilor s fie egale, este: (4p.)
a. 1 b. 2 c. 3 d. 4
Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare. 3. Se consider declarrile alturate, n care variabilele s1 i s2 memoreaz coordonatele, n sistemul de coordonate xOy, ale extremitilor cte unui segment. Scriei o expresie C/C++ care are valoarea 1 dac i numai dac segmentele corespunztoare variabilelor s1 i s2 au comun extremitatea memorat n cmpul A. (6p.) struct punct { int x,y; }; struct segment { punct A,B; }s1, s2; 4. n secvena de instruciuni de mai jos variabilele i i j sunt de tip ntreg, iar variabila A memoreaz un tablou bidimensional cu 6 linii i 6 coloane, numerotate de la 1 la 6, cu elemente numere ntregi. 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=1;i<=6;i++) for(j=1;j<=6;j++) .................. (6p.) 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 5. Scriei un program C/C++ care citete de la tastatur dou iruri, fiecare fiind format din cel mult 30 de caractere. Dup primul ir se tasteaz Enter. Primul ir este format numai din litere mici ale alfabetului englez, iar cel de-al doilea ir este format numai din litere mici ale alfabetului englez i caractere *. Programul verific dac, nlocuind n cel de-al doilea ir toate caracterele * cu litere mici, irul obinut este un subir al primului ir. n caz afirmativ, programul afieaz pe ecran irul obinut, altfel afieaz mesajul imposibil. Dac se pot obine mai multe astfel de iruri, se afieaz doar unul dintre ele. Exemplu: dac se citesc, n ordine, irurile: albastrui a**r* atunci pe ecran se afieaz astru (10p.)
Ministerul Educaiei, Cercetrii, Tineretului i Sportului Centrul Naional de Evaluare i Examinare
Prob scris la Informatic Varianta 2 Limbajul C/C++ Filiera teoretic, profilul real, specializrile: matematic-informatic, matematic-informatic intensiv informatic Filiera vocaional, profilul militar, specializarea matematic-informatic 3 SUBIECTUL al III-lea (30 de puncte) Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect. 1. Utiliznd metoda backtracking se genereaz, n ordine lexicografic, toate irurile obinute prin permutarea literelor din mulimea {b, r, a, d}. Primele dou iruri obinute sunt, n aceast ordine, abdr i abrd. Al 5-lea ir generat este: (4p.) a. arbd b. ardb c. bdar d. bdra
Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare. 2. Se consider subprogramul f, definit alturat. Scriei ce se afieaz n urma apelului de mai jos. f(9); (6p.) void f(int x) { if(x>0) { if(x%2==0) cout<<'*'; | printf(*); f(x/2); } cout<<x+1; | printf(%d,x+1); } 3. Se consider subprogramul elimina, cu doi parametri: n, prin care primete o valoare natural 2<n<50; v, prin care primete un tablou unidimensional cu n elemente, numere ntregi cu cel mult 4 cifre. Cel puin dou dintre elementele alturate ale tabloului sunt nule. Subprogramul elimin din tablou un numr minim de elemente astfel nct s nu existe dou elemente alturate cu valoarea 0. Tabloul modificat, precum i valoarea actualizat a lui n, sunt furnizate tot prin parametrii v, respectiv n. Scriei definiia complet a subprogramului. Exemplu: dac n=11 i v=(0, 2, 0, 0, 0, 0, -7, 0, 0, 3, 5), atunci dup apel n=7, iar v=(0, 2, 0, -7, 0, 3, 5). (10p.) 4. Fiierul bac.txt conine cel puin dou i cel mult 1000000 numere ntregi, separate prin cte un spaiu. Fiecare numr are cel mult 9 cifre. Se cere s se afieze pe ecran, separate printr-un spaiu, cele mai mici dou valori distincte memorate n fiier. Dac n fiier nu exist dou astfel de valori, pe ecran se afieaz mesajul Nu exista. Pentru determinarea numerelor cerute se utilizeaz un algoritm eficient din punctul de vedere al memoriei i al timpului de executare. Exemplu: dac fiierul bac.txt conine valorile 26 -9023 29 -9023 90 3 234 se afieaz pe ecran, nu neaprat n aceast ordine, numerele -9023 3. a) Descriei n limbaj natural algoritmul utilizat, justificnd eficiena acestuia. (4p.) b) Scriei programul C/C++ corespunztor algoritmului descris. (6p.)