Sunteți pe pagina 1din 31

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
( ) 5 , 4 , 2 , 23 , 1
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 (1 n 100) 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.
44
Capitolul 3 - Tablouri
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 componente negative pe poziiile impare iar produsul lor este
-12210.
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).
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).
45
Capitolul 3 - Tablouri
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=(x
1
,x
2
,
,x
n
) se nelege raportul:
n 2 1
x
1
...
x
1
x
1
n
+ + +
.
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
w[i]= numrul de apariii ale lui v[i] 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.
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
( )
n 2 1
y ,..., y , y Y
tiind c
n ,..., 2 , 1 i , y
i

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.
46
Capitolul 3 - Tablouri
23. Fie dat un vector
( )
n 3 2 1
x , . . . , x , x , x x
. S se modifice vectorul astfel
nct n final s avem:
a)
( )
1 n 3 2
x , x ,..., x , x x
b)
( )
1 n 2 1 n
x ,..., x , x , x x

c)
( )
1 n n 3 4 1 2
x , x ,..., x , x , x , x x

.
24. Un tablou a cu elemente n mulimea
{ } 1 , 0
se numete alternativ dac pentru
orice i,
[ ] [ ] 0 1 i a i a +
. 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
( )
n 2 1
x ,..., x , x x
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 y[i] s fie restul mpririi lui x[i] la suma cifrelor lui x[i].
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=(x
1
,x
2
,,x
n
) 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).
47
Capitolul 3 - 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(x
1
,x
2
,x
3
,,x
n
).
Exemplu. cmmdc(2940,882,70,182) este 14.
32. Cte numere perfecte exist n tabloul x=(x
1
,x
2
,,x
n
) 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
n
n
2
2
1
1
b
a
...
b
a
b
a
q
p
+ + +
, numerele ntregi
i i
b , a
, n , 1 i , 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 n , 1 i , x
i
, 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.
48
Capitolul 3 - Tablouri
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).
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)
[ ] [ ] [ ] n x ... 2 x 1 x e + + +
Exemplu. Pentru x=(10,2,31,335,12,45,26) => e=461
b)
[ ] [ ] [ ] x ... 3 x 1 x e + + +
Exemplu. Pentru x=(10,2,31,335,12,45,26) => e=79
c)
[ ] [ ] [ ] [ ] n x * ... * 3 x * 2 x * 1 x e
Exemplu. Pentru x=(10,2,3,5,12,4) => e=14400
d)
[ ] [ ] [ ] x ... * 3 x * 1 x e
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 a
1
,a
2
,,a
n
, n numere reale. Calculai suma
2
n
2
3
2
2
2
1
a ... a a a S + + .
Exemplu. Pentru vectorul a=(45,8,1,98,6) se obine suma s=-7606.
49
Capitolul 3 - Tablouri
43. Fie doi vectori x i y cu n componente numere ntregi fiecare, s se calculeze
expresia e dat prin:
a)
( ) ( ) ( )
n n 2 2 1 1
y x ... y x y x e + + +
Exemplu. Pentru x=(1,2,3) i y=(4,5,6) se obine e=315.
b)
n n 2 2 1 1
y x ... y x y x e + + +
Exemplu. Pentru x=(1,2,3) i y=(4,5,6) se obine e=32.
c)
n
2
n 2
2
2 1
2
1
y x ... y x y x e + + +
Exemplu. Pentru x=(1,10,2,3) i y=(4,5,6,8) se obine e=600.
d)
( ) ( ) ( )
1 n 1 n 2 n 1
y , x min ... y , x min y , x min e + + +

Exemplu. Pentru x=(1,10,2,3) i y=(4,5,6,8) se obine e=12.
44. S se calculeze raportul

1 k 2 j
j
k 2 i
i
x
x
e
.
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 a
1
,a
2
,,a
n
. S se calculeze suma:
n
a
...
2
a
1
a
S
n 2 1
+ + + .
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=(C
1
,C
2,
C
3
,,C
n
)
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.
50
Capitolul 3 - Tablouri
49. Dndu-se un vector X (citit de la tastatur) s se calculeze vectorul Y tiind c
( ) ( )
( ) ( )
3
x x x
y
2
x x
y
3
x x x
y
2
x x
y
n 1 n 2 n
1 n
n 1 n
n
3 2 1
2
2 1
1
+ +

+ +

iar
k
y
este media numerelor
2 k 1 k k 1 k 2 k
x , x , x , x , x
+ +
pentru
2 n , 3 k .
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
( )
m 2 1
u ,..., u , u u
cu
i 3
1
1 i 3
1
2 i 3
1
u
i

.
S se construiasc vectorul
( )
n 2 1
v ,..., v , v v
tiind c
20 1
S v
,
i 5 20 i
S v
+

