0% au considerat acest document util (0 voturi)
63 vizualizări9 pagini

Probleme

Documentul prezintă o serie de probleme de programare care implică operații cu matrici, vectori și mulțimi de numere. Problemele variază de la manipularea și afișarea elementelor matricilor/vectorilor la determinarea de proprietăți ale acestora precum elementele comune, maximul, ordonarea etc.

Încărcat de

Alexandra Girnita
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
0% au considerat acest document util (0 voturi)
63 vizualizări9 pagini

Probleme

Documentul prezintă o serie de probleme de programare care implică operații cu matrici, vectori și mulțimi de numere. Problemele variază de la manipularea și afișarea elementelor matricilor/vectorilor la determinarea de proprietăți ale acestora precum elementele comune, maximul, ordonarea etc.

Încărcat de

Alexandra Girnita
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.

1. Se citeste o matrice cu n linii si m coloane avand elementele numere naturale.

Sa se inlocuiasca fiecare element din matrice cu numarul sau de divizori.

2. Se citeste un numar natural n de maxim 4 cifre. Sa se scrie in fisierul text


[Link] toate puterile lui 2 mai mici sau egale cu 2 la n, fiecare pe cate un
rand.

3. Se citeste un vector a cu cel mult 9 valori cifre. Sa se afiseze pe randuri


separate permutarile circulare ale vectorului.
Ex. Pentru vectorul 1 3 5 4 se va afisa:
3 5 4 1
5 4 1 3
4 1 3 5
1 3 5 4

4. Fiind dat un vector v cu n elemente numere intregi , sa se afiseze de cate ori


gasim doua elemente consecutive egale intre ele.

5. Sa se afiseze elementele prime ale unui sir de n numere intregi citite de la


tastatura .

6. Se citeste de la tastatura un sir de n elemente numere intregi. Sa se afiseze


elementele cu proprietatea ca suma cifrelor lor este divizibila cu o valoare p data
.

7. Se citeste de la tastatura un sir de n numere intregi . Sa se afiseze maximul


dintre elementele pare ale sirului

8. Fiind dat un vector v cu n elemente numere intregi , sa se construiasca alti doi


vectori : primul va contine numai elementele pare , iar al doilea numai elementele
impare ale vectorului initial .

9. Se dau doua multimi definite prin intermediul vectorilor u si v , cu m respectiv


n elemente . Sa se memoreze in vectorul w si apoi sa se afiseze reuniunea celor
doua multimi ( elemente comune si necomune luate o singura data ) .

10. Se citeste o matrice nXm cu elemente intregi. Sa se ordoneze crescator


elementele pare de pe liniile cu numar par.

11. Se citeste o matrice nXm cu elemente intregi. Sa se ordoneze crescator


elementele de pe prima linie prin interschimbare de coloane.

12. Se citeste o matrice nXm cu elemente intregi. Sa se permute circular liniile


matricii.

13. Se citeste o matrice patratica cu elemente intregi numere naturale. Sa se


calculeze cmmdc al sumei elementelor de deasupra diagonalei principale si al sumei
elementelor de sub diagonala principala.

14. Se citeste o matrice patratica cu elemente intregi numere naturale. Sa se


afiseze elementele aflate pe linie si coloana cu aceeasi suma a elementelor.

15. Ce citeste o matrice patratica nXn cu elemente intregi. Sa se calculeze suma


elementelor adiacente diagonalei principale a matricii.

16. Se citeste o matrice n*m cu elemente intregi. Sa se determine elementul care


apare de cele mai multe ori in matrice si de cate ori apare el.

17. Doua multimi a si b cu n si respectiv m elemente se citesc de la tastatura. Sa


se construiasca multimea obtinuta prin reuniunea multimilor a si b.

18. Doua multimi a si b cu n si respectiv m elemente se citesc de la tastatura. Sa


se determine daca multimea a este inclusa in multimea b.

19. Se citeste un tablou a cu n elemente numere intregi. Sa se ordoneze crescator


elementele aflate in vector intre pozitia elementului minim si pozitia elementului
maxim din tablou. Daca elementul minim si cel maxim ocupa pozitii consecutive sa se
afiseze mesajul "Nu se poate ordona".

20. Din fisierul [Link] se citesc 2 numere n si m si apoi elementela a doua multimi
a cu n elemente si respectiv b cu m elemente. Afisati produsul cartezian al celor 2
multimi.

