Ce este un vector
Un tablou unidimensional (vector) memorează mai multe valori de același tip, sub un singur nume, accesate prin indice:
#include <iostream>
using namespace std;
int main() {
int v[100];
v[0] = 3;
v[1] = 7;
v[2] = 2;
cout << v[0] << " " << v[1] << " " << v[2];
return 0;
}Atenție: Dimensiunea se alege mai mare decat ar putea fi nevoie. Elementele nefolosite exista, dar nu au valoare utila in C, C++ si Pascal.
Indicii pornesc de la 0: primul element este v[0], al zecelea este v[9].
Citirea și afișarea
#include <iostream>
using namespace std;
int main() {
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] << " ";
return 0;
}Pentru intrarea 3 urmată de 3 7 2, vectorul devine v[0]=3, v[1]=7, v[2]=2.
Algoritmul de maxim
#include <iostream>
using namespace std;
int main() {
int v[] = {3, 7, 2, 9, 4}, n = 5;
int maxim = v[0];
for (int i = 1; i < n; i++)
if (v[i] > maxim)
maxim = v[i];
cout << maxim;
return 0;
}Atenție: Maximul se porneste de la primul element al vectorului, nu de la zero. Cu zero, un vector cu toate valorile negative ar da raspuns gresit.
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.
Numărarea elementelor cu o proprietate
#include <iostream>
using namespace std;
int main() {
int v[] = {3, 7, 2, 9, 4}, n = 5;
int cnt = 0;
for (int i = 0; i < n; i++)
if (v[i] % 2 == 0)
cnt++;
cout << cnt;
return 0;
}Pentru 3 7 2, doar 2 e par, deci cnt = 1.
Greșeli frecvente
- Indicii merg de la 0 la n−1:
v[n]este în afara datelor citite. - La citirea cu indice de la 1 (
for i=1..n), fii consecvent peste tot în program. - Maximul inițializat cu 0 în loc de
v[0]pică pe vectori cu numere negative.