Sunteți pe pagina 1din 25

Tablouri

Tablouri unidimensionale
Parcurgeri (sume, numrri)

1.

Fiind dat un vector de numere ntregi, s se determine suma elementelor pozitive din vector.
Exemplu. Pentru vectorul 1, 23, 2, 4, 5 se va afia 30 (=23+2+5).

2.

S se afieze doar elementele pare dintr-un vector de numere ntregi.


Exemplu. Pentru vectorul (-2,4,15,3,8,13) se va afia 2, 4, 8.

3.

Scriei un program care tiprete elementele pare aflate pe poziii divizibile cu 3 dintr-un vector de numere
ntregi.
Exemplu. Daca vectorul iniial este (1,2,8,-4,7,9,120,53) se va afia 8.

4.

S se afieze elementele pozitive de rang impar dintr-un vector de numere ntregi.


Exemplu. Pentru vectorul (2,-3,-1,43,3,1,-4,8,12) se va afia 2,3,12.

5.

Se citete de la tastatur un vector cu n (1n100) componente de tip ntreg. Se cere s se construiasc i s se


afieze un nou vector cu componentele ptrate perfecte din vectorul iniial.
Exemplu. Daca vectorul iniial este (2,4,8,25,3,66) al doilea vector va fi (4,25).

6.

S se scrie un program care numr elementele pozitive, negative i respectiv nule dintr-un vector, parcurgndu-l
o singur dat.
Exemplu. n vectorul (-3,4,30,-1,0,-22,0,376) se gsesc 3 numere pozitive, 3 numere negative i 2
numere nule.

7.

S se determine media aritmetic a elementelor pare dintr-un vector de numere ntregi.


Exemplu. Pentru vectorul (-2,4,15,3,6,13) se va afia 2.66.

8.

S se calculeze suma elementelor negative i de valoare par dintr-un vector de numere ntregi.
Exemplu. Suma cerut n cazul vectorului (12,-4,9,7,-5,31,-74,515, -33,-8) este 86.

9.

Fiind dat un vector v cu n elemente numere ntregi, scriei un program care calculeaz produsul i numrul
elementelor negative aflate pe poziii impare n vector.
Exemplu. n cazul vectorului (12,-4,9,7,-5,31,-74,515,-33,-8) avem 3
poziiile impare iar produsul lor este -12210.

componente negative pe

10. S se afieze poziia pe care apare primul element pozitiv dintr-un vector citit de la tastatur.
Exemplu. n vectorul (-5,-8,-6,-41,-9,-1,-475,-12,-4) nu exist nici un numr pozitiv, iar n vectorul
(-4,9,874,-54) primul numr pozitiv se gsete pe poziia 2.
11. Se d un vector v cu n elemente numere ntregi. S se copieze ntr-un alt vector u elementele pozitive ale
vectorului iniial.
Exemplu. Dac v=(-5,8,-6,0,-9,1,-475,12,4) atunci u=(8,1,12,4).

44

Tablouri

12. Se consider un vector A cu m elemente i dou numere reale P, Q. S se scrie un program care copiaz ntr-un
vector B toate elementele din A aflate n intervalul (P,Q) n ordinea n care apar ele n vector.
Exemplu. Dac A=(12,-4,9,7,-5,31,-74,515,-33,-8) i P=-10, Q=9 atunci B=(-4,7,-5,-8).
13. Se consider un vector A cu m elemente i dou numere reale P, Q. S se scrie un program care copiaz ntr-un
vector B toate elementele din A aflate n intervalul (P,Q) n ordinea invers apariiei lor n vectorul A.
Componentele vectorului B vor fi generate direct n aceast ordine!
Exemplu. Dac A=(12,-4,9,7,-5,31,-74,515,-33,-8) i P=-10, Q=9 atunci B=(-8,-5,7,-4).
14. Se d un vector de numere reale. S se determine procentul de numere din vector mai mici (strict) dect MA i
procentul de numere din vector mai mari (strict) dect MA, unde am notat cu MA media aritmetic a componentelor
din vector.
Exemplu. Dac vectorul este (-2,13,34.75,125,3.5,8,61) atunci media aritmetic este 34.75, numerele
mai mici strict dect aceast medie sunt 2, 13, 3.5, 8 (adic 57.14%), iar numerele strict mai mari dect medie
sunt 125, 61 (adic 28.57%).
15. Se consider doi vectori cu componente reale. Se citete un numr natural k. S se intercaleze n primul vector,
dup poziia k, tabloul al doilea.
Exemplu. Dac x=(1,2,3,4,5,6,7), y=(9,10,11) i k=4 dupa intercalare
x=(1,2,3,4,9,10,11,5,6,7).
16. Scriei un program care citete de la tastatur cele n numere reale ce compun vectorul a i apoi cele m numere
reale ce constituie componentele vectorului b i afieaz pe ecran cte dintre componentele vectorului a sunt
strict mai mici dect toate componentele vectorului b.
Exemplu. Dac a=(4,8,1,9,5,11,3,43,6,20) i b=(9,9,6,9,9,8, 6,9), atunci numrul cutat este 4,
deoarece valorile 4,1,5 i 3 sunt mai mici dect toate elementele lui b.
17. S se calculeze i afieze media aritmetic i cea armonic a componentelor unui vector x de numere reale. Prin
medie armonic a vectorului x=(x1,x2,,xn) se nelege raportul:

n
1
1
1 .

...
x1 x 2
xn
Exemplu. Pentru x=(1,8,4,21,3,56,9) media aritmetic este 14.57 iar media armonic este 3.71.
18. Scriei cte un program care s realizeze inversarea unui vector:
a) n acelai vector i fr a utiliza un vector suplimentar;
b) ntr-un alt vector.
Exemplu. Dac vectorul iniial este (1,2,3,4) cel final va fi (4,3,2,1).
19. Fie v un vector de numere ntregi. S se construiasc un vector w, astfel nct wi= numrul de apariii ale lui
vi n vectorul v.
Exemplu. Pentru v=(1,5,2,1,5,7,2,1,5) se obine w=(3,3,2,3,3,1, 2,3,3).
20. Fiind dat un vector v cu n elemente numere ntregi, s se construiasc ali doi vectori: primul va conine numai
elementele pare, iar al doilea numai elementele impare ale vectorului iniial.

44

Tablouri

Exemplu. Daca vectorul iniial este v=(1,64,2,5,23,9,6,11) se vor obine vectorii (64,2,6) i respectiv
(1,5,23,9,11).
21. S se calculeze componentele irului Y y1, y2,..., yn tiind c yi, i 1,2,..., n este media aritmetic a
componentelor pozitive de rang mai mic sau egal cu i ale vectorului X, n cazul n care exist componente
pozitive, respectiv -1 n caz contrar.
Exemplu. Pentru x=(-2,-3,71,43,-3,1,-4,8,12) se obine y=(-1,
-1,71,57,57,38.33,38.33,30.75,27)

22. S se verifice dac un vector conine elemente n ordinea: negativ, negativ, pozitiv, negativ, negativ, pozitiv, .
Exemplu. (-1,-2,3,-5,-6,2,-8) are aspectul cerut (-1,2,-3,-4) nu are aspectul dorit.
23. Fie dat un vector x x1, x 2, x3,..., x n . S se modifice vectorul astfel nct n final s avem:
a) x x2, x3,..., x n, x1
b) x x n, x1, x 2,..., x n 1
c) x x 2, x1, x4, x3,..., x n, x n 1 .
24. Un tablou a cu elemente n mulimea 0,1 se numete alternativ dac pentru orice i, a i a i 1 0 . S se
scrie un program care s decid dac un astfel de tablou citit de la tastatur este alternativ sau nu.
Exemplu. Vectorul (1,0,0,3,0,0,0,5) este alternativ ns vectorul (1,0,0,3,4,0,0,0,0,0,3) nu este
alternativ.
25. Se d numrul natural n>1 i vectorul x x1, x 2,..., x n s se verifice dac numerele date sunt n progresie
aritmetic sau geometric i s se dea un mesaj corespunztor.
Exemplu. Vectorul (2,4,6,8,10) este n progresie aritmetic iar vectorul (2,10,50,250,1250,6250) este
n progresia geometric.
26. Fie un vector x de numere ntregi. S se formeze un vector y de numere ntregi, n care yi s fie restul
mpririi lui xi la suma cifrelor lui xi . Restul mpririi se va determina folosind:
a) operatorii al limbajului;
b) scderi repetate.
Exemplu. Pentru x=(12,5,123,85,7,33,12,8,26) se va obine y=(0,0,3,7,0,3,0,0,2).
27. S se afieze elementele prime ale unui ir de n numere ntregi citit de la tastatur.
Exemplu. Pentru vectorul (101,10,3301,1021,5,15,7,91,37,29) se va afia 101, 3301, 1021, 5, 7, 37,
29.
28. Memorai n primele n componente ale unui vector x de numere ntregi, primele n numere prime mai mari dect
999, care citite invers, sunt tot numere prime.
Exemplu. Pentru n=5 se obin numerele 1009, 1021, 1031, 1033, 1061.
29. Cte elemente din tabloul x=(x1,x2,,xn) de numere ntregi au exact k divizori proprii.
Exemplu. Pentru vectorul (1,584,165,45,102,65,47,312,125,945) i k=6 se va afia 3 (numerele 584,
165 i 102 au exact 6 divizori proprii).

45

Tablouri

