Sunteți pe pagina 1din 5

Fisa de lucru Vectori

A.Se da un vector a cu n componente naturale,n>5.Se cere determinarea si afisarea urmatoarelor informatii:


1. Suma tuturor elementelor.
2. Numarul elementelor pare.
3. Produsul elementelor impare.
4. Suma elementelor de rang par.
5. Suma elementelor de rang impar.
6. Valoarea maxima.
7. Valoarea maxima si frecventa ei (numarul de aparitii).
8. Valoarea minima.
9. Valoarea minima si frecventa sa.
10. Numarul de zerouri din vector.
11. Cate zerouri exista la inceputul vectorului.
12. Cate zerouri exista la sfarsitul vectorului.
13. Inlocuirea tuturor zerourilor cu cea mai mare valoare.
14. Cate elemente sunt divizibile cu 5.
15. Produsul elementelor divizibile cu 7.
16. Verificati daca toate elementele sunt egale.
17. Verificati daca vectorul contine un sir alternat de 0 si 1.
18. Verificati daca elementele sunt in ordine crescatoare.
19. Verificati daca elementele sunt in ordine descrescatoare.
20. Construiti un alt vector b care sa contina, pentru fiecare numar, prima sa cifra.
21. Construiti un alt vector b care sa contina, pentru fiecare numar, suma cifrelor sale.
22. Construiti un alt vector b care sa contina, pentru fiecare numar, oglinditul sau.
23. Construiti un alt vector b care sa contina, pentru fiecare numar, cifra maxima.
24. Determinati numarul de elemente care sunt sunt egale cu oglinditul lor.
25. Cate numere din sir sunt prime.
26. Eliminati din sir valoarea de pe pozitia 3.
27. Eliminati din sir toate zerourile. Puteti sa folositi un vector auxiliar.
28. Adaugati pe pozitia 2 in vector valoarea 100.
29. Inversati in vector ordinea elementelor.
30. Cate elemente vecine egale contine sirul.
31. Cate elemente vecine au proprietatea ca sunt inlantuite (ultima cifra a unuia coincide cu prima cifra a
celuilalt).
32. Determinati numarul platourilor. Un platou este o succesiune de cel putin doua elemente egale.
33. Verificati daca vectorul are aspectul de creasta (este la inceput crescator si apoi descrescator).
34. Verificati daca vectorul are aspectul de vale (este la inceput descrescator si apoi crescator).
35. Determinati numarul de trepte. O treapta este o succesiune de unul sau mai multe elemente egale.

B. Se da un numar natural n. Construiti in vectorul x primii n termeni ai sirului:
1. 1,2,3,
2. 2,4,6,8,
3. 1,1,2,2,3,3,
4. 1,0,2,0,3,0,
5. 1,1,2,1,2,3,1,2,3,4,
6. 1,2,2,3,3,3,4,4,4,
7. 1,22,333,4444,
8. 1,10,100,1000,
9. 1,2,4,8,16,
10. 12,23,34,45,
11. 1,12,123,1234,
12. 1,1,2,3,5,8,





SUBIECTUL NR. 1
Fiierul bac.in conine pe prima linie un numr natural n (0<n<5000), iar pe a doua linie, separate prin cte un spaiu, n
numere naturale, formate din cel mult 4 cifre fiecare.
Scriei un program C/C++ care determin i scrie n fiierul bac.out, toate numerele, citite de pe a doua linie a fiierului
bac.in, care apar de cel puin dou ori. Numerele determinate se vor scrie n ordine cresctoare, pe aceeai linie, separate
prin cte un spaiu.
Exemplu:
dac fiierul bac.in conine pe prima linie numrul 11, iar pe linia a doua valorile 23 12 54 12 78 345 67 23 78 934 23
atunci fiierul bac.out va conine: 12 23 78
SUBIECTUL NR. 2
Scriei un program C/C++ care citete de la tastatur un numr natural nenul n (n100) i 2*n numere naturale de
maximum 3 cifre; primele n reprezint elementele tabloului unidimensional a, iar urmtoarele n elementele tabloului
unidimensional b; fiecare tablou are elementele numerotate ncepnd de la 1. Programul construieste n memorie i
afieaz pe ecran cele n elemente ale unui tablou unidimensional c, n care orice element ci (1in) se obine conform
definiiei urmtoare:
ci = ai concatenat cu bi, dac ai<bi;
bi concatenat cu ai, altfel

