fbpx

Tablouri unidimensionale (vectori) in C++

0

 

Ce este un tablou unidimensional?

Tabloul unidimensional este o structura de date careia i se atribuie un nume. Este format dintr-o colectie de elemente de acelasi tip, asezate continuu in memorie. Elementele pot fi accesate individual prin indici. Toate elementele au un predecesor (cu exceptia primului element) si un succesor (cu exceptia ultimului element)

Cum declar un tablou unidimensional?

Pentru a declara un tablou unidimensional ai nevoie de 3 proprietati: tipul, numele si dimensiunea acestuia. Cateva exemple:

  • int V[25]; // un tablou ce retine 25 de numere intregi
  • char s[40]; // un tablou ce retine 40 de caractere
  • float x[30]; // un tablou ce retine 30 de numere reale

Un element al unui tablou poate fi utilizat ca orice alta variabila. Ca sa accesezi un element dintr-un tablou trebuie sa faci referire la indicele acestuia, trecut intre paranteze drepte. Un aspect important este faptul ca poti efectua operatii doar asupra unui singur element, nu poti modifica tot tabloul deodata.

Tablou unidimensional = vector?

O greseala elementara ce o accepta toti profesorii este urmatoarea: permit elevilor sa numeasca aceasta structura de date „vector” – insa acest lucru este total gresit. Aceasta structura de date – tradusa corect in limba romana ar fi „multime”.

Deoarece o data declarat un tablou unidimensional – nu mai poti modifica numarul total de elemente ce este stocat in acesta. Pe cand intr-un vector, numarul total de elemente variaza pe parcursul rularii programului.

Initializarea tablourilor unidimensionale

Tablourile, la fel ca si variabilele pot fi initializate in trei moduri:

  • Prin introducerea datelor de la tastatura
  • Prin declararea acestuia global – toate elementele vor fi zero
  • Imediat dupa declararea acestora

(vezi in video cum am intializat pe rand tablourile)

Accesul elementelor dintr-un tablou unidimensional

  • Accesul fiecarui element al tabloului se face prin numele acestuia urmat intre paranteze drepte [ ] de indicele sau (adica pozitia pe care acesta o ocupa in tablou)
  • In limbajul C++ , indicii tablourilor incep numaratoarea de la 0 si se termina la N – 1 (unde N este numarul total de elemente)

Tablouri unidimensionale - accesarea unui element

Primul element din vector are indicele zero. (Unii profesori invata elevii la clasa ca numaratoarea incepe de la 1 – DON’T DO THAT).

Inserarea si stergerea elementelor dintr-un „vector”

Adaugarea unui element nou

Pentru a adauga un element intr-un tablou unidimensional, tot ceea ce trebuie sa facem este sa marim dimensiunea logica n a vectorului, si sa memoram noul element in casuta ce am eliberat-o.

Inserarea unui element nou

Presupunand ca avem un sir „V” cu „n” elemente, si dorim sa inseram elementul „numar_nou” pe pozitia „p”.

Tablouri unidimensionale - inserarea unui elementIn imaginea de mai sus, am inserat elementul „13” pe pozitia 3. Cum am procedat?

  • Am marit mai intai dimensiunea logica (n) cu un element
  • Am parcurs vectorul de la coada „si am tras” toate elementele dupa indicele 3 cu o pozitie la dreapta
  • Am inlocuit valoarea din V[3]

Stergerea unui element

Presupunand ca avem un sir „V” cu „n” elemente, si dorim sa stergem elementul de pe pozitia „p”.

Tablouri unidimensionale - stergerea unui elementIn imaginea de mai sus am sters elementul de pe pozitia 2. Cum am procedat?

  • Am parcurs vectorul incepand de pe pozitia „p”
  • Am tras toate elementele la stanga
  • Am micsorat n cu o unitate

Tablouri unidimensionale – probleme rezolvate

1. Se citește un vector cu n elemente, numere naturale. Să se afișeze suma elementelor din vector.

2. Se citește un vector cu n elemente, numere naturale. Să se afișeze elementul maxim, si de cate ori apare acesta in vector.

3. Se citesc doi vectori cu n si m elemente. Sa se afiseze intersectia celor doua multimi.

 

Comentarii
Se incarca comentariile...

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More