30. La codificarea unui text scris cu cel mult primele n litere mici ale alfabetului englez, se folosesc cele mai mici n
numere naturale care au exact 3 divizori naturali. Pentru litera a se folosete cel mai mic numr cu proprietatea
respectiv, pentru b cel mai mic numr diferit de cel folosit pentru a, i aa mai departe.
a) S se afieze, separate prin cte un spaiu, cele n numere folosite la codificare.
b) Pentru un text dat de la tastatur, se cere s se afieze codificarea textului, fiecare caracter fiind nlocuit
cu numrul corespunztor i orice dou coduri consecutive vor fi separate printr-un spaiu.
Exemplu. Pentru n=5 i textul abeaab se va afia a) 4, 9, 25, 49, 121; b) 4 9 121 4 4 9.
31. S se calculeze cmmdc(x1,x2,x3,,xn).
Exemplu. cmmdc(2940,882,70,182) este 14.
32. Cte numere perfecte exist n tabloul x=(x1,x2,,xn) de numere ntregi citite de la tastatur. Un numr este
perfect dac este egal cu suma divizorilor si mai mici dect el.
Exemplu. Pentru vectorul (10,5,6,12,8128,5,0,28) se va afia 3 (deoarece 6, 8128 i 28 sunt numere
perfecte).
33. S se afieze valorile ntregi p i q, prime ntre ele astfel nct
i 1, n ,

p a1 a2

...
q b1 b2

an
, numerele ntregi ai, bi ,
bn

dndu-se de la tastatur.

Exemplu. Pentru a=(1,5,3,6,11) i b=(2,4,2,7,4) se obine p=48 i q=7.


34. Cte elemente dintr-un vector de numere ntregi sunt prime cu un numr dat.
Exemplu. Pentru vectorul x=(12,15,254,525,56,125,500,63,48, 912) i numrul 4 se obin 4 numere
(15,525,125,63).
35. Se d un numr ntreg n. S se determine numerele n1 i n2 obinute din cifrele de ordin impar, respectiv par ale
numrului n, n ordinea apariiei lor n numrul n i apoi afieaz suma celor dou numere obinute.
Exemplu. Dac n=32457 se obin numerele 347 i 25 iar suma lor este 372.
36. Cu cte zerouri se termin produsul elementelor xi, i 1, n , ale unui vector de numere ntregi, fr a calcula
produsul.
Exemplu. Pentru vectorul x=(12,15,254,525,56,125,500,105,48, 912) se va afia 10.
37. Scriei un program care elimin toate elementele nule dintr-un vector de numere ntregi.
Exemplu. Dac vectorul iniial este x=(10,0,0,3,0,5,0,9) se va obine x=(10,3,5,9).
38. Se d un vector v cu n elemente numere ntregi. Fr a folosi un vector auxiliar, s se mute la sfritul lui v
elementele sale nule, pstrnd ordinea celorlaltor elemente.
Exemplu. Dac iniial v=(2,3,0,9,0,0,8), n final va rezulta v=(2,3,9, 8,0,0,0).
39. Se consider un ir de n numere reale. S se scrie un program care elimin din ir valorile ce se afl n afara
intervalului [a,b].
Exemplu. Dac vectorul iniial este (2,8,4,6,9,10,3,5,2,10) iar a=3 i b=7 atunci vectorul rezultat va fi
(4,6,3,5).

44

Tablouri

40. S se scrie un program care insereaz ntre oricare dou elemente ale vectorului x de numere reale, media
aritmetic a vecinilor si.
Exemplu. Dac iniial x=(2,5,10,3,7) dup prelucrare x=(2,3.5,5, 7.5,10,6.5,3,5,7).
41. Fiind dat un vector cu n numere reale, s se determine valoarea expresiei e n fiecare din cazurile:
a) e x 1 x 2 ... x n
Exemplu. Pentru x=(10,2,31,335,12,45,26) => e=461
b) e x 1 x 3 ... x
Exemplu. Pentru x=(10,2,31,335,12,45,26) => e=79
c) e x 1 * x 2 * x 3 * ... * x n
Exemplu. Pentru x=(10,2,3,5,12,4) => e=14400
d) e x 1 * x 3 * ...x
Exemplu. Pentru x=(10,2,3,5,12,4) => e=360
e) e= suma cuburilor componentelor negative din vector;
Exemplu. Pentru x=(10,2,-3,-5,12,45,-26) => e=-17728.
f) e=media aritmetic a componentelor impare din vector.
Exemplu. Pentru x=(10,2,3,5,12,45,26) => e=17.6666.
42. Fie a1,a2,,an, n numere reale. Calculai suma
S a12 a22 a32 ... a2n .

Exemplu. Pentru vectorul a=(45,8,1,98,6) se obine suma s=-7606.


43. Fie doi vectori x i y cu n componente numere ntregi fiecare, s se calculeze expresia e dat prin:
a) e x1 y1 x2 y2 ... x n yn
Exemplu. Pentru x=(1,2,3) i y=(4,5,6) se obine e=315.
b) e x1y1 x2y 2 ... x n y n
Exemplu. Pentru x=(1,2,3) i y=(4,5,6) se obine e=32.
c) e x12y1 x22y 2 ... x2n y n
Exemplu. Pentru x=(1,10,2,3) i y=(4,5,6,8) se obine e=600.
d) e min x1, y n min x2, yn 1 ... min xn, y1
Exemplu. Pentru x=(1,10,2,3) i y=(4,5,6,8) se obine e=12.
44. S se calculeze raportul
e

xi
.
xj

i 2k

j 2k 1

45

Tablouri

Exemplu. Pentru x=(2,7,4,54,2,77,12) => e = 6.9.


45. Dndu-se n numere ntregi s se decid dac exist un numr majoritar n aceast secven. Un numr este
majoritar dac numrul su de apariii n vector este mai mare dect n/2.
Exemplu. n vectorul (1,5,3,1,1,1,4) numrul 1 este element majoritar.
46. Fie un ir de n numere reale a1,a2,,an. S se calculeze suma:

a1 a 2
a

... n .
1
2
n
Exemplu. Pentru vectorul a=(45,8,1,98,6) se obine suma s=75.03333.

47. S se determine numrul de componente din vectorul C=(C1,C2,C3,,Cn) aflate ntre dou limite date a i b i
media aritmetic a componentelor aflate n afara intervalului.
Exemplu. Dac C=(2,8,4,6,9,10,3,5,2,10) iar a=3 i b=7 se vor afia valorile 4 i respectiv 6.8333.
48. Se dau doi vectori A, B de lungimi egale cu elemente numere ntregi. S se scrie un program care s calculeze
media aritmetic a tuturor elementelor din A pentru care componentele respective din B sunt numere negative.
Exemplu. Dac A=(1,2,3,4,5,6,7) iar B=(2,5,-3,6,-9,-5,10) se obine media 4.6666.
49. Dndu-se un vector X (citit de la tastatur) s se calculeze vectorul Y tiind c

y1
yn

x1 x 2
2

x n 1 xn
2

y2

x1 x 2 x 3

yn 1

x n 2 xn 1 xn
3

iar y k este media numerelor x k 2,x k 1,x k,x k 1,x k 2 pentru

k 3, n 2 .

Exemplu. Pentru x=(1,5,7,2,8,12,3,90,6,22) => y=(3,4.33,4.6,


6.8,6.4,23,23.8,26.6,39.33,14).
50. Fie vectorul u u1, u2,..., u m cu

ui

1
1
1
.
3i 2 3i 1 3i

S se construiasc vectorul v v 1, v 2,..., v n tiind c v1 S20 , v i S20 5i , i 1,2,..., n unde


Sk u1 u2 ... uk .
Observaie. Se va citi de la tastatur doar valoarea lui n.
Exermplu. Pentru n=5 se va obine vectorul v=(0.1787513,0.1787764,
0.1787818,0.1787853,0.1787877)

51. Se citesc n numere naturale. Aceste numere se mpart n grupe astfel nct n cadrul fiecrei grupe toate numerele
au acelai numr de cifre 1 n reprezentarea n baza 2. Se cere s se afieze mediile aritmetice a numerelor din
fiecare grup.
Exemplu. Pentru n=10 i numerele 92,60,47,16,52,45,65,7,8,87 se obin urmtoarele medii aritmetice: 12,
65,29.5,65.66,67.

44

Tablouri

52. S se calculeze ultima cifr a numrului x[1]+x[2]++x[n], unde x este un vector cu n componente numere
naturale citite de la tastatur.
Exemplu. Pentru n=10 i vectorul x=(92,60,47,16,52,43,65,7,8,87) se obine cifra 7.
53. S se calculeze ultima cifr a numrului x 1 x 2 * x 3 *...* x n , unde x este un vector cu n componente numere
naturale citite de la tastatur.
Exemplu. Ultima cifr a expresiei 5374*683*37*83 este 9.
54. S se scrie un programul pentru calculul coeficienilor de corelaie a dou variabile aleatoare discrete X i X,
unde:
X ia valorile: X[1], X[2], , X[n],
Y ia valorile: Y[1], Y[2], , Y[n],

Observaie: Fie RXY coeficientul de corelaie a lui X i Y. El este definit de formula:


N

X i

MX Y i MY

i1

RXY

X i MX 2

i1

Y i

i1

MY 2

unde MX i MY sunt mediile aritmetice a componentelor din X i Y.