,
n ,..., 2 , 1 i
unde
k 2 1 k
u ... u u S + + +
.
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.
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 [ ]
[ ] [ ] [ ] n x * ... * 3 x * 2 x
1 x , unde x este un
vector cu n componente numere naturale citite de la tastatur.
Exemplu. Ultima cifr a expresiei
83 * 37 * 683 * 74
53
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],
51
Capitolul 3 - Tablouri
Observaie: Fie RXY coeficientul de corelaie a lui X i Y. El este definit de
formula:
[ ] ( ) [ ] ( )
[ ] ( ) [ ] ( )

,
_

,
_

N
1 i
2
N
1 i
2
N
1 i
MY i Y MX i X
MY i Y MX i X
RXY
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,K
i
) cu proprietatea c
Fi+K
i
este un numr par, unde Fi este numrul feei, iar Ki numrul de
apariii a feei F
i
.
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).
52
Capitolul 3 - Tablouri
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).
53
Capitolul 3 - Tablouri
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
[ ] [ ] ( ) 1 i x , i x +
cu proprietatea c
[ ] [ ] 1 i x i x + > i suma cifrelor lui
[ ] i x
este mai mic dect suma cifrelor lui
[ ] 1 i x +
.
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: 0 c x b x a
2
+ + , unde a, b i c sunt toate tripletele de
numere consecutive din x, n care
0 ac 4 b
2

.
Exemplu. Pentru x=(1,-2,1,12,36,5) se va afia 1, -6. (soluiile
ecuaiilor x
2
-2x+1=0 respectiv x
2
+12x+36=0)
54
Capitolul 3 - Tablouri
73. Fie un vector x de numere reale. S se afieze soluiile tuturor ecuaiilor de
gradul II: 0 c x b x a
2
+ + , unde a, b i c sunt toate tripletele de
numere consecutive din x, n care
0 ac 4 b
2
>
.
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 60x
2
+58x+1=0 i (-80.19,-0.81) care corespund ecuaiei
x
2
+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 y[i] s fie reprezentarea n baza 2 a numrului x[i].
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: [ ] i xcod este numrul de valori din
[ ] [ ] [ ] { } 1 i x ..., , 2 x , 1 x
mai mici dect [ ] i x . 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.
Exemplu. Polinomul x
5
+x
4
-29x
3
-69x
2
-84x+180 are ca rdcini ntregi pe 1,
-5 i 6 (acestea se afl printre divizorii ntregi ai termenului liber).
79. O funcie
{ } { } n ,..., 2 , 1 m ,..., 2 , 1 : f
se poate reprezenta n
calculator printr-un vector
( )
m 2 1
F ,..., F , F F
cu m componente unde
( ) i f 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.
55
Capitolul 3 - Tablouri
80. Dndu-se funciile
{ } { } n ,..., 2 , 1 m ,..., 2 , 1 : f
i
{ } { } p ,..., 2 , 1 n ,..., 2 , 1 : g
reprezentate prin vectorii F i G,
( ) ( ) i g G , i f F
i i

, s se determine compunerea celor dou funcii date,
adic
f g
.
Exemplu. Dac m=6, n=7, p=8, f=(1,3,2,4,6,3), g=(2,6,1,4,5,8,7)
atunci
f g
=(2,1,6,4,8,1).
81. Se d un ir X de numere ntregi. S se determine mediile
k ,..., 2 , 1 i , v
i

. Prin
i
v
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)=x
5
+2x
3
+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
n
2
, pentru valori mari ale lui n.
Exemplu.
100
2
=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).
56
Capitolul 3 - Tablouri
87. Se consider doi vectori binari x=(x
1
,x
2
,,x
n
) i y=(y
1
,y
2
,,y
n
)
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).
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:
( ) ( ) ( ) ( ) 1 e ... 1 e 1 e n
m 2 1
+ + +
( ) ( )( ) ( ) 1 p ... 1 p 1 p
p ... p p
n
n
m 2 1
m 2 1

( )
1 p
1 p
...
1 p
1 p
1 p
1 p
n
m
1 e
m
2
1 e
2
1
1 e
1
m
2 1


+
+ +
unde
m 2 1
e
m
e
2
e
1
p ... p p n 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:
S
1
= x
1
+ x
2
+ + x
n
S
2
= x
1
x
2
+ x
1
x
3
+ + x
1
x
n
+ x
2
x
3
+ + x
n-1
x
n

