Sunteți pe pagina 1din 49

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 051 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Care este antetul corect al subprogramului cifre, care prime te prin intermediul primului parametru, x, un num r natural i furnizeaz prin intermediul celui de-al doilea parametru, y, suma cifrelor num rului natural x? (4p.) a. void cifre(int x, int &y) b. int cifre(int x) d. void cifre(int &x, int y) c. void cifre(int x, int y)

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Se consider num rul x=21034085. Permutnd cifrele lui x se ob in alte numere naturale. a) Da i exemplu de un astfel de num r care s fie divizibil cu 25. b) Cte dintre numerele ob inute au exact 7 cifre? (6p.) Se consider subprogramul dist2, care prime te prin intermediul parametrilor xa, ya i respectiv xb, yb, coordonatele carteziene ntregi (abscis , ordonat ) pentru dou puncte din plan, A i respectiv B. Subprogramul returneaz p tratul distan ei dintre cele dou puncte. a) Scrie i n limbajul C/C++ defini ia complet a subprogramului dist2. (4p.) b) Scrie i un program C/C++ care cite te de la tastatur 8 valori ntregi reprezentnd coordonatele carteziene pentru patru puncte din plan i afi eaz mesajul Da dac cele patru puncte pot fi vrfurile unui p trat, iar n caz contrar afi eaz mesajul Nu,folosind apeluri utile ale subprogramului dist2. Exemplu: dac coordonatele punctelor sunt cele al turate 0 0 3 0 atunci se va afi a mesajul Da (6p.) 3 3 0 3 4. Fi ierul text date.in con ine pe prima linie un num r natural nenul n (n 100), iar pe a doua linie n numere naturale nenule, separate prin cte un spa iu, fiecare num r avnd maximum 4 cifre. Scrie i un program C/C++ care cite te toate numerele din fi ierul text date.in, construie te n memorie un tablou unidimensional a, cu cele n elemente din fi ier i afi eaz pe ecran perechile (ai, aj) , 1 i<j n, cu proprietatea c elementele fiec reia dintre aceste perechi au aceea i paritate. Fiecare pereche se va afi a pe cte o linie a ecranului, elementele perechii fiind separate prin cte un spa iu. n cazul n care nu exist nicio pereche, se va afi a valoarea 0. 5 Exemplu: dac fi ierul date.in are con inutul al turat, 16 22 3 6 1 se vor afi a: 16 22 16 6 22 6 3 1 (10p.)

3.

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 052 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Utiliznd metoda backtracking, se genereaz n ordine lexicografic toate anagramele cuvntului caiet ( cuvinte formate din acelea i litere, eventual n alt ordine). Cte cuvinte care ncep cu litera t vor fi generate? (4p.) 1 6 12 24 a. b. c. d.

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Se consider subprogramul f, definit int f(int n) al turat. Ce valoare are f(4)? Dar f(9)? { if (n==0) return 0; if(n%2==1)return n-f(n-1); (6p.) return f(n-1)-n } 3. Subprogramul mult, cu doi parametri, prime te prin intermediul primului parametru, n, un num r natural nenul cu maximum trei cifre i prin intermediul celui de-al doilea parametru, a, un tablou unidimensional avnd n componente numere naturale cu cel mult 8 cifre fiecare. Subprogramul returneaz valoarea 1 dac cele n componente ale lui a pot forma o mul ime i returneaz 0 n caz contrar. a) Scrie i defini ia complet a subprogramului mult. (6p.)

b) Fi ierul text date.in con ine cel mult 400 de numere naturale avnd maximum 8 cifre fiecare. Scrie i un program C/C++ care, folosind apeluri utile ale subprogramului mult, afi eaz pe ecran valoarea maxim k, astfel nct primele k numere succesive din fi ier s poat forma o mul ime. Exemplu: dac fi ierul date.in con ine 16 17 8 31 8 2 10 atunci se va afi a 4 (deoarece primele patru numere din fi ier pot forma o mul ime i acesta este cardinalul maxim posibil n condi iile impuse de enun ul problemei) (4p.) Scrie i un program C/C++ care cite te de la tastatur dou numere naturale nenule n i k (k<n 10000) i afi eaz pe ecran un ir format din k numere naturale consecutive care au suma n. Numerele se vor afi a pe ecran, n ordine cresc toare, desp r ite ntre ele prin cte un spa iu. n cazul n care nu exist un astfel de ir, se va afi a mesajul Nu exist . (10p.)

4.

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 053 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Subprogramul f realizeaz interschimbarea valorilor a dou variabile ntregi transmise prin intermediul parametrilor x i y. Care este antetul corect al subprogramului f? (4p.) void f(int &x, int &y) int f(int x,int y) a. b. d. void f(int &x, int y) c. void f(int x, int &y)

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Se consider subprogramul f, definit int f(unsigned int n) al turat. Pentru ce valori ale lui n { if (n==0) return 0; apar innd intervalului [10, 20] se else if(n%2==0) ob ine la apel f(n)= 0? ( 6p.) return n%10+f(n/10); else return f(n/10); } 3. Se consider subprogramul cmmdc, care prime te prin intermediul a doi parametri, a i b, dou numere naturale nenule, cu maximum 8 cifre fiecare, i returneaz cel mai mare divizor comun al valorilor parametrilor a i b. a) Scrie i defini ia complet a subprogramului cmmdc. (4p.) b) Scrie i un program C/C++ care cite te de la tastatur un num r natural n (n<300), i, cu ajutorul subprogramului cmmdc, determin num rul perechilor de valori naturale (a,b), 1<a<b n, cu proprietatea c a i b nu au niciun divizor comun n afar de 1. Num rul ob inut se va afi a pe ecran. (6p.) Exemplu: dac se cite te n=6, atunci se va afi a 6 (deoarece perechile (2,3), (2,5), (3,4), (3,5), (4,5), (5,6) satisfac condi iile din enun ). 4. Fi ierul text bac.txt are dou linii: pe prima linie con ine un num r natural nenul n (n<=100), iar pe linia a doua un ir format din n numere naturale distincte de cel mult 4 cifre fiecare, desp r ite prin spa ii. Scrie i un program C/C++ care adaug n fi ier toate permut rile circulare distincte ale irului de pe linia a doua a fi ierului. Astfel, se vor ad uga la sfr itul fi ierului nc n-1 linii, fiecare linie con innd permutarea circular cu o pozi ie c tre stnga, a elementelor irului aflat pe linia precedent din fi ier. Elementele fiec rei permutari vor fi separate prin cte un spa iu. Exemplu: dac fi ierul bac.txt con ine liniile: 4 4 10 20 30 49 10 20 30 49 20 30 49 10 atunci, dup rularea programului, fi ierul va avea con inutul 30 49 10 20 reprezentat al turat. (10p.) 49 10 20 30

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 054 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Utiliznd metoda backtracking se genereaz n ordine lexicografic toate anagramele cuvntului caiet ( cuvinte formate din acelea i litere, eventual n alt ordine). Care este a asea solu ie? (4p.) a. catei b. actie d. catie c. actei

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Se consider subprogramul f void f(int i) definit alaturat. Ce se afi eaz la { if(i<=5){ apelul f(1)? cout<<i<< ;| printf(%d ,i); f(i+1); (6p.) cout<<i/2<< ;| printf(%d ,i/2); } } 3. Se consider subprogramul inv, care prime te prin intermediul primului parametru a un num r natural, cu minimum dou cifre i maximum 8 cifre, i furnizeaz prin intermediul celui de-al doilea parametru, b, valoarea num rului natural format cu acelea i cifre ca i a, considerate n ordine invers . De exemplu, pentru a=3805, dup apel b va avea valoarea 5083., iar dac a=3800, dup apel b va avea valoarea 83. a) Scrie i defini ia complet a subprogramului inv. (4p.)

b) Scrie i un program C/C++ care cite te de la tastatur un num r natural n de minimum dou i maximum 8 cifre i afi eaz pe ecran un num r palindrom cu valoarea cea mai apropiat de valoarea lui n citit . n cazul n care exist dou astfel de numere, se va afi a cel mai mic dintre ele. Se vor folosi apeluri utile ale subprogramului inv. Spunem c un num r natural x este palindrom dac num rul format din cifrele lui x considerate de la stnga c tre dreapta este acela i cu num rul format din cifrele lui x considerate de la dreapta c tre stnga. Exemplu: dac n=18, atunci se afi eaz valoarea 22, dac 121, iar dac a=33, atunci se afi eaz 33. 4. n=126, atunci se afi eaz (6p.)

Fi ierul text date.in con ine pe prima linie un num r natural nenul n (n 100), iar pe a doua linie un ir de n numere naturale nenule distincte, separate prin cte un spa iu, fiecare num r avnd maximum 8 cifre. a) Scrie i un program C/C++ care cite te numerele din fi ier i determin cte dintre componentele irului citit pot fi scrise ca sum a altor dou numere din acela i ir. Rezultatul ob inut se va afi a pe ecran. n cazul n care nu exist niciun astfel de element, se va afi a valoarea 0. Exemplu: dac fi ierul date.in con ine 6 1 10 25 2 15 3 atunci se va afi a valoarea 2 (deoarece 25=10+15, 3=1+2). b) Descrie i pe scurt, n limbaj natural, metoda de rezolvare. (8p.) (2p.)

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 055 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Utiliznd metoda backtracking se genereaz toate matricele p tratice de ordinul 4 ale c ror elemente apar in mul imii {0,1}, cu proprietatea c pe fiecare linie i pe fiecare coloan exist o singur valoare 1. Primele 4 solu ii generate sunt, n aceast ordine: 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 (4p.) c. 0 0 1 0 d. 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 1

1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 Care este a opta solu ie? a. 0 1 0 0 b. 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 1

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. int f(int n) 2. Se consider subprogramul f, definit al turat. { if (n>20) return 0; a) Ce valoare are f(25)? else return 5+f(n+5); b) Dar expresia f(1)+f(5)+f(15)? (6p.) } 3. Se consider subprogramul cifre, care prime te prin intermediul primului parametru, a, un num r natural cu maximum 8 cifre nenule i returneaz , prin intermediul celui de-al doilea parametrul b, cel mai mic num r care se poate forma cu toate cifrele distincte ale lui a. a) Scrie i defini ia complet a subprogramului cifre. (4p.)

b) Se consider fi ierul text date.in ce con ine pe prima linie un num r natural nenul n (n 100), iar pe a doua linie n numere naturale, separate prin cte un spa iu, fiecare num r avnd maximum 8 cifre nenule. Scrie i un program C/C++ care cite te toate numerele din fi ierul text date.in i afi eaz pe ecran, desp r ite prin cte un spa iu, numerele situate pe a doua linie a fi ierului, formate numai din cifre distincte ordonate strict cresc tor, folosind apeluri utile ale subprogramului cifre. n cazul n care nu exist niciun astfel de num r se va afi a valoarea 0. Exemplu: dac fi ierul date.in are con inutul 6 al turat, atunci se vor afi a numerele: 16 269 (6p.) 16 175 333 242477 321 269 4. Scrie i un program C/C++ care cite te de la tastatur un num r natural nenul n (n 100) i 2*n numere naturale de maximum 3 cifre; primele n reprezint elementele tabloului unidimensional a, iar urm toarele n elementele tabloului unidimensional b; fiecare tablou are elementele numerotate ncepnd de la 1. Programul construieste n memorie i afi eaz pe ecran, cu spa ii ntre ele, cele n elemente ale unui tablou unidimensional c, n care orice element ci (1 i n) se ob ine conform defini iei urm toare: ci = ai concatenat cu bi, dac bi concatenat cu ai, altfel Exemplu: dac se citesc n=3, a=(12,123,345) elementele tabloului c astfel: 112 123234 15345 i b=(1,234,15), atunci se afi eaz (10p.) ai<bi

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 056 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. a. c. Pentru a genera toate numerele naturale cu exact 4 cifre i care au cifrele n ordine strict descresc toare, se poate utiliza un algoritm echivalent cu cel pentru generarea: (4p.) aranjamentelor de 4 obiecte luate cte 10 b. combin rilor de 10 obiecte luate cte 4 d. permut rilor a 10 obiecte permut rilor a 4 obiecte

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Se consider subprogramul f, definit al turat. Ce valoare are f(12,3)? Dar f(21114,1)? (6p.) int f(int n,int c) { if(n==0)return 0; if(n%10==c) return n%100+f(n/10,c); return f(n/10,c); }

3.

Fi ierul text numere.txt con ine, pe o singur linie, cel mult 1000 de numere naturale nenule cu cel mult 4 cifre fiecare, numerele fiind separate prin cte un spa iu. Scrie i un program C/C++ care cite te toate numerele din fi ier i scrie pe ecran toate numerele pare citite, ordonate cresc tor. Dac fi ierul numere.txt nu con ine niciun num r par, atunci se va afi a pe ecran mesajul nu exista. Exemplu: dac fi ierul numere.txt con ine numerele 2 3 1 4 7 2 5 8 6, atunci pe ecran se va afi a: 2 2 4 6 8 (10p.) Se consider subprogramele prim, care prime te prin intermediul unicului s u parametrului x un num r natural nenul de cel mult 4 cifre i returneaz valoarea 1 dac x este un num r prim i 0 n caz contrar; numar, care prime te prin intermediul parametrului x un num r natural nenul de cel mult 4 cifre i furnizeaz prin intermediul parametrului nrp num rul de numere prime mai mici dect x. a) Scrie i numai antetul subprogramului prim numar. i defini ia complet a subprogramului (6p.)

4.

b) Scrie i un programul C/C++ n care se citesc de la tastatur dou numere naturale nenule de cel mult 4 cifre, a i b (a<b), i, prin apeluri utile ale subprogramului numar, se verific dac intervalul nchis [a,b] con ine cel pu in un num r prim. Programul va afi a pe ecran, n caz afirmativ, mesajul DA, iar n caz contrar, mesajul NU. (4p.)

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 057 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Se utilizeaz metoda backtracking pentru a genera n ordine lexicografic toate cuvintele de cte patru litere din mul imea {d,a,n,s}, astfel nct n niciun cuvnt s nu existe dou litere al turate identice. tiind c primele trei cuvinte generate sunt, n ordine, adad, adan i adas, care va fi ultimul cuvnt ob inut? (4p.) a. snns b. nsns c. snsn d. dans

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Se consider subprogramul f, definit al turat. Ce se va afi a la apelul f(38);? (6p.) void f(int x) { if(x) { if(x%3==0){ cout<<3; | printf("3"); f(x/3); } else{ f(x/3); cout<<x%3; | printf("%d",x%3); } } }

