Sunteți pe pagina 1din 2

O structură de date reprezintă un ansamblu (o colecţie) de date organizate după anumite

reguli, care depind de tipul de structură.


Dintre tipurile de structuri de date fac parte: tablourile de memorie si fişiere.
Tablouri. Tabloul reprezintă o zonă de memorie cărei i se atribuie un nume şi care permite
memorarea mai multor date de acelaşi tip. Aceste date pot fi tratate ca un tot unitar sau ca date
elementare independente.
Tablourile sunt de două tipuri:
o tablouri unidimensionale (vectori);
o tablouri bidimensionale (matrici).
Tablouri unidimensionale (vectori)
Pentru a prelucra un set de valori de acelaşi tip, acesta trebuie memorat într-o
structură de date. O astfel de structură de date se numeşte şir, iar valorile respective se
numesc elementele şirului.
Declarare vector:
Sintaxa: tip_dată nume[nr_elemente]; unde:
-tip_dată precizează tipul elementelor vectorului;
-nume este identificatorul vectorului;
-nr_elemente este o constantă întreagă care reprezintă numărul de elemente ale vectorului.

Spunem că fiecare element are un indice. Indicii unui tablou sunt între 0 și dimensiune-1, deci
în exemplul nostru între 0 și 9.
Exemple
1.Se declară un vector a cu 10 elemente de tip int: int a[10];
2. Se declară un vector x cu 5 elemente de tip float: float x[5];
3. Iniţializarea elementelor unui vector la declarare: int v[]={21, 4, 361, 55};
Referirea unui element / accesul la un element
Referirea unui element se face prin operatorul de indexare, [ ], care are prioritate maximă.
Sintaxă: nume[indice]
unde: nume este identificatorul vectorului si indice este numărul de ordine al elementului în
cadrul vectorului.
Exemplu:
X[0] este elementul aflat în poziția 0 în vectorul X
X[5] este elementul aflat în poziția 5 în vectorul X
Parcurgerea unui tablou unidimensional
- parcurgerea se face de la stânga spre dreapta, adică în ordinea crescătoere a indicilor
de la 0 la n:
for(int i = 0; i < n ; i ++) sau pentru vector indext cu 1: for(int i = 1; i <= n ; i ++)
- parcurgerea de la dreapta la stânga, adică în ordinea descrescătoare a indicilor, de la
n-1 la 0:
for(int i = n - 1 ; i >= 0 ; i --) sau pentru vector indexat de la 1: for(int i = n; i >= 1 ; i --)
Citirea unui vector
- se citeşte mai întâi numărul de elemente ale vectorului;
- se citesc pe rând, unul câte unul elementele vectorului;
cout<<”Numarul de elemente:”; cin>>n;
for(i=1; i<=n; i++) { cout<<”v[”<<i<<”]=”; cin>>v[i]; }
Afișarea unui vector
-se realizează afişând pe rând elementele vectorului: for(i=1;i<=n;i++) cout<<v[i]<< " ";
1
1. Se citeste un vector v cu n componente 2. Se citeste un vector v cu n componente
numere inregi. Sa se afiseze numerele in numere inregi. Sa se afiseze numerele impare.
ordine inversa.
#include <iostream> #include <iostream>
using namespace std; using namespace std;

int main() int main()


{ {
int n,i, v[101]; int n,i, v[101];
cout<<"Lungimea vectorului este "; cout<<"Lungimea vectorului este ";
cin>>n; cin>>n;
for(i=1; i<=n; i++) for(i=1; i<=n; i++)
{ {
cout<<"v["<<i<<"]="; cout<<"v["<<i<<"]=";
cin>>v[i]; cin>>v[i];
} }
for(i=n; i>=1; i--) for(i=1; i<=n; i++)
cout<<v[i]<<" "; if(v[i]%2==1)
} cout<<v[i]<<" ";
}

3. Se citeşte un număr n întreg şi apoi n numere întregi. Să se realizeze un algoritm care


să afișeze cel mai mare număr citit.
intreg n, i, v[101] #include <iostream>
citeşte n, v[i] using namespace std;
maxim ← x[1] int main()
pentru i ← 2, n execută {
| dacă (v[i] > maxim) atunci int n,i, v[101];
| | maxim ← v[1] cout<<"Lungimea vectorului este ";
| |▄ cin>>n;
|▄ for(i=1; i<=n; i++)
scrie maxim {
cout<<"v["<<i<<"]=";
cin>>v[i];
}
int maxim=v[1];
for(i=2; i<=n; i++)
if(v[i]>maxim) maxim=v[i];
cout<<"Valoarea maxima este "<<maxim;
}
4. Se citeşte un număr n întreg şi apoi n numere întregi. Să se realizeze un algoritm care
să afișeze cel mai mic număr citit.

S-ar putea să vă placă și