S
n
= x
1
x
2
x
3
x
n.
Indicaie. Se observ ca sumele de mai sus sunt date de relaiile lui Vieta n
polinomul (x-x
1
)(x-x
2
)(x-x
n
)
Exemplu. Pentru n=4, x
1
=4, x
2
=5, x
3
=-1, x
4
=2 se obin sumele S
1
=10,
S
2
=27, S
3
=2, S
4
=-40.
57
Capitolul 3 - Tablouri
92. Se d un ir de n cifre a=(a
i
), 1 i n 50. S se scrie un program care
calculeaz:
S=a
1
a
2
a
n
+ a
2
a
3
a
n-1
a
n
a
1
+ + a
j
a
j+1
a
n
a
1
a
2
a
j-1
+ +
=a
n
a
1
a
2
a
n-2
a
n-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 { } n x si 0 k , j , i , 5 3 2 x A
k j i
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)=x
3
+2x+5 i Q(x)=x
3
+5x+7 se obine
P(x)+Q(x)=2x
3
+7x+12 i P(x)*Q(x)=x
6
+7x
4
+12x
3
+10x
2
+39x+35.
95. Determinai ctul mpririi polinomului
( )
n 1 n
1 n
1
n
0
a x a ... x a x a x P + + + +

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)=2x
3
-3x
2
+x-2 i

=4 se obine ctul 2x
2
+5x+21 i
restul 82:
2 -3 1 -2 =4
2 5 21 82
58
Capitolul 3 - Tablouri
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: 2
3
*19
1
*31
1
.
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.
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
59
Capitolul 3 - Tablouri
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.
60
Capitolul 3 - Tablouri
103. Generarea permutrilor. S se scrie un program care genereaz toate
permutrile mulimii {1,2,,n} folosind ordinea lexicografic a acestora.
Indicaii. Se pleac de la cea mai mic permutare n sens lexicografic adic
(1,2,,n). La un anumit pas, avnd construit permutarea p=(p
1
,p
2
,
,p
n
), pentru a determina urmtoarea permutare se determin acel indice i
pentru care
p
i
<p
i+1
p
i+1
>p
i+2
>>p
n
.
Urmtoarea permutare se obine prin nlocuirea lui p
i
cu cel mai mic dintre
elementele p
i+1
, p
i+2
, , p
n
care este mai mare dect p
i,
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.
104. Generarea combinrilor. Se cere s se genereze toate cele
m
n
C 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=(v
1
,v
2
,,v
m
) care satisfac
relaia
1<=v
1
<v
2
<<v
m
<=n.
Se pleac de la vectorul cel mai mic n sens lexicografic adic (1,2,,m).
La un anumit pas, fiind dat vectorul v=(v
1
,v
2
,,v
m
), vectorul care-i
urmeaz n sens lexicografic se determin astfel: se determin cel mai mare
indice i satisfcnd relaiile
v
i
<n-m+i v
i+1
=n-m+1,,v
m-1
=n-1, v
m
=n.
Urmtorul vector va fi v=(v
1
,v
2
,,v
i-1
,v
i
+1,v
i
+2,,v
i
+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).
105. Generarea combinrilor. Se cere s se genereze toate cele
m
n
C 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
61
Capitolul 3 - Tablouri
reprezentat prin vectorul caracteristic v=(v
1
,v
2
,,v
n
) unde v
i
=1 dac i
face parte din mulime, respectiv v
I
=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).
106. Generarea aranjamentelor. Se cere s se genereze toate cele
m
n
A 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=(a
1
,a
2
,,a
m
) pentru a determina
succesorul su, n ordine lexicografic, cutm cel mai mare indice i cu
proprietatea c a
i
poate fi mrit (adic mcar una din valorile a
i
+1, a
i
+2,
,n este disponibil). Dac exist un astfel de indice, aranjamentul urmtor
este obinut din a prin nlocuirea elementelor a
i
, a
i+1
, , a
m
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 (n 100) 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.
62
Capitolul 3 - Tablouri
Maxime i minime
108. Se dau doi vectori x, y cu n componente
(1 n 100). 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 (x
i
,y
i
), n , 1 i . 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.
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.
63
Capitolul 3 - Tablouri
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
n ,..., 2 , 1 i , y
i

, unde
i
y

este poziia valorii minime din irul
n 1 i i
x ..., , x , x
+
.
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 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.
64
Capitolul 3 - Tablouri
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, m 2. 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:

'

<
,
_

+ + +

'

+ + +

0 y daca
i
y ... y y
, x max
0 y daca y ,
i
x ... x x
max
z
i
i 2 1
i
i i
i 2 1
i
pentru i=1,2,...,n, unde N n ,
R x
i

i
R y
i

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.
Exemplu. Elementul maxim par din vectorul (22,55,94,19,32,11,14,
66,70,33) este 94.
65
Capitolul 3 - Tablouri
127. Dndu-se irul X cu n componente reale, s se determine i s se afieze irul
Y definit prin:
( )
( )

'

+ + +
>

impar este i daca


i
X X X
par este i daca i , 1 j , 0 X X max
Y
i 2 1
j j
i

