Vectori

In viata de zi cu zi ne intalnim de multe ori cu situatia in care trebuie sa analizam un set de valori de acelasi tip. O astfel de structura se numeste sir iar valorile respective se numesc elementele sirului. De exemplu rezultatele obtinute de mai multi elevi la un concurs se poate reprezenta ca un sir.

Daca am avea, de exemplu, 100 de elevi am putea declara pentru fiecare elev cate o variabila, lucru ce ar fi total ineficient. In plus, algortimii trebuie sa indeplineasca proprietatea ca sunt generali adica nu lucreaza cu seturi de date particulare. Astfel, daca stim ca avem n elevi (n citit de la tastatura sau din fisier) nu putem sa declaram n variabile pentru ca la fiecare rulare a programului valoarea lui n se poate schimba.

Pentru a indeparta acest inconvenient limbajele de programare ofera posibilitatea de a memora toate elementele unui sir intr-o variabila indexata, in care elementele sunt dispuse intr-o anumita ordine, ocupand pozitii successive bine-determinate. In limbajul de specialitate aceste siruri de valori se numesc vectori sau tablouri unidimensionale.

Numim indicele (rangul) elementului pozitia pe care se afla un element in vector.

Pentru a se putea referi un element al vectorului trebuie sa scriem numele tabloului urmat intre paranteze drepte de indicele elementului.

Un program poate avea declarate mai multe elemente de tip tablou.

De exemplu, consideram ca dorim sa aflam media de la informatica. In rubrica de la informatica avem n=4 note si teza.

Cele n note le putem memora intr-o structura de tip unidimensional iar nota de la teza o putem memora intr-o variabila de tip natural (de exemplu unsigned int (pentru C++), byte (pentru pascal)).

Prin urmare n=4. Presupunem ca avem tabloul note:

Note=(5,7,9,7) si teza=7.

Media_notelor = (note[1]+note[2]+note[3]+note[4])/4. Bineinteles, pentru fiecare nota puteam folosi cate o variabila. Insa, daca la un elev sunt 4 note in rubrica, la altul sunt 3, la altul sunt 5 s.a.m.d lucrurile se schimba. In astfel de cazuri trebuie sa citim n (numarul de note) si sa citim notele pe rand.

Dupa ce am putut afla media notelor putem calcula si media de la informatica: (media_notelor*4+teza)/4.

Aceasta problema se poate rezolva si fara a folosi vectori. Astfel, pentru a calcula media_notelor putem citi pe rand notele, sa le adaugam pe fiecare la suma initilizata inainte de a face citirea notelor cu 0 iar la sfarsit sa impartim suma notelor la numarul de note. Astfel de probleme se gasesc la problemele propuse la instructiuni repetitive.

Sa revenim la referirea elementelor tabloului.

Primul element este 5. Elementul este note[1] iar valoarea lui note[1]=5; pozitia elementului in vector este 1.

Al doilea element este 7. Elementul este nota[2] iar valoarea lui este nota[2]=7; pozitia elementului in vector este 2.

s.a.m.d.

Observatie: De obicei pozitiile elementelor din sir se memoreaza consecutive cu elemente de la 1..n insa acest lucru nu este obligatoriu. Pozitiile pot fi de tip character, de tip multime, de tip intreg, interval sau de tip enumerat.

counter for wordpress

View My Stats