Exemplu: dac n=3 i tablourile a i b au coninutul alturat, atunci coninutul tabloului c este urmtorul:
112 123234 15345 (10p.)
a : (12, 123, 345)
b: (1, 234, 15)
SUBIECTUL NR. 3
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.
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
SUBIECTUL NR. 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.
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 pe ecran se afieaz: 6 3 2 1 0
SUBIECTUL NR. 5
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 crescatoare i separate ntre ele prin cte un spaiu.
Scriei un program C/C++ care citete valorile din fiier i, printr-o metod eficient din punct de vedere al timpului de
executare, 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.
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
SUBIECTUL NR. 6
Fiierul text NUMERE.IN conine cel mult 100000 numere naturale de cel mult nou cifre fiecare, numerele fiind
desprite prin cte un spaiu. Cel puin unul dintre numere este palindrom. Scriei programul C/C++ care citete
numerele din fiierul NUMERE.IN i, folosind apeluri utile ale subprogramului Palindrom definit la punctul 3, 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

SUBIECTUL NR. 6A
Fiierul BAC.TXT are pe prima linie dou numere naturale n i m (0<n<1000, 0<m<1000) separate prin cte un spaiu,
pe linia a doua n numere ntregi ordonate strict cresctor, iar pe linia a treia m numere naturale distincte. S se scrie un
program care citete toate numerele din fiier i afieaz pe ecran, desprite prin cte un spaiu, toate numerele din a
doua linie a fiierului care apar cel puin o dat i n linia a treia a acestuia
Exemplu: dac fiierul are urmtorul coninut:
6 5
2 3 4 5 8 9
4 5 2 11 8
atunci se va afia: 5 2 8, nu neaprat n aceast ordine. Scriei programul C/C++ corespunztor.
SUBIECTUL NR. 7
Fiierul text bac.txt conine cel puin dou i cel mult 1000 de numere naturale distincte, dintre care cel puin dou sunt
pare. Numerele sunt separate prin cte un spaiu i fiecare dintre ele are cel mult 9 cifre.
Scriei un program C/C++ care determin cele mai mari dou numere pare din fiier, utiliznd un algoritm eficient din
punct de vedere al timpului de executare i al spaiului de memorie utilizat. Cele dou numere vor fi afiate pe ecran, n
ordine descresctoare, separate printr-un spaiu.
Exemplu: dac fiierul conine numerele: 5123 8 6 12 3 se va afia: 12 8 (6p.)
SUBIECTUL NR. 8
Scriei un program C/C++ care citete de la tastatur un numr natural nenul, S, avnd maximum 9 cifre, i printr-o
metod eficient din punct de vedere al timpului de executare, determin i scrie n fiierul rez.dat trei valori naturale a
cror sum este egal cu S, i al cror produs este maxim. Cele trei valori vor fi scrise n ordine cresctoare pe prima linie
a fiierului rez.dat, separate prin cte un spaiu.
Exemplu: dac se citete valoarea 5, fiierul rez.dat va avea o linie cu coninutul 1 2 2.
SUBIECTUL NR. 9
Scriei un program C/C++ care citete de la tastatur un numr natural n (n100) i apoi cele n elemente, numere
naturale cu cel mult 4 cifre fiecare, ale unui tablou unidimensional a. Programul determin i afieaz pe prima linie a
ecranului suma celor n elemente ale tabloului, pe a doua linie a ecranului suma primelor n-1 elemente i aa mai departe
astfel nct pe linia n-1 suma primelor 2 elemente iar pe linia n primul element al tabloului.
Exemplu: dac n=4 iar tabloul are elementele
a=(1,2,3,4) programul va afia valorile alturate: 10
6
3
1
SUBIECTUL NR. 10
Scriei un program C/C++ care citete de la tastatur un numr natural n (0<n100) i cele 3*n elemente ale tabloului
unidimensional v, fiecare element fiind un numr natural cu cel mult patru cifre fiecare. Tabloul este mprit n trei
zone, cu cte n elemente: prima zon conine primele n elemente din tablou, a doua zon conine urmtoarele n elemente
din tablou, restul elementelor fiind n zona a treia. Programul va interschimba primul element par (dac exist) al zonei
unu cu ultimul element impar (dac exist) al zonei trei i apoi va scrie pe prima linie a fiierului text bac.txt toate
elementele tabloului, separate prin cte un spaiu. n cazul n care unul dintre aceste dou elemente, care urmeaz a fi
interschimbate, nu exist, programul nu va efectua nici o modificare asupra tabloului dat.
Exemplu: pentru n=3 i v=(1 2 3 4 5 6 7 8 9), fiierul bac.txt va conine: 1 9 3 4 5 6 7 8 2
SUBIECTUL NR. 11
Se consider fiierul bac.txt ce conine cel mult un milion de numere naturale separate prin spatii, fiecare numr avnd
cel mult nou cifre. Scriei un program C/C++ care citete toate numerele din fiierul bac.txt i determin, folosind un
algoritm eficient din punct de vedere timpului de executare, cele mai mari dou numere de trei cifre care nu se afl n
fiier. Dac nu pot fi determinate dou astfel de numere, programul va afia pe ecran valoarea 0.
Exemplu: dac fiierul bac.txt conine numerele: 12 2345 123 67 989 6 999 123 67 989 999
atunci programul va afia 998 997
SUBIECTUL NR. 12
Fiierele text nr1.txt i nr2.txt conin, separate prin cte un spaiu, mai multe numere ntregi de cel mult 9 cifre fiecare.
Fiecare dintre fiiere conine cel mult 100 de valori i numerele din fiecare fiier sunt ordonate strict cresctor. Se cere s
se afieze pe ecran, n ordine cresctoare, numerele divizibile cu 5 care se gsesc doar n unul din cele dou fiiere.
Exemplu: dac fiierul nr1.txt conine numerele 1 2 3 4 7 20 60, iar fiierul nr2.txt conine numerele 3 5 7 8 9 10 12 20
24, atunci se vor afia pe ecran valorile 5 10 60.