Exemplu. Coeficientul de corelaie pentru variabilele aleatoare x=(4,8,9,2,4) i y=(8,7,3,74,9) este
RXY=-0.6884783.
55. Din irul de numere 1, 2, 3, , n se elimin pe rnd cte un numr formnd un nou ir. Un numr eliminat este
introdus ntr-un al doilea ir, iniial vid, exact n mijlocul acestuia, dac acest lucru este posibil, n caz contrar se
adaug la sfritul irului. Se cere:
a) dndu-se ordinea n care se elimin numerele s se afieze irul final construit ca mai sus;
b) dndu-se ordinea numerelor din irul final, s se determine ordinea n care au fost eliminate numerele din
irul iniial.
Exemplu. Dac n=7 i numerele sunt eliminate astfel 1,3,7,4,2,6,5 atunci irul final va fi 1,7,2,5,3,4,6 i invers.
56. ntr-o grdin zoologic sunt n colivii cu papagali. O maimu jucu trece prin faa coliviilor i deschide toate
uile acestora. Apoi, se ntoarce i nchide uile din dou n dou (ncepnd cu prima colivie). Jocul su se reia
mergnd din trei n trei colivii, nchiznd uile deschise i deschizndu-le pe cele nchise. Apoi maimua merge
din patru n patru, din cinci n cinci, .a.m.d. n final din n n n colivii, ncepnd de fiecare dat cu prima colivie.
S se afieze coliviile rmase deschise.
Exemplu. Pentru un numr de 10 colivii vor rmne deschise coliviile 2,5,10.
57. Se consider n aruncri de zar (generate aleator). Se cere:
a) s se determine de cte ori apare fiecare fa i la a cta aruncare apare prima dat.
b) s se determine toate perechile de forma (Fi,Ki) cu proprietatea c Fi+Ki este un numr par, unde Fi este
numrul feei, iar Ki numrul de apariii a feei Fi.

45

Tablouri

Exemplu. La o rulare a acestui program s-au obinut urmtoarele rezultate ( n a fost generat i el aleator): faa 1 de
4704 ori; faa 2 de 4603 ori; faa 3 de 4596 ori; faa 4 de 4717 ori; faa 5 de 4655 ori; faa 6 de 4714 ori.
Perechile care ndeplinesc condiia de la punctul b) sunt aadar (5,4655) i (6,4714).
58. Se citesc de la tastatur cele n elemente ale unui ir dat de numere ntregi. S se afieze toate perechile de
elemente ale irului (nu neaprat consecutive) cu proprietatea c ambele elemente ale perechii au aceeai sum a
cifrelor.
Exemplu. Pentru vectorul (12,9,54,32,222,49,34,6,1,91) se vor afia perechile (9,54) i (222,6).
59. S se afieze toate tripletele de numere cresctoare de pe poziii consecutive din vectorul x de numere reale.
Exemplu. Pentru x=(2,9,41,61,6,24,84,1,21) se vor afia tripletele (2,9,41),(9,41,61) i
(6,24,84).
60. Fiind dat un vector de numere ntregi, s se afieze de cte ori gsim dou elemente aflate pe poziii consecutive
n vector care s fie egale ntre ele.
Exemplu. Pentru vectorul (1,2,2,3,4,4,4,5,6) se va afia valoarea 3.
61. Fie un vector x de numere ntregi. S se afieze toate tripletele de numere consecutive din x, n care al treilea
numr este restul mpririi primului la al doilea.
Exemplu. Pentru vectorul (21,7,15,4,3,1,45,7,3,1) tripletele cerute sunt (15,4,3), (4,3,1),
(45,7,3) i (7,3,1).
62. Fie un vector x de numere ntregi. S se afieze toate tripletele de numere consecutive din x, n care al treilea este
media aritmetic dintre primul i al doilea.
Exemplu. Pentru vectorul (2,9,3,6,10,3,7,5,6,5) tripletele cerute sunt (9,3,6), (3,7,5) i (7,5,6).
63. Fie un vector x de numere ntregi. S se afieze toate tripletele de numere consecutive din x, n care al treilea este
media geometric dintre primul i al doilea.
Exemplu. Pentru vectorul (1,3,2,5,125,25,4,8,33,8,7) singurul triplet este (5,125,25).
64. Fie un vector x de numere ntregi. S se afieze toate perechile de numere consecutive din x, cu proprietatea c al
doilea este egal cu suma cifrelor primului numr.
Exemplu. Pentru vectorul (124,7,12,3,4,4) perechile cerute sunt (124,7), (12,3), (4,4).
65. Fie un vector x de numere ntregi. S se afieze toate tripletele de numere consecutive din x, cu proprietatea c
ele pot reprezenta laturile unui triunghi.
Exemplu. Singurul triplet din vectorul (12,45,10,5,9,4,51) este (10,5,9).
66. Fie un vector x de numere ntregi. S se afieze toate perechile de numere consecutive din x, cu proprietatea c al
doilea reprezint restul mpririi primului numr la suma cifrelor sale.
Exemplu. Pentru vectorul (124,5,12,44,4,9) se afieaz perechile (124,5) i (44,4).
67. Fie un vector x de numere ntregi. S se afieze toate perechile de numere consecutive din x, cu proprietatea c al
doilea reprezint numrul de apariii ale cifrei 3 n ptratul primului.
Exemplu. Pentru vectorul (361,2,5,1156,4,0) perechile afiate vor fi (361,2),(1156,4),(4,0).
68. Fie un vector x de numere ntregi. S se afieze toate perechile de numere x i, x i 1 cu proprietatea c
x i x i 1 i suma cifrelor lui x i este mai mic dect suma cifrelor lui x i 1 .

44

Tablouri

Exemplu. Pentru vectorul x=(40,76,17,21,55,92,59,33,52,37) se vor afia perechile (92,59) i


(52,37).
69. Fie un vector x de numere ntregi. S se afieze toate tripletele de numere consecutive din x, cu proprietatea c
ele pot reprezenta laturile unui triunghi dreptunghic.
Exemplu. Tripletul (3,4,5) poate reprezenta laturile unui triunghi dreptunghic.
70. Fie un vector x de numere ntregi. S se afieze toate tripletele de numere consecutive din x, cu proprietatea c al
ele pot reprezenta laturile unui triunghi isoscel.
Exemplu. Tripletul (12,20,12) este un triplet care ndeplinete condiiile problemei.
71. Fie un vector x de numere ntregi. S se afieze toate perechile de numere consecutive din x, cu proprietatea c al
doilea reprezint ptratul numrului de apariii ale cifrei 1 n primul.
Exemplu. Pentru vectorul (121,4,89,7,0,111,9) se vor afia perechile (121,4), (7,0), (111,9).
72. Fie un vector x de numere reale. S se afieze soluiile tuturor ecuaiilor de gradul II:
b i c sunt toate tripletele de numere consecutive din x, n care b2 4ac 0 .

a x2 b x c 0 ,

unde a,

Exemplu. Pentru x=(1,-2,1,12,36,5) se va afia 1, -6. (soluiile ecuaiilor x2-2x+1=0 respectiv


x2+12x+36=0)
73. Fie un vector x de numere reale. S se afieze soluiile tuturor ecuaiilor de gradul II:
b i c sunt toate tripletele de numere consecutive din x, n care b2 4ac 0 .

a x2 b x c 0 ,

unde a,

Exemplu. Pentru vectorul x=(41,81,53,60,58,1,81,65,67,53) se vor afia urmtoarele perechi de soluii:


(-0.95,-0.02) corespunztoare ecuaiei 60x2+58x+1=0 i (-80.19,-0.81) care corespund ecuaiei
x2+81x+65=0.
74. Fie un vector x de numere ntregi. S se afieze soluiile tuturor ecuaiilor de gradul I, ax+b=0, unde a i b sunt
toate perechile de numere consecutive din vectorul x, n care b este divizibil cu prin a. Dac un numr este
soluia mai multor astfel de ecuaii se va afia o singur dat.
Exemplu. Dac x=(7,3,8,2,140,20,5,28,7,1) se gsesc soluiile 4 i 7.
75. Fie un vector x de numere ntregi. S se formeze un vector y de numere ntregi, n care yi s fie reprezentarea
n baza 2 a numrului xi .
Exemplu. x=(12,8,3,14,6,21) => y=(1100,1000,11,1110,110, 10101).
76. S se scrie un program care verific dac un vector x cu n componente numere ntregi este o permutare a
mulimii (1,2,3,,n).
Exemplu. Vectorul (2,6,1,4,3,5) reprezint o permutare a mulimii (1,2,3,4,5,6).
77. Fie x un vector care conine o permutare a elementelor 1,2,...,n. Se definete un al doilea vector xcod astfel:
xcod i este numrul de valori din x 1,x 2,...,x i 1 mai mici dect x i . S se scrie un
program care pentru un x dat construiete tabloul corespunztor xcod.
Exemplu. Pentru permutarea (5,3,4,1,6,2) vectorul xcod este (0,0,1,0,4,1).
78. De la tastatur se introduce gradul n al unui polinom i coeficienii ntregi ai acestuia. S se afieze rdcinile
ntregi distincte ale acestui polinom.

45

Tablouri