3.

Fi ierul text INTRARE.TXT con ine, pe o singur linie, cel mult 100 de numere naturale nenule de cel mult patru cifre fiecare, numerele fiind separate prin cte un spa iu. Scrie i un program C/C++ care cite te numerele din fi ier i scrie n fi ierul text IESIRE.TXT, n ordine cresc toare, toate valorile distincte ob inute ca sum de dou elemente distincte aflate pe prima linie a fi ierului INTRARE.TXT. Exemplu: INTRARE.TXT IESIRE.TXT 1 4 3 2 3 4 5 6 7 (10p.) Se consider subprogramul multiplu, cu doi parametri, care: prime te prin intermediul parametrilor a i k dou numere ntregi de cel mult 4 cifre; returneaz cel mai mic multiplu al lui k mai mare sau egal cu a. a) Scrie i numai antetul subprogramului multiplu. (4p.)

4.

b) Scrie i declar rile de date i programul principal C/C++ care cite te de la tastatur trei numere naturale nenule x, y, z, de cel mult 4 cifre fiecare, (x y), i care, prin apeluri utile ale subprogramului multiplu, verific dac intervalul [x,y] con ine cel pu in un multiplu al lui z. Programul va afi a pe ecran, n caz afirmativ, mesajul DA, iar n caz contrar mesajul NU. (6p.)

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 058 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Se utilizeaz metoda backtracking pentru a genera n ordine lexicografic toate cuvintele de cte trei litere distincte din mul imea {d,a,n,s}. Care este cel de-al treilea cuvnt ob inut? (4p.) a. ads b. ans c. dan d. and

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Se consider subprogramul f, definit al turat. Ce valoare are f(88,1)? Dar f(3713,3)? (6p.) int f(int n,int c){ if(n==0) return 0; if(n%10==c) return f(n/10,c)*10+c; return f(n/10,c); }

3.

Fi ierul text BAC.TXT con ine, pe o singur linie, cel pu in 3 i cel mult 100 de numere naturale nenule distincte de cel mult 4 cifre fiecare, numerele fiind separate prin cte un spa iu. Scrie i un program C/C++ care cite te toate numerele din fi ierul BAC.TXT i scrie pe ecran, n ordine descresc toare, cele mai mici 3 numere citite. Exemplu: dac fi ierul BAC.TXT con ine numerele 1017 48 310 5710 162, atunci se va afi a: 310 162 48 (10p.) Se consider subprogramul divizor, care: prime te prin intermediul parametrului a un num r natural strict mai mare dect 1, de cel mult 4 cifre; furnizeaz prin intermediul parametrului d cel mai mare divizor al lui a strict mai mic dect a. a) Scrie i numai antetul subprogramului divizor. (4p.)

4.

b) Scrie i declar rile de date i programul principal C/C++ care cite te de la tastatur un num r natural nenul x, de cel mult 4 cifre i, prin apeluri utile ale subprogramului divizor, verific dac x este num r prim. Programul va afi a pe ecran n caz afirmativ mesajul DA, iar n caz contrar mesajul NU. (6p.)

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 059 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Se utilizeaz metoda backtracking pentru a genera n ordine lexicografic toate cuvintele care con in toate literele din mul imea {a,m,i,c}, astfel nct fiecare liter s apar exact o dat ntr-un cuvnt. Cte solu ii sunt generate dup cuvntul amic i nainte de cuvntul cami? (4p.) 6 4 1 3 a. b. c. d.

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Se consider subprogramul f, definit int f(int a,int b) al turat. Ce valoare are f(12,5)? Dar { if(a<10) f(261,31)? (6p.) return b; return f(a/10,b)*10+b+1; } Fi ierul text bac.txt con ine, pe o singur linie, cel pu in 3 i cel mult 100 de numere naturale nenule distincte de cel mult 4 cifre fiecare, numerele fiind separate prin cte un spa iu. Scrie i un program C/C++ care cite te numerele din fi ier i scrie pe ecran ultima cifr a produsului celor mai mari 3 numere citite. Exemplu: dac fi ierul bac.txt con ine numerele: 1017 48 312 5742 162 atunci se va afi a: 8 (ultima cifr a produsului numerelor 1017, 5742, 312) (10p.) Se consider subprogramul divizor, care: prime te prin intermediul parametrului, a, un num r natural nenul de cel mult 4 cifre, strict mai mare ca 1; furnizeaz prin intermediul parametrului d, cel mai mic divizor al lui a strict mai mare dect 1. a) Scrie i numai antetul subprogramului divizor. (4p.)

3.

4.

b) Scrie i declar rile de date i programul principal C/C++ care cite te de la tastatur un num r natural x (x>1), i, prin apeluri utile ale subprogramului divizor, verific dac x este num r prim. Programul va afi a pe ecran, n caz afirmativ, mesajul DA, iar n caz contrar mesajul NU. (6p.)

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 060 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Se utilizeaz metoda backtracking pentru a genera toate cuvintele care con in toate literele din mul imea {i,n,f,o}, astfel nct fiecare liter s apar exact o dat ntr-un cuvnt i literele n i o s nu se afle pe pozi ii vecine. tiind c primul cuvnt generat este info, iar al treilea, al patrulea i al cincilea sunt nifo, niof, nfio care este cel de-al doilea cuvnt ob inut? (4p.) a. iofn b. inof c. ionf d. niof

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. Se consider subprogramul f, definit int f(int a,int b) 2. al turat. Ce valoare are f(3,13)? Dar { f(1000,2009)? (6p.) if(2*a>=b) return 0; if(b%a==0) return b-a; return f(a+1,b-1); } 3. Fi ierul text bac.txt con ine, pe prima sa linie, 100 de numere naturale de cel mult 4 cifre fiecare, numerele fiind ordonate cresc tor i separate prin cte un spa iu, iar pe a doua linie un singur num r natural x, cu cel mult 4 cifre. Scrie i un program C/C++ care cite te toate numerele din fi ier i verific dac x se afl n irul celor 100 de numere aflate pe prima linie a fi ierului. n caz afirmativ, se va afi a pe ecran mesajul DA, altfel se va afi a mesajul NU. Exemple: dac fi ierul bac.txt con ine: 17 38 40 45 50 51 52 53 54 55 ... 145 52 atunci se va afi a: DA ; dac fi ierul bac.txt con ine: 2 11 15 16 20 25 30 35 40 ... 495 33 atunci se va afi a: NU. (10p.) Se consider subprogramul radical, care: prime te prin intermediul parametrului a, un num r natural nenul de cel mult 4 cifre; furnizeaz prin intermediul parametrului x cel mai mare num r natural cu proprietatea c x2 este mai mic sau egal cu a; de exemplu, dac a=20, subprogramul va furniza prin x valoarea 4. a) Scrie i numai antetul subprogramului radical. (4p.)

4.

b) Scrie i declar rile de date i programul principal C/C++ care cite te de la tastatur un num r natural nenul de cel mult 4 cifre, n, i prin apeluri utile ale subprogramului radical, verific dac n este p trat perfect. Programul va afi a pe ecran n caz afirmativ mesajul DA, iar n caz contrar mesajul NU. (6p.)

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 061 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Generarea matricelor p tratice de ordinul n, cu elemente 0 i 1, cu proprietatea c pe fiecare linie i pe fiecare coloan exist un singur element egal cu 1, se poate realiza utiliznd metoda backtracking. Algoritmul utilizat este echivalent cu algoritmul de generare a: (4p.) a. combin rilor b. permut rilor c. aranjamentelor d. produsului cartezian

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. int f(int x) Se consider tabloul unidimensional a definit global, ce memoreaz elementele a1=12, a2=35, {if(x>=1) return (a[x]+f(x-1))%10; a3=2, a4=8 i subprogramul f, definit al turat. Ce else valoare are f(1)? Dar f(4)? (6p.) return 0; } Subprogramul cifra prime te prin parametrul x un num r real nenul pozitiv i furnizeaz prin parametrul y valoarea cifrei unit ilor p r ii ntregi a lui x. Exemplu: dac x=34.567, dup apel y=4. a) Scrie i defini ia complet a subprogramului cifra. (6p.)

3.

b) Scrie i un program C/C++ care cite te de la tastatur dou numere reale cu cel mult dou zecimale, numere reprezentnd mediile semestriale ob inute de un elev. Programul stabile te, folosind apeluri utile ale subprogramului cifra, dac cele dou medii citite se afl n aceea i categorie de medii sau nu. Preciz m c orice medie, n func ie de intervalul n care se ncadreaz , face parte din una dintre categoriile: [3,3.99], [4,4.99], [5,5.99], [6,6.99], [7,7.99], [8,8.99] sau [9,10]. n cazul n care ambele medii fac parte din aceea i categorie, programul va afi a mesajul Da, altfel va afi a mesajul Nu. (4p.) 4. n fi ierul text.in se afl un text scris pe mai multe linii, pe fiecare linie fiind caractere diverse: litere mici ale alfabetului englez, cifre, spa ii i semne de punctua ie. G si i o metod eficient din punctul de vedere al timpului de executare i al gestion rii memoriei ce permite afi area celor mai frecvente perechi de vocale al turate din text. Men ion m c vocalele sunt: a, e, i, o i u. De exemplu, dac text.in con ine textul: Aleea ce strabate valea e-o unduire de pietris scanteietor, De-aceea nu stii daca zboara sau doar inoata in unde aurii cele mai frecvente perechi de vocale ntlnite n acest text sunt: ea i oa (ele apar de 3 ori, spre deosebire de alte perechi de vocale al turate care apar de mai pu ine ori). a) Descrie i succint, n limbaj natural, metoda de rezolvare aleas , explicnd n ce const eficien a ei (3 4 rnduri). (4p.) b) Scrie i programul C/C++ corespunz tor metodei descrise la cerin a a. (6p.)

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 062 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Utiliznd metoda backtracking pentru afi area tuturor modalit ilor de descompunere a unui num r natural ca o sum de numere naturale nenule, pentru n=3 se ob in, n ordine, solu iile: 1+1+1; 1+2; 2+1; 3. Ordinea de scriere a termenilor dintr-o descompunere este semnificativ . Folosind aceea i metod pentru n=10, care este solu ia generat imediat dup 1+1+3+5? (4p.) a. 1+1+4+1+1+1+1 b. 1+1+7+1 c. 1+2+7 d. 1+1+4+4

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. Consider m subprogramul f, definit al turat. Care va void f(int n,int &a) 2. fi valoarea variabilei globale x dup apelul {int c; f(4962,x), dac nainte de apel, x are valoarea 0? if(n!=0){ c=n%10; Dar dac nainte de apel x are valoarea 52? (6p.) if(a<c) a=c; f(n/10,a); } } 3. Scrie i defini ia complet a unui subprogram fibo cu doi parametri, n i v, care prime te prin intermediul parametrului n un num r natural (1<n<30) i returneaz prin intermediul parametrului v un tablou unidimensional care con ine primii n termeni impari ai irului lui Fibonacci (amintim c irul lui Fibonacci este: 1,1,2,3,5,8,13,21,). (10p.) a) Fi ierul date.in con ine un ir de cel mult 10000 numere naturale (printre care cel pu in un num r par i cel pu in un num r impar), cu cel mult 2 cifre fiecare, separate prin cte un spa iu. Scrie i un program C/C++ care cite te numerele din fi ierul date.in i scrie n fi ierul text date.out valorile distincte citite, separate prin cte un spa iu, respectndu-se regula: pe prima linie vor fi scrise numerele impare n ordine cresc toare, iar pe linia a doua numerele pare, n ordine descresc toare. Alege i o metod eficient din punctul de vedere al timpului de executare. (6p.) Exemplu: dac pe prima linie a fi ierului date.in se afl numerele: 75 12 3 3 18 75 1 3 atunci fi ierul date.out va con ine: 1 3 75 18 12 b) Descrie i succint, n limbaj natural, metoda de rezolvare folosit , explicnd n ce const eficien a ei (3 4 rnduri). (4p.)

4.

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 063 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Se genereaz , prin metoda backtracking, toate parti iile mul imii A={1,2,3} ob inndu-se urm toarele solu ii: {1}{2}{3}; {1}{2,3}; {1,3}{2}; {1,2}{3}; {1,2,3}. Se observ c dintre acestea, prima solu ie e alc tuit din exact trei submul imi. Dac se folose te aceea i metod pentru a genera parti iile mul imii {1,2,3,4} stabili i cte dintre solu iile generate vor fi alc tuite din exact trei submul imi. (4p.) a. 3 b. 12 c. 6 d. 5

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. Se consider tabloul unidimensional a definit int f(int b,int i) 2. global, ce memoreaz elementele a1=1, a2=2, {if(i>=1) a3=0 i subprogramul f, definit al turat. Ce return f(b,i-1)*b+a[i]; valoare are f(2,1)? Dar f(3,3)? (6p.) else return 0; } 3. Subprogramul verif prime te prin singurul s u parametru, x, un num r natural nenul cu cel mult 9 cifre i returneaz valoarea 1 dac num rul con ine cel pu in o secven de 3 cifre impare al turate i 0 n caz contrar. Exemplu: dac x=7325972 se va returna valoarea 1. a) Scrie i defini ia complet a subprogramului verif. (6p.)

