Documente Academic
Documente Profesional
Documente Cultură
Proba E. d)
Proba scrisă la INFORMATICĂ
Limbajul C/C++
Varianta 1
Filiera teoretică, profilul real, specializările: matematică-informatică
matematică-informatică intensiv informatică
Toate subiectele sunt obligatorii. Se acordă 10 puncte din oficiu.
Timpul de lucru efectiv este de 3 ore.
În rezolvările cerute, identificatorii utilizaţi trebuie să respecte precizările din enunţ (bold), iar în
lipsa unor precizări explicite, notaţiile trebuie să corespundă cu semnificaţiile asociate acestora
(eventual în formă prescurtată).
În programele cerute, datele de intrare se consideră corecte, validarea acestora nefiind necesară.
2. Se consideră programul pseudocod alăturat, în care s-a folosit notaţia [a] pentru partea
întreagă a numărului real a.
1. Care este numărul maxim de vârfuri de grad 0 pe care le poate avea un graf neorientat cu 70 de
noduri şi 32 de muchii? (4 p)
a. 60 b. 61 c. 65 d. 70
4. Scrieţi o secvenţă de program C/C++ care să realizeze interschimbarea liniei p cu linia q a unui
tablou bidimensional a cu n linii şi n coloane numerotate de la 1 la n. Dacă sunt necesare şi alte
variabile, scrieţi declarările acestora. (6 p)
5. Scrieţi un program C/C++ care citeşte de la tastatură o frază cu cel mult 200 de caractere, în
care cuvintele sunt separate prin câte un spaţiu. Programul construieşte în memorie şi afişează
pe ecran un şir care conţine doar al doilea caracter, în cazul cuvintelor alcătuite din mai multe
caractere, sau primul caracter, în cazul cuvintelor formate dintr-un singur caracter, ca în
exemplul de mai jos. (10 p)
Exemplu. Dacă se citeşte fraza:
Ana are mure dar a avut si mere
atunci pe ecran se va afişa: nruaavie
SUBIECTUL III (30 de puncte)
Pentru itemul 1, scrieţi pe foaia de examen litera corespunzătoare răspunsului corect.
1. Utilizând metoda backtracking se generează, în ordine lexicografică, toate şirurile obţinute prin
permutarea literelor din mulţimea {b,r,a,d}. Primele două şiruri obţinute sunt, în această
ordine, abdr şi abrd. Al 5-lea şir generat este: (4 p)
a. arbd b. ardb c. bdar d. bdra
4. Fişierul BAC.TXT conţine un şir de cel puţin 11 şi cel mult 1000000 de numere naturale,
despărţite prin câte un spaţiu. Fiecare număr are cel puţin 2 şi cel mult 9 cifre. Primul termen al
şirului are numărul de ordine 1, al doilea are numărul de ordine 2 etc.
Se citeşte şirul din fişier şi se cere ca, utilizând un algoritm eficient din punctul de vedere al
timpului de execuţie, să se determine şi să se afişeze pe ecran numărul de ordine al unui termen
al şirului cu proprietatea că, în fişier, este precedat de un număr maxim de valori care au cifra
zecilor egală cu a sa. Dacă sunt mai mulţi termeni cu această proprietate, se afişează doar
numărul de ordine al unuia dintre ei.
Exemplu.
Dacă fişierul BAC.TXT conţine numerele 12 36 265 18 139 19 32 34 112 14 68,
pe ecran se afişează 10 (numărul de ordine al termenului 14).
a. Descrieţi în limbaj natural algoritmul utilizat, justificând eficienţa acestuia. (4 p)
b. Scrieţi programul C/C++ corespunzător algoritmului descris. (6 p)