Sunteți pe pagina 1din 1

Ministerul Educaiei, Cercetrii i Tineretului

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.
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.)
01010111
10100111
01010100
10100100
b.
c.
d.
a.

1.

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.


int f(int n)
2.
Funcia f are definiia alturat. Scriei 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, corespunztoare acestor valori, s
return 1+f(n-3);
se obin 4 valori, disticte 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 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 i pe a treia linie m valori ntregi.
Valorile de pe a doua i de pe a treia linie apar n fiier n ordine strict cresctoare, sunt
separate prin cte un spaiu i au cel mult 4 cifre fiecare.
Se cere afiarea pe ecran a dou valori, dintre cele aflate n poziii consecutive pe a treia
linie a fiierului, care determin intervalul nchis n care se afl un numr maxim de valori de
pe a doua linie a fiierului. Se va utiliza o metod eficient din punct de vedere al timpului de
executare i al spaiului de memorie utilizat. Se garanteaz c cel puin un numr aflat pe a
doua linie a fiierului aparine unuia dintre intervalele determinate de numerele de pe a treia
linie a fiierului.
Exemplu: dac fiierul BAC.DAT are coninutul 10 4
-1 1 3 4 5 6 10 15 16 117
alturat, programul va afia: 1 9
0 1 9 20
Explicaie: cele patru numere de pe a treia linie a fiierului determin trei intervale:
[0,1], [1,9], [9,20]; n intervalul [1,9] se afl 5 valori de pe a doua linie a fiierului,
acesta fiind numrul maxim de valori aflate n unul dintre cele trei intervale.
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.

BACALAUREAT 2008 - INFORMATIC, limbajul C/C++


Specializarea Matematic-informatic intensiv informatic

(6p.)

Subiectul III