b) Scrie i un program C/C++ care cite te de la tastatur un num r natural nenul n cu exact 6 cifre i, folosind apeluri utile ale subprogramului verif, verific dac n are primele trei cifre impare. Programul afi eaz pe ecran mesajul Da n caz afirmativ i mesajul Nu n caz contrar. Exemple: dac se cite te n=132567 se va afi a mesajul Nu, iar dac n=979243, se va afi a mesajul Da. (4p.) 4. Pentru un ir de numere naturale, numim nod al irului un termen din ir care are doi vecini, termenul precedent i termenul urm tor din ir, i valoarea termenului respectiv este strict mai mic dect suma valorilor celor doi vecini ai s i. a) Fi ierul text date.in con ine un ir de cel pu in dou i cel mult 10000 de numere naturale avnd maximum 6 cifre fiecare, numere separate prin cte un spa iu. Scrie i un program C/C++ care cite te toate numerele din fi ier i afi eaz num rul de noduri ale irului citit, folosind un algoritm eficient din punctul de vedere al memoriei utilizate. (6p.) Exemplu: dac fi ierul date.in are urm torul con inut: 51 20 100 43 43 618 5000 31 2020 114 116 4 atunci pe ecran se afi eaz 7 (cele apte numere subliniate reprezint noduri ai irului) b) Descrie i succint, n limbaj natural, metoda de rezolvare folosit , explicnd n ce const eficien a ei (3 4 rnduri). (4p.)

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 064 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Se genereaz , prin metoda backtracking, toate modalit ile de a ezare a numerelor naturale de la 1 la 5, astfel nct oricare 2 numere consecutive s nu se afle pe pozi ii al turate. Dac primele dou solu ii sunt: (1,3,5,2,4) i (1,4,2,5,3), care este prima solu ie generat n care primul num r este 4? (4 p.) a. (4, 1, 3, 2, 5) b. (4,2,5,1, 3) c. (4, 3, 5, 3, 1) d. (4, 1, 3, 5, 2)

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Se consider subprogramul f, definit al turat. Ce se va afi a n urma apelului f(5,0);? (6p.) 3. void f(int i,int j) { if(j<=9) f(i,j+1); printf(%d*%d=%d\n,i,j,i*j);/ cout<<i<<*<<j<<=<<i*j<<endl; }

Subprogramul diviz prime te prin intermediul parametrului n un num r natural nenul (2 n 200), iar prin intermediul parametrului a, un tablou unidimensional care con ine n valori naturale nenule, fiecare dintre acestea avnd cel mult patru cifre. Elementele tabloului sunt numerotate de la 1 la n. Subprogramul returneaz o valoare egal cu num rul de perechi (ai,aj), 1 i<j n, n care ai este divizor al lui aj , sau aj este divizor al lui ai. Scrie i defini ia complet a subprogramului diviz, n limbajul C/C++. Exemplu: pentru n=5 i a=(4,8,3,9,4) subprogramul returneaz valoarea 4. (10p.) Fi ierul text date.in con ine pe prima linie , separate prin cte un spa iu, cel mult 1000 de numere naturale, fiecare dintre ele avnd maximum 9 cifre. a) Scrie i un program C/C++ care cite te numerele din fi ierul date.txt i determin cea mai lung secven ordonat strict descresc tor, format din valori citite consecutiv din fi ier. Numerele din secven a g sit vor fi afi ate pe ecran, pe o linie, separate prin cte un spa iu. Dac sunt mai multe secven e care respect condi ia impus , se va afi a doar prima dintre acestea. Alege i o metod de rezolvare eficient din punctul de vedere al timpului de executare. Exemplu: dac fi ierul date.in con ine pe ecran se afi eaz : 5 2 19 4 3 6 3 2 1 0 8 6 3 2 1 0 (6p.) b) Descrie i succint, n limbaj natural, metoda de rezolvare folosit , explicnd n ce const eficien a ei (3 4 rnduri). ( 4p.)

4.

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 065 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Se genereaz , prin metoda backtracking, toate modalit ile de a ezare a numerelor naturale de la 1 la 5 astfel nct oricare dou numere consecutive s nu se afle pe pozi ii al turate. Dac primele dou solu ii sunt: (1,3,5,2,4) i (1,4,2,5,3), care este prima solu ie generat care ncepe cu 2? (4p.) a. (2, 4, 1, 3, 5) b. (2, 5, 4, 3, 1) c. (2, 4, 1, 3, 1) d. (2, 3, 5, 4, 1)

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Se consider func ia f, definit al turat. Ce se afi eaz ca urmare a execut rii secven ei de mai jos n care variabilele a i b sunt de tip int? a=4; b=18; printf(%d,f(a,b));/ cout<<f(a,b); printf(%d %d,a,b);/ cout<<a<<b; (6p.) int f( int &a, int &b) { while (a !=b) if (a>b) a=a-b; else b=b-a; return a;}

3.

Subprogramul sfx prime te prin singurul s u parametru, x, un num r natural din intervalul [100,2000000000] i returneaz valoarea 1 dac ultimele trei cifre ale num rului sunt n ordine strict descresc toare sau valoarea 0 n caz contrar. Exemplu: dac x=24973 se va returna valoarea 1. a) Scrie i defini ia complet a subprogramului sfx. (5p.)

b) Scrie i un program C/C++ care cite te de la tastatur un num r natural n format din exact 6 cifre i verific , utiliznd apeluri ale subprogramului sfx, dac acest num r are toate cifrele n ordine strict descresc toare. Programul va afi a mesajul Da n caz afirmativ i mesajul Nu n caz contrar. Exemplu: dac n=756543 se va afi a Nu, iar dac n=976532 se va afi a Da. (5p.) 4. Pentru un ir de numere naturale, numim pol al irului un termen din ir care are doi vecini, termenul precedent i termenul urm tor din ir, i valoarea termenului respectiv este strict mai mare dect valoarea fiec ruia dintre cei doi vecini ai s i. a) Fi ierul text date.in con ine un ir de cel mult 10000 de numere naturale avnd maximum 6 cifre fiecare, numere separate prin cte un spa iu. Scrie i un program C/C++ care cite te toate numerele din fi ier i afi eaz num rul de poli ai irului citit, folosind un algoritm eficient din punctul de vedere al memoriei utilizate. (6p.) Exemplu: dac fi ierul date.in are urm torul con inut: 51 20 100 43 43 618 5000 31 2020 114 116 4 atunci pe ecran se afi eaz 4 (cele patru numere subliniate reprezint poli ai irului) b) Descrie i succint, n limbaj natural, metoda de rezolvare folosit , explicnd n ce const eficien a ei (3 4 rnduri). ( 4p.)

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 066 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Se genereaz n ordine cresc toare, toate numerele naturale de 5 cifre distincte, care se pot forma cu cifrele 2,3,4,5 i 6. S se precizeze num rul generat imediat naintea i num rul generat imediat dup secven a urm toare : 34256, 34265, 34526, 34562 (4p.) i 34625 i 34625 b. 32654 d. 32645 i 34655 i 34655

a. 32645 c. 32654

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Se consider subprogramul recursiv definit int functie(int x) al turat. Ce valoare are functie(1)? Dar { if (x<=0) return 3 ; functie(4)? (6p.) else return functie(x-3)*4 ; } S se scrie n limbajul C/C++ defini ia complet a subprogramului calcul, care prime te prin intermediul parametrului n un num r natural nenul (1 n 10000), iar prin intermediul parametrului a, un tablou unidimensional care con ine n valori naturale, fiecare dintre aceste valori avnd cel mult 9 cifre. Subprogramul returneaz cel mai mare divizor comun al elementelor tabloului a. (10p.) Exemplu: n urma apelului, pentru n=5 i tabloul unidimensional (12,36,48,6,60) se va returna 6. 4. Fi ierele text A.TXT i B.TXT con in cel mult 10000 de numere naturale cu cel mult 9 cifre fiecare, scrise fiecare pe cte o linie. a) Scrie i un program C/C++ care cite te numerele din cele dou fi iere i, printr-o metod eficient din punct de vedere al timpului de executare i al spa iului de memorie utilizat, afi eaz pe ecran cte dintre numerele din fi ierul A.TXT sunt strict mai mici dect toate numerele memorate n fi ierul B.TXT. (6p.) 41111 iar fi ierul B.TXT are con inutul 91111 Exemplu: dac fi ierul 81111 al turat: 91111 A.TXT are con inutul al turat, 11111 61111 91111 91111 51111 91111 111111 81111 31111 61111 431111 91111 61111 201111 atunci programul va afi a valoarea 4, deoarece 41111, 11111, 51111, 31111 sunt mai mici dect toate elementele din fi ierul B.TXT. b) Descrie i succint, n limbaj natural, metoda utilizat acesteia. la punctul a, justificnd eficien a (4p.)

3.

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 067 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Se genereaz n ordine cresc toare, toate numerele naturale de 5 cifre distincte, care se pot forma cu cifrele 5,6,7,8 i 9. S se precizeze num rul generat imediat naintea i num rul generat imediat dup secven a urm toare : 67589,67598,67859,67895. (4p.) i 67958 i 67958 b. 65978 d. 65987 i 67988 i 67988

a. 65987 c. 65978

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Se consider subprogramul recursiv definit int alfa(int u) al turat. Ce valoare are alfa(6)? Pentru ce {if (u==0) return 3; else return alfa(u-1)+3*u-2; valoare a parametrului u, alfa(u) are } valoarea 25 ? (6p.) S se scrie n limbajul C/C++ defini ia complet a subprogramului calcul, care prime te prin intermediul parametrului n un num r natural nenul (1 n 10000), iar prin intermediul parametrului a, un tablou unidimensional care con ine n valori naturale, fiecare dintre aceste valori avnd cel mult 9 cifre. Subprogramul returneaz num rul de numere prime din tablou. (10p.) Exemplu: pentru n=5 i tabloul unidimensional (12,37,43,6,71) n urma apelului se va returna 3. Fi ierul text NUMERE.TXT con ine pe prima linie un num r natural n (1 n 10000) i pe a doua linie un ir cresc tor de n numere naturale, fiecare avnd cel mult 9 cifre. Numerele de pe a doua linie sunt separate prin cte un spa iu. a) Scrie i un program C/C++ care, utiliznd o metod eficient din punct de vedere al timpului de executare i al spa iului de memorie, afi eaz pe ecran elementele distincte ale irului aflat pe a doua linie a fi ierului. (6p.) Exemplu: dac fi ierul NUMERE.TXT are 7 con inutul al turat 111 111 111 2111 4111 71111 71111 atunci programul va afi a pe ecran 111 2111 4111 71111. b) Descrie i succint, n limbaj natural, metoda utilizat acesteia. la punctul a), justificnd eficien a (4p.)

3.

4.

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 068 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Se utilizeaz metoda backtracking pentru a genera toate submul imile cu 4 elemente ale mul imii {1,2,3,4,5,6}. Num rul de submul imi generate este: (4p.) b. 35 c. 5 d. 15 a. 30

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Se consider subprogramul void gama(int n) recursiv definit al turat. Ce valori {int i; vor fi afi ate pe ecran n urma if(n>=3) {for(i=3;i<=n;i++) apelului gama(6);? (6p.) printf(%d ,n); | cout<<n<< ; gama(n-3); } } a) S se scrie defini ia complet a subprogramului calcul, care prime te prin intermediul celor doi parametri ai s i dou numere ntregi, n i k (1 n 100000000 i 1 k 9), i returneaz cifra de rang k a num rului n. Rangul unei cifre este num rul s u de ordine, numerotnd cifrele de la dreapta la stnga; cifra unit ilor avnd rangul 1. Dac num rul k este mai mare dect num rul de cifre ale lui n, atunci func ia returneaz valoarea -1. Exemplu: dac n=9243 i k=3, n urma apelului se va returna 2. (5p.) b) Scrie i un program C/C++ care cite te de la tastatur un num r natural n cu cel mult 8 cifre. Programul va verifica, utiliznd apeluri ale subprogramului calcul, dac orice cifr a lui n are rangul cifrei mai mare sau egal cu valoarea cifrei respective i va afi a mesajul Da n caz afirmativ i mesajul Nu n caz contrar. Exemplu : pentru n=4160 se va afi a Nu. (5p.) 4 3 2 1 rang 4 1 6 0 cifr 4. Fi ierul text SIR.TXT con ine pe prima linie un num r natural n (1 n 10000) i pe a doua linie, separate prin spa ii, un ir cresc tor de n numere naturale cu cel mult 9 cifre fiecare. Numim platou ntr-un ir de valori o secven de elemente identice situate pe pozi ii al turate. Lungimea unui platou este egal cu num rul de elemente care l formeaz . a) Scrie i un program C/C++ care cite te valorile din fi ier i, printr-o metod eficient din punct de vedere al timpului de executare i al spa iului de memorie utilizat afi eaz pe ecran, separate printr-un spa iu, lungimea maxim a unui platou, precum i valoarea care formeaz platoul. n cazul n care sunt mai multe platouri de aceea i lungime se va afi a valoarea cea mai mare care formeaz unul dintre aceste platouri. (6p.) Exemplu: dac fi ierul SIR.TXT 10 are con inutul al turat, 11 211 211 211 328 400 400 1201 1201 1201 atunci programul va afi a pe ecran 3 1201. b) Descrie i succint, n limbaj natural, metoda utilizat acesteia. la punctul a, justificnd eficien a (4p.)

3.

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 069 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Construim anagramele unui cuvnt c1c2c3c4 prin generarea n ordine lexicografic a permut rilor indicilor literelor cuvntului i ob inem c1c2c3c4 c1c2c4c3 c1c3c2c4 c4c3c1c2 c4c3c2c1. Pentru anagramele cuvntului pateu, dup irul paetu, paeut, paute cuvintele imediat urm toare sunt: (4p.) a. pauet i ptaeu b. ptaeu i ptaue c. pauet i ptaue d. ptaeu i patue

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Se consider subprogramul recursiv void beta(int n) definit al turat. Ce valori vor fi {if (n!=1) {printf(%d ,n); | cout<<n<< ; afi ate pe ecran n urma apelului if (n%3==0) beta(n/3); beta(15);? (6p.) else beta(2*n-1);} else printf(%d,1); | cout<<1; } a) S se scrie defini ia complet a subprogramului calcul, care prime te prin intermediul parametrului ntreg n un num r natural de cel mult 9 cifre i returneaz valoarea absolut a diferen ei dintre num rul de cifre pare i num rul de cifre impare con inute de n. Exemplu: dac n=92465, n urma apelului se va returna valoarea 1 (2 cifre impare, 3 cifre pare). (5p.) b) S se scrie n limbajul C/C++ un program care cite te de la tastatur un num r natural n de cel mult 7 cifre i, utiliznd apeluri ale subprogramului calcul, determin i afi eaz pe ecran cel mai mic num r natural m, m n, care are tot attea cifre pare cte cifre impare. Exemple: dac se cite te n=5513, atunci se afi eaz m=5520, iar dac se cite te n=311, atunci se afi eaz m=1001. (5p.) Fi ierul text NUMERE.TXT con ine pe prima linie un num r natural n (1 n 10000) i pe a doua linie, n numere naturale cu cel mult 9 cifre fiecare. Aceste numere sunt dispuse n ordine cresc toare i separate ntre ele prin cte un spa iu. a) Scrie i un program C/C++ care cite te valorile din fi ier i, printr-o metod eficient din punct de vedere al timpului de executare, afi eaz pe ecran, separate prin cte un spa iu, n ordine cresc toare, numerele pare de pe a doua linie a fi ierului, urmate de cele impare n ordine descresc toare. (6p.) Exemplu: dac fi ierul NUMERE.TXT are 6 con inutul al turat 212 412 5111 71113 81112 101112 atunci programul va afi a pe ecran 212 412 81112 101112 71113 5111 b) Descrie i succint, n limbaj natural, metoda utilizat acesteia. la punctul a, justificnd eficien a (4p.)

