Sunteți pe pagina 1din 2

EFICIENTA BAC

1.Subprogramul cifra primete prin parametrul x un numr real nenul pozitiv i furnizeaz prin parametrul y valoarea cifrei unitilor prii
ntregi a lui x.
Exemplu: dac x=34.567, dup apel y=4.
a) Scriei definiia complet a subprogramului cifra. (10p.)
b) Fiierul text medii.txt conine cel mult 600 de linii. Pe fiecare linie se afl, separate printr-un spaiu, dou numere reale, cu cel mult dou zecimale,
din intervalul [1,10], care reprezint media pe semestrul 1 respectiv media pe semestrul al 2-lea, ale cte unui elev. n situaiile statistice pe care coala le
realizeaz, fiecare medie este ncadrat ntr-una dintre urmtoarele categorii de medii: [3,3.99], [4,4.99], [5,5.99], [6,6.99], [7,7.99], [8,8.99], [9,10].
Scriei un program C/C++ care citete datele din fiier i afieaz pe ecran numrul elevilor care au media din semestrul al 2-lea n categoria imediat
urmtoare categoriei creia i aparine media din semestrul 1. Ordinea categoriilor este cea din enumerarea de mai sus. n program se vor folosi apeluri
utile ale subprogramului cifra. Se va utiliza un algoritm eficient din punctul de vedere al memoriei utilizate.
Exemplu: dac fiierul medii.txt conine:
9.45 7.90
6.34 7.60
8.75 9.90
6.34 9.90 (6p.)
pe ecran se afieaz: 2
c) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const eficiena ei (3 4 rnduri). (4p.)
2. a) Fiierul date.in conine un ir de cel mult 10000 numere naturale (printre care cel puin un numr par i cel puin un numr impar), cu cel
mult 2 cifre fiecare, separate prin cte un spaiu. Scriei un program C/C++ care citete numerele din fiierul date.in i scrie n fiierul text date.out
valorile distincte citite, separate prin cte un spaiu, respectndu-se regula: pe prima linie vor fi scrise numerele impare n ordine cresctoare, iar pe linia
a doua numerele pare, n ordine descresctoare. Alegei o metod eficient din punctul de vedere
al timpului de executare. (6p.)
Exemplu: dac pe prima linie a fiierului date.in se afl numerele:
75 12 3 3 18 75 1 3
atunci fiierul date.out va conine:
1 3 75
18 12
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const eficiena ei (3 4 rnduri). (4p.)
3. Subprogramul verif primete prin singurul su parametru, x, un numr natural nenul cu cel mult 9 cifre i returneaz valoarea 1 dac
numrul conine cel puin o secven de 3 cifre impare alturate i 0 n caz contrar.
Exemplu: dac x=7325972 se va returna valoarea 1.
a) Scriei definiia complet a subprogramului verif. (10p.)
b) Fiierul text date.txt conine pe prima linie un numr natural nenul n cu cel mult 4 cifre i pe fiecare dintre urmtoarele n linii cte un numr naturale,
cu exact 6 cifre. Scriei un program C/C++ care citete numerele din fiierul date.txt i le afieaz pe ecran, separate prin cte un spaiu, numai pe acelea
care au primele trei cifre impare. Se vor utiliza apeluri utile ale subprogramului verif. Dac nu exist niciun numr cu aceast proprietate, se va afia pe
ecran mesajul nu. Alegei o metod eficient din punctul de vedere al memoriei utilizate.
De exemplu: dac fiierul date.txt conine numerele alturate, pe ecran se afieaz:
133579 973314 (6p.)
3
133579
345796
973314
c) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const eficiena ei (3 4 rnduri). (4p.)
4. Fiierul text date.in conine pe prima linie , separate prin cte un spaiu, cel mult 1000 de numere naturale, fiecare dintre ele avnd
maximum 9 cifre.
a) Scriei un program C/C++ care citete numerele din fiierul date.txt i determin cea mai lung secven ordonat strict descresctor, format din
valori citite consecutiv din fiier. Numerele din secvena gsit vor fi afiate pe ecran, pe o linie, separate prin cte un spaiu. Dac sunt mai multe
secvene care respect condiia impus, se va afia doar prima dintre acestea. Alegei o metod de rezolvare eficient din punctul de vedere al timpului de
executare.
Exemplu: dac fiierul date.in conine
5 2 9 4 3 6 3 2 1 0 8 (6p.)
pe ecran se afieaz: 6 3 2 1 0
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const eficiena ei (3 4 rnduri). ( 4p.)
5. Subprogram sfx primete prin singurul su parametru, x, un numr natural din intervalul [100,2000000000] i returneaz valoarea 1 dac
ultimele trei cifre ale numrului sunt n ordine strict descresctoare sau valoarea 0 n caz contrar.
Exemplu: dac x=24973 se va returna valoarea 1.
a) Scriei definiia complet a subprogramului sfx. (10p.)
b) Fiierul text date.in conine cel mult 10000 de numere naturale de exact 6 cifre fiecare, separate prin cte un spaiu. Scriei un program C/C++ care
citete toate numerele din fiier, determin i afieaz pe ecran cte dintre aceste numere au toate cifrele n ordine strict descresctoare. Programul va
folosi apeluri utile ale subprogramului sfx. Se va utiliza un algoritm eficient din punctul de vedere al memoriei utilizate. (6p.)
Exemplu: dac fiierul date.in conine
236543
865210
976532 (6p.)
pe ecran se afieaz: 2
c) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const eficiena ei (3 4 rnduri). ( 4p.)
6. Fiierele text A.TXT i B.TXT conin cel mult 10000 de numere naturale cu cel mult 9 cifre fiecare, scrise fiecare pe cte o linie.
a) Scriei un program C/C++ care citete numerele din cele dou fiiere i, printr-o metod eficient din punct de vedere al timpului de executare i al
spaiului de memorie utilizat, afieaz pe ecran cte dintre numerele din fiierul A.TXT sunt strict mai mici dect toate
numerele memorate n fiierul B.TXT. (6p.)
Exemplu: dac fiierul A.TXT are coninutul alturat,
41111
81111
11111
91111
51111
111111
31111
431111
61111
201111
iar fiierul B.TXT are coninutul alturat:
91111
91111
61111
91111
91111
81111
61111
91111
atunci programul va afia valoarea 4, deoarece 41111, 11111, 51111, 31111 sunt mai mici dect toate elementele din fiierul B.TXT.
b) Descriei succint, n limbaj natural, metoda utilizat la punctul a, justificnd eficiena acesteia. (4p.)
7.Fiierul text SIR.TXT conine pe prima linie un numr natural n (1n10000) i pe a doua linie, separate prin spaii, un ir cresctor de n
numere naturale cu cel mult 9 cifre fiecare. Numim platou ntr-un ir de valori o secven de elemente identice situate pe poziii alturate. Lungimea unui
platou este egal cu numrul de elemente care l formeaz.
a) Scriei un program C/C++ care citete valorile din fiier i, printr-o metod eficient din punct de vedere al timpului de executare i al spaiului de
memorie utilizat afieaz pe ecran, separate printr-un spaiu, lungimea maxim a unui platou, precum i valoarea care formeaz platoul. n cazul n care
sunt mai multe platouri de aceeai lungime se va afia valoarea cea mai mare care formeaz unul dintre aceste platouri. (6p.)
Exemplu: dac fiierul SIR.TXT are coninutul alturat,
10
111 2111 2111 2111 3111 4111 4111 51111 51111 51111
atunci programul va afia pe ecran 3 51111.
b) Descriei succint, n limbaj natural, metoda utilizat la punctul a, justificnd eficiena acesteia. (4p.)
8. Fiierul text NUMERE.TXT conine pe prima linie un numr natural n (1n10000) i pe a doua linie un ir cresctor de n numere
naturale, fiecare avnd cel mult 9 cifre. Numerele de pe a doua linie sunt separate prin cte un spaiu.
a) Scriei un program C/C++ care, utiliznd o metod eficient din punct de vedere al timpului de executare i al spaiului de memorie, afieaz pe ecran
elementele distincte ale irului aflat pe a doua linie a fiierului. (6p.)
Exemplu: dac fiierul NUMERE.TXT are coninutul alturat
7
111 111 111 2111 4111 71111 71111 atunci programul va afia pe ecran 111 2111 4111 71111.
b) Descriei succint, n limbaj natural, metoda utilizat la punctul a), justificnd eficiena acesteia. (4p.)
9. Fiierul text NUMERE.TXT conine pe prima linie un numr natural n (1n10000) i pe a doua linie, n numere naturale cu cel mult 9
cifre fiecare. Aceste numere sunt dispuse n ordine cresctoare i separate ntre ele prin cte un spaiu.
a) Scriei un program C/C++ care citete valorile din fiier i, printr-o metod eficient din punct de vedere al timpului de executare i al spaiului de
memorie utilizat, afieaz pe ecran, separate prin cte un spaiu, n ordine cresctoare, numerele pare de pe a doua linie a fiierului, urmate de cele
impare n ordine descresctoare. (6p.)
Exemplu: dac fiierul NUMERE.TXT are coninutul alturat
6
212 412 5111 71113 81112 101112
atunci programul va afia pe ecran 212 412 81112 101112 71113 5111
b) Descriei succint, n limbaj natural, metoda utilizat la punctul a, justificnd eficiena acesteia. (4p.)
10. Un numr natural se numete palindrom dac numrul citit de la stnga la dreapta este egal cu numrul citit de la dreapta la stnga. Scriei
definiia complet a subprogramului Palindrom care primete prin intermediul parametrului n un numr natural de cel mult nou cifre i returneaz 1
dac acesta este palindrom i 0 n caz contrar. (10p.) Fiierul text NUMERE.IN conine cel mult 100000 numere naturale de cel mult nou cifre fiecare,
numerele fiind desprite prin cte un spaiu.
a) Scriei programul C/C++ care citete numerele din fiierul NUMERE.IN i, folosind apeluri utile ale subprogramului Palindrom definit mai sus,
determin n mod eficient, din punct de vedere al memoriei utilizate i al timpului de executare, care este cel mai mare numr palindrom citit i de cte
ori apare el n fiierul NUMERE.IN. Programul scrie n fiierul text NUMERE.OUT numrul astfel determinat precum i numrul de apariii ale
acestuia, pe rnduri diferite.
Exemplu: dac NUMERE.IN conine numerele:
23 565 78687 7887 7865 78687 7887 23 78687 98798
atunci NUMERE.OUT va conine: 78687 3 (6p.)
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const eficiena ei (3 4 rnduri). (4p.)
11. Se consider irul s: 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 6, 1, 2,... . Pentru un numr natural k, 0<k10000, se cere s se
determine valoarea elementului ce se afl pe poziia k n irul s.
Exemplu: pentru k=5 numrul cerut este 2.
a) Scriei un program C/C++ care citete de la tastatur valoarea numrului natural k i, prin apeluri utile ale funciei Ecuatie, definite la punctul 3,
determin valoarea elementului ce se afl pe poziia k n irul s, folosind un algoritm eficient din punctul de vedere al spaiului
de memorie alocat i al timpului de executare. Valoarea astfel determinat se va scrie n fiierul text sir.out. (6p.)
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const eficiena ei (3 4 rnduri) (4p.)
12. Scriei definiia complet a subprogramului Cifra, cu doi parametri, n i x, care primete prin intermediul parametrului n un numr natural
de cel mult nou cifre i furnizeaz prin parametrul x cea mai mare cifr a numrului transmis prin parametrul n. (10p.)
a) Se numete numr mare un numr care are mai mult de nou cifre. Scriei un program C/C++ care citete din fiierul text NUMERE.IN un numr
natural n (10 <n < 1000) apoi de pe urmtoarea linie n numere naturale cu cel mult nou cifre fiecare, dintre care cel puin unul nenul, i folosind apeluri
ale funciei Cifra definit mai sus construiete n mod eficient din punct de vedere al memoriei folosite, cel mai mic numr mare cu exact n cifre.
Fiecare dintre cifrele numrului mare reprezint cifra de valoare maxim a unui numr citit din fiier i nu exist dou cifre n numrul mare care s
aparin aceluiai numr citit. Scriei n fiierul text NUMERE.OUT numrul mare obinut astfel. (6p.)
b) Descriei succint n limbaj natural metoda de rezolvare folosit explicnd n ce const eficiena ei (3 4 rnduri). (4p.)
Exemplu:
NUMERE.IN NUMERE.OUT
10
725 3695 423 0 7895 0 100 101 870 568
1001478899

S-ar putea să vă placă și