O mulțime de date consecutive de același tip se numește tablou sau vector dacă este memorată într-o zonă continuă de memorie. Atunci când elementele vectorului sunt indexate cu un singur contor se numește tablou unidimensional.
Definiție:
Un tablou unidimensional (sau vector) este o structură de date utilizată în programare pentru a stoca mai multe valori de același tip într-o singură variabilă. Aceasta este o colecție ordonată de elemente, accesibile printr-un indice (index).
Definiție C++:
Un tablou unidimensional în C++ este o colecție de elemente de același tip, stocate consecutiv în memorie și accesibile printr-un index numeric.
Declarare vector:
type nume_tablou[dimensiune];
int a[100]; //vectorul a are maxim 100 de elemente numere întregi
În matematică mai precis la algebră sau la analiză matematică vectorii din informatică sunt șiruri de numere.
Vectorii sunt memorați într-o zonă continuă de memorie care este identificabilă după adresa primului element din vector.
Accesul la un element din vector:
Se face folosind un index de obicei notat cu i ca variabilă de tip întreg adică se declară int i. Folosim instrucțiunea repetitivă cu contor for având de obicei forma:
for( int i = 0; i < n ; i++) //unde n poate avea o valoare maximă egală cu maximul vectorului
În instrucțiunea de mai sus avem:
int i // declarare vector
i=0 // inițializare contor
i<n // condiția de ieșire din buclă
i++ // pasul cu care se numără elementele tabloului
Accesul direct la un element din vector:
#include <iostream>
using namespace std;
int main() {
int v[5] = {1, 2, 3, 4, 5}; // Inițializare directă
cout << "Elementul 2: " << v[1] << endl; // Accesarea elementului cu indexul 1
return 0;
}
În exemplul de mai sus se observă că vectorii în C++ sunt implicit zero indexați de program. Adică vectorul are primul element v[0].
| 1 | 2 | 3 | 4 | 5 |
| v[0] | v[1] | v[2] | v[3] | v[4] |
Observație:
La inițializarea directă (vezi programul de mai sus) C++ permite inițializarea fără a specifica dimensiunea:
int v[ ] = {1, 2, 3, 4, 5}; // Compilatorul deduce automat dimensiunea
Exemplu: Declarare și Inițializare directă
Inițializarea directă înseamnă scrierea valorilor elementelor tabloului între acolade ca în exemplul de mai jos.
#include <iostream>
using namespace std;
int main() {
int v[5] = {10, 20, 30, 40, 50}; // Inițializare directă
cout << "Elementele tabloului sunt: ";
for (int i = 0; i < 5; i++) {
cout << v[i] << " ";
}
return 0;
}
Acest program va afișa:
Elementele tabloului sunt: 10 20 30 40 50
Citirea și afișarea unui tablou unidimensional
#include <iostream>
using namespace std;
int main() {
int n;
cout << "Introduceti numarul de elemente: ";
cin >> n;
int v[n]; // Alocare dinamică (funcționează doar în unele compilatoare moderne)
cout << "Introduceti " << n << " elemente:\n";
for (int i = 0; i < n; i++) {
cin >> v[i];
}
cout << "Elementele introduse sunt: ";
for (int i = 0; i < n; i++) {
cout << v[i] << " ";
}
return 0;
}
Modificarea unui element din tablou:
#include <iostream>
using namespace std;
int main() {
int v[5] = {1, 2, 3, 4, 5};
v[2] = 10; // Modifică elementul de pe poziția 2
cout << "Tabloul modificat: ";
for (int i = 0; i < 5; i++) {
cout << v[i] << " ";
}
return 0;
}
Tabloul modificat:
Tabloul modificat: 1 2 10 4 5
Căutarea unui element într-un tablou:
#include <iostream>
using namespace std;
int main() {
int v[5] = {3, 7, 9, 2, 5};
int valoare, gasit = 0;
cout << "Introduceti valoarea cautata: ";
cin >> valoare;
for (int i = 0; i < 5; i++) {
if (v[i] == valoare) {
cout << "Valoarea " << valoare << " a fost gasita la indexul " << i << ".\n";
gasit = 1;
break;
}
}
if (!gasit) {
cout << "Valoarea nu a fost gasita.\n";
}
return 0;
}
Teme:
- Să se scrie un program care citește de la tastatură și afișează pe ecran 5 numere întregi memorate într-un tablou unidimensional.
- Să se scrie un program care declară prin inițializare directă un tablou unidimensional de 3 elemente și modifică valoarea elementului de pe poziția 1.
- Să se scrie un program care afișează elementele pare ale unui tablou.
- Să se scrie un program care afișează elementele unui tablou în ordine inversă.
Observație: La temele 4,5 tabloul poate fi declarat prin inițializare directă.