3.

4.

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 070 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Pentru rezolvarea c rei probleme dintre cele enumerate mai jos se poate utiliza metoda backtracking ? (4p.) a. determinarea reuniunii a 3 mul imi b. determinarea tuturor divizorilor unui num r din 3 cifre c. determinarea tuturor elementelor mai mici dect 30000 din irul lui Fibonacci d. determinarea tuturor variantelor n care se pot genera steagurile cu 3 culori (din mul imea: ro u, galben, albastru i alb), avnd la mijloc culoarea galben

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Se consider subprogramul recursiv definit al turat. int bac(int u, int x) Ce valoare are expresia bac(10,4)? Care este cea {if (u<x)return 0; mai mic valoare de 2 cifre a lui u pentru care func ia if (x==u)return 1; if (u%x==0)return 0; bac(u,2) are valoarea 1? (6p.) return bac(u,x+1); } S se scrie n limbajul C/C++ defini ia complet a subprogramului calcul, care prime te prin parametrul n un num r natural nenul de cel mult 9 cifre i furnizeaz prin parametrul x num rul ob inut prin al turarea cifrelor pare ale lui n considerate de la dreapta c tre stnga. Dac n nu con ine nicio cifr par , x prime te valoarea 0. (10p.) Exemplu: n urma apelului calcul(9278,x), x prime te valoarea 82. 4. Fi ierul text NUMERE.TXT con ine pe prima linie un num r natural n (1 n 10000) i pe a doua linie, n numere naturale cu cel mult 9 cifre fiecare, numere nu neap rat distincte. Aceste numere sunt dispuse n ordine cresc toare i separate ntre ele prin cte un spa iu. a) Scrie i un program C/C++ care cite te valorile din fi ier i, printr-o metod eficient din punct de vedere al timpului de executare i al spa iului de memorie utilizat, afi eaz pe ecran, cu un spa iu ntre ele, valoarea care apare de cele mai multe ori n fi ier i de cte ori apare ea. Dac exist mai multe valori care apar de un num r maxim de ori, se va afi a cea mai mic dintre ele. (6p.) Exemplu: dac fi ierul 8 NUMERE.TXT are con inutul 711 711 711 11111 11111 11111 191111 231111 al turat, atunci programul va afi a pe ecran 711 3. b) Descrie i succint, n limbaj natural, metoda utilizat acesteia. la punctul a, justificnd eficien a (4p.)

3.

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 071 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Se genereaz n ordine cresc toare toate numerele de exact 4 cifre care se pot forma cu elementele mul imii {0,1,2,3,4}. Primele 8 solu ii generate sunt, n ordine: 1000, 1001, 1002, 1003, 1004, 1010, 1011, 1012. Care sunt primele trei numere ce se vor genera imediat dup num rul 3443? (4p.) a. 4000,4001,4002 b. 3444,4443,4444 d. 3444,4000,4001 c. 3444,4444,4000

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Ce valoare va avea variabila ntreag x, n urma apelului F(1,x), tiind c , nainte de apel, variabila x are valoarea 0, iar subprogramul F este definit al turat? (6p.) 3. void F(int i, int &x) { if (i <= 10) { if(i % 2) x = x + 2; else x = x 1; F(i + 1, x); } }

Un num r natural se nume te palindrom dac num rul citit de la stnga la dreapta este egal cu num rul citit de la dreapta la stnga. a) Scrie i defini ia complet a subprogramului Palindrom care prime te prin intermediul parametrului n un num r natural de cel mult nou cifre i returneaz 1 dac acesta este palindrom i 0 n caz contrar. (10p.) b) Fi ierul text NUMERE.IN con ine cel mult 100000 numere naturale de cel mult nou cifre fiecare, numerele fiind desp r ite prin cte un spa iu. Cel pu in unul dintre numere este palindrom. Scrie i programul C/C++ care cite te numerele din fi ierul NUMERE.IN i, folosind apeluri utile ale subprogramului Palindrom determin n mod eficient, din punct de vedere al memoriei utilizate i al timpului de executare, care este cel mai mare num r palindrom citit i de cte ori apare el n fi ierul NUMERE.IN. Programul scrie n fi ierul text NUMERE.OUT num rul astfel determinat precum i num rul de apari ii ale acestuia, pe rnduri diferite. Exemplu: dac NUMERE.IN con ine numerele: 23 565 78687 7887 7865 78687 7887 23 78687 98798 atunci NUMERE.OUT va con ine: 78687 3 (6p.) c) Descrie i succint, n limbaj natural, metoda de rezolvare folosit la punctul b, explicnd n ce const eficien a ei (3 4 rnduri). (4p.)

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 072 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Se genereaz n ordine cresc toare toate numerele de 4 cifre, cu cifre distincte, astfel nct diferen a n valoare absolut dintre prima i ultima, respectiv a doua i a treia cifr este egal cu 2. Primele 11 solu ii generate sunt, n ordine: 1023, 1203, 1243, 1423, 1463, 1573, 1643, 1683, 1753, 1793, 1863. Care dintre urm toarele numere se va genera imediat naintea num rului 9317? (4p.) a. 9247 b. 9357 c. 9207 d. 8976

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Scrie i ce se va afi a n urma execut rii subprogramului al turat, la apelul F(57);. (6p.) void F(int x) { if(x != 0) { F(x/2); cout << x%2; } }

printf(%d, x%2);

3.

a) Scrie i defini ia complet a subprogramului Ecuatie care prime te prin parametrii a, b i c trei numere ntregi, a 0, de cel mult patru cifre fiecare, reprezentnd coeficien ii ecua iei de gradul al II-lea: ax 2 +bx+c=0. n func ie de solu iile ecua iei subprogramul va returna: cea mai mare dintre solu ii dac ecua ia are dou solu ii reale distincte, dintre care cel pu in una pozitiv . una dintre solu ii dac ecua ia are dou solu ii egale i pozitive. -32000 n celelalte cazuri. (10p.) b) Se consider irul s: 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 6, 1, 2,... . Pentru un num r natural k, 0<k 10000, se cere s se determine valoarea elementului ce se afl pe pozi ia k n irul s. Exemplu: pentru k=18 num rul cerut este 3. Scrie i un program C/C++ care cite te de la tastatur valoarea num rului natural k i, prin apeluri utile ale func iei Ecuatie, determin valoarea elementului ce se afl pe pozi ia k n irul s, folosind un algoritm eficient din punctul de vedere al spa iului de memorie alocat i al timpului de executare. Valoarea astfel determinat se va scrie n fi ierul text sir.out. (6p.) c) Descrie i succint, n limbaj natural, metoda de rezolvare folosit la punctul b, explicnd n ce const eficien a ei (3 4 rnduri) (4p.)

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 073 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Se genereaz n ordine cresc toare toate numerele de 4 cifre, cu cifre distincte, astfel nct diferen a n valoare absolut dintre ultimele dou cifre ale fiec rui num r generat este egal cu 2. Primele opt solu ii generate sunt, n ordine: 1024, 1035, 1042, 1046, 1053, 1057, 1064, 1068. Care dintre urm toarele numere se va genera imediat dup num rul 8975? (4p.) a. 8979 b. 9013 c. 8957 d. 9024

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Ce se va afi a n urma execut rii void F(int x) subprogramului al turat, la apelul { if(x) { F(x/2); F(56);? (6p.) cout << x%10; } }

printf(%d,x%10);

3.

a) Scrie i defini ia complet a subprogramului Cautare, cu trei parametri, n, x i v, care prime te prin parametrul n un num r natural (1n1000), prin parametrul x un tablou unidimensional format din n componente (numere ntregi de cel mult patru cifre fiecare: x1, x2, , xn) memorate n ordine cresc toare i prin parametrul v un num r ntreg de cel mult patru cifre, diferit de oricare dintre elementele tabloului unidimensional x. Subprogramul va c uta, n mod eficient din punct de vedere al timpului de executare, pozi ia pe care ar trebui inserat valoarea v n irul x astfel nct s se ob in tot un ir ordonat cresc tor i returneaz aceast pozi ie. (6p.) b) Descrie i succint, n limbaj natural, metoda de rezolvare folosit , explicnd n ce const eficien a ei (3 4 rnduri). (4p.) c) Fi ierul text sir.in con ine cel mult 1000 numere ntregi de maximum patru cifre fiecare, numerele fiind diferite dou cte dou i desp r ite prin cte un spa iu. Scrie i un program C/C++ care cite te numerele din fi ierul sir.in i, folosind apeluri utile ale subprogramului Cautare, construie te n memorie un tablou unidimensional care va con ine toate numerele din fi ierul sir.in ordonate cresc tor. Programul scrie n fi ierul text sir.out irul ob inut, cte 10 elemente pe un rnd, elementele de pe acela i rnd fiind desp r ite printr-un singur spa iu. Exemplu: dac fi ierul sir.in con ine numerele: 7 -5 635 -456 0 8 587 -98 65 3 -8 atunci dup executarea programului fi ierul sir.out va con ine: -456 -98 -8 -5 0 3 7 8 65 587 635 (10p.)

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar
Subiectul III (30 de puncte) - Varianta 074 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Prin metoda backtracking se genereaz toate anagramele (cuvintele ob inute prin permutarea literelor) unui cuvnt dat. tiind c se aplic aceast metod pentru cuvntul solar, preciza i cte cuvinte se vor genera astfel nct prima i ultima liter din fiecare cuvnt generat s fie vocal (sunt considerate vocale caracterele a, e, i , o, u)? (4p.) b. 6 c. 10 d. 12 a. 24

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. int Suma(int x) Se consider func ia Suma, definit al turat. Ce valoare are Suma(3)? Dar { if(x == 1 ) return 0; if(x%2==0) return Suma(x-1)+(x-1)*x; Suma(8)? (6p.) return Suma(x-1)-(x-1)*x; } a) Scrie i defini ia complet a subprogramului Cifra, cu doi parametri, n i x, care prime te prin intermediul parametrului n un num r natural de cel mult nou cifre i furnizeaz prin parametrul x cea mai mare cifr a num rului transmis prin parametrul n. (6p.) b) Scrie i un program C/C++ care cite te de la tastatur un num r natural n, n<1000000000, i, utiliznd apeluri utile ale subprogramului Cifra, afi eaz pe ecran mesajul Da n cazul n care num rul citit este format doar din cifre apar innd mul imii {0,1,2,3,4} i afi eaz mesajul Nu n caz contrar. (4p.) 4. Se nume te num r mare orice num r natural care are mai mult de nou cifre. a) Scrie i un program C/C++ care cite te de pe prima linie a fi ierului text NUMERE.IN un num r natural n (10 n<1000), iar de pe a doua linie n cifre desp r ite prin cte un spa iu, dintre care cel pu in una nenul , i afi eaz pe ecran cel mai mic num r mare format cu toate cele n cifre din fi ier. Alege i o metod eficient din punct de vedere al utiliz rii memoriei. (6p.) b) Descrie i succint n limbaj natural metoda de rezolvare folosit explicnd n ce const eficien a ei (3 4 rnduri). (4p.) Exemplu: dac fi ierul NUMERE.IN con ine 10 7 9 4 0 9 0 1 1 8 8 atunci se va afi a pe ecran num rul mare : 1001478899

3.

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 075 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Ce valoare are F(2758), pentru int F(int x) func ia F definit al turat? (4p.) { if(x == 0) return 0; if(x%10%2 == 0) return 2 + F(x/10); return 10 F(x/10); } b. 20 c. 12 d. 4 a. 0

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Variabilele i, j i aux sunt de tip ntreg, iar for(int i = 0; i < 4; i++) for(int j = i + 1; j< 6; j++) nainte de prelucrare elementele tabloului if(x[i] > x[j]) unidimensional x sunt urmatoarele: x0=10, { aux = x[i]; x1=5, x2=-6, x3=7, x4=0, x5=-2. x[i] = x[j]; Ce valori se vor afi a n urma execut rii x[j] = aux; secven ei de program al turate? (6p.) } for(i = 0; i < 6; i++) cout<<x[i]<< ; | printf(%d ,x[i]); a) Scrie i defini ia complet a func iei UltimaCifra care prime te prin cei doi parametri a i b cte un num r natural (0<a<30000, 0<b<30000), calculeaz n mod eficient din punct de vedere al timpului de executare i returneaz ultima cifr a num rului ab (a la puterea b). (6p.) b) Descrie i succint, n limbaj natural, metoda de rezolvare folosit , explicnd n ce const eficien a ei (3 4 rnduri) (4p.) c) Fi ierul text SIR.IN con ine pe prima sa linie un num r natural n (0<n<1001), iar pe fiecare dintre urm toarele n linii cte o pereche de numere naturale, xi yi (1 i n, xi 30000, yi 30000). Scrie i programul C/C++ care cite te numerele din fi ierul SIR.IN i scrie n fi ierul text SIR.OUT ultima cifr a expresiei: x1 + x 2 +...+ x n ,folosind apeluri ale func iei UltimaCifra. 3 Exemplu: dac fi ierul SIR.IN are con inutul al turat, atunci 25 6 SIR.OUT va con ine cifra 0. (10p.) 8 10 1 4589
y1 y2 yn

