Manual informatica

318
Vlad Hutanu ' Tudor Sorin (filiera profilul real, specializarea (filiera profil militar MApN, specializarea Ciclul superior al liceului, clasa a XI-a Editura L&S Soft

Transcript of Manual informatica

manuale.online10Editura L&S Soft Bucureti
Copyright 2006 © L&S SOFT
Toate drepturile asupra acestei lucrri aparin editurii L&S SOFT. Reproducerea integral sau parial a textului din aceast carte este posibil doar cu acordul în scris al editurii L&S SOFT.
Manualul a fost aprobat prin Ordinul ministrului Educaiei i Cercetrii nr. 4446 din 19.06.2006 in urma evalurii calitative organizate de ctre Consiliul Naional pentru Evaluarea i Difuzarea Manualelor i este realizat in conformitate cu programa analitic aprobat prin Ordin al ministrului Educaiei i Cercetrii nr. 3252 din 13.02.2006.
Refereni tiinifici :
Prof. Dr. Victor Mitrana, Facultatea de Matematic, Universitatea Bucureti Prof. grad 1 Valiana Petrior, Colegiul Naional Bilingv George Cobuc
Tiparul executat la S .C . LUM INATIPO s.r.l. Str. Luigi Galvani nr. 20 bis, sector 2, Bucureti
Anul tipririi: 2006
Descrierea CIP a Bibliotecii Naionale a României
HUTANU, VLAD Informatic : manual pentru ciclul superior a l liceului : clasa a XI­
a - (filiera teoretic, profilul real, specializarea matematic-informatic) i (filiera vocaional, profil militar MApN, specializar·ea matematic­ informatic) 1 Vlad Hutanu, Tudor Sorin. - Bucureti : Editura L & S Soft, 2006
ISBN (10) 973-88037-1-3; ISBN (13) 978-973-88037-1-8
l. Tudor. Sorin
004(075.35)
Editura L&S SOFf: .1: Adresa: Str. Stânjeneilor nr. 8, bl. 29, se. A, et. 1, apt. 12, Sector 4, Bucureti; Tei./Fax: 031-l 05.62.84;
Mobil: 0722-530.390; 0722-57.37 .O 1;
E-mail: [email protected];
Capitolul 1. Tablouri ..................................... .... ... ...................... 7
1.1. Noiunea de tablou ...................... .... ................................... ..... ..... ...... 7 1.2. Cum citim i cum afim un tablou bidimensional? ............................. ....... 8 1.3. Aplicaii cu tablouri bidimensionale ........................................................ 10 Probleme propuse ...... ............................................................................. 16 Rspunsurile la testele gril ... . .. .. .............................. ................................. 19
Capitolul 2. Subprograme ............... .. ............. ............... ............ 20
2.1. Noiunea de subprogram ......................................... .......................... 20 2.2. Subprograme în Pascal. .................................................................................. 22
2.2.1. Un exemplu de utilizare a funciilor ..................................................... 22 2.2.2. Un exemplu de utilizare a procedurilor ............................................... 24 2.2.3. Structura unui subprogram .......... ....................................................... 25
2.2.3.1. Structura subprogramelor de tip funcie .............................. 25 2.2.3.2. Structura subprogramelor de tip procedur ........................ 26
2.2.4. Definirea i declararea unui subprogram ............................................ 27 2.2.5. Apelul subprogramelor ....... .... ....... ........ .. .... ........... ... .......................... 30
2.2.5.1. Apelul funciilor ........... .......................... .. ........................... .. 30 2.2.5.2. Apelul procedurilor ... ................................... ........... ............. 31 2.2.5.3. Transmiterea parametrilor la apel ......... .............................. 31 2.2.5.4. Cum memoreaz subprogramele parametrii trimii? .......... 33 2.2.5.5. Transmiterea parametrilor prin valoare ......................... ...... 33 2.2.5.6. Transmiterea parametrilor prin referin .......................... .... 35
2.2.6. Variabile locale i globale ............... .. .................................................. 36 2.2.7. Greeli frecvente ...... .. ... .. ... ......... .... .. .. .... ................................ ............ 38 2.2.8. Uniti de program ......... ... ....... .. .... .... ....... ... ........... ... .......................... 39
2.3. Subprograme în C++ ........... ....... ............ ......................................................... 42 2.3.1. Exemple de utilizare a funciilor .. ................ ........................................ 42 2.3.2. Structura unei funcii. .. ........................................................................ 44 2.3.3. Declararea variabilelor ......... ......... ...................................................... 46 2.3.4. Transmiterea parametrilor .................................................................. 49 2.3.5. Definirea i declararea unui subprogram ............................................ 53
2.4. Aplicaii care folosesc subprograme ............... .... ..................... .... .. .................. 55 Probleme propuse ................ ............................ ........ . ...................... .... .... 62 Rspunsuri. .. ................... ... ...... ........ .... .................. .. .. ............................ 72
Capitolul 3. iruri de caractere ........... ..... .... ..................... .......... 73
3.1. Generaliti ......... .... .... ........................ .... ........................... ..... ........ 73 3.2. i ruri de caractere in Pascal. ............. .... ............... ... .. ............ .. ............ 74
3.2.1 . Noiuni introductive .. ..... ....................... ............................. ........ ..... ..... 74 3.2.2. Concatenarea irurilor ..... .. .... ........ ..... ...................................... .......... 76
4 Cuprins
3.2.3. Compararea irurilor ........................................................................... 77 3.2.4. Lungimea iruri lor de caractere ............. ... .. ........................................ 79 3.2.5. Subiruri. ..... ....................................................... .. ........... .................... 80 3.2.6. Conversii de la iruri la valori numerice i invers ................................ 84 3.2.7. Citirea i scrierea datelor de tip String din i în fiiere text... ........ ...... 88
3.3. iruri de caractere în C++ ................................................................... 89 3.3.1. Generalitti. ......................................... .............................................. 89 3.3.2. Citirea i scrierea irurilor de caractere ...... ............ ............................ 89 3.3.3. Tipul char*.......... .. . ... .................... .... .. ... .. .. . .... ... .. .. ... .... ...... .... .. .. . 92 3.3.4. Lungimea unui ir de caractere .................................. ........................ 93 3.3.5. Copierea i concatenarea irurilor de caractere .......... ....................... 94 3.3.6. Cutarea unui caracter într-un ir ....................................................... 95 3.3.7. Compararea irurilor. .......... ...... ............................................ .. ............ 97 3.3.8. Subiruri.. ....... ............................................. ...... ...... ..... .......... .. ........... 99 3.3.9. Alte funcii utile în prelucrarea irurilor .............................................. 101 3.3.1 O. Conversia irurilor în valori numerice i invers ......... ....................... 1 04 3.3.11. Citirea i scrierea irurilor de caractere din i în fiiere text... ......... 1 08
3.3.1 1.1. Operaia de citire ............................................................. 1 08 3.3.11.2. Operaia de scriere .......................................................... 109
3.3.12. O modalitate de conversie de la ir la alt tip .......... ..................... ..... 1 09 Probleme propuse ........ ...... ....................... ..... ........... ............................ 11 O
Capitolul 4. Structuri de date neomogene ................................. 112
4.1. Noiuni introductive ............................... ................. ........ .. ................ 112 4.2. Structuri ne omogene în Pascal. ................. ............................ ...... ....... 112
4.2.1 . Tipul Record ..... .................................................................... ........ .... 112 4.2.2. Accesul simplificat la câmpuri .. ....... ............... ... ........................... ..... 114 4.2.3. Înregistrri imbricate ................... ......................................... .............. 115 4.2.4. Vectori de înreg istrri. ........ ... ...... ..... .... .. .... .... .. .............. ..... .............. 115 4.2.5. Înregistrare cu variante ............................................... ....................... 116
4.3. Structuri neomogene în C++ ...... ................................. ................... ... . 118 4.3.1. Tipul struct .... ................................................................... ................. 118 4.3.2. lnregistrri imbricate .............................................................. ............ 120 4.3.3. înregistrri cu structur variabil ..................................... .................. 121
Probleme propuse .. .................... .. ..................................... ... ................. 123
Capitolul 5. Structuri de date ................................................... 124
5.1. Conceptul de structur de date ..... ... ... ........................ .... .............. ...... 124 5.2. Structura de tip list liniar ................................................................ . 126
5.2.1. Prezentarea structurii. ....................................................................... 126 5.2.2. liste alocate secvenial... ... .............................................................. . 127 5.2.3. liste alocate înlnuit .......................................................... ........... .... 128 5.2.4. Implementarea alocrii înlnuite prin utilizarea vectorilor ................. 129
5.3. Structura de tip stiv ..... . .............................. ..................................... 133 5.4. Structura de tip coad ....... ................ ... ................... ......... ....... .......... 138 Probleme propuse ...... .......... .. .... .......................................... ... .............. 138 Rspunsuri ....... ................. ....... ................................................... ......... 140
"'Ual de informatic pentru clasa a Xl-a 5
:Zoitolul 6. Introducere în recursivitate .... ... ............................. 141
~ • Prezentare general ........................................ .. .. ..... ........ ............... 141 :2 Modul în care se realizeaz autoapelul. .............................. ... ............... 141
6.2.1. Realizarea autoapelului în Pascal.. ............... .. .................................. 141 6.2.2. Realizarea autoapelului în C++ ......................................................... 142
~ 3 Mecanismul recursivitii. .................................................................. 143 : ~. Cum gândim un algoritm recursiv? ..... .................................................. 147 ~ 5. Aplicaii recursive ..... ..... .. .. ................ ....... .......................... .............. 148
6.5.1. Aplicaii la care se transcrie o formul recursiv ............................... 148 6.5.2. Aplicaii la care nu dispunem de o formul de recuren .................. 153
=~obleme propuse .......................................................... .. ..................... 159 ~-aicaii 1 Rezolvri. ............................................................................... 166
capitolul 7. Metoda Divide et lmpera .................. ........... ... ...... . 172
- • Prezentare general .... ...... .. ........ . ... .. ... . .......................................... 172 - 2. Aplicaii .. . ................................................................................. ..... 172
7 .2.1 . Valoarea maxim dintr-un vector ...................................................... 172 7.2.2. Sortarea prin interclasare ................................................................. 174 7.2.3. Sortarea rapid ................................................................................. 176 7.2.4. Turnurile din Hanoi. .................... ...................................................... 179 7 .2.5. Problema tieturllor ............................................................... ........... 180
- .3. Fractali ....................................................... .................................. 183 7.3.1. Elemente de grafic .......................................................................... 183
7.3.1.1. Generaliti (varianta Pascal) ............................ ................ 183 7.3.1.2. Generaliti (varianta C++) ............................................... 185 7.3.1.3. Setarea culorilor i procesul de desenare (Pascal i C++) ... 186
7.3.2. Curba lui Koch pentru un triunghi echilateral.. .................................. 188 7.3.3. Curba lui Koch pentru un ptrat.. ...................................................... 191 7 .3.4. Arborele .............................................................................. ............... 193
Probleme propuse ................................................ ........ ......................... 195 Rspunsuri. .. ................ ............ ..... ... ...... ............................................. 196
Capitolul 8. Metoda Backtracking ...... ...................... ................. 199
8.1. Prezentarea metodei ..... : ......... .... .................................................... 199 8.1 .1 . Când se utilizeaz metoda backtracking? ........................ .. ...... ...... .. 199 8.1 .2. Principiul ce st la baza metodei backtracking ................................. 199 8.1.3. O modalitate de implementare a metodei backtracking .................... 201 8.1.4. Problema celor n dame ..................................................................... 204
8.2. Mai puine linii în programul surs .. ... ... .... .................... ... .................... 207 8.3. Cazul în care se cere o singur soluie. Ex.: problema colorrii hrilor ....... 210 8.4. Aplicaii ale metodei backtracking în combinatoric ................................. 212
8.4.1. O generalizare util ........................................................................... 212 8.4.2. Produs cartezian ................................................... ............................ 213 8.4.3. Generarea tuturor submulimilor unei mulimi. .................................. 215 8.4.4. Generarea combinrilor .......... .......... ........................... ....... .............. 217
6 Cuprins
8.4.5. Generarea aranjamentelor ................................................................ 219 8.4.6. Generarea tuturor partiiilor m~limii {1 ,2, ... , n} ................................ 221
8.5. Alte tipuri de probleme care se rezolv prin utilizarea metodei backtracking .... 223 8.5.1 . Generalitti ....................................................................................... 223 8.5.2. Generarea partiiilor unui numr natural. .. .............. .. .... .................... 224 8.5.3. Plata unei sume cu bancnote de valori date ..................................... 226 8.5.4. Problema labirintului. ........................................................................ 228 8.5.5. Problema bilei. .................................................................................. 231 8.5.6. Sritura calului. ................................................................................. 233
Probleme propuse ....................................... .......................................... 235 Indicaii. .............................................................................................. 238
Capitolul 9. Grafuri .................................................................. 239 9.1. Grafuri neorientate .................... .................................... ................... 239
9.1.1. Introducere ...................................... ................................... ....... ........ 239 9.1.2. Definiia grafului neorientat .................................... .. ......................... 240 9.1.3. Memorarea grafurilor ........... ............ .................................................. 242 9.1.4. Graf complet. ..................................................................................... 247 9.1.5. Graf parial , subgraf.. ........................................................................ 248 9.1.6. Parcurge rea grafurilor neorientate .................................................... 250
9.1.6.1. Parcurgerea tn lime (BF- bredth first) ........................... 250 9.1.6.2. Parcurgerea în adâncime (OF - depth first) ...................... 253 9.1.6.3. Estimarea timpului necesar parcurgerii grafurilor .............. 255
9.1. 7. Lanuri. ...................................... <- ......................... . .............. ............. . 255 9.1 .8. Graf conex ...... ................................................................................... 259 9.1.9. Componente conexe ......................................................................... 260 9.1.1 O. Cicluri. ............................................................................................. 262 9.1.11. Arbori. .............................................................................................. 264
9.1.11.1. Noiunea de arbore .................................. ....................... 264 9.1.11.2. Noiunea de arbore parial. .............................................. 266
9.2. Grafuri orientate ........ ....... ............. ............... ............ : ...................... 267 9.2.1. Noiunea de graf orientat .................................................................. 267 9.2.2. Memorarea grafurilor orientate ......................................................... 270 9.2.3. Graf parial, subgraf... ........... ............................................................ 272 9.2.4. Parcurgerea grafurilor. Drumuri. Circuite .......................................... 273 9.2.5. Graf tare conex. Componente tare conexe ....................................... 275
Probleme propuse .......... .... ................................................................... 278 Rspunsuri .......................................................................................... 286
Anexa 1. Memento .................................................................. 289
Anexa 3. Codul ASCII ............................................................... 316
--- Capitolul 1
.. ~ .. - ... "' ~
' - · ~:~·
Definiia 1.1. Un tablou este o structur omogen (format din elemente de acelai fel) cu un numr bine determinat de componente. Tabloul se identific printr-un singur nume, iar componentele sale se identific prin intermediul unui sistem de indici.
Alturat avem reprezentat un tablou. Un element al acestuia, a1.:t, se gsete pe linia i i coloana j. Este esenial de reinut faptul c toate elementele tabloului au acelai tip.
A=
am- l,l alll-1,2 alll-l,n
am.l a ",.2 a",~~~
1 . Un magazin ofer spre vânzare n produse. Se dorete s s_e rein vânzrile lunare, valorice, din fiecare tip de produs. Putem organiza datele sub form de tablou astfel:
• vom numerota cele n produse cu 1 , 2 , .. . , n;
• lunile le vom numerota cu 1, 2, ... , 12;
• elementul a1 .:l semnific valoarea incasat din vânzarea produslui i in luna j a anului - prin urmare, elementele tabloului sunt de tip real.
.$ lntrebri posibile
a) Dac magazinul vinde 5 produse, câte elemente are tabloul?
b) Care sunt indicii de adresare în tablou pentrt.~ a afla vânzrile din produsul 5 în luna septembrie? · -
c) Cum se poate calcula suma încasat în luna mai?
8 Capitolul 1. Tablouri
d) tiind c, din punct de vedere economic, anul este împrit în patru trimestre i c fiecare trimestru are trei luni, .cum se poate calcula suma încasrilor din trimestrul patru al anului?
e) Cum putem determina produsul din vânzarea cruia s-a incasat anual suma maxim?
f) Care este luna cu cele mai mari încasri?
2. Tot aa, se poate memora, sub form de tablou, situaia la învtur a celor m elevi ai unei clase. Dac numerotm elevii cu 1, 2, ... , m i materiile pe care acetia le studiaz cu 1, 2, ... , n , atunci a 1 d reprezint media pe care o are elevul i la materia j.
J~ Întrebri posibile
a) Dac în clas sunt 30 de elevi i acetia studiaz 8 materii, câte elemente are matricea?
b) Care este materia la care elevii au cele mai bune rezultate?
c) Care este media general a elevului i?
d) Care este media general a elevilor unei clase?
irul exemplelor ar putea continua pentru c sunt foarte multe situaii in care se utilizeaz tablouri bidimensionale (matrice).
1.2. Cum citim i cum afim un tablou bidimensional?
În clasa a X-a am învat sa lucrm cu masive unidime.nsionale. Pentru a adresa un element al unui vector se utilizeaz un singur indice. In cazul matricelor, vom utiliza doi indici. Mai jos, putei observa cum se declara o matrice cu 1 O linii i 9 coloane, cu elemente de tip intreg:
var astablou1
sau direct
var asarray [1 •• 10,1 •• 9) of real;
+ În Pascal, matricea are liniile 1,2, ... ,10 i coloanele 1,2, ... ,9 i, de exemplu, elementul de pe linia a treia i coloana a patra se adreseaz prin a [ 3, 4 l .
+ În C++, matricea are liniile 0,1, ... ,9 i coloanele 0,1, ... ,8 i, de exemplu, elementul de pe linia a treia i coloana a patra se adreseaz prin a[2] [3] . Uneori, pentru simplitate, vom folosi liniile i coloanele matricei Tncepand de la 1 . ln aceste cond i i i se pierde o linie i o coloan, fJecare de indice o. Consideram acest fapt neesenial.
Manual de Informatic pentru clasa a Xl-a
De multe ori nu ljtim câte linii i câte coloane va trebui sa aiba tabloul. In acest caz, tabloul se declara cu un numar maxim de linii i un numar maxim de coloane, în aa fel încât acesta sa corespunda oricarui set de date de intrare. Evident, într-un astfel de caz exista o risip de memorie interna, dar ... programul nu se va termina cu eroare. În figura alturat, avei reprezentat grafic un tablou cu 8 linii i 8 coloane, din care, într-un anumit caz, utilizam numai primele 41inii i primele 5 coloane.
Figura 1.1. Exemplu de tablou
9
Programul care-I utilizeaza va funciona corect daca avem cel mult a linii i
cel m uit s coloane.
fik::~~·· În programul urmator se citete i se afieaza un tablou. Iniial se citesc (L-~: numarul de linii i de coloane ale tabloului (m i n). Observai modul in
~.~ care am afiat tabloul - de aa natura încât i pe ecran sa arate ca o matrice, adica fiecare linie s fie scrisa pe un rând.
);
write ( 1 11= 1 )1
readln(n); for ! :•1 to m o for j:•l ton do
begin write ( 1 A [ 1 , i, 1 , 1 , j, • 1. • ) ; readln(a[i,j]);
andJ
for i:•1 to m o bag in
for j:•l ton do write (a{i,j], 1 1 )1
writaln; end
#include <iostream.h> main() { int m,n,i,],a[10] [9];
}
, 1
cout«a[i] [:J]«' 1 ;
cout<<endl; )
+ În memorie, tablourile sunt reinute pe linii. Aceasta inseamna ca la început este memorat prima linie, apoi a doua, .a.m.d.
10 Capitolul 1. Tablouri
1.3. Aplicaii cu tablouri bidimensioAale
O Aplicaia 1.1. lnterschimbare de linii. Se citete un tablou cum linii i n coloane. Se citesc, de asemenea, i dou numere naturale distincte x i y, cuprinse între 1 i m. Se cere s se interschimbe linia x cu linia y. La început vom afia tabloul iniial, apoi pe cel obinut prin interschlmbarea liniilor x i y.
Exemplu: Considerm tabloul de mai jos, cu m .. 3, n•3 i liniile x .. 2, y=3:
(~ ! !] În urma interschimbrii liniilor 2 i 3 se obine:
~ Rezolvare. Dup cum am învat, pentru a interschimba coninutul a dou variabile se utilizeaz o a treia, de manevr. De aceast dat , se interschimb dou liniî. Am fi tenta~ ca manevra s fie un vector cun componente. Cu puin atenie ne dm seama c putem folosi ca man~vr o singur variabil de acelai tip cu cel al componentelor de baz ale tabloului. In rest, analizai programul de mai jos:
type matrice= array[1 •• 10, 1 •• 101 of byte;
var mat: matrice; m, n, i, j, x, y, man : integer;
begin {-citirea datelor-} write ( •m= ') 1 readln(m); write {'n= '); readln(n); for i := 1 tom do for j := 1 to n do begin write ( •mat [', i, •, •,:!, '] •'); readln(mat[i,j]); end;
write('x= '); readln(x); write{ 'Y• ') 1 readln(y); {- tiparesc tabloul initial-) for i : • 1 to m do begin for j := 1 to n do
write {mat[i,j],' '); writeln;
#include <iostream.h> main() { int mat [10] [10] ,m,n,i,
j,x,y, m.an; cout<<•m•"; cin>>m; cout<<"n•"; cin>>n; for (i•O; i<m;i++) for ( j =O ;j <n;:l++) {
cout<<"mat["<<i+1<<',' << j+l<<"l=";
cin»mat[i] [j]; };
{
)
cout<<endl;
{-interachimbare linii-} for j:=l ton do begin
man z• mat[x,j]; mat (x, j ] z• mat [y, j ]; mat[y,j] 1• man;
end; writeln;
{-tiparesc tabloul inversat-) for i :s 1 to m do begin for j := 1 to n do
write(mat[i,j],' '); writeln;
)
mat [x-1] [j] -mat (y-1] [j] ; mat[y-1] [j]•man;
cout<<endl; for (i•O;i<m;i++) ( for (j•O;j<n;:l++)
cout«mat [il [j l «' '1
cout<<endl; }
11
O Aplicaia 1.2. Spirala. Se citete un tablou cu n linii i n coloane. Se cere s se
afieze elementele tabloului în ordinea rezultat prin parcurgerea acestuia în spiral, Tncepând cu primul element din linia 1, în sensul acelor de ceas.
Exemplu. Fie tabloul: ,
1 2 3 6 9 8 7 4 5.
/-------"'
Tabloul de mai sus este un ansamblu format din trei dreptunghiuri "concentrice" - ultimul are un singur element i nu a putut fi reprezentat. Dup ce stabilim numrul de ptrate (cum?), afim elementele aflate pe fiecare latur a fiecrui ptrat Tn ordinea cerut, având grij ca elementele aflate Tn coluri s nu fie afiate de dou ori.
12
begin {-citirea datelor-} write ( 1 n• 1
}; readln(n}; for i r• 1 to n do for j := 1 to n do begin wri te ( 1 -t ( • , i, 1 , 1 , j, 1 l • 1 ) ;
readln(mat[i,j]}; end;
{-liatare-) for k := 1 to n div 2 +· 1 do bag in for i r• k to n-k+1 do
writeln(mat[k,i)}; for i := k+l to n-k+1 do
writeln(mat[i,n-k+1]}1 for i :• n-k downto k do
vriteln(mat[n-k+l,i)}l for i r • n-k downto k+1 do
writeln(mat[i,k)} end;
}
<<j<<•J••; cin» mat[i] [j);
}
for(k=l ; k<=n/2+1;k++} { for(i•k;i<~n-k+l;i++}
cout<<mat[k) [i)<<endl; for(i • k+l;i<•n-k+l. ; i++) cout<<mat[i] [n-k+l]<<endl;
for(i•n-k;i>•k;i--} cout<<mat[n-k+l] [i] <<endl;
for(i • n-k;i>• k+l;i--} cout<<mat[i] (k]<<endl;
)
Ll Aplicaia 1.3. Pe o tabl cu n linii i m coloane (n, m numere naturale, 1~n~30), sunt plasate pe unele pozi~i jetoane cu litere, conform unui joc corect de SCRABBLB. tiind c vocalele au eate un punct, iar consoanele eate dou, stabilii valoarea total a cuvintelor de pe tabl. Valorije n i m i configuraia tablei se citesc din fiierul "tabla. txt", conform exemplului (locurile goale de pe tabl sunt memorate sub forma unor caractere punct).
Exemplu. Pentru datele de intrare:
3 5
(DA•3, STA•S, ALT:I•6, SAtJ•4 , AI=2).
0 Rezolvare. Cutarea cuvintelor pe tabl . i cumula rea punctelor lor este, de obicei, prima soluie la care ne gndim. Algoritmul corespunztor acestei soluii…