Exemplu. Polinomul x5+x4-29x3-69x2-84x+180 are ca rdcini ntregi pe 1, -5 i 6 (acestea se afl printre


divizorii ntregi ai termenului liber).
79. O funcie f : 1,2,..., m 1,2,..., n se poate reprezenta n calculator printr-un vector F F1, F2,..., Fm
cu m componente unde Fi f i . S se verifice dac funcia f, dat prin vectorul F este injectiv.
Exemplu. Funcia corespunztoare vectorului (3,8,2,3,6,9) nu este injectiv (f(1)=f(4)), iar funcia
corespunztoare vectorului (1,5,2,8,14) este injectiv.
80. Dndu-se funciile f : 1,2,..., m 1,2,..., n i g: 1,2,..., n 1,2,..., p reprezentate prin vectorii F i
G, Fi f i,Gi g i , s se determine compunerea celor dou funcii date, adic g f .
Exemplu. Dac m=6, n=7, p=8, f=(1,3,2,4,6,3), g=(2,6,1,4,5,8,7) atunci g f =(2,1,6,4,8,1).
81. Se d un ir X de numere ntregi. S se determine mediile v i, i 1,2,..., k . Prin v i s-a notat media numerelor
pozitive cuprinse ntre al (i-1)-lea i al i-lea numr negativ din X, dac exist numere pozitive, respectiv 0 n
caz contrar.
Exemplu. X=(5,-2,3,9,-6,2,6,9,14,-1,3,-4,-7) => V=(5,6, 7.75,3,0).
82. Determinai valoarea unui polinom ntr-un punct. Coeficienii (reali) ai polinomului precum i punctul n care se
calculeaz valoarea polinomului se citesc de la tastatur.
Exemplu. Valoarea polinomului P(x)=x5+2x3+3x+7, memorat folosind vectorul a=(7,3,0,2,0,1) pe punctul
x=1.5 este 25.84375.
83. S se transforme un numr din baza 10 n baza 16, cifrele numrului n baza 16 memorndu-se ntr-un vector.
Exemplu. Pentru n=11224 se obine vectorul cu resturile mpririlor (2,11,13,8), deci numrul n baza 16
este 2BD8.
84. S se calculeze 2n , pentru valori mari ale lui n.
Exemplu. 2100 =1267650600228229401496703205376 adic 31 de cifre.
85. Considernd c cifrele a dou numere sunt memorate n doi vectori x, respectiv y s se calculeze:
a) suma celor dou numere;
b) diferena celor dou numere;
c) produsul celor dou numere.
Exemplu. Numerele 235 i 126 se pot memora astfel: (5,3,2), respectiv (6,2,1). Aceast scriere invers a
cifrelor poate uura foarte mult calculele. Se va obine suma 361, diferena 109 (atenie se va scdea cel mai mic
numr din cel mai mare) i produsul 29610.
86. S se determine numrul de cifre egale cu cifra c (dat de la tastatur) n cadrul numrului n! cu n<=500.
Exemplu. Cifra 2 apare de 3 ori n numrul 13! (13!=6227020800).
87. Se consider doi vectori binari x=(x1,x2,,xn) i y=(y1,y2,,yn) reprezentnd scrierea n baza doi a dou
numere ntregi. S se calculeze i afieze suma i diferena binar acestor numere. (Nu se va folosi scrierea n
baza 10 a numerelor!)
Exemplu. n cazul vectorilor x=(1,1,1,0,1,0,1,0), y=(1,1,0,0) suma binar este
x+y=(1,1,1,1,0,1,1,0), iar diferena binar este x-y= =(1,1,0,1, 1,1,1,0).

44

Tablouri

88. Numerele de la 1 la n sunt aezate n ordine cresctoare pe circumferina unui cerc, astfel nct n ajunge lng 1.
ncepnd cu numrul s, se elimin din cerc numerele din k n k, dup fiecare eliminare cercul strngndu-se.
Care va fi numrul ce va rmne ultimul?
Exemplu. Dac vectorul iniial este (1,2,3,4,5,6,7,8,9,10) iar k=3, s=1 se vor elimina pe rnd numerele
3, 6, 9, 2, 7, 1, 8, 5, 10 i rmne numrul 4.
89. Aceeai problem ca la problema anterioar dar numerele nu se elimin, ci doar se marcheaz, pn unul din ele
va fi marcat de 2 ori. Cte numere au rmas nemarcate?
Exemplu. Dac vectorul iniial este (1,2,3,4,5,6,7,8,9,10), pasul este k=4 iar s=1, se vor marca pe rnd
numerele 4, 8, 2, 6, 10 deci vor rmne 5 numere nemarcate.
90. Se citete de la tastatur un numr natural n. Se cere s se afieze urmtoarele valori:

n e1 1 e2 1... e m 1
n

n
p1 1 p2 1... p m 1
p1 p2...p m

p1e1 1 1 p2e2 1 1
pe m 1 1
... m
p1 1
p2 1
pm 1

unde n p1e1 p2e2...pemm este descompunerea n factori primi a lui n.


Exemplu. Pentru n=4712 gsim =16, =2160, =9600.
91. Fiind dat vectorul x cu n componente s se calculeze sumele:
S1 = x1 + x2 + + xn
S2 = x1x2 + x1x3 + + x1xn + x2x3 + + xn-1xn

Sn = x1x2x3xn.

Indicaie. Se observ ca sumele de mai sus sunt date de relaiile lui Vieta n polinomul (x-x1)(x-x2)(x-xn)
Exemplu. Pentru n=4, x1=4, x2=5, x3=-1, x4=2 se obin sumele S1=10, S2=27, S3=2, S4=-40.
92. Se d un ir de n cifre a=(ai), 1in50. S se scrie un program care calculeaz:
S=a1a2an + a2a3an-1ana1 + + ajaj+1ana1a2aj-1 + + =ana1a2an-2an-1.

Se vor afia i termenii sumei.


Exemplu. Pentru a=(5,6,7,8,9) obinem S=56789+67895+78956+ +89567+95678=388885.
93. Pentru un numr natural n>0, dat de la tastatur s se genereze ntr-un vector x elementele mulimii
A n x 2i3j5k, i, j, k 0 si x n . Vectorul x trebuie obinut ordonat cresctor (nu se va sorta ulterior).

Exemplu. Pentru n=20 vectorul este x=(2,3,4,5,6,8,9,10,12,15, 16,18,20).


94. Memornd coeficienii a dou polinoame sub forma a doi vectori se cere s se determine
a) suma celor dou polinoame
b) produsul polinoamelor
Exemplu. Pentru polinoamele P(x)=x3+2x+5 i Q(x)=x3+5x+7 se obine
P(x)+Q(x)=2x3+7x+12 i P(x)*Q(x)=x6+7x4+12x3+10x2+39x+35.

45

Tablouri

95. Determinai ctul mpririi polinomului P x a0x n a1x n 1 ... an 1x an prin x , folosind schema
lui Horner. Reamintim c schema lui Horner const n urmtorul procedeu:
- Se pun coeficienii polinomului pe prima linie a unui tabel, urmai de valoarea ;
- Se copiaz (coboar) primul coeficient pe linia a doua;
- n continuare, linia a doua se completeaz recurent: pentru a obine o nou valoare, se nmulete cu
ultima valoare determinat i se adun cu numrul aflat deasupra poziiei curente (pe prima linie).
Ultima valoare obinut este restul mpririi celor dou polinoame, iar valorile anterioare, n ordine, reprezint
coeficienii ctului.
Exemplu. Pentru P(x)=2x3-3x2+x-2 i =4 se obine ctul 2x2+5x+21 i restul 82:
2

-3

-2

21

82

=4

96. Se citete de la tastatur un numr natural n. Se cere s se descompun n factori primi acest numr folosind doi
vectori: unul pentru memorarea factorilor primi, iar al doilea cu exponenii corespunztori acestor factori.
Exemplu. Pentru n=4712 cei doi vectori vor fi p=(2,19,31), e=(3,1,1), ceea ce reprezint urmtoarea
descompunere n factori primi: 23*191*311.
97. Se consider irul 1, 2,1, 3,2,1, 4,2,2, 5,4,3,2,1, 6,2,2,3,3,3,.... obinut din irul
numerelor naturale prin nlocuirea fiecrui numr natural printr-un grup de numere, dup urmtoarele reguli:
numrul prim p este nlocuit prin numerele p, p-1, p-2,..., 3, 2, 1, iar numrul compus k este nlocuit
prin k urmat de toi divizorii si proprii, un divizor d repetndu-se de d ori. Dndu-se numrul natural n se cere
s se tipreasc primele n numere din irul dat.
Exemplu. Dac n=10 irul generat va fi (1,2,1,3,2,1,4,2,2,5).
98. Pe un traseu circular se gsesc n depozite de morcovi. Se dau distanele dintre dou depozite consecutive ( 1->2,
2->3, , n-1->n, n->1). Fiecare dintre depozite conine o anumit cantitate de morcovi (posibil zero).
Numrul total de morcovi din cele n depozite ajung unui iepura exact ct poat parcurge tot traseul o singur
dat. Se consider c pentru parcurgerea unui km iepuraul are nevoie s mnnce un morcov pentru a avea
energie suficient. Iepuraul poate mnca orici morcovi. S se determine de la ce depozit i n ce direcie va
pleca iepuraul, astfel nct el s poat reveni la locul de plecare.
Exemplu. Pentru n=5, distanele (12,3,61,10,4) i numrul de morcovi din depozite (0,20,40,0,30) se va
pleca de la depozitul 3 spre depozitul 2, sau de la depozitul 5 spre depozitul 1.
99. Considerm irul de numere naturale:
1; 1,1;

2,1;

1,2, 1,1;

1,1, 1,2, 2,1;

3,1, 2,2, 1,1;

definit astfel:
-

primul grup (subir) este format dintr-un singur 1;

plecnd de la ultimul grup cunoscut, urmtorul grup se construiete prin indicarea perechilor de forma
(factor de repetiie, numr care se repet) referitoare la coninutul grupului de la care s-a plecat. Astfel,
din grupul 1,1,1,2,2,1 se obine 3,1,2,2,1,1 deoarece apar n ordine 3 de 1, 2 de 2 i 1 de 1.

S se genereze primele n componente ale irului definit astfel.

44

Tablouri