3.

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 076 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Dac se utilizeaz metoda backtracking pentru a genera toate permut rile de 4 obiecte i primele 5 permut ri generate sunt, n aceast ordine, 4 3 2 1, 4 3 1 2, 4 2 3 1, 4 2 1 3, 4 1 3 2, atunci a 6-a permutare este: (4p.) a. 3 2 1 4 b. 3 4 2 1 c. 1 4 3 2 d. 4 1 2 3

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Pentru defini ia al turat a subprogramului long sub(long n) sub, scrie i ce valoare are sub(3). Dar {if (n!=0) if(n%2!=0) return n%10*sub(n/10); sub(132764)? else return sub(n/10); (6p.) else return 1; } Scrie i defini ia complet a unui subprogram s cu trei parametri care prime te prin intermediul parametrului n un num r natural de maximum 9 cifre, prin intermediul parametrului c o cifr i furnizeaz prin intermediul parametrului k num rul de cifre ale num rului n care apar in intervalului [c-1,c+1]. Exemplu: pentru n=1233 i c=3, k va avea valoarea 3, iar pentru n=650 i c=3, k va avea valoarea 0. (10p.) Fi ierul BAC.TXT are pe prima linie dou numere naturale n i m (0<n<1000, 0<m<1000) separate prin cte un spa iu, pe linia a doua n numere ntregi ordonate strict cresc tor, iar pe linia a treia m numere naturale distincte. Numerele din fi ier aflate pe linia a doua i a treia au cel mult 6 cifre fiecare i sunt desp r ite n cadrul liniei prin cte un spa iu. S se scrie un program care cite te toate numerele din fi ier i afi eaz pe ecran, desp r ite prin cte un spa iu, toate numerele de pe a doua linie a fi ierului care apar i pe linia a treia a acestuia. Exemplu: dac fi ierul are urm torul con inut: 6 5 2 3 4 5 8 9 4 5 2 11 8 atunci se va afi a: 5 2 8 4, nu neap rat n aceast ordine. a) Descrie i n limbaj natural o metod de rezolvare eficient ca timp de executare. b) Scrie i programul C/C++ corespunz tor metodei descrise la punctul a). (4p.) (6p.)

3.

4.

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 077 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. La un concurs particip 50 de sportivi mp r i i n 5 echipe, astfel nct n fiecare echip s fie cte 10 sportivi. Problema determin rii tuturor grupelor de cte 5 sportivi, cte unul din fiecare echip , este similar cu generarea tuturor: (4p.) elementelor produsului cartezian b. AxAxAxAxA, unde A={1,2,,10} permut rilor mul imii {1,2,3,4,5} d. submul imilor cu 5 elemente ale mul imii {1,2,,10} parti iilor mul imii {1,2,,10}

a. c.

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Pentru defini ia al turat a subprogramului int sub(long n) sub, scrie i ce valoare are sub(4). Dar {if (n!=0) if(n%2!=0) sub(132764)? (6p.) return n%10+sub(n/10); else return sub(n/10); else return 0; } Scrie i un program C/C++ care cite te de la tastatur dou numere naturale nenule n i k (0<n<100, 0<k<4) i apoi n numere reale pozitive care au cel mult 3 cifre la partea ntreag i cel mult 5 cifre zecimale i afi eaz pe ecran num rul de valori reale citite care au mai mult de k cifre zecimale. Exemplu: dac pentru n se cite te valoarea 5 i pentru k valoarea 2 i apoi irul de numere reale 6.2 4.234 2 8.13 10.001 pe ecran se va afi a valoarea 2. (10p.) Fi ierul text bac.in con ine pe prima sa linie un num r natural n (0<n<10000), iar pe urm toarea linie n numere naturale din intervalul [1,100] separate prin cte un spa iu. Se cere s se citesc din fi ier toate numerele i s se afi eze pe ecran num rul sau numerele care apar de cele mai multe ori printre numerele citite de pe a doua linie a fi ierului. Numerele afi ate vor fi separate prin cte un spa iu. Alege i un algoritm de rezolvare eficient att din punctul de vedere al timpului de executare ct i al gestion rii memoriei. . Exemplu: dac fi ierul bac.in are urm torul con inut: 12 1 2 2 3 2 9 3 3 9 9 7 1 pe ecran se vor afi a valorile 2, 3 i 9, nu neap rat n aceast ordine. a) Explica i n limbaj natural metoda utilizat justificnd eficien a acesteia (4-6 rnduri) (4p.) b) Scrie i programul C/C++ ce rezolv descrise la punctul a). problema enun at , corespunz tor metodei (6p.)

3.

4.

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 078 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Un program construie te i afi eaz elementele produsului cartezian AxBxC pentru mul imile A={1,2,3,4}, B={1,2,3}, C={1,2}. Care dintre urm toarele triplete NU va fi afi at? (4p.) b. (1,3,2) c. (1,2,3) d. (2,2,2) a. (3,2,1)

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Pentru defini ia al turat a subprogramului int sub(long n) sub, scrie i ce valoare are sub(4). Dar {if (n!=0) if(n%2!=0) return 1+sub(n/10); sub(123986)? (6p.) else return sub(n/10); else return 0; } a) Scrie i doar antetul unui subprogram prim cu doi parametri, care prime te prin intermediul parametrului n un num r natural cu cel mult patru cifre i returneaz prin intermediului parametrului p valoarea 1 dac n este prim i 0 n caz contrar. (2p.) b) Scrie i un program C/C++ care cite te de la tastatur un num r natural n (3<n<10000) i afi eaz pe ecran, desp r ite prin cte un spa iu, primele n numerele prime, folosind apeluri utile ale subprogramului prim. (8p.) Exemplu: pentru n=4 pe ecran vor fi afi ate numerele 2 3 5 7 4. Fi ierul text bac.in con ine pe prima sa linie un num r natural n (0<n<10000), iar pe urm toarea linie n numere naturale din intervalul [1,100]. Se cere s se citesc din fi ier toate numerele i s se afi eze pe ecran, n ordine descresc toare, toate numerele care apar pe a doua linie a fi ierului i num rul de apari ii ale fiec ruia. Dac un num r apare de mai multe ori, el va fi afi at o singur dat . Fiecare pereche valoare - num r de apari ii va fi afi at pe cte o linie a ecranului, numerele fiind separate printr-un spa iu, ca n exemplu. Alege i un algoritm de rezolvare eficient din punctul de vedere al timpului de executare. Exemplu: dac fi ierul bac.in are urm torul con inut: 12 1 2 2 3 2 2 3 3 2 3 2 1 pe ecran se vor afi a, n aceast ordine, perechile: 3 4 2 6 1 2 a) Explica i n limbaj natural metoda utilizat justificnd eficien a acesteia (4-6 rnduri) (4p.) b) Scrie i programul C/C++ ce rezolv descrise la punctul a). problema enun at , corespunz tor metodei (6p.)

3.

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 079 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Problema gener rii tuturor codurilor formate din exact 4 cifre nenule, cu toate cifrele distincte dou cte dou , este similar cu generarea tuturor: (4p.) a. aranjamentelor de 9 elemente luate cte b. permut rilor elementelor unei mul imi cu 4 4 elemente d. submul imilor cu 4 elemente ale mul imii c. elementelor produsului cartezian {1,2,3,4,5,6,7,8,9} AxAxAxA unde A este o mul ime cu 9 elemente

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Pentru defini ia al turat a subprogramului f, scrie i int f(long x) { int y,z; ce valoare are f(8). Dar f(1209986)? if (x==0) return x; (6p.) else {y=x%10; z=f(x/10); if(y>z) return y; else return z; } } Scrie i defini ia complet a subprogram max, cu trei parametri, a, b, c, care prime te prin intermediul parametrilor a i b dou numere reale cu exact dou cifre la partea ntreag i exact dou zecimale fiecare. Subprogramul determin cel mai mare num r real dintre urm toarele patru valori: a, b i numerele reale ob inute din a i b prin interschimbarea p r ii ntregi cu partea frac ionar n cadrul aceluia i num r. Aceast valoare este furnizat prin intermediul parametrului real c. Exemplu: dac a=33.17 i b=15.40, c va avea valoarea 40.15 (cea mai mare valoare dintre 33.17, 15.40, 17.33 i 40.15) (10p.) Se cite te de pe prima linie a fi ierului numere.in un num r natural n (0<n<10000) i, de pe a doua linie a fi ierului, n numere naturale din intervalul [1,100] i se cere s se afi eze pe ecran, n ordine cresc toare, desp r ite prin cte un spa iu, num rul sau numerele ntregi din intervalul [1,100] care nu apar printre numerele citite. Dac pe a doua linie a fi ierului apar toate numerele din intervalul precizat, se va afi a mesajul NU LIPSESTE NICIUN NUMAR. Alege i un algoritm de rezolvare eficient din punctul de vedere al timpului de executare. Exemplu: pentru fi ierul numere.in cu urm torul con inut 12 4 2 3 1 6 5 7 8 9 11 10 100 se vor afi a valorile 12 13 99. a) Explica i n limbaj natural metoda utilizat , justificnd eficien a acesteia (4-6 rnduri). (4p.) b) Scrie i programul C/C++ ce rezolv descrise la punctul a). problema enun at , corespunz tor metodei (6p.)

3.

4.

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 080 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. O clas de 28 de elevi este la ora de educa ie fizic i profesorul dore te s formeze o echip de 4 elevi. Ordinea elevilor n cadrul echipei nu are importan . Algoritmul de generare a tuturor posibilit ilor de a forma o asfel de echip este similar cu algoritmul de generare a tuturor: (4p.) a. aranjamentelor de 28 de elemente luate b. combin rilor de 28 de elemente luate cte 4 cte 4 c. parti iilor unei mul imi cu28 de elemente produsului cartezian d. elementelor AxAxAxA, A fiind o mul ime cu 28 de elemente

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Pentru defini ia al turat a subprogramului sub, int sub(long n) {if (n!=0) ce valoare are sub(9)? Dar sub(132764)? if(n%2!=0) (6p.) return n%10+sub(n/10); else return sub(n/10); else return 0; } Fi ierul text bac.in con ine cel mult 1000 de numere naturale cu cel mult patru cifre fiecare, desp r ite prin cte un spa iu. Scrie i programul C/C++ care cite te numerele din fi ier i afi eaz pe ecran, n ordine cresc toare, acele numere din fi ier care au toate cifrele egale. Dac fi ierul nu con ine niciun astfel de num r, se va afi a pe ecran mesajul NU EXISTA. Exemplu: dac fi ierul bac.in con ine numerele: 30 44 111 7 25 5 atunci pe ecran se va afi a 5 7 44 111. (10p.) 4. a) Scrie i defini ia complet a unui subprogram divi cu doi parametri, care prime te prin intermediul parametrului n un num r natural nenul cu cel mult 6 cifre i returneaz prin intermediul parametrului d cel mai mic divizor propriu al lui n sau 0 in cazul n care n nu are niciun divizor propriu. De exemplu, pentru n=15, d va avea valoarea 3. (4p.) b) Scrie i programul C/C++ care cite te de la tastatur un num r natural nenul n (1<n<1000000) i afi eaz pe ecran cel mai mare numar natural mai mic dect n care l divide pe n. Se vor folosi apeluri utile ale subprogramului divi. Exemple: dac n=120, se afi eaz pe ecran 60, iar dac n=43, se afi eaz 1. (6p.)

3.

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 081 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Folosind cifrele {1,2,3} se genereaz , n ordinea cresc toare a valorii, toate numerele pare formate din trei cifre distincte. Astfel, se ob in n ordine, numerele: 132, 312. Folosind aceea i metod , se genereaz numerele pare formate din patru cifre distincte din mul imea {1,2,3,4}. Care va fi al 4-lea num r generat ? (4p.) a. 2134 b. 1432 c. 2314 d. 1423 Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Pentru defini ia al turat a subprogramului f, int f(int x,int y) scrie i ce valoare are f(0,0). Dar f(525,5)? { if(x==0)return 0; else (6p.) if(x%10==y) return f(x/10,y)+1; else return f(x/10,y); } 3. Scrie i n C/C++ defini ia complet a subprogramului medie care are doi parametri: - n, prin care prime te un num r natural (1 n 100) ; - v, prin care prime te un tablou unidimensional cu n elemente, numere naturale, fiecare element avnd cel mult patru cifre. Subprogramul returneaz media aritmetic a elementelor din tablou. (10p.) 4. Fi ierul text NUMERE.IN con ine, pe mai multe linii, cel mult 30000 de numere naturale nenule mai mici sau egale cu 500, desp r ite prin cte un spa iu. a) Scrie i programul C/C++ care, utiliznd un algoritm eficient din punct de vedere al timpului de executare, afi eaz pe ecran, n ordine cresc toare, toate numerele care au ap rut o singur dat din fi ierul NUMERE.IN, desp r ite prin cte un spa iu. Exemplu: dac fi ierul NUMERE.IN con ine numerele scrise al turat, se vor 2 23 34 3 afi a valorile urm toare: 3 4 5 6 34 (6p.) 8 9 9 23 6 8 9 2 b) Descrie i succint, n limbaj natural, metoda de rezolvare folosit la punctul a), 4 5 23 9 explicnd n ce const eficien a ei (3 4 rnduri). (4p.)

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 082 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Folosind cifrele {2,3,4} se genereaz , n ordinea cresc toare a valorii, toate numerele impare formate din trei cifre distincte. Astfel se ob in, n ordine, numerele: 243, 423. Folosind aceea i metod , se genereaz numerele pare formate din patru cifre distincte din mul imea {2,3,4,5}. Care va fi al 5-lea num r generat? (4p.) a. 3452 b. 3524 c. 2534 d. 3542

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Pentru defini ia al turat a subprogramului f, stabili i ce valoare are f(2). Dar f(123)? (6p.) int f(int x) { if(x==0)return 0; else if(x%2==0)return 1+f(x/10); else return 2+f(x/10); }

3.