21. Din fisierul [Link] se citesc doua numere n si m si apoi o matrice a cu n linii
si m coloane cu elemente intregi. Determinati daca matricea are toate elemente
distincte.

22. Se citeste un vector a cu n elemente numere intregi. Afisati valoarea minima


din vector si pozitiile pe care apare ea. Elementele vectorului sunt numerotate de
la 1 la n.

23. Se citeste un vector a cu n elemente numere intregi. Stergeti toate aparitiile


primului element si afisati vectorul ramas.
Exemplu: n=6 si vectorul 3 4 5 3 3 6
se afiseaza 4 5 6

24. Se citeste un vector a cu n elemente intregi. Sa se transforme in multime prin


eliminarea elementelor care se repeta.

25. Se citesc 2 multimi a si b cu n si respectiv m elemente. Sa se construiasca o


multime c care sa contina elementele comune celor 2 multimi a si b (intersectia
celor 2 multimi).

26. Se citeste un vector a cu n elemente numere intregi. Sa se elimine un numar


minim de elemente din vectorul a astfel incat elementele ramase sa fie ordonate
strict crescator.
Primul element din vector nu se elimina.

27. Se citeste un vector a cu n elemente numere naturale. Sa se afiseze pe linii


separate elementele vectorului grupate in functie de cifra cea mai semnificativa
(prima cifra).
Exemplu: n=5 si vectorul 65 32 333 106 66 se vor afisa:
106
32 333
65 66

28. Numerele naturale cu foarte multe cifre se pot memora cu ajutorul vectorilor.
Sa se calculeze si sa se afiseza suma a doua numere naturale memorate in 2 vectori
a si b cu n si respectiv m elemente.
Cifrele numerelor se vor introduce de la tastatura cu spatiu intre ele.

29. Se citeste un numar natural n. Sa se afiseze cel mai mic numar care se poate
forma cu cifrele numarului n. Numarul minim va avea acelesi numar de cifre ca si n
(nu poate incepe cu cifra 0).
Se va folosi un vector de frecventa.
Exemplu: Daca n este 52200996 atunci nnumarul cerut este 20025699

30. Se citeste un vector a cu n elemente numere naturale. Sa se determine daca


vectorul a este o permutare a multimii {1, 2, ...,n}.
Exemplu: vectorul 4 3 2 5 1 este o permutare a multimii 1 2 3 4 5, dar vectorul 4 2
1 5 5 nu este.

31. Se citeste un vector a cu n elemente naturale. Sa se elimine in mod repetat


toate perechile de elemente alaturate identice pana cand nu mai exista astfel de
perechi.
Exemplu: din vectorul 3 7 4 5 5 6 6 4 7 9 8 8 vor ramane doar elementele 3 si 9.

32. Se citeste un vector a cu n elemente cifre. Afisati cel mai mic numar natural
care se poate forma cu toate cele n cifre din vectorul a.
Exemplu: Daca vectorul este 4 0 0 2 1 atunci numarul cerut este 10024.

33. Se citeste un numar natural n si un vector cu 2*n elememente numere naturale.


Construiti n fractii folosind elementele vectorului astfel incat suma fractiilor sa
fie maxima si fiecare element sa apara intr-o singura fractie.
Exemplu: n=3 si vectorul 3 2 4 7 8 6 , fratiile vor fi 8/2 7/3 6/4.

34. Se citeste un vector a cu n elemente naturale, n numar par. Sa se interschimbe


primul element cu cel de-al doilea, al treilea cu al patrulea, ..., penultimul cu
ultimul si sa se afiseze vectorul astfel obtinut.

35. Se citeste un vector a cu n elemente naturale. Sa se imparta vectorul a intr-un


numar minim de subsiruri strict crescatoare de valori consecutive si sa se afiseze
aceste subsiruri.
Ordinea elementelor din vectorul a trebuie sa se pastreze si in subsirurile alese.
Exemplu: daca a=3 10 4 5 4 6 11 5, atunci subsirurile sunt:
3 4 5 6
10 11
4 5

36. Se citeste un vector a cu n elemente numere intregi. Sa se insereze intre


oricare 2 elemente alaturare de semne diferite un element obtinut prin lipirea
valorilor absolute ale celor 2 elemente, in ordinea lor din vector.
Exemplu: vectorul 3 -1 65 4 -9 se transforma in 3 31 -1 165 4 49 -9.