100. Cnd dorim s listm o brour cu mai multe foi ndoite la mijloc ordinea de listare este alta dect de obicei. O
astfel de brour are patru pagini pe foaie, cu dou pe fa i dou pe spate. Cnd aezm toate aceste foi n
ordine i ndoim teancul n dou, paginile apar n ordinea corect, ca ntr-o carte obinuit. Problema cere s se
scrie un program care, citind numrul de pagini ce trebuiesc tiprite, genereaz ordinea de tiprire. Eventualele
pagini goale ce trebuie s fie adugate se vor aduga la sfritul crii.
Exemplu. Pentru n=10 paginaia este urmtoarea:
foaia 1: faa: , 1; spatele: 2, ;
foaia 2: faa: 10, 3; spatele: 4, 9
foaia 3: faa: 8, 5, spatele: 6, 7.
101. Un numr de n copii aezai pe un cerc joac urmtorul joc. Pe rnd fiecare din copii spune un numr dup
urmtoarea regul:
-

primul copil spune 1, urmtorii spunnd numrul dinainte +1.

dac unui copil i vine rndul s spun un numr divizibil cu 5, atunci el spune PAS i sensul jocului
se schimb, iar dac numrul este divizibil cu 7 sau are ultima cifr 7 sensul jocului se schimb
deasemenea.

Exemplu. n=4
copilul 1 spune 1
copilul 2 spune 2
copilul 3 spune 3
copilul 4 spune 4
copilul 1 spune PAS se schimb
sensul
copilul 4 spune 6
copilul 3 spune 7 se schimb
sensul
copilul 4 spune 8
copilul 1 spune 9
copilul 2 spune PAS se schimb
sensul

copilul 1 spune 11
copilul 4 spune 12
copilul 3 spune 13
copilul 2 spune 14 se schimb
sensul
copilul 3 spune PAS se schimb
sensul
copilul 2 spune 16
copilul 1 spune 17 se schimb
sensul
copilul 2 spune 18
copilul 3 spune 19
.a.m.d

S se scrie un program, care citete de la tastatur numrul de copii care vor s joace acest joc
i numrul de pai ai jocului i afieaz copiii care au spus PAS. Dac un copil spune PAS de
mai multe ori, el se va afia o singur dat.
Exemplu. Pentru n=10 (copiii) i numrul de pai np=50 se va afia valoarea 2 (doi copii nu au
spus PAS i anume 2 i 8).
102. De la tastatur se citesc cele N elemente ale unui ir de numere. S se scrie un program care
interschimb dou secvene de lungimi L1 i L2 care ncep din poziiile p1, respectiv p2.
Elementele care nu sunt cuprinse n cele dou secvene pot fi mutate astfel nct
interschimbarea s se poat face. Nu se vor folosi vectori auxiliari.
Exemplu. Pentru n=9, irul 1,2,3,4,5,6,7,8,9, P1=2, L1=2, p2=6, L2=3, rezultatul este
1,6,7,8,4,5,2,3,9.
103. Generarea permutrilor. S se scrie un program care genereaz toate permutrile mulimii
{1,2,,n} folosind ordinea lexicografic a acestora.

45

Tablouri

Indicaii. Se pleac de la cea mai mic permutare n sens lexicografic adic (1,2,,n). La un
anumit pas, avnd construit permutarea p=(p1,p2,,pn), pentru a determina urmtoarea
permutare se determin acel indice i pentru care
pi<pi+1

pi+1>pi+2>>pn.

Urmtoarea permutare se obine prin nlocuirea lui pi cu cel mai mic dintre elementele pi+1,
pi+2, , pn care este mai mare dect pi, urmat de inversarea ordinii ultimelor n-i elemente,
nct ele s apar n ordine cresctoare. Dac nu exist nici un indice i ca mai sus nseamn c
s-a obinut permutarea cea mai mare, {n,n-1,,1} i algoritmul se ncheie.
Exemplu. Pentru n=4 permutrile sunt generate n urmtoarea ordine: (1,2,3,4),(1,2,4,3),
(1,3,2,4),(1,3,4,2),(1,4,2,3),(1,4,3,2),(2,1,3,4),(2,1,4,3),(2,3,1,4),(2,3,4,1),(2,4,1,3) etc.
m

104. Generarea combinrilor. Se cere s se genereze toate cele C n submulimi de m elemente ale
mulimii {1,2,3,,n}, cu proprietatea c oricare dou astfel de submulimi difer prin natura
elementelor (nu i prin ordinea lor). Se va folosi generarea n ordine lexicografic a acestor
submulimi.
Indicaii. Se vor genera deci toi vectorii v=(v1,v2,,vm) care satisfac relaia
1<=v1<v2<<vm<=n.
Se pleac de la vectorul cel mai mic n sens lexicografic adic (1,2,,m). La un anumit pas, fiind
dat vectorul v=(v1,v2,,vm), vectorul care-i urmeaz n sens lexicografic se determin astfel: se
determin cel mai mare indice i satisfcnd relaiile
vi<n-m+i
vi+1=n-m+1,,vm-1=n-1, vm=n.
Urmtorul vector va fi v=(v1,v2,,vi-1,vi+1,vi+2,,vi+n-i+1). Dac nu exist nici un astfel de
indice i nseamn c v=(n-m+1,n-m+2,,n) adic au fost generate toate combinrile de m elemente
ale mulimii {1,2,,n}.
Exemplu. Pentru n=5 i m=3 combinrile se vor genera n urmtoarea ordine: (1,2,3) (1,2,4) (1,2,5)
(1,3,4) (1,3,5) (1,4,5) (2,3,4) (2,3,5) (2,4,5) (3,4,5).
m

105. Generarea combinrilor. Se cere s se genereze toate cele C n submulimi de m elemente ale
mulimii {1,2,3,,n}, cu proprietatea c oricare dou astfel de submulimi difer prin natura
elementelor (nu i prin ordinea lor). De aceast dat se va folosi reprezentarea submulimilor
unei mulimi prin vectori caracteristici. Astfel o submulime S a mulimii A={1,2,,n} va fi
reprezentat prin vectorul caracteristic v=(v1,v2,,vn) unde vi=1 dac i face parte din
mulime, respectiv vI=1 dac i nu aparine mulimii.
Vectorii v se vor genera n ordine lexicografic, plecnd de la vectorul v=(0,0,,0,1,1,,1) n
care primele n-m componente sunt nule iar urmtoarele m componente sunt egale cu 1.
Exemplu. Pentru n=5 i m=3 combinrile se genereaz n acest caz n ordinea (3,4,5) (2,4,5)
(2,3,5) (2,3,4) (1,4,5) (1,3,5) (1,3,4) (1,2,5) (1,2,4) (1,2,3).
m

106. Generarea aranjamentelor. Se cere s se genereze toate cele A n submulimi de m elemente


ale mulimii {1,2,3,,n}, cu proprietatea c oricare dou astfel de submulimi difer fie prin
natura elementelor fie prin ordinea lor acestora. Generarea aranjementelor se va face folosind
ordinea lexicografic.
Indicaie. Se pleac de la aranjamentul {1,2,,m}, cea mai mic n sens lexicografic. Avnd
un aranjament a=(a1,a2,,am) pentru a determina succesorul su, n ordine lexicografic,

44

Tablouri

cutm cel mai mare indice i cu proprietatea c ai poate fi mrit (adic mcar una din valorile
ai+1, ai+2,,n este disponibil). Dac exist un astfel de indice, aranjamentul urmtor este
obinut din a prin nlocuirea elementelor ai, ai+1, , am cu cele mai mici numere disponibile
n ordine cresctoare.
Exemplu. Pentru n=5 i m=4 aranjrile se vor afia n urmtoarea ordine: (1,2,3,4) (1,2,3,5)
(1,2,4,3) (1,2,4,5) (1,2,5,3) (1,2,5,4) (1,3,2,4) (1,3,2,5) (1,3,4,2)
(1,3,4,5) (1,3,5,2) etc.
107. Un numr de n (n100) celule sensibile sunt aezate n cerc, fiecare comunicnd cu cei doi
vecini ai si. O celul se poate gsi n dou stri: excitat sau linitit. Dac o celul este
excitat la un moment dat atunci ea emite un semnal care ajunge dup un timp scurt (s zicem
o milisecund) la cele dou celule vecine cu ea. Fiecare celul este excitat atunci i numai
atunci cnd la ea ajunge un semnal de la una dintre celulele vecine; dac semnalele ajung
deodat din amndou prile, atunci ele se anuleaz i celula nu se mai excit. Dndu-se o
configuraie iniial de celule excitate i linitite, se cere s se determine configuraia dup n
pai.
Exemplu: Dac configuraia iniial este 10011010100110101001101 atunci configuraia
dup 10 pai va fi: 10101010000000001010101.

Maxime i minime

108. Se dau doi vectori x, y cu n componente (1n100). Primul conine nume de elevi, iar al
doilea notele la informatic. Se cere s se afieze numele elevilor cu nota cea mai mic. Dac
mai muli elevi au aceast not minim se vor afia toi.
Exemplu. Dac x=(Ionescu, Iliescu, Antonescu, Popescu, Ptrulescu,
Piscupescu) iar y=(6,5,9,10,5,7) se va afia: Iliescu, Ptrulescu.
109. S se realizeze programul pentru determinarea elementului maxim i a tuturor poziiilor unde
apare el ntr-un vector A de numere ntregi cu dimensiunea N.
Exemplu. Elementul maxim din vectorul (2,7,3,57,2,50,57,57,4,9) este 57 i se
gsete pe poziiile 4, 7, 8.
110. S se determine elementele cu numr maxim de divizori i elementele cu numr minim de
divizori dintr-un vector x de numere ntregi.
Exemplu. Pentru vectorul x=(59,748,15,665,12,4,7,99,68,74) componentele cu
numr minim de divizori (2) sunt 59 i 7 iar cu numr maxim de divizori este numrul 748
(12 divizori).
111. Se dau coordonatele a n puncte n plan (xi,yi), i 1, n . S se afieze lungimea celui mai
lung segment i coordonatele capetelor acestui segment.
Exemplu. Dac punctele sunt (1,8), (4,5), (4,2), (4,9), (3,9) atunci segmentul de
lungime maxim va avea capetele de coordonate (4,2) respectiv (3,9) i va avea lungimea
7.07.
112. Dndu-se un vector cu n componente numere ntregi, s se determine cele mai mici trei valori
pozitive i cele mai mari trei valori negative. Nu se va folosi nici o metod de sortare i nu se
vor modifica valorile componentelor din vector.