Scrie i n C/C++ defini ia complet a subprogramului suma care are doi parametri: - n, prin care prime te un num r natural (1 n 100); - v, prin care prime te un tablou unidimensional cu n elemente, numere ntregi situate n intervalul [10,30000]. Func ia returneaz suma numerelor din tabloul v care au ultimele dou cifre identice. Exemplu: dac n=4 i v=(123, 122, 423, 555) func ia va returna 677 (=122+555). (10p.) Fi ierul text NUMERE.IN con ine, pe mai multe linii, cel mult 30000 de numere naturale nenule mai mici sau egale cu 500, numerele de pe fiecare linie fiind desp r ite prin cte un spa iu. Fi ierul con ine cel pu in dou numere distincte, fiecare avnd dou cifre. a) Scrie i programul C/C++ care cite te toate numerele din fi ierul NUMERE.IN i creeaz fi ierul text NUMERE.OUT care s con in pe prima linie cel mai mare num r de dou cifre din fi ierul NUMERE.IN, i de cte ori apare el n acest fi ier, iar pe a doua linie, cel mai mic num r de dou cifre din fi ierul NUMERE.IN i de cte ori apare el n acest fi ier. Alege i o metod de rezolvare eficient din punct de vedere al memoriei utilizate i al timpului de executare. (6p.) b) Descrie i succint, n limbaj natural, metoda de rezolvare folosit la punctul a), explicnd n ce const eficien a ei (3 4 rnduri). (4p.) Exemplu: dac fi ierul atunci fi ierul NUMERE.OUT va 88 2 2 253 34 3 NUMERE.IN are con inutul 6 88 9 2 3 avea urm torul con inut: 34 2 al turat: 4 54 34 88

4.

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 083 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Folosind cifrele {1,2,3} se genereaz , n ordinea cresc toare a valorii, toate numerele formate din exact trei cifre, n care cifrele al turate au valori consecutive. Astfel se ob in n ordine, numerele: 121, 123, 212, 232, 321 i 323. Folosind aceea i metod se genereaz numere de patru cifre din mul imea {1,2,3,4} care ndeplinesc aceea i condi ie. Care va fi al 5-lea num r generat ? (4p.) a. 2121 b. 2123 c. 3121 d. 2323 Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Pentru defini ia al turat a subprogramului f, int f(int x) { if(x==0)return 0; stabili i ce valoare are f(2). Dar f(123)? else (6p.) if(x%2==0)return 3+f(x/10); else return 4+f(x/10); } 3. Scrie i n C/C++ defini ia complet a subprogramului suma care are doi parametri: - n, prin care prime te un num r natural (1 n 100); - v, prin care prime te un tablou unidimensional cu n elemente, numere ntregi, fiecare avnd exact trei cifre. Func ia returneaz suma elementelor din tablou care au prima cifr egal cu ultima cifr . (10p.) 4. Fi ierul text NUMERE.IN con ine mai multe linii, pe fiecare linie existnd cte un ir de numere naturale nenule mai mici sau egale dect 30000, desp r ite prin cte un spa iu; fiecare linie se termin cu numarul 0 (care se consider c nu face parte din irul aflat pe linia respectiv ) i con ine cel pu in dou valori. a) Scrie i programul C/C++ care afi eaz pe ecran valoarea maxim din irul care con ine cele mai pu ine numere. n cazul n care exist mai multe iruri cu acela i num r minim de numere, se va afi a cea mai mare valoare care apare n unul dintre aceste iruri. Alege i o metod de rezolvare eficient din punct de vedere al memoriei utilizate i al timpului de executare. (6p.) b) Descrie i succint, n limbaj natural, metoda de rezolvare folosit la punctul a), explicnd n ce const eficien a ei (3 4 rnduri). (4p.) Exemplu: dac fi ierul NUMERE.IN are con inutul 2 253 34 3 0 6 88 9 3 0 al turat, atunci pe ecran se va afi a num rul 253. 4 54 88 12345 98 234 546 0

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 084 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Folosind cifrele {3,4,5} se genereaz , n ordinea cresc toare a valorii, toate numerele impare formate din trei cifre distincte. Astfel se ob in, n ordine, numerele: 345, 435, 453, 543. Folosind aceea i metod , se genereaz numerele impare formate din patru cifre distincte din mul imea {2,3,4,5}. Care va fi al 5-lea num r generat? (4p.) a. 3425 b. 2534 c. 4235 d. 3245

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Pentru defini ia al turat a subprogramului f, int f(int x) stabili i ce valoare are f(1)? Dar f(100)? { if(x==0)return 1; else (6p.) return 1+f(x-1); } Scrie i programul C/C++ care cite te de la tastatur un num r natural n (1 n 100), apoi un ir de n numere ntregi, cu cel mult 2 cifre fiecare, notat a1,a2,a3,an, apoi un al doilea ir de n numere ntregi, cu cel mult 2 cifre fiecare, notat b1,b2,b3,bn. Fiecare ir con ine att valori pare, ct i impare. Programul afi eaz pe ecran suma acelor numere impare din irul b care sunt mai mici dect suma tuturor numerelor pare din irul a. Exemplu: pentru n=4 i numerele 2,3,7,8 respectiv 44,3,1,8 se afi eaz valoarea 4 pentru c numerele 3 i 1 sunt mai mici dect suma numerelor pare din irul a, care este 10. (10p.) Se consider subprogramul CMMMC care prime te prin cei doi parametri, x i y, dou numere naturale (1 x 10000, 1 y 10000) i returneaz cel mai mic multiplu comun al lor. a) Scrie i numai antetul subprogramului CMMMC. (4p.)

3.

4.

b) Fi ierul text NUMERE.IN con ine, pe fiecare linie, cte dou numere naturale nenule mai mici sau egale dect 10000, desp r ite printr-un spa iu. Scrie i un program C/C++ care, pentru fiecare linie k din fi ierul NUMERE.IN, cite te cele dou numere de pe aceast linie i scrie n fi ierul text NUMERE.OUT , tot pe linia k, cel mai mic multiplu comun al acestora, ca n exemplu. Se vor utiliza apeluri utile ale subprogramului CMMMC. (6p.) 84 12 14 atunci fi ierul Exemplu: dac fi ierul 132 11 12 NUMERE.OUT va avea NUMERE.IN are con inutul 8 4 8 al turat: urm torul con inut:

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 085 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Folosind cifrele {1,2,3} se genereaz , n ordinea cresc toare a valorii, toate numerele impare formate din trei cifre distincte. Astfel se ob in, n ordine, numerele: 123, 213, 231, 321. Folosind aceea i metod , se genereaz numerele impare formate din patru cifre distincte din mul imea {1,2,3,4}. Care va fi al 5-lea num r generat ? (4p.) a. 2413 b. 1423 c. 2431 d. 3241 Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Pentru defini ia al turat a subprogramului f, int f(int x) scrie i ce valoare are f(51). Dar f(100)? { if(x==50)return 1; else (6p.) return 2+f(x-1); } Scrie i programul C/C++ care cite te de la tastatur un num r natural n (1 n 100), apoi un ir de n numere ntregi, cu cel mult 2 cifre fiecare, notat a1,a2,a3,an, apoi un al doilea ir de n numere ntregi, cu cel mult 2 cifre fiecare, notat b1,b2,b3,bn. Fiecare ir con ine att valori pare, ct i impare. Programul afi eaz pe ecran suma acelor numere din irul b care sunt strict mai mici dect media aritmetic a tuturor numerelor pare din irul a. Exemplu: pentru n=4 i numerele 2,3,7,8 respectiv 44,3,1,8 se afi eaz valoarea 4 pentru c numerele 3 i 1 sunt mai mici dect media aritmetic a numerelor pare din irul a, care este 5. (10p.) 4. Se consider subprogramul CMMDC care prime te prin cei doi parametri, x i y, dou numere naturale (1 x 10000, 1 y 10000) i returneaz cel mai mare divizor comun al lor. a) Scrie i defini ia complet a subprogramului CMMDC. (4p.)

3.

b) Fi ierul text NUMERE.IN con ine, pe fiecare linie, cte dou numere naturale nenule mai mici sau egale dect 10000, desp r ite printr-un spa iu, reprezentnd numitorul i num r torul cte unei frac ii. Scrie i un program C/C++ care, pentru fiecare linie k din fi ierul NUMERE.IN, cite te numitorul i num r torul frac iei de pe aceast linie i scrie n fi ierul text NUMERE.OUT , tot pe linia k, numitorul i num r torul acestei frac ii, adus la forma ireductibil , ca n exemplu. Se vor utiliza apeluri apeluri utile ale subprogramului CMMDC. (6p.) 12 14 6 7 Exemplu: dac fi ierul atunci fi ierul 11 12 11 12 NUMERE.IN are con inutul NUMERE.OUT va avea 2 2 1 1 al turat: urm torul con inut: 4 8 1 2

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 086 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. La examenul de bacalaureat, un elev prime te un test format dintr-un subiect de tip I, unul de tip II i unul de tip III. Stiind c pentru fiecare tip de subiect sunt elaborate exact 100 de variante, algoritmul de generare a tuturor posibilit ilor de a forma un test este similar cu algoritmul de generare a: (4p.) a. elementelor produsului cartezian b. aranjamentelor c. permut rilor d. submul imilor

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Se consider subprogramul f, definit al turat. Ce se afi eaz la apelul f(4);? (6p.) void f(int n) { cout<<"*"; | printf("*"); if(n>2) { f(n-1); cout<<"#"; | printf("#"); } }

3.

Scrie i defini ia complet a subprogramului numar, cu trei parametri, care prime te prin intermediul parametrului n un num r natural format din cel mult 9 cifre, iar prin intermediul parametrilor c1 i c2 cte o cifr nenul ; subprogramul retuneaz num rul ob inut prin nlocuirea n num rul primit prin parametrul n a fiec rei apari ii a cifrei c1 cu cifra c2. Dac c1 nu apare n n, subprogramul returneaz valoarea n. Exemplu: pentru n=12445, c1=4 i c2=7 valoarea returnat va fi 12775. (10p.) Fi ierul text bac.txt con ine cel pu in dou i cel mult 1000 de numere naturale distincte, dintre care cel pu in dou sunt pare. Numerele sunt separate prin cte un spa iu i fiecare dintre ele are cel mult 9 cifre. a) Scrie i un program C/C++ care determin cele mai mari dou numere pare din fi ier, utiliznd un algoritm eficient din punct de vedere al timpului de executare i al spa iului de memorie utilizat. Cele dou numere vor fi afi ate pe ecran, n ordine descresc toare, separate printr-un spa iu. Exemplu: dac fi ierul con ine numerele: 5123 8 6 12 3 se va afi a: 12 8 (6p.) b) Descrie i succint, n limbaj natural, algoritmul utilizat, justificnd eficien a acestuia. (4p.)

4.

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 087 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Trei elevi vor s nfiin eze o trup de rock format dintr-un chitarist solo, un basist i un baterist. To i trei tiu s cnte att la chitar solo, ct i la chitar bas, i se pricep cu to ii i la baterie. Algoritmul de generare a tuturor posibilit ilor de a forma trupa este similar cu algoritmul de generare a: (4p.) a. aranjamentelor b. permut rilor c. elementelor produsului cartezian d. submul imilor

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Se consider subprogramul f, definit al turat. Ce se afi eaz la apelul f(4);? (6p.) void f(int n) { if(n>0) { cout<<n; | printf( %d ,n); f(n-1); cout<<n; | printf( %d ,n); } }

3.

Scrie i defini ia complet a subprogramului reduce, cu doi parametri, care prime te prin intermediul parametrilor a i b dou numere naturale formate din cel mult 9 cifre fiecare. Func ia returneaz o valoare ob inut din num rul a prin nsumarea acelor cifre diferite de 0 ale num rului a care NU divid num rul b. Dac nu exist asemenea cifre, se va returna valoarea 0. Exemplu: pentru a=184465709 i b=18, cifrele corespunz toare cerin ei sunt 8, 4, 4, 5 i 7, deci valoarea returnat va fi 28 (28=8+4+4+5+7). Dac a=2402804 i b=8000, valoarea returnat va fi 0. (10p.) Fi ierul text bac.txt con ine un ir de cel mult 2009 numere naturale, cu cel mult nou cifre fiecare, pe mai multe rnduri, numerele de pe acela i rnd fiind separate prin cte un spa iu. a) Scrie i un program C/C++ care afi eaz pe ecran cel mai mic num r din fi ier pentru care suma cifrelor pare este egal cu suma cifrelor impare, precum i num rul de apari ii n fi ier ale acestui num r, folosind o metod eficient din punctul de vedere al timpului de executare. Cele dou valori vor fi afi ate pe o linie a ecranului, separate printr-un spa iu. Dac nu exist asemenea valori se afi eaz mesajul NU EXISTA. Exemplu: dac n fi ier avem numerele 22031 9021 22031 1021 2011 10012 1021 457008 99882 atunci pe ecran se vor afi a numerele: 1021 2. (6p.) b) Descrie i succint, n limbaj natural, algoritmul utilizat, justificnd eficien a acestuia. (4p.)

4.

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 088 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Ionel dore te s ofere cadouri membrilor familiei sale, format din cei doi p rin i i o sor . Decide s le ofere stilouri de diferite culori. La magazin exist stilouri de 5 culori diferite. Algoritmul de generare a tuturor posibilit ilor de a atribui cte un stilou fiec ruia dintre cei trei membri ai familiei, f r s se repete vreo culoare, este similar cu algoritmul de generare a (4p.) a. aranjamentelor b. elementelor produsului cartezian c. permut rilor d. submul imilor

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. Se consider subprogramul f, definit al turat. int f(int n) 2. Ce valoare are f(1)? Dar f(4)? (6p.) { if (n==0) return 1; else if (n==1) return 2; else return f(n-1)-f(n-2); } 3. Scrie i defini ia complet a subprogramului numar, cu patru parametri, care prime te prin intermediul parametrului n un num r natural format din cel mult 9 cifre, iar prin intermediul parametrilor c1 i c2 cte o cifr cu proprietatea c1<c2; subprogramul furnizeaz prin intermediul celui de al patrulea parametru, x, o valoare ob inut prin eliminarea din num rul primit prin parametrul n a fiec rei cifre cuprinse n intervalul nchis [c1, c2]. Dac toate cifrele lui n apar in acestui interval, valoarea furnizat prin x va fi 0. Exemplu: pentru n=162448, c1=4 i c2=7, valoarea furnizat prin x va fi 128. (10p.) Fi ierul text bac.txt con ine cel mult 10000 de numere naturale din intervalul nchis [0,9], dintre care cel pu in unul este prim. Numerele se afl pe mai multe rnduri, cele de pe acela i rnd fiind separate prin cte un spa iu. a) Scrie i un program C/C++ care determin i afi eaz pe ecran cel mai mare num r prim care apare n fi ier i num rul de apari ii ale acestuia, utiliznd un algoritm eficient din punct de vedere al timpului de executare i al spa iului de memorie utilizat. Programul afi eaz pe ecran cele dou valori determinate, separate printr-un spa iu. Exemplu: dac fi ierul con ine numerele: 5 8 9 1 9 5 1 1 2 2 se va afi a 5 2. (6p.) b) Descrie i succint, n limbaj natural, algoritmul utilizat, justificnd eficien a acestuia. (4p.)