37. Se citeste un vector a cu n elemente numere naturale. Sa se afiseze elementele


din vector care sunt mai mici decat rasturnatul lor.
Exemplu: 238, 67, 419 sunt numere mai mici decat rasturnatul lor.

38. Se citeste un vector a cu n elemente numere naturale. Sa se elimine din toate


elementele vectorului cifrele impare si sa se afiseze vectorul astfel obtinut.

39. Se citeste un vector a cu n elemente numere naturale. Sa se afiseze elementul


din vector care are numar maxim de divizori.

40. Se citeste un vector cu n elemente numere naturale cu elementele numerotate


incepand de la 1.
Sa se inlocuiasca fiecare element a[i] cu cea mai mare putere a lui i care este mai
mica sau egala cu a[i], exceptand primul element al vectorului.
Exemplu: Pentru vectorul 23 24 43 90 80 rezulta vectorul 23 16 27 64 25.

41. Se citeste un vector cu n elemente numere naturale distincte. Sa se afiseze


perechea de elemente din vector care are cmmdc maxim.

42. Se citeste un vector cu n elemente numere naturale cu elementele numerotate


incepand de la 1.
Sa se inlocuiasca fiecare element a[i] cu cea mai mare putere a lui i care este mai
mica sau egala cu a[i], exceptand primul element al vectorului, element care va
ramane neschimbat.
Exemplu: Pentru vectorul 23 24 43 90 80 rezulta vectorul 23 16 27 64 25.

43. Se citeste o multime a cu n elemente numere naturale. Sa se afiseze toate


submultimile multimii a.
Indicatie: Se contruiesc intr-un vector caracteristic toate modalitatile de a pune
valorile 0 si 1 pe n pozitii si corespunzator fiecarei variante se asociaza o
submultime astfel: pozitiile pe care este valoarea 1 corespund elementelor alese in
submultime, iar cele cu valoarea 0 celor care nu sunt alese in submultime.
Exemplu: Pentru n=5 si elementele 1 3 5 7 9 se genereaza:
0 0 0 0 0 - multimea vida
1 0 0 0 0 - submultimea {1}
0 1 0 0 0 - submultimea {3}
1 1 0 0 0 - submultimea {1, 3}
0 0 1 0 0 - submultimea {5}
...
1 1 0 1 1 - submultimea {1, 3, 7, 9}
etc

44. Se citeste din fisierul [Link] o matrice cu n linii si m coloane cu elemente


numere intregi. Sa se insereze dupa fiecare linie a matricii o linie care sa
contina elementele acestea in ordine inversa si sa se afiseze matricea astfel
obtinuta.
Exemplu:
2 4
1 2 3 4
4 3 1 8
rezulta matricea
1 2 3 4
4 3 2 1
4 3 1 8
8 1 3 4

45. Se citesc 2 numere naturale n si m. Sa se construiasca si sa se afiseze o


matrice cu n linii si m coloane care sa contina numerele de la 1 la n*m ca in
exemplul de mai jos.
Pentru n=4 si m=5 se obtine matricea
1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16

46. Se citeste din fisierul [Link] o matrice cu n linii si m coloane cu elemente


numere intregi. Sa se ordoneze crescator elementele de pe fiecare linie a matricii.

47. Se citeste un numar natural n. Sa se construiasca si sa se afiseze o matrice cu


n linii si n coloane in care numerele de la 1 la n*n sa fie aranjate in spirala ca
in exemplul de mai jos.
n=4
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7

48. Se citeste din fisierul [Link] o matrice cu n linii si m coloane cu elemente


numere intregi. Sa se stearga din matrice toate coloanele care au primul element
egal cu 1 si sa se afiseze matricea rezultata.

49. Se citeste din fisierul [Link] o matrice cu n (numar par) linii si m coloane cu
elemente numere intregi. Sa se insereze o linie la mijlocul matricii, fiecare
element de pe aceasta linie fiind egal cu suma elementelor de pe coloana pe care se
afla. Matricea astfel rezultata sa se afiseze in fisierul [Link].
Exemplu:

[Link]
4 5
1 2 3 4 3
4 5 6 5 3
7 8 9 6 9
3 5 8 5 1