SUBIECTUL NR. 13
Fiierul text bac.txt conine mai multe numere naturale, cu cel mult 6 cifre fiecare, cte un numr pe fiecare linie a
fiierului.
Scriei un program C/C++ care citete toate numerele din fiierul BAC.TXT i le afieaz pe ecran, cte 5
pe fiecare linie, separate prin cte un spaiu, cu excepia ultimei linii care poate conine mai puin de 5
numere. Programul va afia apoi pe ecran, pe o linie separat, cte numere din fiier au suma cifrelor
par.
Exemplu: dac fiierul are coninutul alturat, pe ecran se vor afia numerele de mai jos:
11 21 30 40 51
16 17 10 1
4
11
21
30
40
51
16
17
10
1
SUBIECTUL NR. 14
n fiierul numere.txt sunt memorate maximum 10000 de numere naturale cu cel mult 9 cifre fiecare. Fiecare linie a
fiierului conine cte un numr. Se cere afiarea pe ecran, n ordine descresctoare, a tuturor cifrelor care apar n
numerele din fiier. Alegei un algoritm de rezolvare eficient din punct de vedere al timpului de executare.
Exemplu: dac fiierul numere.txt conine:
267
39628
79
se va tipri 9987766322.
SUBIECTUL NR. 15
n fiecare dintre fiierele nr1.txt i nr2.txt este memorat pe prima linie cte o valoare natural n de cel mult 8 cifre, iar
pe linia urmtoare sunt memorate cte n numere naturale, cu maximum 4 cifre fiecare, ordonate strict cresctor i
separate prin cte un spaiu. Se cere afiarea pe ecran, separate prin cte un spaiu, n ordine strict cresctoare, a tuturor
numerelor aflate pe a doua linie n cel puin unul dintre cele dou fiiere. n cazul n care un numr apare n ambele
fiiere, el va fi afiat o singur dat. Alegei un algoritm de rezolvare eficient din punct de vedere al memoriei utilizate i
al timpului de execuie.
Exemplu: pentru urmtoarele fiiere:
nr1.txt
5
3 6 8 9 12
nr2.txt
6
2 3 5 7 9 13
se va afia 2 3 5 6 7 8 9 12 13.
SUBIECTUL NR. 16
Scriei programul C/C++ care citete din fiierul text bac.txt numrul ntreg n (1n10000) i un ir de n perechi de
numere ntregi a b (1ab32000), fiecare pereche fiind scris pe o linie nou a fiierului, cu un spaiu ntre cele dou
numere. Programul afieaz pe ecran pentru fiecare pereche a,b cel mai mare numr natural din intervalul nchis [a,b]
care este o putere a lui 2 sau numrul 0 dac nu exist nicio putere a lui 2 n intervalul respectiv. Un numr p este putere
a lui 2 dac exist un numr natural k astfel nct p=2k.
Exemplu: dac fiierul bac.txt conine numerele
3
2 69
10 20
19 25
se va afia: 64 16 0.
SUBIECTUL NR. 17
Fiierul text numere.in conine pe prima linie un numr natural nenul n (1n100) i pe urmtoarea linie n numere reale
pozitive ordonate cresctor, separate prin cte un spaiu.
Scriei un program C/C++ care citete din fiierul numere.in numrul natural n, i determin, utiliznd un algoritm
eficient din punct de vedere al timpului de executare i al memoriei utilizate, numrul minim de intervale nchise de
forma [x;x+1], cu x numr natural, a cror reuniune include toate numerele reale din fiier.
Exemplu: Dac fiierul numere.in are coninutul:
6
2.3 2.3 2.8 5.7 5.7 6.3
atunci se afieaz 3 (intervalele [2;3],[5;6],[6;7] sunt cele 3 intervale de forma cerut care conin numere din ir).

1

2
3

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