4.

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 089 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. O clas format din 28 de elevi dore te s trimit la consf tuirea reprezentan ilor claselor colii o delega ie format din 3 elevi. Algoritmul de generare a tuturor posibilit ilor de a forma o delega ie este similar cu algoritmul de generare a: (4p.) a. permut rilor b. aranjamentelor c. combin rilor d. submul imilor

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. Se consider subprogramul f, definit al turat. long f(int n) 2. Ce valoare are f(0)? Dar f(4)? (6p.) { if (n==0) return 0; else return n*n+f(n-1); } 3. Scrie i defini ia complet a subprogramului numar, cu trei parametri, care prime te prin intermediul parametrului n un num r natural format din cel mult 9 cifre, iar prin intermediul parametrilor c1 i c2 cte o cifr nenul . Subprogramul caut prima apari ie (de la stnga spre dreapta) a cifrei c1 n n, i dac aceasta apare, o nlocuie te cu c2, iar urm toarele cifre, dac exist , sunt nlocuite cu cte o cifr 0. Subprogramul furnizeaz tot prin n num rul astfel ob inut. Dac cifra c1 nu apare n n, atunci valoarea lui n r mne nemodificat . Exemplu: pentru n=162448, c1=4 i c2=7 valoarea furnizat prin n va fi 162700. (10p.) Fi ierul text bac.txt con ine pe mai multe rnduri cel mult 50000 de numere naturale din intervalul nchis [0, 99], numerele de pe acela i rnd fiind separate prin cte un spa iu. a) Scrie i un program C/C++ care afi eaz pe ecran, n ordine descresc toare, acele numere din fi ier care sunt mai mari dect un num r natural k, citit de la tastatur , utiliznd un algoritm eficient din punct de vedere al timpului de executare. Dac un num r apare de mai multe ori, i este mai mare dect k, se va afi a o singur dat . Numerele vor fi afi ate cte 20 pe fiecare linie (cu excep ia ultimei linii care poate s con in mai pu ine valori), separate prin cte un spa iu. Exemplu: dac fi ierul con ine numerele: 15 8 99 15 1 37 1 24 2, iar pentru k se cite te valoarea 7, se vor afi a numerele 99 37 24 15 8. (6p.) b) Descrie i succint, n limbaj natural, algoritmul utilizat, justificnd eficien a acestuia. (4p.)

4.

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 090 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. La un bal mascat, magazia colii pune la dispozi ia elevilor 10 pelerine, 10 m ti i 10 p l rii divers colorate. Algoritmul de generare a tuturor posibilit ilor de a ob ine un costum format dintr-o p l rie, o masc i o pelerin este similar cu algoritmul de generare a : (4p.) a. elementelor produsului cartezian b. aranjamentelor c. permut rilor d. submul imilor

Scrie i pe foaia de examen r spunsul la urm toarea ntrebare: 2. Se consider al turat. Ce f('a');? subprogramul f, definit se afi eaz la apelul (6p.) void f(char c) { if (c != 'e') { f(c+1); cout<<c; | } }

printf( %c ,c);

3.

Func ia verif prime te prin intermediul parametrului n un num r natural format din cel mult 9 cifre, i prin intermediul parametrului a, un num r natural nenul (2 a 9). Func ia returneaz valoarea 1 dac n este un num r format din cifre apar innd intervalului nchis [0,a] i valoarea 0 n caz contrar. a) Scrie i defini ia complet a func iei verif. (4p.) b) Spunem c n poate fi o reprezentare n baza b (1<b 10), dac toate cifrele lui n sunt strict mai mici dect b. Scrie i un program care cite te de la tastatur o valoare natural n cu cel mult 9 cifre i, utiliznd apeluri ale func iei verif, afi eaz pe ecran, n ordine cresc toare, cu spa ii ntre ele, toate valorile lui b pentru care valoarea citit nu poate fi o reprezentare n baza b. (6p.) Exemplu: Pentru n=4101, se afi eaz 2 3 4. Fi ierul text bac.txt con ine cel mult 1000 de numere ntregi de cel mult 9 cifre fiecare, numerele fiind separate prin cte un spa iu; printre numerele din fi ier exist cel pu in dou numere pozitive, aflate pe pozi ii consecutive. a) Scrie i un program C/C++ care afi eaz dou numere pozitive, aflate unul dup altul n fi ier, a c ror sum este maxim , utiliznd un algoritm eficient din punct de vedere al timpului de executare i al spa iului de memorie utilizat. Dac exist mai multe solu ii, se afi eaz doar acea pereche pentru care diferen a dintre cele dou numere este maxim . Numerele vor fi afi ate pe ecran, n ordinea din fi ier, separate printr-un spa iu. Exemplu: dac fi ierul con ine numerele: -2 2 16 4 -1 25 -2 8 12 7 13 se vor afi a numerele 16 4, n aceast ordine, cu un spa iu ntre ele. (6p.) b) Descrie i succint, n limbaj natural, algoritmul utilizat, justificnd eficien a acestuia. (4p.)

4.

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 091 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Pentru a planifica n orarul unei coli, la clasa a XII-a, 4 ore de informatic n zile lucr toare diferite din s pt mn , cte o singur or pe zi, se poate utiliza un algoritm echivalent cu algoritmul de generare a: (4p.) b. aranjamentelor de 4 elemente luate cte 5 d. combin rilor de 5 elemente luate cte 4

a. permut rilor de 4 elemente c. aranjamentelor de 5 elemente luate cte 4

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. void f(int i) 2. Subprogramul recursiv al turat { if (. . .) este definit incomplet. Scrie i { printf(%d ,i); | cout<<i<< ; expresia care poate nlocui f(i/2); punctele de suspensie astfel printf(%d ,i); | cout<<i<< ; nct, n urma apelului, f(12) s } se afi eze irul de valori: } 12 6 3 1 1 3 6 12. (6p.) 3. Subprogramul par prime te prin singurul s u parametru, n, un num r natural nenul cu cel mult 8 cifre i returneaz valoarea 1 dac n con ine cel pu in o cifr par , sau returneaz valoarea 0 n caz contrar. Exemplu: pentru n=723 subprogramul va returna valoarea 1. a) Scrie i numai antetul subprogramului par. (2p.)

b) Scrie i un program C/C++ care cite te de la tastatur un num r natural nenul n cu cel mult trei cifre, apoi un ir de n numere naturale, cu cel pu in dou i cel mult 8 cifre fiecare, i afi eaz pe ecran num rul de valori din irul citit care au numai cifra unit ilor par , celelalte cifre fiind impare. Se vor utiliza apeluri utile ale subprogramului par. Exemplu: dac n=4, iar irul citit este 7354, 123864, 51731, 570 se va afi a 2 (numerele 7354 i 570 respect condi ia cerut ). (8p.) 4. Fi ierul numere.in con ine cel mult 5000 de numere reale, cte unul pe fiecare linie. Se cere s se scrie un program care s citesc toate numerele din fi ier i s afi eze pe ecran num rul de ordine al primei, respectiv al ultimei linii pe care se afl cel mai mare num r din fi ier. Cele dou numere vor fi separate printr-un spa iu. Alege i o metod de rezolvare eficient din punct de vedere al spa iului de memorare i al timpului de executare. Exemplu: dac fi ierul are con inutul al turat, pe ecran se vor afi a numerele 2 6. 3.5 7 a) Descrie i succint, n limbaj natural, metoda de rezolvare aleas , explicnd n ce -4 const eficien a ei. (4p.) 7 b) Scrie i programul C/C++ corespunz tor metodei descrise. (6p.) 2 7 6.3 5

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 092 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Avnd la dispozi ie cifrele 0, 1 i 2 se pot suma cifrelor egal cu 2. Astfel, primele 6 acela i algoritm, se genereaz numere cu cu 4. Care va fi al 7-lea num r din aceast a. 130 b. 301 genera, n ordine cresc toare, numere care au solu ii sunt 2, 11, 20, 101, 110, 200. Folosind cifrele 0, 1, 2 i 3 care au suma cifrelor egal generare? (4p.) c. 220 d. 103

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Se consider subprogramul f definit al turat. void f(int x) { Ce se va afi a n urma apelului f(14);? if (x<=10) (6p.) cout<<0<< ;|printf("%d ",0); else {f(x-2); cout<<x<< ;|printf("%d ",x); } } 3. Subprogramul ordonare prime te prin parametrul x un tablou unidimensional cu cel mult 100 de elemente numere reale, iar prin parametrul n un num r ntreg ce reprezint num rul efectiv de elemente ale tabloului x. Subprogramul ordoneaz cresc tor elementele tabloului i furnizeaz , tot prin intermediul parametrului x, tabloul ordonat. a) Scrie i numai antetul acestui subprogram. (4p.) b) Scrie i un program C/C++ care cite te de la tastatur dou numere naturale, n i m (1n100 i mn), i apoi un ir de n numere reale distincte. Folosind apeluri utile ale subprogramului ordonare, programul afi eaz pe prima linie a ecranului, cele mai mari m elemente din irul citit (n ordine cresc toare a valorilor lor), iar pe a doua linie de ecran, cele mai mici m elemente din ir (n ordine descresc toare a valorilor lor). Numerele afi ate pe aceea i linie vor fi separate prin cte un spa iu. (10p.) Exemplu : dac n=9, m=3, iar irul este (14.2, 60, -7.5, -22, 33.8, 80, 4, 10, 3) se va afi a pe ecran: 33.8 60 80 3 -7.5 -22 4. Scrie i un program C/C++ care creeaz fi ierul text SIR.TXT i scrie n el toate irurile formate din dou caractere distincte, litere mari ale alfabetului englez, astfel nct niciun ir s nu fie format din dou vocale al turate. Fiecare ir va fi scris pe cte o linie a fi ierului. (6p.)

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 093 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. n cte dintre permut rile elementelor mul imii {I,N,F,O} vocala I apare pe prima pozi ie? (4p.) b. 24 c. 6 d. 12 a. 1 Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. void f (int x,int y) 2. Subprogramul f este definit al turat. Ce se afi eaz ca urmare a apelului { if (x<y){x=x+1;f(x,y); f(1,3); ? (6p.) y=y-1;f(x,y); } else cout<<x<<y; printf(%d%d,x,y); } 3. Scrie i programul C/C++ care cite te de la tastatur un num r natural n (1 n 99), impar, i construie te n memorie un tablou unidimensional A=(A1, A2,, An) cu elementele mul imii {1,2,...,n} astfel nct elementele de pe pozi ii impare formeaz irul cresc tor 1,2,...,[(n+1)/2], iar elementele de pe pozi ii pare irul descresc tor n,n-1,..., [(n+1)/2]+1. Exemplu: pentru n=11 se va construi tabloul A : Programul va crea un fi ier text TABLOU.TXT. Elementele tabloului se vor scrie, n ordine, pe prima linie a fi ierului, cu cte un spa iu ntre ele. (10p.) 4. a) Scrie i defini ia complet a subprogramului dcm, cu doi parametri, care: - prime te prin parametrii a i b dou valori naturale din intervalul [1,30000] - returneaz o valoare natural reprezentnd cel mai mare num r care este att divizor al lui a ct i divizor al lui b. Exemplu: dac a=100 i b=120, subprogramul returneaz valoarea 20. (6p.) b) Scrie i un program C/C++ care cite te de la tastatur dou numere naturale a i b, numere din intervalul [1,30000] i determin , folosind apeluri utile ale subprogramului dcm, cel mai mare num r care este divizor al fiec ruia dintre numerele a i b i are proprietatea c este un produs de dou sau mai multe numere prime distincte. Programul afi eaz pe ecran num rul cu proprietatea cerut , iar dac nu exist un astfel de num r, afi eaz mesajul nu exista. Exemplu: dac a=60 i b=72, atunci se afi eaz 6 iar dac a=100 i b=75, atunci se afi eaz nu exista. (4p.)

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 094 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Un elev realizeaz un program care cite te o valoare natural pentru o variabil n i apoi afi eaz n fi ierul permut.txt, pe prima linie, valoarea lui n, apoi toate permut rile mul imii {1,2,...,n}, cte o permutare pe cte o linie a fi ierului. Rulnd programul pentru n=3, fi ierul va con ine cele 7 linii al turate. Dac va rula din nou programul pentru n=4, ce va con ine a 8-a linie din fi ier? (4p.) b. 2143 c. 3421 d. 3412 3 3 3 2 2 1 1 2 1 3 1 3 2 1 2 1 3 2 3

a. 2134

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Func ia recursiv f este astfel definit nct f(1)=8, iar f(n+1)=2*f(n)-4 pentru orice n natural nenul. a) Ce valoare are f(5) ? (3p.) b) Care este cea mai mare valoare pe care o poate lua x astfel nct f(x) < 1000 ? (3p.) 3. Scrie i defini ia complet a func iei f, care prime te prin intermediul parametrului n un num r natural nenul (2 n 200), iar prin intermediul parametrului a un tablou unidimensional care con ine n valori ntregi, fiecare dintre aceste valori ntregi avnd cel mult patru cifre. Func ia returneaz valoarea 1 dac elementele tabloului formeaz un ir cresc tor, valoarea 2 dac elementele tabloului formeaz un ir descresc tor, valoarea 0 dac elementele tabloului formeaz un ir constant i valoarea -1 n rest. (10p.) Fi ierul text num r.txt con ine pe prima linie o valoare natural n cu exact 9 cifre nenule distincte. Scrie i un program eficient din punctul de vedere al timpului de executare care cite te din fi ier num rul n i afi eaz pe ecran cea mai mic valoare m format din exact acelea i cifre ca i n, astfel nct m>n. n cazul n care nu exist o astfel de valoare, programul va afi a pe ecran mesajul Nu exista. Exemplu: Dac fi ierul num r.txt con ine num rul 257869431, se va afi a pe ecran num rul 257891346. a) Descrie i succint, n limbaj natural, metoda de rezolvare folosit , explicnd n ce const eficien a ei (3 4 rnduri). (4p.) b) Scrie i un program C/C++ care rezolv problema conform metodei descrise. (6p.)