45

Tablouri

Exemplu. Dac vectorul dat este (-37,87,84,-65,-18,-90,93,-76,91, -3,-6,14,41,-27,61,-49,-45,51,62, 38) atunci cele mai mici trei valori pozitive sunt: 38,
41, 51 iar cele mai mari trei valori negative: -14, -6, -3.
113. Se d un vector coninnd litere. S se afieze frecvena apariiei fiecrei litere n vector (nu se
face distincie ntre literele mari i cele mici) i literele cu cea mai mare frecven, respectiv
cea mai mic frecven de apariie.
Exemplu. Pentru vectorul x=(A,c,e,a,s,t,a,e,
s,t,e,o,P,R,O,B,L,E,M,A,I,n,
t,e,r,e,s,a,n,t,a,d,e,L,U,C,
R,U,C,u,v,e,c,t,o,r,s,I,a), litera care apar cel
mai des n vector este E iar literele cele mai rar ntlnite sunt B, D, M, P, V.

114. Se citete un vector cu n componente numere ntregi. S se determine cel mai mare numr
raional subunitar, n care numitorul i numrtorul aparin tabloului.
Exemplu. X=(2,1,3) => 2/3
115. Se citete de la tastatur un ir cu n elemente numere naturale, nu neaprat distincte. S se
afieze elementul care apare de cele mai multe ori n ir. Dac exist mai multe astfel de
elemente, se vor afia toate.
Exemplu. Pentru n=8 i elementele (23,7,11,7,19,7,11,11) se vor afia elementele 7 i
11 care apar fiecare de cte trei ori.
116. Se consider n stlpi de nlimi h(1), h(2), , h(n) metri. La baza fiecrui stlp se afl
cte un melc codificat prin numrul stlpului. Fiecare melc i urc ziua p(i) metri i coboar
noaptea q(i) metri (p(i)>q(i)). S se afieze melcii n ordinea n care ating vrfurile
stlpilor. Se va considera c melcii care ajung n aceeai zi n vrf ajung simultan.
Exemplu. Pentru h=(10,5,8,3,25,7,9), p=(2,3,2,4,5,3,2), q=(1,2,1,3,1,2,0)
melcii sosesc n urmtoarea ordine: 4, 2, 6, 7, 5, 3, 1.
117. Se d un vector cu n componente numere ntregi. S se determine diferena maxim dintre
dou elemente consecutive ale acestui vector.
Exemplu. Dac x=(15,36,94,15,64,32,245,11,260,33,56) diferena maxim este
249.
118. Se citesc vectorii A cu n elemente i B cu m elemente. S se determine care elemente din A sunt
mai mici dect toate elementele din B.
Exemplu: Dac a=(4,8,1,9,5,11,3,43,6,20) i b=(9,9,6,9,9,8, 6,9), atunci
numrul cutat este 4, deoarece valorile 4,1,5 i 3 sunt mai mici dect toate elementele lui b.
119. S se determine vectorul y cu componentele yi,i 1,2,..., n , unde yi este poziia
valorii minime din irul xi,xi 1,..., x n .
Exemplu. Pentru vectorul x=(9,4,3,8,5,1,6,2,7,10) se obine vectorul
y=(6,6,6,6,6,6,8,8,9,10).
120. Se citete de la tastatur un vector de n numere ntregi i o poziie p. Toate elementele de la
dreapta poziiei p se adun la elementele aflate la stnga poziiei p la aceeai distan fa de
poziia p, ele devenind nule. Un element aflat la dreapta poziiei p i care nu are corespondent

44

Tablouri

la stnga lui p rmne nemodificat. S se determine poziia/poziiile elementului/elementelor


maxime din vectorul obinut.
Exemplu. Pentru x=(15,36,94,15,64,32,245,11,260,33,56) i p=4 rezult
x=(260,68,158,15,0,0,0,11,260,33,56) iar poziiile elementului maxim n acest
vector sunt 1 i 9.
121. S se determine cel mai mic numr prim aflat pe poziii pare n vector. Dac nu exist un
astfel de numr se va afia un mesaj corespunztor.
Exemplu. Dac x=(9,31,38,5,62,44,38,17,19,38,50,74) obinem minimul 5. Pentru
vectorul x=(9,4,62,81,31,74,697,26,12,351) nu exist un astfel de numr.
122. Fie un vector x de numere ntregi. S se determine un numr p, care s fie cel mai mare numr
prim din cadrul vectorului. Dac nu exist numere prime n vectorul x atunci p va fi egal cu 0.
Dac p nu este 0, atunci s se mpart (ca numere ntregi) toate componentele lui x la suma
cifrelor lui p.
Exemplu. Dac iniial x=(9,4,62,81,31,74,697,26,12,351) atunci p=31 iar vectorul
va deveni x=(2,1,15,20,7,18,174,6,3,87).
123. Se consider un ir de n numere reale. S se scrie programul care determin elementul maxim
din subirul format din termenii de rang impar ai irului iniial i elementul minim din subirul
format din termenii de rang par ai irului iniial precum i rangurile pe care apar aceste
elemente n ir.
Exemplu. Dac vectorul este (2,84,9,1,2,6,48,312,4,78) atunci minimul cerut este 1,
iar maximul este 48.
124. Se consider un ir de n numere ntregi, nu toate egale i fie m un numr natural dat, m2. Se
mparte intervalul (min,max) n m subintervale de lungime egal, unde min i max reprezint
valoarea minim i respectiv maxim din ir. S se determine cte din elementele irului se
afl n fiecare interval (intervalele se consider deschise).
Exemplu. Pentru vectorul (5,9,4,3,4.1,6,7,8,9,5,5.4) i m=5 se obin intervalele
(3,4.2), (4.2,5.4), (5.4,6.6), (6.6,7.8), (7.8,9) n care se gsesc 2, 2, 1, 1, i
respectiv 1 elemente.
125. S se formeze vectorul z cu componentele:

max

x 1 x 2 ... x i
,y i
i

daca y i 0

max x ,y 1 y 2 ... y i
i
i

daca y i 0

zi

pentru i=1,2,...,n, unde n N , xi R i yi R se citesc de la tastatur.


Exemplu. x=(-5,6,-7,-9,9,41,25,31,-7,-41), y=(98,74,-1,20, 0,4,-33,7,5,-9) implic z=(98,74,57,20,0,5.833,25,31, 9.3333,15.1).
126. S se scrie un program care calculeaz maximul dintre elementele pare ale unui vector de
numere ntregi.

45

Tablouri

Exemplu. Elementul maxim par din vectorul (22,55,94,19,32,11,14, 66,70,33) este


94.
127. Dndu-se irul X cu n componente reale, s se determine i s se afieze irul Y definit prin:

max Xj Xj 0,j 1,i

Yi X X X
i
1 2
i

daca i este par


, i=1,2,...n.

daca i este impar

Exemplu. Dac X=(10,6,37,73,33,87,70,93,63,91) se obine vectorul


Y=(10,10,17.6666,73,31.8,87,45.1428,93,52.4444,93).

x1,x2,...,x n i
y1,y2,...,y n . S se calculeze vectorul c astfel:

128. Se d n N i vectorii x

x 1 x 2 ... x i

c i max x i,y 1,y 2,..., y i


min x , x ,...,x ,y
i i1
n i

daca x i y i 0
daca x i y i 0 , i=1,2,,n.
daca x i y i 0

Exemplu. Dac x=(5,-2,3,6,-4,8,-2,10,-3) i y=(2,-3,-5,7,9,0, -4,0,-10)


atunci c=(-4,-4,2,-4,1.6,9,-4,10,-10).
129. Dndu-se

n N i

xi,yi R pentru

i 1, n

s se calculeze:

E x1 y1 x2 y2 ... xn y n

xi
y *y 1
i
i

i ci

max xi, y1, y2,..., yi

min xi, xi 1,..., xn, yi

daca xi yi E
daca xi yi E .
daca xi yi E

Exemplu. Dac x=(5,-2,3,6,-4,8,-2,10,-3) i y=(2,-3,-5,7,9,0, -4,0,-10)


atunci c=(1,-0.2,0,1154,0.12,-0.0488,8,-0.1176, 10,-0.0297).
130. Se dau

x1,x2,...,x n i
y1,y2,...,y n , xi,yi R , i 1, n i se cere s se calculeze i s

n N i vectorii x

se afieze pe ecran componentele vectorului c unde:

44

Tablouri

max x1, x2,..., xi

ci max min x1, x2,..., xi , 0


min y , y ,..., y
i i1
n

daca xi yi
daca xi yi , i=1,2,,n.
daca xi yi

Exemplu. Dac x=(5,2,3,7,4,-2,3,9,12,4), y=(10,4,3,2,4,5,3, -6,2,3) atunci


