Documente Academic
Documente Profesional
Documente Cultură
Examenul de bacalaureat 2010 Proba E-d) Proba scris la INFORMATIC Limbajul C/C++ Specializarea matematic informatic Varianta 10
Toate subiectele (I, II i III) sunt obligatorii. Se acord 10 puncte din oficiu. Timpul efectiv de lucru este de 3 ore. n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun (bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile asociate acestora (eventual n form prescurtat).
SUBIECTUL I
1. a. c.
(30 de puncte)
Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect. Indicai care dintre expresiile C/C++ de mai jos are valoarea 1 dac i numai dac numrul natural memorat n variabila ntreag n este divizibil cu 2 i cu 7. (4p.) !( (n%2==1) || (n%7!=0) ) b. (n%2==0) && (n%7!=0) (n%2==0) || !(n%7==0) d. (n%7==2) && (n%2==7) citete n (numr natural nenul) m 0 repet c n%10 n [n/10] dac c>5 atunci c [c/2] m m*10+c pn cnd n=0 scrie m
2. Se consider algoritmul alturat descris n pseudocod: S-a notat cu x%y restul mpririi numrului natural x la numrul natural nenul y i cu [z] partea ntreag a numrului real z. a) b) Scriei numrul afiat dac pentru variabila n se citete valoarea 64598. (6p.) Scriei toate numerele de exact trei cifre care pot fi citite pentru variabila n astfel nct, pentru fiecare dintre acestea, numrul afiat n urma executrii algoritmului s fie 24. (4p.)
c) d)
Scriei n pseudocod un algoritm, echivalent cu cel dat, n care s se nlocuiasc structura repet...pn cnd cu o structur repetitiv de alt tip. (6p.) Scriei programul C/C++ corespunztor algoritmului dat. (10p.)
SUBIECTUL al II-lea
(30 de puncte)
Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera corespunztoare rspunsului corect. 1. Se consider declararea alturat, n care variabila struct cerc { float x, y; FIG memoreaz coordonatele, n planul xOy, ale float raza; centrului unui cerc, precum i lungimea razei acestuia. } FIG; O expresie C/C++ care are valoarea 1 dac i numai dac centrul cercului se afl pe prima bisectoare a sistemului de coordonate al planului xOy este: (4p.) centru(x)==centru(y) b. FIG.cerc.x==FIG.cerc.y FIG(x)==FIG(y) d. FIG.x==FIG.y O matrice de adiacen prin care poate fi reprezentat graful orientat cu 3 vrfuri, reprezentat n figura alturat, este: (4p.)
a. c. 2.
a.
0 1 0 0 0 1 0 0 0
b.
0 0 1 0 0 1 0 0 0
c.
0 0 0 0 0 1 0 0 1
d.
0 1 0 1 0 1 0 1 0
Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare. 3. n secvena de instruciuni de mai jos, variabilele i i j sunt de tip ntreg i se consider c variabila A memoreaz elementele, iniial nule, ale unui tablou bidimensional, cu 5 linii i 5 coloane, numerotate de la 0 la 4. Fr a utiliza i alte variabile dect cele menionate mai sus, scriei o instruciune care poate nlocui punctele de suspensie astfel nct, n urma executrii secvenei, tabloul memorat n variabila A s aib elementele din figura de mai jos. for(i=0;i<5;i++) for(j=0;j<5;j++) ....... 1 2 3 4 5 3 4 5 6 7 5 6 7 8 9 7 8 9 10 11 9 10 11 12 13
(6p.)
4.
Se consider arborele cu rdcin, avnd 10 noduri, numerotate de la 1 la 10, cu vectorul de tai t=(3,3,8,0,8,9,9,4,4,9). Enumerai toate nodurile arborelui care au exact doi fii. (6p.) Se consider un text cu cel mult 100 de caractere, format din cuvinte i numere, separate prin unul sau mai multe spaii. Cuvintele sunt formate numai din litere ale alfabetului englez. Toate numerele sunt reale, pozitive i sunt formate numai din parte ntreag sau din parte ntreag i parte fracionar, separate prin punctul zecimal (.). Scriei un program C/C++ care citete de la tastatur textul, pe care l transform, eliminnd din componena sa toate numerele care au parte fracionar. Programul afieaz apoi pe ecran textul obinut. Exemplu: dac textul citit este Reprezentat cu 4 zecimale PI este 3.1415 si e este 2.7182 se va afia pe ecran textul: Reprezentat cu 4 zecimale PI este si e este (10p.)
5.
SUBIECTUL al III-lea
1. Se consider subprogramul p, definit alturat. Valoarea lui p(210, 49) este: 1 b. 2 (4p.) int p(int m, int n) { if(n==0) return 1; return 1+p(n, m%n); } c. 3 d.
(30 de puncte)
a.
Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare. 2. Avnd la dispoziie cinci flori diferite, lalea, narcis, mac, frezie, garoaf, se utilizeaz metoda backtracking pentru a obine toate posibilitile de a forma un aranjament floral, tiind c se folosesc toate cele cinci flori i conteaz ordinea de aezare a acestora. Primele patru soluii obinute sunt, n aceast ordine: (lalea, narcis, mac, frezie, garoaf), (lalea, narcis, mac, garoaf, frezie), (lalea, narcis, frezie, mac, garoaf), (lalea, narcis, frezie, garoaf, mac). Scriei ultimele dou soluii generate, n ordinea obinerii lor. (6p.) Subprogramul tablou are trei parametri: n i k, prin care primete cte un numr natural (3n20, 2k10); a, prin care furnizeaz un tablou unidimensional care memoreaz un ir cresctor de nk termeni, din mulimea primelor n numere naturale nenule, fiecare astfel de numr fiind n ir de exact k ori. Scriei n limbajul C/C++ definiia complet a subprogramului. Exemplu: dac n=4, k=3 atunci, dup apel, a=(1,1,1,2,2,2,3,3,3,4,4,4). (10p.) Fiierul BAC.TXT conine, n ordine cresctoare, cel puin dou i cel mult 10000 de numere naturale. Numerele sunt separate prin cte un spaiu i au cel mult 9 cifre fiecare. Cel puin un numr din fiier este par. a) Scriei un program C/C++ care citete toate numerele din fiier i, printr-un algoritm eficient din punct de vedere al timpului de executare i al memoriei utilizate, determin i afieaz pe ecran, n ordine strict cresctoare, separate prin cte un spaiu, toate numerele pare care apar n fiier. Fiecare numr se va afia o singur dat. (6p.) Exemplu: dac fiierul are coninutul de mai jos 1 1 2 2 2 7 10 10 10 10 24 pe ecran se afieaz, n aceast ordine, numerele 2 10 24. b) Descriei n limbaj natural (3-4 rnduri) algoritmul utilizat la punctul a) i justificai eficiena acestuia. (4p.)
3.
4.