[Link]
1 2 3 4 3
4 5 6 5 3
15 20 26 20 16
7 8 9 6 9
3 5 8 5 1

50. Secvente de suma s (cu sir de sume partiale - O(n*n))


Se da un vector a cu n elemente numere naturale si o valoare naturala s. Afisati
toate secventele de valori din vectorul a care au suma egala cu s.
Exemplu:
n=6 s=28
a=20 8 11 14 3 11
seventele sunt:
20 8
11 14 3
14 3 11

51. Se citeste o matrice cu n linii si m coloane cu elemente numere naturale.


Afisati elementele din matrice care au proprietatea ca sunt egale cu c.m.m.d.c. al
sumei elementelor liniei i si produsul elementelor coloanei j.
Exemplu:
n=3, m=3
5 5 6
4 5 6
3 1 5
Elementele care respecta cerinta sunt 5, 3, 1

52. Se citeste un numar natural n si un tablou cu n elemente numere naturale.


Afisati cea mai mare fractie subunitara care se poate forma cu doua elemente din
tabloul citit.
Exemplu:
n=5
tabloul: 4 6 5 9 1
cea mai mare fractie subunitara este 5/6

53. Se citeste un vector cu componente numere naturale. Sa se afiseze numarul


cifrelor nule cu care se termina numarul format din produsul celor n componente.
Exemplu:
n=6
tabloul: 34 25 100 444 16 32321
numarul de cifre nule cerut este 4

54. Se citeste o cifra n. Construiti si afisati o matrice patratica n*n care are
toate elementele egale cu 0 sau 1 si in care orice element are toti vecinii pe
linie si pe coloana diferiti de el.
Exemplu:
n=4
matricea este:
1 0 1 0
0 1 0 1
1 0 1 0
0 1 0 1

55. Se citeste o matrice n*m cu elemente numere naturale. Afisati elementele care
au proprietatea ca sunt egale cu cel mai mare divizor comun al sumei elementelor de
pe linia lor si al produsului elementelor de pe coloana lor.
Exemplu:
in matricea 3*4 de mai jos
1 4 1 3
4 8 5 8
3 8 9 1
elementele cerute sunt 3 5 3

56. Se dau doua siruri a si b cu care n elemente fiecare, fiecare element fiind 1
sau -1. Dandu-se un numar k, transformati sirul a in sirul b prin transformari care
presupun inversarea semnului elementelor dintr-o secventa de lungime k. Solutia se
va afisa astfel: indicii de la care incep secventele care se inverseaza si apoi
numarul de transformari. Se garanteaza existenta solutiei.
Exemplu:
4 2 (n,k)
1 -1 1 -1 (sirul a)
-1 -1 1 1 (sirul b)
Rezultat:
1 (indicele primei secvente inversate)
2
3
3 (numarul de transformari)

57. Se citeste o matrice cu n linii si m coloane avand elementele 0 sau 1. Afisati


perechile de linii complementare (suma elementelor de pe cele doua linii si de pe
aceleasi coloane sa fie 1).
Exemplu:
n=5 m=3
matricea
1 0 1
1 1 1
0 1 0
0 0 0
1 1 0
are perechile de linii complementare (1,3) si (2,4)
Liniile 1 si 3 sunt complementare deoarece
1 0 1 +
0 1 0
_____
1 1 1

58. Se citeste o matrice nXm cu elemente intregi distincte.


a) Afisati valoarea minima si linia pe care se afla
b) Afisati valoarea maxima si linia pe care se afla
c) Daca minimul si maximul sunt pe linii diferite, atunci interschimbati cele doua
linii si afisati matricea rezultata, altfel afisati un mesaj corespunzator.
Exemplu:
[Link]
3 4
2 1 3 4
6 10 8 9
5 16 11 7
[Link]
1 1
16 3
5 16 11 7
6 10 8 9
2 1 3 4

59. Se citeste o matrice nXm cu elemente intregi. Stergeti din matrice liniile care
nu au elementele ordonate strict crescator sau strict descrescator si afisati
matricea rezultata.
Exemplu:
[Link]
4 4
2 1 3 4
6 10 11 13
6 5 4 2
4 3 2 44
[Link]
6 10 11 13
6 5 4 2

60. Se citeste un vector cu n elemente intregi distincte. Inversati ordinea