c=(5,5,2,-6,2,7,0,-6,2,3).
131. Se consider un ir cu n numere naturale. Se cere s se afieze un numr din ir care are n
scrierea sa ct mai multe cifre distincte. Dac exist mai multe numere cu aceast proprietate
se va afia primul dintre ele.
Exemplu. Pentru x=(54,12221,123,33,94) numrul cerut este 123.
132. Se dau a R,n N i perechile xi, yi , i=1,2,...,n, de numere reale. S se
calculeze numrul m al valorilor yi mai mari dect a i

x1 x 2 ... x i

zi max0, x i, y i

x 1 y 1 x 2 y 2 ... x i y i

daca i m
daca i m .
daca i m

Exemplu. Dac x=(2,8,3,6,10,5,8,3,4,1) i y=(5,2,13,8,6,-5, 14,3,7,1) iar


a=5 obinem m=5 i z=(2,5,4.3333,4.75,10,35, 41,41,44,44).
133. Se consider un ir cu n numere naturale. Se cere s se afieze un numr din ir pentru care
restul mpririi sale la un numr m dat de la tastatur este minim.
Exemplu. Pentru vectorul x=(12221,54,123,33,94) i m=25 numrul cerut este 54.
134. S se calculeze:

x1 x2 ... xi

zi 0

max yi , yi 1 ,.., yn

daca xi yi
daca xi yi
daca xi yi

pentru i=1,2,...,n, unde n N i x i R, y i R se citesc de la tastatur.


Exemplu. Dac x=(5,2,3,7,4,-2,4,9,12,4) iar y=(10,4,3,-2,-4, 5,4,-6,3,2)
rezult z=(5,3.5,0,6,6,3.1666,0,6,3,2).

45

Tablouri

3.1.1. Cutri de elemente

135. Cte din elementele vectorului x=(x1,x2,,xn) de numere ntregi sunt numere Fibonacci.
Exemplu. n vectorul x=(5,10,1,7,9,8,1,6,55,19) sunt 5 numere Fibonacci.
136. Scriei un program care verific dac o valoare x se gsete sau nu printre cele n elemente ale
unui ir dat, afind un mesaj corespunztor. Valorile lui n i x, precum i elementele irului
se citesc de la tastatur. Se vor considera urmtoarele situaii:
a) Se consider irul nesortat;
b) irul se consider sortat iar cutarea se va face folosind algoritmul de cutare binar.

Exemplu. a) Dac irul este (5,10,1,7,9,8,1,6,55,19) atunci x=33 nu se gsete n


ir.

b) Dac irul este (2,3,6,9,18,23,55,87,102) atunci x=87 se gsete pe poziia 8.


137. S se scrie un program care verific dac un numr a citit de la tastatur se gsete printre
elementele de pe poziiile pare ale unui vector x. Se vor considera urmtoarele cazuri:
a) se va face o cutare binar, presupunnd c vectorul este sortat cresctor iar numerele
din vector sunt distincte dou cte dou;
Exemplu. n vectorul (2,3,4,5,6,7) numrul 6 nu se gsete pe poziiile pare.
b) vectorul nu este sortat cresctor, deci se va face o cutare secvenial.
Exemplu. n vectorul (54,12,75,3,45,44,1) numrul 12 se gsete pe poziia 2 iar 75 sau
22 nu se gsesc pe poziiile pare.
138. S se verifice dac un vector reprezint o mulime (n sensul cunoscut de la matematic, adic
numerele sunt distincte dou cte dou), dac nu s se transforme acest vector n mod
corespunztor.
Exemplu. Vectorul x=(1,2,9,4,2,6,5,1,20,3) nu este mulime. Prin transformarea
acestuia n mulime se gsete x=(1,2,9,4,6,5,20,3).
139. Se dau dou iruri de numere ntregi, cu cte n elemente fiecare. Scriei un program care
testeaz dac elementul maxim al primului ir se gsete n cel de-al doilea ir, tiprind TRUE
sau FALSE. Se vor considera urmtoarele situaii:
a) Se consider vectorul al doilea nesortat;
Exemplu. Dac a=(1,9,4,3,7) iar b=(666,26,6,1,12,235,9, 78,94,101), maximul
din a (9) se gsete n b pe poziia 7.
b) Vectorul al doilea se consider sortat iar cutarea se va face folosind algoritmul de
cutare binar.
Exemplu. Dac a=(1,9,4,3,7) iar b=(1,6,9,12,26,78,94,101, 235,666) maximul
din a (9) se gsete n b pe poziia 3.

44

Tablouri

140. O funcie f : 1,2,..., m 1,2,..., n se poate reprezenta n calculator printr-un vector


F F1, F2,..., Fm cu m componente unde Fi f i . S se verifice dac funcia f este
surjectiv.
Exemplu. Funcia f:{1,2,3,4,5,6,7,8,9,10}{1,2,3,4} definit prin vectorul
F=(1,2,4,2,1,1,1,4,2,2) nu este surjectiv pentru c nu exist nici un
i{1,2,3,4,5,6,7,8,9,10} astfel nct f(i)= =3{1,2,3,4}.
141. Se dau m, n N i mulimile A a1, a2,..., a m i B={b1,b2,,bn} memorate ca vectori.
S se scrie cte un program care calculeaz:
a) C A B ;
b) C A B
c) C A B
Vectorii A i B se consider nesortai.
Exemplu. Dac A=(1,5,2,9,12) i B=(5,3,4,6,33,99,12,64) atunci a) C=(5,12); b)
C=(1,5,2,9,12,3,4,6,33,99,64); c) C=(1,2,9).

Subiruri de elemente

142. Se d un vector de numere ntregi pozitive de cel puin dou cifre fiecare. S se determine cea
mai lung subsecven de elemente consecutive prime, ale cror oglindire sunt tot numere
prime.
Exemplu. Dac vectorul este (51,48,11,971,44,19,181,751,347, 33,929,359)
secvena cerut este 181, 751, 347.
143. Se d un vector de numere ntregi. Se cere s se afieze subsecvena palindromic de lungime
maxim. (elementele subsecvenei sunt elemente consecutive n vector).
Exemplu. Dac vectorul dat este (1,12,31,12,1,5,13,27,4,4,27,13,
9,26,9,13,27,4) atunci secvena palindromic de lungima maxim este
(4,27,13,9,26,9,13,27,4).
144. Se d un ir de numere. Gsii un subir de lungime maxim care ncepe i se sfrete cu
acelai numr.
Exemplu. Pentru vectorul (57,55,24,9,50,74,3,98,4,86,48,75,88,
86,29,88,16,82) secvena cerut este (86,48,75,88,86).
145. Se dau dou iruri de numere ntregi x cu nx elemente i y cu ny elemente, unde nx>ny. S se
decid dac y este un subir al lui x, adic dac exist un numr k astfel nct
x k y1, x k 1 y2, ... , x k ny 1 y ny .

Exemplu. Dac x=(2,7,3,9,10,4,5,8,6,1,9) atunci irul y=(9,10,4) este subir al lui


x dar y=(4,5,6,9) nu este subir al lui x.

45

Tablouri

146. Definim noiunea de pant ca fiind o secven de elemente consecutive din vectorul A astfel
nct a[i]=a[i-1]+1. S se determine panta de lungime maxim.
Exemplu. n vectorul (1,2,3,8,6,7,10,11,12,13,3,1,4,5) panta de lungima maxim
este (10,11,12,13).
147. Fie un tablou a : array 0..n 1 cu elemente de tip ntreg cu proprietatea
a 0 a 1 ... a n 1 . Un platou este o subsecven maximal de elemente consecutive
n tablou care conin aceeai valoare. Lungimea unui platou este numrul de elemente ce
compun platoul. S se scrie un program care afieaz lungimea p a celui mai lung platou.
Exemplu. Pentru a=(2,4,4,4,5,6,8,8,8,8,9,9,10,14,14,15,16, 16,16,17) cel
mai lung platou ncepe n poziia 7 i are lungimea 4.
148. Se consider un ir de n numere naturale mai mici dect 32000. Se cere s se determine o
succesiune cu numr maxim de elemente din ir, care are proprietatea c fiecare component a
succesiunii are acelai numr de cifre distincte n scrierea sa.
Exemplu. Pentru vectorul (55,8,37,949,26,2213,157,38,2) secvena cerut este
(37,949,26).
149. Pentru un vector x de n numere ntregi dat, s se afieze o secven (dac exist) de elemente
consecutive din vector pentru care suma elementelor se divide cu n.
Exemplu. Pentru vectorul (89,54,4,63,96,17,98,6,55,60) cea mai lung secven care
ndeplinete condiia cerut este (63,96,17,98,6).
150. Se dau doi vectori A cu m componente i B cu n componente (n>m). Componentele ce
formeaz vectorul A sunt distincte dou cte dou. S se scrie un program care s verifice dac
toate componentele vectorului A luate n orice ordine se gsesc n vectorul B pe poziii
consecutive. Dac testul este reuit s se afieze fiecare poziie din vectorul B unde ncepe
secvena de elemente din A.
Exemplu. Dac A=(3,4,5,6) i B=(2,5,6,4,3,9,3,12) atunci vectorul A se gsete n B
ncepnd cu poziia 2.
Sortri i interclasri

151. Sortarea prin metoda bulelor. Metoda const n parcurgerea vectorului, interschimbnd
valorile adiacente din vector atunci cnd acestea nu se afl n ordinea dorit. Atunci cnd n
urma unei astfel de treceri prin vector nu s-a fcut nici o interschimbare nseamn c vectorul
este sortat. S se scrie un program care sorteaz cresctor un vector cu n componente numere
ntregi folosind aceast metod.
152. Sortarea prin amestecare. Este o variant uor mbuntit a metodei bulelor. Ea const n
efectuarea de treceri alternative n direcii opuse. Se poate observa c la parcurgerea de la
stnga la dreapta valorile mari (n cazul sortrii cresctoare) migreaz spre dreapta iar la
parcurgerea de la dreapta spre stnga cele mici migreaz spre stnga.
153. Metoda bulelor cu santinel. Este asemntoare cu metoda bulelor. Diferena const c la
fiecare pas se memoreaz poziia n care a avut loc ultima interschimbare. La pasul urmtor