, i=1,2,...n.
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).
128. Se d N n i vectorii
( )
n 2 1
x , . . . , x , x x
i
( )
n 2 1
y , . . . , y , y y
. S se
calculeze vectorul c astfel:
( )
( )
{ }

'

>

<
+ + +

+
0 y x daca y , x , . . ,. x , x min
0 y x daca y , . . . , y , y , x max
0 y x daca
i
x ... x x
c
i i i n 1 i i
i i i 2 1 i
i i
i 2 1
i
, i=1,2,,n.
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
R y , x
i i

pentru n , 1 i s se calculeze:
n n 2 2 1 1
y x ... y x y x E + + +
i
{ }
{ }

'

>

<
+

+
E y x daca y , x ,..., x , x min
E y x daca y ,..., y , y , x max
E y x daca
1 y * y
x
c
i i i n 1 i i
i i i 2 1 i
i i
i i
i
i
.
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 N n i vectorii
( )
n 2 1
x , . . . , x , x x
i
( )
n 2 1
y , . . . , y , y y
,
R y , x
i i

, n , 1 i i se cere s se calculeze i s se afieze pe ecran
componentele vectorului c unde:
( )
( ) { }
( )

'

>

<

+ i i n 1 i i
i i i 2 1
i i i 2 1
i
y x daca y , . . . , y , y min
y x daca 0 , x , . . . , x , x min max
y x daca x , . . . , x , x max
c
, i=1,2,,n.
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).
66
Capitolul 3 - Tablouri
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
N n , R a
i perechile
( )
i i
y , x
, i=1,2,...,n, de numere
reale. S se calculeze numrul m al valorilor
i
y
mai mari dect a i
{ }

'

> + + +

<
+ + +

m i daca y x ... y x y x
m i daca y , x , 0 max
m i daca
i
x ... x x
z
i i 2 2 1 1
i i
i 2 1
i
.
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:
( )
( )

'

>

<
+ + +

+ i i n 1 i i
i i
i i
i 2 1
i
y x daca y , . . , y , y max
y x daca 0
y x daca
i
x ... x x
z
pentru i=1,2,...,n, unde
N n
i
R y , R x
i i

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).
Cutri de elemente
135. Cte din elementele vectorului x=(x
1
,x
2
,,x
n
) de numere
ntregi sunt numere Fibonacci.
Exemplu. n vectorul x=(5,10,1,7,9,8,1,6,55,19)
sunt 5 numere Fibonacci.
67
Capitolul 3 - Tablouri
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.
68
Capitolul 3 - Tablouri
140. O funcie
{ } { } n ,..., 2 , 1 m ,..., 2 , 1 : f
se poate reprezenta n
calculator printr-un vector
( )
m 2 1
F ,..., F , F F
cu m componente unde
( ) i f 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
N n , m
i mulimile
{ }
m 2 1
a ,..., a , a A
i B={b
1
,b
2
,,b
n
}
memorate ca vectori. S se scrie cte un program care calculeaz:
a)
B A C
;
b)
B A C
c)
B A C
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).
69
Capitolul 3 - Tablouri
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
ny 1 ny k 2 1 k 1 k
y x , . . . , y x , y x
+ + .
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.
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 [ ] 1 n .. 0 array : a cu elemente de tip ntreg cu
proprietatea
[ ] [ ] [ ] 1 n a ... 1 a 0 a
. 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.
70
Capitolul 3 - Tablouri
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 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
x
k
=min{x
i
,x
i+1
,,x
n
}
i se aduce aceast valoare pe poziia x
i
, prin interschimbarea valorilor x
i
i
x
k
.
155. Sortarea prin numrare. Const n a numra pentru fiecare element x
i
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 (1 n 100) 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.
71
Capitolul 3 - Tablouri
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 (n 999.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,
{ } n , , 3 , 2 , 1 k
.
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);
i un tablou u:array[1..n] of Culoare. Se presupune n 1. 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 (1 n 100)
componente ntregi. Se cere s se verifice dac aceste mulimi sunt
proporionale. n caz afirmativ se va afia i irul de rapoarte egale.
Exemplu. Exemplu.
Pentru n=3 i mulimile Pentru n=3 i mulimile Se va afia Se va afia
20 2 4 20 2 4 Mulimi proporionale Mulimi proporionale
3 6 30 3 6 30 2/3=4/6=20/30 2/3=4/6=20/30
72
Capitolul 3 - Tablouri
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 s-a 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.
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).
73
Capitolul 3 - Tablouri
170. Se dau
N n , m
i mulimile
{ }
m 2 1
a ,..., a , a A
i B={b
1
,b
2
,,b
n
}
memorate ca vectori. S se scrie cte un program care calculeaz:
a)
B A C
b)
B A C
c)
B A C
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).
74
Capitolul 3 - Tablouri

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