Sunteți pe pagina 1din 1

Ministerul Educaiei, Cercetrii i Inovrii Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

Subiectul III (30 de puncte) - Varianta 096 Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect. 1. Un program citete o valoare natural nenul pentru n i apoi genereaz i afieaz, n ordine descresctoare lexicografic, toate combinaiile de n cifre care aparin mulimii {0,1}. Astfel, pentru n=2, combinaiile sunt afiate n urmtoarea ordine: 11, 10, 01, 00. Dac se ruleaz acest program i se citete pentru n valoarea 8, imediat dup combinaia 10101000 va fi afiat combinaia: (4p.) a. 01010111 b. 10100111 c. 10101001 d. 10100100

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare. 2. Funcia f are definiia alturat. Scriei 4 valori de int f(int n) apel pe care le poate avea n astfel nct, pentru {if (n<=9) return 0; if (n%4==0) return 0; cele 4 apeluri, corespunztoare acestor valori, s return 1+f(n-3); se obin 4 valori, distincte dou cte dou. (6p.) } 3. Funcia verif primete prin intermediul a trei parametri, notai a, b i c, trei valori naturale nenule, fiecare de maximum patru cifre. Funcia returneaz valoarea 1 dac cele trei valori pot constitui laturile unui triunghi i valoarea 0 n caz contrar. a) Scriei definiia complet a funciei verif. (5p.) b) Scriei un program C/C++ care citete de la tastatur ase valori naturale nenule, fiecare de maximum patru cifre, apoi verific, utiliznd apeluri utile ale funciei 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 afieaz pe ecran mesajul congruente dac cele dou triunghiuri sunt congruente sau mesajul necongruente dac cele dou triunghiuri nu sunt congruente; dac cel puin unul dintre cele dou triplete de valori nu pot constitui laturile unui triunghi, programul va afia pe ecran mesajul nu. (5p.) 4. Fiierul text BAC.DAT conine pe prima linie, separate printr-un spaiu, dou valori naturale n i m (2n1000, 2m1000), pe a doua linie n valori ntregi, apoi pe urmtoarele m linii cte dou valori, fiecare dintre aceste perechi determinnd un interval nchis (prin interval nchis determinat de dou valori a i b se nelege intervalul [a,b], dac ab sau intervalul [b,a], dac b<a). Valorile de pe a doua i de pe urmtoarele m linii sunt separate ntre ele prin cte un spaiu i au cel mult 4 cifre fiecare. Se cere determinarea i afiarea pe ecran a numrului de intervale, dintre cele citite din fiier, care conin toate valorile aflate pe a doua linie a fiierului. Se va utiliza o metod eficient din punct de vedere al timpului de executare i al memoriei utilizate. Exemplu: dac fiierul BAC.DAT are coninutul 10 4 8 3 -11 17 -8 3 14 5 0 -2 alturat, programul va afia: 2 Explicaie: din cele patru intervale date pe liniile 3, 4, 5 -10 100 i 6, numai dou conin toate valorile de pe a doua -20 50 15 -80 linie a fiierului i anume [-20,50] i [-11,20]. 20 -11 a) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const eficiena ei (3 4 rnduri). (4p.) b) Scriei un program C/C++ care s rezolve problema conform metodei descrise. (6p.)

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

Subiectul III