44

Tablouri

trecerea n vector se face doar pn la aceast poziie (numit santinel), restul elementelor
fiind evident sortate.
154. Sortarea prin selecie direct. La pasul i al algoritmului (i=1,2,,n, unde n este lungimea
vectorului) al acestei metode se determin
xk=min{xi,xi+1,,xn}

i se aduce aceast valoare pe poziia xi, prin interschimbarea valorilor xi i xk.


155. Sortarea prin numrare. Const n a numra pentru fiecare element xi cte elemente mai mici
dect el exist n vector; numerele obinute se memoreaz ntr-un vector c. Pe baza lui vom
rearanja elementele lui x astfel: elementul x[i] trebuie pus pe poziia c[i]+1.
Atenie! Acest algoritm funcioneaz corect doar pentru valori distincte n vector. El poate fi
ns modificat pentru a funciona i pentru cazul general. Cum?
156. Se citesc n numere ntregi. S se afieze cel mai mare numr obinut din prima cifr a fiecrui
numr.
Exemplu. 900, 265, 75 => 972.
157. Cunoscnd numele, nlimea i greutatea a n elevi (1n100) s se afieze numele acestora
n ordinea descresctoare a nlimii. Dac exist doi elevi cu aceeai nlime se va afia
primul cel care are greutatea mai mare.
Exemplu. Dac numele elevilor sunt (Florin, Emilia, Eduard, Alina, Marius),
nlimile lor sunt (130,133,130,145,123) iar greutile lor sunt (30,25,29,34,26) atunci
elevii se vor afia n ordinea Alina, Emilia, Florin, Eduard, Marius.
158. Construii un algoritm care determin i afieaz cel mai mare numr care se poate forma
avnd exact aceleai cifre ca i un numr natural n citit de la tastatur (n999.999.999).
Scriei programul corespunztor.
Exemplu. Pentru n=306, cel mai mare numr natural avnd aceleai cifre ca i n este 630.
159. Se consider un vector coninnd doar elemente 0 i 1. S se ordoneze acest vector
parcurgndu-l o singur dat i fr a folosi ali vectori.
Exemplu. Pentru vectorul (1,1,0,0,0,1,0,0,1,1,1,0,1,0,0) se va obine
(0,0,0,0,0,0,0,0,1,1,1,1,1,1,1).
160. Se citesc de la tastatur n numere naturale. Se cere s se sorteze irul n ordinea cresctoare a
numrului de apariii a cifrei 1 n reprezentarea n baza 2 a numerelor. n cazul n care dou
numere au acelai numr de cifre egale cu 1 n reprezentarea lor binar atunci ele vor aprea n
ordinea n care sunt citite de la tastatur.
Exemplu. Vectorul (5,32,71,1,14,13,67,82,35) va fi dup sortare
(32,1,5,14,13,67,82,35,71).
161. Fiind dat vectorul x cu n componente numere ntregi s se ordoneze cresctor primele k
numere i descresctor celelalte numere, pentru k dat, k 1,2,3, ,n .
Exemplu. Pentru x=(45,95,12,34,2,154,26,24,132,14,453) i k=4 se obine
x=(12,34,45,95,453,154,132,26,24,14,2).
162. Se consider tipul Culoare definit prin:
type Culoare=(rosu, galben, albastru);

45

Tablouri

i un tablou u:array1..n of Culoare. Se presupune n1. Se cere s se scrie un program


care afieaz tabloul u cu valorile rearanjate prin interschimri astfel nct elementele egale cu
galben s se gseasc dup elementele egale cu rou i naintea celor egale cu albastru.
Exemplu. Dac vectorul este x=(albastru,rosu,rosu,galben,rosu, albastru) se
obine x=(rosu,rosu,rosu,galben,albastru, albastru).
163. Se dau dou mulimi prin intermediul a doi vectori, x i y, cu n (1n100) componente
ntregi. Se cere s se verifice dac aceste mulimi sunt proporionale. n caz afirmativ se va
afia i irul de rapoarte egale.
Exemplu.
Pentru n=3 i mulimile
20 2 4
3 6 30

Se va afia
Mulimi proporionale
2/3=4/6=20/30

164. Se d un ir de numere ntregi. S se ordoneze irul astfel nct primele poziii s conin
componentele pare ordonate cresctor, iar apoi s conin componentele impare ordonate
descresctor.
Exemplu. Dac vectorul iniial este (45,30,3,154,23,2,28,14,453) dup sortare se
obine (2,14,28,30,154,453,45,23,3).
165. Dndu-se un vector cu maxim 100 de numere naturale, s se localizeze elementul maxim i
toate elementele dinaintea lui s se ordoneze cresctor, iar cele de dup el, descresctor.
Exemplu. Dac vectorul iniial este (3,1,9,4,100,2,36,1,4,9,5) dup sortare se va
obine (1,3,4,9,100,36,9,5,4,2,1).
166. Se consider un vector coninnd n (n<=100) numere naturale cu valori cuprinse ntre 1 i
60000. S se alctuiasc un program care s ordoneze cresctor doar numerele pare din
vector, fr ns a afecta poziiile pe care sunt situate numerele impare. Programul va afia pe
ecran vectorul obinut dup ordonare.
Exemplu. X=(11,40,32,44,3,13,8,17) => x=(11,8,32,40,3,13, 44,17).
167. Se consider un vector cu n componente. tiind c el conine dou subsecvene de numere
ordonate cresctor, s se ordoneze ntregul vector prin interclasarea celor dou subsecvene.
Exemplu. X=(1,3,5,7,20,4,9,11,44,60) => X=(1,3,4,5,7,9,11, 20,44,60)
168. Se d un ir de numere, scrise ntr-o ordine aleatoare. Ele reprezint rezultatele pariale ale
unor operaii de adunare cu numere naturale. Printre numere se gsete i numrul de la care sa plecat iniial. S se reconstituie exerciiul folosind numerele date.
Exemplu. Dac numerele date sunt: 12, 6, 23 atunci exerciiul este urmtorul: 6+6=12;
12+11=23.
169. Se d un vector cu elemente avnd doar valorile 1, 2, 3. Vectorul se consider ordonat
parial: primele k-1 poziii sunt ocupate de elemente egale cu 1, poziiile de la k la l-1 de
elemente egale cu 2, poziiile de la l la m-1 de elemente egale cu 3, iar poziiile de la m la n
de elemente neordonate (1<=k<=l<=m<=n, n,m,k,l dai). S se scrie un program care
sorteaz vectorul dat. Sortarea se va face prin interschimbarea valorilor ntre ele. Valoarea
unui element se analizeaz o singur dat. n afara celor n locaii pentru irul dat, nu se va
folosi nici o variabil auxiliar pentru interschimbarea valorilor ntre ele.

44

Tablouri

Exemplu. Dac iniial vectorul este: (1,1,1,1,2,2,2,2,2,2,3,3,2,3, 1,3,2,2,3),


adic n=19, k=5, l=11, m=13, atunci n final ordinea acestor pioni va fi
(1,1,1,1,1,2,2,2,2,2,2,2,2,2,3,3,3,3,3).
170. Se dau m, n N i mulimile A a1, a2,..., a m i B={b1,b2,,bn} memorate ca vectori.
S se scrie cte un program care calculeaz:
a) C A B
b) C A B
c)

C A B

Cei doi vectori se consider sortai cresctor.


Exemplu. A=(1,5,7,9,10), B=(5,6,9,12,14) se obine
a) C=(5,9);
b) C=(1,5,6,7,9,10,12,14);
c) C=(1,7,10).
171. S se ordoneze cresctor un vector conform urmtoarelor reguli:
- se ordoneaz cresctor prima treime a vectorului folosind inseria direct;
- se ordoneaz cresctor a doua treime a vectorului folosind metoda bulelor;
- se ordoneaz descresctor ultima treime a vectorului folosind selecia direct;
- se interclaseaz cele trei segmente sortate ale vectorului.
Se vor folosi maxim doi vectori.
Exemplu. Dac iniial vectorul era (1,5,2,4,3,9,6,7,15,8,3,13) dup cele trei sortri
intermediare vectorul va fi (1,2,4,5,3,6,7,9,15, 13,8,3) iar dup interclasarea celor
trei secvene (1,2,3,3,4,5,6,7,8, 9,13,15).
172. Se citete de la tastatur un ir de n numere naturale cuprinse ntre 1 si 60000. Se cere
ordonarea cresctoare a acestui ir folosind urmtoarea operaie: se fixeaz un element al
irului i apoi se oglindesc secvenele din stnga i din dreapta lui. De exemplu, dac n irul
(6 5 7 8 9 4 6 5) se fixeaz elementul de pe poziia 4 se va obine irul (7 5 6 8 5 6
4 9) adic se oglindete irul (6 5 7) i irul (9 4 6 5), iruri aflate n stnga i respectiv
n dreapta elementului de pe poziia 4. Se pot fixa i elementele fictive de pe poziiile 0 si
n+1.
S se afieze toate poziiile care s-au fixat pentru a ajunge la soluie. Numrul acestor poziii
fixate trebuie s nu fie mai mare dect 3n.
Exemplu. Pentru irul (4,20,5,50,25) poziiile fixate sunt (4,5,5,6,4, 5,5,6,5,6).

45

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