Documente Academic
Documente Profesional
Documente Cultură
Info Bac - Var 9
Info Bac - Var 9
1. Se dau variabilele a şi b de tip întreg, a memorând valoarea 4, iar b valoarea 2. Care dintre expresiile Pascal|C/C++ de mai jos are
valoarea FALSE|0? (4p.)
b) Scrieţi câte numere naturale formate din exact 3 cifre pot fi citite pentru variabila n astfel încat în urma executării algoritmului pentru
fiecare dintre valorile citite se va afişa valoarea 4. (4p.)
c) Scrieţi în pseudocod un algoritm echivalent cu cel dat care să conţină, în locul structurii cât timp...execută, o structură
repetitivă de alt tip. (6p.)
1. Se consideră un arbore cu 10 noduri, numerotate de la 1 la 10, şi cu vectorul "de taţi" următor: (0,1,1,1,3,3,3,4,7,7). Fii nodului 3
sunt: (4p.)
2. Se consideră declarările următoare în care variabila x memorează informaţiile referitoare la nume, prenume si la cele 2 note ale
unui elev. Care dintre instrucţiuni calculează în variabila reală med, media aritmetică a notelor elevului ale cărui informaţii sunt
memorate in variabila x? (4p.)
c. x.med:=(x.nota1+x.nota2)/2; x.med=(x.nota1+x.nota2)/2.0;
4. În secvenţa următoare, variabilele i şi j sunt de tip integer|int, iar variabila A memorează o matrice cu 4 linii şi 4 coloane
(numerotate de la 1 la 4) cu elemente de tip integer|int.
Care este suma elementelor de pe diagonala principală a matricei A la finalul executării secvenţei? (6p.)
5. Scrieţi un program care citeşte de la tastatură un număr natural n (n<100) si apoi n cuvinte, câte unul pe linie. Cuvintele sunt
formate fiecare din minimum două litere şi maximum 20, doar litere mici ale alfabetului englez. Programul va afişa pe ecran
numărul de cuvinte care rimează cu primul cuvânt citit. Spunem că două cuvinte rimează dacă au ultimele două caractere identice.
Exemplu. Pentru cuvintele:
care
masa
mare
casa
test
lucrare
se va afişa: 2 deoarece cuvântul care rimează cu cuvintele mare si lucrare. (10p.)
1. La generarea numerelor formate cu n cifre cu elementele mulţimii {0,4,7} se utilizează un algoritm backtracking care, pentru n=2,
generează, în ordine, numerele 40, 44, 47, 70, 74, 77. Dacă n=4 şi se utilizează acelaşi algoritm, care este numărul generat
imediat după numărul 4007? (4p.)
4. Fişierul text bac.in conţine pe prima linie două numere naturale x şi y , x<y (formate din cel mult 9 cifre fiecare), separate printr-un
spaţiu.
a) Scrieţi un program care citeşte numerele x şi y şi apoi, utilizând un algoritm eficient din punct de vedere al timpului de executare şi al
spaţiului de memorie utilizat, determină şi afişează pe ecran câte dintre numerele din intervalul [x,y] au proprietatea că atât ele cât si
răsturnatele lor sunt pătrate perfecte. (8p.)
Exemplu: dacă fişierul bac.in are conţinutul: 5 1000
atunci, pe ecran se va afişa numărul 9 reprezentând numărul de valori din intervalul [5,1000] care au proprietatea cerută şi anume: 9,
121, 144, 169, 441, 484, 676, 900, 961.
b) Descrieţi în limbaj natural metoda utilizată şi explicaţi în ce constă eficienţa ei. (2p.)
2. a) Se compară succesiv cifrele lui n cu valoarea variabilei max iniţializată la început cu -1. Pentru a avea acces la toate cifrele lui n, se
incepe compararea cu cifra unitaţilor şi apoi se elimină acestă cifră repetând procedeul pănă când n devine 0. Variabila max va
memora cea mai mare cifră a numărului n. Pentru precizarea valorii 5 se acordă 6p.
b) Pentru variabila n poate fi citit orice număr natural de trei cifre care are prima cifră diferită de 0. Sunt 4 valori posibile pentru prima
cifră, 5 valori posibile pentru a doua cifră şi 5 valori posibile pentru a treia cifră. În total sunt 1x5x5+4x1x5+4x5x1=65 numere care
pot fi citite pentru variabila n. Pentru precizarea valorii 65 se acordă 4p.
Pentru alegerea unei structuri repetitive se acordă 2p., pentru testarea condiţiei de continuare sau oprire se acordă 2p, iar pentru
scrierea integrală a restului algoritmului se mai acordă 2p. - în total 6p.
d) Pentru instrucţiunile corecte de declarare a variabilelor, de citire a datelor, de afişare a rezultatului şi de decizie se acordă câte 1p.,
pentru instrucţiunea repetitivă se acordă 3p., iar pentru celelalte atribuiri se acordă 2p. Pentru structura corectă a programului se mai
acordă 1p., în total 10p.
1. Din vectorul de referinţe ascendente deducem că rădăcina arborelui este nodul 1 (tata[1]=0). Observăm că nodurile 5,6,7 sunt fii
nodului 3.
5. Pentru rezolvarea acestei probleme ca soluţie se propune scrierea unei funcţii care primeşte două şiruri ca parametri şi testează dacă
acestea rimează. Apoi ar trebui să numărăm pentru primul cuvânt cu ce cuvinte din şir rimează (mai exact cu câte cuvinte care sunt după el
în şir rimează).
Se pot utiliza funcţiile predefinite pentru şiruri de caractere specifice limbajului.
Pentru declararea corectă a variabilelor se acordă 2p. Pentru citirea şirului se acordă 2p. Pentru numărarea apariţiilor sufixelor de două litere
identice cu primul sufix se acordă 2p. Pentru afișarea numărului de cuvinte cu proprietatea cerută se acordă 2p.
Pentru corectitudinea globală a programului se acordă 2p - în total 10p.
b) Cea mai mare valoare de 5 cifre pe care o poate avea o variabilă x, astfel încât pentru apelul f(x) să se obţină o valoare de 5 cifre
identice este 99999.
Pentru răspunsul 99999 se acordă 3p.
Pentru antet corect se acordă 2p. Pentru condiţia divizibilităţii din tabloul a se acordă 2p. Pentru folosirea corectă a structurii while se
dau 2p, iar pentru determinarea poziției se acordă 2p. Pentru corectitudinea globală a subprogramului 2p. - în total 10p.
4. b) Algoritmul de rezolvare propus parcurge toate numerele de la radical din x până la radical din y, apoi construiește răsturnatul
fiecărui pătrat perfect și verifică dacă și răsturnatul este pătrat perfect.
Eficiența algoritmului, ca timp de executare, constă în faptul că parcurgem o singură dată șirul de numere. Ca spațiu de memorie,
soluția propusă este eficientă, deoarece utilizează doar variabile simple, fără folosirea unor structuri suplimentare de date.
Pentru o descriere coerentă a metodei se acordă 1p., iar pentru justificarea eficienței, încă 1p. - în total 2p.
Se acordă 1p. pentru operaţiile cu fişiere (declarare, nume corect şi deschidere pentru citire), încă 1p. pentru citirea tuturor numerelor
din fişier, 1p. pentru un algoritm principial corect, încă 1p. pentru determinarea valorii cerute, 1p. pentru afişarea ei, 1p. pentru
corectitudinea formală (declararea variabilelor, structura programului, sintaxa instrucţiunilor, etc.).
Se acordă 1p. pentru alegerea unui algoritm eficient ca timp de executare şi 1p. pentru utilizarea eficientă a memoriei. - în total 8p.