elementelor cuprinse intre elementul minim si elementul maxim din vector.
Exemplu:
[Link]
12
2 1 3 4 6 10 11 13 17 15 14 12
[Link]
2 17 13 11 10 6 4 3 1 15 14 12

61. a)Se citesc doua numere naturale n si m (cel mult 1000). Sa se construiasca o
matrice cu n linii si cu m coloane care sa contina numerele de la 1 la m in zig-zag
ca in exemplul de mai jos, restul elementelor din matrice fiind 0.
Exemplu:
n=4 m=11
matricea este
1 0 0 0 0 0 7 0 0 0 0
0 2 0 0 0 6 0 8 0 0 0
0 0 3 0 5 0 0 0 9 0 11
0 0 0 4 0 0 0 0 0 10 0
b)Se continua plasarea numerelor prin revenirea de la ultima spre prima coloana
dupa aceeasi regula.
Exemplu:
n=6 m=9
matricea este
1 0 0 0 0 0 11 0 0
0 2 0 0 0 12 0 10 0
0 0 3 0 13 0 0 0 9
0 0 0 14 0 0 0 8 0
17 0 15 0 5 0 7 0 0
0 16 0 0 0 6 0 0 0

62. Din fisierul [Link] se citeste un numar n mai mic decat 2000000000 si apoi
se citesc n numere naturale. Afisati in fisierul [Link] lungimea celei mai
lungi secvente din numerele citite care are proprietatea ca incepe si se termina cu
aceeasi valoare si nu mai contine acea valoare (inafara de primul si ultimul
element al secventei).
Exemplu:
[Link]
14
3 2 4 3 4 2 3 4 5 6 7 2 5 5
[Link]
7
Explicatie: cea mai lunga secventa care respecta cerinta este 2 3 4 5 6 7 2

63. Scrieti un program C/C++ care citeste de la tastatura un numar natural n (n cel
mult 100) si apoi cele n elemente, numere naturale cu cel mult 4 cifre fiecare, ale
unui tablou unidimensional a. Programul afiseaza pe o linie a ecranului suma celor
n elemente ale tabloului, pe urmatoarea linie a ecranului suma primelor n-1
elemente si asa mai departe, astfel �nc�t ultima linie afisata sa contina doar
primul element al tabloului.
Exemplu: daca n=4 iar tabloul are elementele
a=(1,7,3,4) programul va afisa valorile:
15
11
8
1

64. In fisierul [Link] se afla pe prima linie un numar natural n (n<=9), iar pe
a doua linie se afla un sir a de cifre zecimale a1, a2, �.., an.
Se cere s� se afiseze suma obtinuta din numerele care se pot construi cu cifrele
din sirul a prin permutari circulare.
Nu se vor face permutarile sugerate si nu se vor calcula numerele obtinute din ele.

Exemplu:
[Link]
3
2 5 4
se va afisa 1221 deoarece numerele care se pot obtine sunt 254, 542 si 425, iar
suma lor este 1221.

65. Se citeste un numar natural n cu cel mult 9 cifre. Afisati suma numerelor care
se pot construi din n prin permutarea cifrelor sale.
Exemple:
pentru n=123 se obtin numerele 123, 132, 213, 231, 312 si 321, iar suma lor este
1332
pentru n=976584 suma este 519999480

66. Se citeste un numar natural n (cel mult 100) si un vector a cu n elemente


numere naturale cu cel mult 3 cifre fiecare. Calculati cel mai mic multiplu comun
al elementelor vectorului a.
Indicatie: problema se va rezolva folosind descompunerea in factori primi si
retinerea factorilor la puterea cea mai mare.
Exemplu:
n=5
a={2, 4, 16, 5, 3}
cmmmc=240

67. Din fisierul [Link] se citesc n si m (numere naturale mai mici sau egale cu
5000) de pe prima linie, apoi n numere naturale a1, a2, �, an de pe linia a doua si
apoi m numere naturale b1, b2, �, bm de pe linia a treia a fisierului.
Sa se verifice daca sirul b citit de pe a treia linie a fisierului se poate obtine
din sirul a (aflat pe a doua linie a fisierului) prin eliminarea unora dintre
componentele sirului a si afisati un mesaj corespunzator (da/nu).
Folositi un algoritm eficient ca timp de executie.
Exemplu:
[Link]
5 3
1 6 3 1 3
6 1 3
raspunsul este da

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