InformaticăliceuClasa 9usor
Vectori în C++ - Tablouri Unidimensionale
Învață să lucrezi cu vectori (tablouri unidimensionale) în C++: declarare, citire, parcurgere și operații de bază. Tutorial complet stil pbinfo.
3 luni în urmă
0 vizualizări
40 minute
Vectori în C++ - Tablouri Unidimensionale
Definiție
Un vector (sau tablou unidimensional) este o structură de date care stochează o colecție de elemente de același tip, accesibile prin indici.
Caracteristici:
- •Elementele sunt stocate în locații consecutive de memorie
- •Indicii încep de la 0 (primul element este v[0])
- •Dimensiunea trebuie cunoscută la declarare (în C++ standard)
Teorie
Declarare
1tip nume_vector[dimensiune]; 2 3// Exemple: 4int v[100]; // Vector de 100 întregi 5double note[50]; // Vector de 50 numere reale 6char sir[256]; // Șir de caractere
Indexare
Pentru un vector v de dimensiune n:
- •Primul element:
v[0] - •Al doilea element:
v[1] - •Ultimul element:
v[n-1]
Exemple C++ Compilabile
Exemplul 1: Citirea și afișarea unui vector
1#include <iostream> 2using namespace std; 3 4int main() { 5 int v[100], n; 6 7 // Citirea dimensiunii 8 cout << "Introduceti numarul de elemente: "; 9 cin >> n; 10 11 // Citirea elementelor 12 cout << "Introduceti " << n << " elemente: "; 13 for (int i = 0; i < n; i++) { 14 cin >> v[i]; 15 } 16 17 // Afișarea elementelor 18 cout << "Elementele vectorului: "; 19 for (int i = 0; i < n; i++) { 20 cout << v[i] << " "; 21 } 22 23 return 0; 24}
Exemplul 2: Suma și media elementelor
1#include <iostream> 2using namespace std; 3 4int main() { 5 int v[100], n; 6 int suma = 0; 7 8 cin >> n; 9 for (int i = 0; i < n; i++) { 10 cin >> v[i]; 11 suma = suma + v[i]; 12 } 13 14 cout << "Suma: " << suma << endl; 15 cout << "Media: " << (double)suma / n << endl; 16 17 return 0; 18}
Exemplul 3: Minimul și maximul dintr-un vector
1#include <iostream> 2using namespace std; 3 4int main() { 5 int v[100], n; 6 int minim, maxim; 7 8 cin >> n; 9 for (int i = 0; i < n; i++) { 10 cin >> v[i]; 11 } 12 13 // Inițializăm cu primul element 14 minim = v[0]; 15 maxim = v[0]; 16 17 // Parcurgem restul vectorului 18 for (int i = 1; i < n; i++) { 19 if (v[i] < minim) 20 minim = v[i]; 21 if (v[i] > maxim) 22 maxim = v[i]; 23 } 24 25 cout << "Minim: " << minim << endl; 26 cout << "Maxim: " << maxim << endl; 27 28 return 0; 29}
Exemplul 4: Căutarea unui element în vector
1#include <iostream> 2using namespace std; 3 4int main() { 5 int v[100], n, x; 6 int pozitie = -1; // -1 înseamnă "negăsit" 7 8 cin >> n; 9 for (int i = 0; i < n; i++) { 10 cin >> v[i]; 11 } 12 13 cout << "Ce element cautati? "; 14 cin >> x; 15 16 for (int i = 0; i < n; i++) { 17 if (v[i] == x) { 18 pozitie = i; 19 break; // Am găsit, oprim căutarea 20 } 21 } 22 23 if (pozitie == -1) 24 cout << x << " nu exista in vector" << endl; 25 else 26 cout << x << " se afla pe pozitia " << pozitie << endl; 27 28 return 0; 29}
Exemplul 5: Inversarea unui vector
1#include <iostream> 2using namespace std; 3 4int main() { 5 int v[100], n; 6 7 cin >> n; 8 for (int i = 0; i < n; i++) { 9 cin >> v[i]; 10 } 11 12 // Inversare prin interschimbare 13 for (int i = 0; i < n / 2; i++) { 14 int temp = v[i]; 15 v[i] = v[n - 1 - i]; 16 v[n - 1 - i] = temp; 17 } 18 19 // Afișare 20 cout << "Vectorul inversat: "; 21 for (int i = 0; i < n; i++) { 22 cout << v[i] << " "; 23 } 24 25 return 0; 26}
Exemplul 6: Sortarea prin selecție
1#include <iostream> 2using namespace std; 3 4int main() { 5 int v[100], n; 6 7 cin >> n; 8 for (int i = 0; i < n; i++) { 9 cin >> v[i]; 10 } 11 12 // Sortare prin selecție (crescător) 13 for (int i = 0; i < n - 1; i++) { 14 // Găsim minimul din v[i..n-1] 15 int poz_min = i; 16 for (int j = i + 1; j < n; j++) { 17 if (v[j] < v[poz_min]) 18 poz_min = j; 19 } 20 // Interschimbăm v[i] cu v[poz_min] 21 int temp = v[i]; 22 v[i] = v[poz_min]; 23 v[poz_min] = temp; 24 } 25 26 // Afișare 27 cout << "Vectorul sortat: "; 28 for (int i = 0; i < n; i++) { 29 cout << v[i] << " "; 30 } 31 32 return 0; 33}
Greșeli Frecvente
1. Depășirea limitelor vectorului
1int v[10]; 2v[10] = 5; // GREȘIT! Indicii sunt 0-9 3 4// CORECT 5v[9] = 5; // Ultimul element valid
2. Confuzia între dimensiune și ultimul indice
1int v[100], n = 5; 2 3// GREȘIT - parcurgem până la n inclusiv 4for (int i = 0; i <= n; i++) { ... } // Accesează v[5] care nu există 5 6// CORECT - parcurgem până la n-1 7for (int i = 0; i < n; i++) { ... }
3. Neinițializarea variabilelor
1int suma; // GREȘIT - suma are valoare nedefinită 2for (int i = 0; i < n; i++) 3 suma = suma + v[i]; 4 5int suma = 0; // CORECT - inițializăm cu 0
Exerciții Tip PBInfo
Exercițiul 1 - Elementele pare
Să se afișeze toate elementele pare dintr-un vector.
Exercițiul 2 - Poziția maximului
Să se afișeze poziția elementului maxim (prima apariție).
Exercițiul 3 - Număr de apariții
Să se numere de câte ori apare o valoare x în vector.
Exercițiul 4 - Verificare sortare
Să se verifice dacă un vector este sortat crescător.
Exercițiul 5 - Interclasare
Să se interclaseze doi vectori sortați într-un al treilea vector sortat.
Tutorialul te-a ajutat?
Dacă ai nevoie de ajutor personalizat, găsește un profesor calificat pentru meditații