4.

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 095 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Un program cite te o valoare natural nenul pentru n i apoi genereaz i afi eaz , n ordine cresc toare lexicografic, toate combina iile formate din n cifre care apar in mul imii {0,1}. Astfel, pentru n=2, combina iile sunt afi ate n urm toarea ordine: 00, 01, 10, 11. Dac se ruleaz acest program i se cite te pentru n valoarea 9, imediat dup combina ia 011011011 va fi afi at combina ia: (4p.) 011100100 011011100 011011011 011100000 a. b. c. d.

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. int f(int n) 2. Func ia f are defini ia al turat . Scrie i cinci valori { de apel pe care le poate avea n astfel nct, if (n<=9) return 0; pentru cele 5 apeluri corespunz toare acestor if (n%5==0) return 0; valori, s se ob in 5 valori ale func iei, disticte return 1+f(n-3); dou cte dou . (6p.) } 3. Func ia f prime te prin intermediul parametrului n un num r natural nenul (2 n 200), iar prin intermediul parametrului a un tablou unidimensional care con ine n valori ntregi nenule (fiecare dintre aceste valori ntregi avnd cel mult patru cifre). Func ia returneaz valoarea -1 dac num rul de valori negative din tabloul a este strict mai mare dect num rul de valori pozitive din tablou, valoarea 0 dac num rul de valori negative din a este egal cu num rul de valori pozitive din tablou i valoarea 1 dac num rul de valori pozitive din tabloul a este strict mai mare dect num rul de valori negative din a. Scrie i defini ia complet a func iei f. (10p.) a) Scrie i un program C/C++ care cite te de la tastatur un num r natural nenul, S, avnd maximum 9 cifre, i printr-o metod eficient din punct de vedere al timpului de executare, determin i scrie n fi ierul rez.dat trei valori naturale a c ror sum este egal cu S, i al c ror produs este maxim. Cele trei valori vor fi scrise n ordine cresc toare pe prima linie a fi ierului rez.dat, separate prin cte un spa iu. Exemplu: dac se cite te valoarea 5, fi ierul rez.dat va avea o linie cu con inutul 1 2 2. (6p.) b) Descrie i succint, n limbaj natural, metoda de rezolvare folosit , explicnd n ce const eficien a ei (3 4 rnduri). (4p.)

4.

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 096 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Un program cite te o valoare natural nenul pentru n i apoi genereaz i afi eaz , n ordine descresc toare lexicografic, toate combina iile de n cifre care apar in mul imii {0,1}. Astfel, pentru n=2, combina iile sunt afi ate n urm toarea ordine: 11, 10, 01, 00. Dac se ruleaz acest program i se cite te pentru n valoarea 8, imediat dup combina ia 10101000 va fi afi at combina ia: (4p.) 01010111 10100111 10101001 10100100 a. b. c. d.

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. int f(int n) 2. Func ia f are defini ia al turat . Scrie i 4 valori de {if (n<=9) return 0; apel pe care le poate avea n astfel nct, pentru if (n%4==0) return 0; cele 4 apeluri, corespunz toare acestor valori, s return 1+f(n-3); se ob in 4 valori, distincte dou cte dou . (6p.) } 3. Func ia verif prime te prin intermediul a trei parametri, nota i a, b i c, trei valori naturale nenule, fiecare de maximum patru cifre. Func ia returneaz valoarea 1 dac cele trei valori pot constitui laturile unui triunghi i valoarea 0 n caz contrar. a) Scrie i defini ia complet a func iei verif. (5p.)

b) Scrie i un program C/C++ care cite te de la tastatur ase valori naturale nenule, fiecare de maximum patru cifre, apoi verific , utiliznd apeluri utile ale func iei verif, dac primele trei numere citite pot constitui laturile unui triunghi i dac ultimele trei numere citite pot constitui laturile unui triunghi; n caz afirmativ, programul afi eaz pe ecran mesajul congruente dac cele dou triunghiuri sunt congruente sau mesajul necongruente dac cele dou triunghiuri nu sunt congruente; dac cel pu in unul dintre cele dou triplete de valori nu pot constitui laturile unui triunghi, programul va afi a pe ecran mesajul nu. (5p.) 4. Fi ierul BAC.DAT con ine pe prima linie, separate printr-un spa iu, dou valori naturale n i m (2 n 1000, 2 m 1000), pe a doua linie n valori ntregi i pe a treia linie m valori ntregi. Valorile de pe a doua i de pe a treia linie apar n fi ier n ordine strict cresc toare, sunt separate prin cte un spa iu i au cel mult 4 cifre fiecare. Se cere afi area pe ecran a dou valori, dintre cele aflate n pozi ii consecutive pe a treia linie a fi ierului, care determin intervalul nchis n care se afl un num r maxim de valori de pe a doua linie a fi ierului. Se va utiliza o metod eficient din punct de vedere al timpului de executare i al spa iului de memorie utilizat. Se garanteaz c cel pu in un num r aflat pe a doua linie a fi ierului apar ine unuia dintre intervalele determinate de numerele de pe a treia linie a fi ierului. Exemplu: dac fi ierul BAC.DAT are con inutul 10 4 -1 1 3 4 5 6 10 15 16 117 al turat, programul va afi a: 1 9 0 1 9 20 Explica ie: cele patru numere de pe a treia linie a fi ierului determin trei intervale: [0,1], [1,9], [9,20]; n intervalul [1,9] se afl 5 valori de pe a doua linie a fi ierului, acesta fiind num rul maxim de valori aflate n unul dintre cele trei intervale. a) Descrie i succint, n limbaj natural, metoda de rezolvare folosit , explicnd n ce const eficien a ei (3 4 rnduri). (4p.) b) Scrie i un program C/C++ care s rezolve problema conform metodei descrise. (6p.)

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 097 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. int f(int x){ Subprogramul recursiv al turat este definit incomplet. if (...) Care dintre urm toarele expresii poate nlocui punctele return x%10 + x/10; de suspensie astfel nct, n urma apelului, else subprogramul f s returneze suma primelor dou cifre return f(x/10); ale num rului primit prin intermediul parametrului x? } Exemplu: n urma apelului f(2318) valoarea returnat este 5. (4p.) b. x<=99 c. x==99 d. x!=0 a. x<=100

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Se genereaz , utiliznd metoda bactracking, cuvintele cu exact 3 litere din mul imea {a,x,c,f,g}. Dac primele patru cuvinte generate sunt, n ordine, aaa, aax, aac, aaf, scrie i ultimele trei cuvinte care ncep cu litera a, n ordinea n care vor fi generate. (6p.) Tabloul unidimensional V, declarat global, memoreaz exact 50 de numere ntregi: V1, V2,...,V50. Subprogramul Calcul prime te prin intermediul parametrului k un num r natural nenul (k 50) i furnizeaz prin intermediul parametrului S suma tuturor elementelor pozitive, din tabloul V, cu indici mai mari sau egali cu k sau 0 dac toate elementele men ionate sunt negative. a) Scrie i doar antetul subprogramului Calcul. (2p.) b) Scrie i un program n limbajul C/C++ care cite te de la tastatur cele 50 de componente ntregi ale tabloului V i dou numere naturale nenule x i y (x<y 50). Programul afi eaz suma elementelor pozitive din tablou, cu indici cuprin i ntre x i y inclusiv, sau 0 dac toate elementele men ionate sunt negative, folosind apeluri utile la subprogramul Calcul. (8p.) 4. Pe prima linie a fi ierului text DATE.TXT se g se te o valoare natural k (k1000000). a) Scrie i un program C/C++ care cite te din fi ierul DATE.TXT valoarea k i afi eaz , pe ecran, toate perechile de numere naturale nenule x, y (x y) cu proprietatea c x2+y2=k. Fiecare pereche va fi afi at pe cte o linie, numerele fiind desp r ite printr-un spa iu. Alege i o metod de rezolvare eficient din punctul de vedere al timpului de executare. Exemplu: dac fi ierul DATE.TXT con ine num rul 1000000, pe ecran 280 960 se vor afi a, nu neap rat n aceast ordine, perechile al turate. (6p.) 352 936 600 800 b) Descrie i succint, n limbaj natural, metoda utilizat , justificnd eficien a acesteia (4p.)

3.

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 098 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Se consider subprogramul recursiv int Min(int x){ int c; al turat, definit incomplet. if (x==0) return ...; Cu ce valoare trebuie nlocuite punctele de else { suspensie, pentru ca func ia s returneze c=Min(x/10); cifra minim a num rului natural nenul if (c < x%10) return c; transmis prin intermediul parametrului x? else return x%10; (4p.) } } -1 1 b. c. 9 d. 0 a.

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Utiliznd metoda backtracking se genereaz toate submu imile nevide ale mul imii {3,6,2,5}. Primele ase submul imi generate sunt, n ordine: {3}, {3,6}, {3,6,2}, {3,6,2,5}, {3,6,5}, {3,2}. Care sunt, n ordinea ob inerii, ultimele trei submul imi, generate dup aceast regul ? (6p.) Scrie i n limbajul C/C++ defini ia complet a subprogramului numar, cu exact doi parametri, care prime te prin intermediul parametrului x un num r natural nenul de cel mult 2 cifre, i prin intermediul parametrului y un num r natural nenul de cel mult 9 cifre. Subprogramul returneaz cel mai mare num r natural z pentru care exist un num r natural k astfel nct z=xk i z y. Exemplu: pentru y=18 i x=2 subprogramul va returna valoarea 16(=24<18). (10p.) Pe prima linie a fi ierului text DATE.TXT se afl dou numere naturale nenule n i m (n3000, m3000), pe a doua linie un ir de n numere naturale, ordonate cresc tor, avnd fiecare cel mult 9 cifre, iar pe linia a treia un ir de m numere naturale, ordonate descresc tor, avnd fiecare cel mult 9 cifre. Numerele sunt desp r ite, n cadrul liniilor, prin cte un spa iu. a) Scrie i programul C/C++ care cite te numerele din fi ier i afi eaz , pe ecran, doar numerele pare din cele dou iruri, ordonate cresc tor. Programul nu va afi a nimic dac nu exist numere pare n cele dou iruri. Alege i o metod de rezolvare eficient ca timp de executare. Exemplu: dac fi ierul are con inutul al turat, pe ecran se 5 8 va afi a: 2 4 4 32 42 42 88 88 (6p.) 2 4 7 37 42 88 88 67 45 42 32 4 1 b) Descrie i succint, n limbaj natural, metoda utilizat , justificnd eficien a acesteia. (4p.)

3.

4.

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

Ministerul Educa iei, Cercet rii i Inov rii Centrul Na ional pentru Curriculum i Evaluare n nv mntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 099 Pentru itemul 1, scrie i pe foaia de examen litera corespunz toare r spunsului corect. 1. Se consider subprogramul recursiv al turat, S, void S(int x) { cout<<'*'; definit incomplet. if (...) { Cu ce expresie pot fi nlocuite punctele de cout<<'*'; suspensie astfel nct, n urma apelului S(2), s se S(x-1); afi eze 3 caractere * ? (4p.) } } b. x>2 c. x>=3 d. x>0 a. x>1

Scrie i pe foaia de examen r spunsul pentru fiecare dintre cerin ele urm toare. 2. Se utilizeaz metoda backtracking pentru a genera toate cuvintele formate din dou litere distincte din mu imea {w,x,z,y} astfel nct niciun cuvnt s nu nceap cu litera x i niciun cuvnt s nu con in litera w lng litera z. Cuvintele vor fi generate n ordinea wx, wy, zx, zy, yw, yx, yz. Folosind aceea i metod se genereaz toate cuvintele de dou litere distincte din mul imea {w,x,z,y,t} astfel nct niciun cuvnt s nu nceap cu litera x i niciun cuvnt s nu con in litera w lng litera z. Care sunt a treia i a patra solu ie generat ? (6p.) Subprogramul Nr are un singur parametru, k, prin intermediul c ruia prime te un num r natural de cel pu in 3 cifre i cel mult 9 cifre, cu toate cifrele nenule. Subprogramul furnizeaz tot prin intermediul parametrului k, valoarea ob inut prin eliminarea primei i ultimei cifre a num rului transmis la apel. Exemplu: dac subprogramul prime te prin intermediul parametrului k valoarea 12438, n urma apelului subprogramului Nr, k va primi valoarea 243. Scrie i, n limbajul C/C++, defini ia complet a subprogramului Nr. (10p.) Pe prima linie a fi ierului text DATE.TXT se afl un ir de cel mult 10000 de numere ntregi, avnd cel mult 4 cifre fiecare. Numerele sunt desp r ite prin cte un spa iu. a) Scrie i un program C/C++ care cite te numerele din fi ier i afi eaz pe ecran lungimea maxim a unei secven e de numere din ir, cu proprietatea c oricare dou numere din secven , aflate pe pozi ii consecutive, au parit i diferite. Pe a doua linie a ecranului, programul va afi a o secven de lungime maxim , valorile fiind desp r ite prin cte un spa iu. Dac exist mai multe secven e de lungime maxim , se va afi a una dintre ele, oricare. Alege i o metod de rezolvare eficient ca timp de executare. Exemplu: dac fi ierul con ine, n ordine, numerele 2 4 3 2 7 4 6 2 7 8 12, se va afi a: 5 4 3 2 7 4 b) Descrie i succint, n limbaj natural, metoda utilizat , justificnd eficien a acesteia. (6p.) (4p.)

3.

4.

BACALAUREAT 2009 - INFORMATIC , limbajul C/C++ Specializarea Matematic -informatic intensiv informatic

Subiectul III

S-ar putea să vă placă și