# Vectori: declarare, citire și parcurgere

> Pagina: https://bacalaurescu.ro/informatica/lectii/tablouri-unidimensionale/vectori-declarare-si-parcurgere
> Markdown: https://bacalaurescu.ro/informatica/lectii/tablouri-unidimensionale/vectori-declarare-si-parcurgere.md
> Sursa: Bacalaurescu (bacalaurescu.ro), conținut gratuit pentru BAC 2027.

Materia: [Informatică](https://bacalaurescu.ro/informatica)

Capitolul: [Tablouri unidimensionale](https://bacalaurescu.ro/informatica/lectii/tablouri-unidimensionale)
Actualizat: 2026-11-01

Tablouri unidimensionale în C++: memorare, citire cu for și algoritmul de maxim.

## Pe scurt pentru BAC

- Un vector memorează mai multe valori de același tip sub un singur nume, iar fiecare element se accesează prin indice.
- Indicii pornesc de la 0, deci primul element este `v[0]`, iar al zecelea este `v[9]`.
- Citirea și afișarea unui vector se fac cu un `for` de la `i = 0` cât timp `i < n`.
- La maxim parcurgi de la `i = 1` și actualizezi `maxim` de fiecare dată când găsești o valoare mai mare.
- Numărarea elementelor cu o proprietate folosește un contor pornit de la 0, crescut cu `cnt++` la fiecare element potrivit.

## Ce este un vector

Un **tablou unidimensional (vector)** memorează mai multe valori de același tip, sub un singur nume, accesate prin **indice**:

~~~cpp
int v[100];
~~~

Indicii pornesc de la 0: primul element este `v[0]`, al zecelea este `v[9]`.

## Citirea și afișarea

~~~cpp
int n, v[100];
cin >> n;
for (int i = 0; i < n; i++)
    cin >> v[i];
for (int i = 0; i < n; i++)
    cout << v[i] << " ";
~~~

Pentru intrarea `3` urmată de `3 7 2`, vectorul devine `v[0]=3, v[1]=7, v[2]=2`.

## Algoritmul de maxim

~~~cpp
int maxim = v[0];
for (int i = 1; i < n; i++)
    if (v[i] > maxim)
        maxim = v[i];
cout << maxim;
~~~

Urmărire pentru `3 7 2`: maxim pornește 3; la `i=1`, 7 > 3, maxim devine 7; la `i=2`, 2 < 7, rămâne 7. Se afișează `7`.

> [!RETINE]
> Inițializează maximul cu PRIMUL element, nu cu 0: dacă toate valorile sunt negative, maximul inițial 0 dă rezultat greșit.

## Numărarea elementelor cu o proprietate

~~~cpp
int cnt = 0;
for (int i = 0; i < n; i++)
    if (v[i] % 2 == 0)
        cnt++;
~~~

Pentru `3 7 2`, doar 2 e par, deci `cnt = 1`.

## Greșeli frecvente

1. Indicii merg de la 0 la n−1: `v[n]` este în afara datelor citite.
2. La citirea cu indice de la 1 (`for i=1..n`), fii consecvent peste tot în program.
3. Maximul inițializat cu 0 în loc de `v[0]` pică pe vectori cu numere negative.
