Tablouri unidimensionale – Vectori
Vectorii sau tablourile unidimensionale sunt structuri de date bine definite si organizate in memorie. Cu ajutorul acestora, se pot pastra in memorie si accesa ulterior mai multe variabile, fara a fi nevoie de retinerea explicita a fiecareia dintre ele.
Vectorii se folosesc, cel mai adesea, cand numarul de variabile necesare intr-o problema variaza sau este de dimensiune mare. In acest caz, se doreste utilizarea un vector , in care punem cate variabile sunt necesare. In problemele noastre, ne vor interesa vectorii declarati prin numarul maxim posibil de elemente, cu memoria alocata local.
Astfel, pentru declararea unui vector se foloseste urmatoarea structura:
tip_vector nume_vector[dimensiune maxima vector];
Exemple uzuale :
int v[100];
- int – tip intreg
- v – numele vectorului
- [100] – intre paranteze patrate se pune numarul maxim posibil de elemente
Asemanator float a[100], double b[20].
Pentru a atribui un element folosim :
v[1] = 3; v[2] = 4, v[6] = 29, etc.
Pentru citirea unui vector de n elemente, unde n este citit de la tastatura, se foloseste urmatoarea portiune de program :
Se incepe citirea de la 1, primul element fiind salvat in v[1]. (La siruri de caractere, inceperea se face de la 0.) Elevul poate decide de pe ce pozitie sa inceapa : 1 sau 0.
Pentru a accesa elementul de pe pozitia K vom folosi v[K].
Afisarea se face in mod asemanator, citirii:
Un vector v[6] are urmatoarea structura:
Astfel, cu ajutorul vectorilor, putem face modificari asupra unui sir de numere intregi, salvand fiecare modificare, pentru a afisa rezultatul obtinut. De asemenea, un caz foarte uzual, in care sunt folositi vectori, este atunci cand, se afiseaza elemente citite de la tastatura, intr-o ordine care nu coincide cu ordinea de citire.
Exemplu : afisarea in ordine inversa a unui sir citit de la tastatura( In acest caz, ultimul element afisat, este primul citit, deci, acesta trebuie retinut intr-o variabila. Vectorul ofera aceasta posibilitate, primul element fiind salvat pe prima pozitie din vector).
Problemele cu siruri, in care nu este posibila parcurgerea o singura data a sirului, se reduc si ele la lucrul cu vectori, sirurile fiind salvate in vectori. Memorarea sirurilor in tablouri unidimensionale face posibila parcurgerea sirurilor de mai multe ori.
Exemple de probleme in care s-ar putea folosi vectori :
- Ordonarea unui sir citit de la tastatura in ordine crescatoare sau descrescatoare.
- Sa se afiseze maximul unui sir citit de la tastatura.
- Sa se afiseze elementele pare ale unui sir citit de la tastatura, dupa care elementele impare ale acestuia separate prin cate un spatiu.
- Sa se gaseasca cel mai mare divizor comun ( cel mai mic multiplu comun) a unui sir citit de la tastatura.