Sunteți pe pagina 1din 3

Tablouri unidimensionale (vectori)

Generalitati. Clasificare

Numim tablou o colecţie de date de acelaşi tip, în care elementele sunt ordonate, iar accesul la fiecare element are loc prin indice.

În funcţie de numărul indicilor avem mai multe tipuri de tablouri:

1. Tablouri unidimensionale (cu un singur indice)

2. Tablouri bidimensionale (cu doi indici)

Tablourile unidimensionale funcţionează ca un vector şi se pot declara astfel:

tip nume_tablou[dimensiune_maximă];

Se observă că este obligatorie folosirea parantezelor drepte care să încadreze dimensiunea maximă pe care o alege utilizatorul
pentru acel tablou unidimensional.

Exemplu: Declarări de tablouri unidimensionale:

int a[25]; // declararea unui tablou unidimensional cu maxim 25 de // elemente, fiecare de tip întreg

float x[30]; // declararea unui tablou unidimensional cu maxim 30 de // elemente, fiecare de tip real simplă precizie

char s[40]; // declararea unui tablou unidimensional cu maxim 40 de // elemente, fiecare de tip caracter

 Compilatorul C++ alocă un spaţiu de memorie egal cu numărul maxim de elemente ale tabloului, rezervând bineînţeles
octeţi în funcţie de tipul de bază al fiecărui tablou.

• Accesul la fiecare element al tabloului se face prin numele acestuia urmat între paranteze, de indicele său (adică poziţia pe care
o ocupă în tablou).

• În limbajul C++, indicii tablourilor încep numărătoarea de la valoarea 0.

Exemplu: Modalităţi de acces la elementele ce pot fi memorate în tablourile unidimensionale declarate anterior:

a[0] – reprezintă elementul aflat pe prima poziţie în tablou

a[24] - reprezintă elementul aflat pe ultima poziţie în tablou

x[i] - reprezintă elementul aflat pe poziţia i în tablou, unde i poate avea valori între 0 şi 29.

Problema 1:

Cerința
Se dă un șir cu n elemente, numere naturale. Determinați diferența în valoare absolută dintre numărul de valori pare din șir și
numărul de valori impare din șir.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, reprezentând elementele șirului.

Date de ieșire
Programul va afișa pe ecran numărul C, reprezentând valoarea cerută.

Exemplu
Intrare

5
15 245 28 33 11

Ieșire

3
Rezolvare

#include <iostream>
using namespace std;
int main()
{
int n,i,d,v[1000],k1,k2;
cin>>n;
k1=0;
k2=0;
for (i=1;i<=n;i++)
cin>>v[i];
for (i=1;i<=n;i++)
{
if (v[i]%2==0)
k1=k1+1;
else
k2=k2+1;
}
if (k1>=k2)
d=k1-k2;
else d=k2-k1;
cout<<d;
return 0;
}
Problema 2.
Cerinţa
Se dă un şir cu n elemente, numere naturale. Să se verifice dacă în şir există elemente impare.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi cele n elemente ale şirului, separate prin spaţii.

Date de ieşire
Programul afișează pe ecran mesajul DA, dacă şirul conţine elemente impare, respectiv NU în caz contrar.

Exemplu
Date de intrare

5
2 8 6 10 8

Date de ieșire

NU

Rezolvare
#include <iostream>
using namespace std;
int main()
{
int n,i,v[10005],nr;
cin>>n;
for (i=1;i<=n;i++)
cin>>v[i];
nr=0;
for (i=1;i<=n;i++)
if (v[i]%2==1)
nr=nr+1;
if (nr>0)
cout<<"DA";
else cout<<"NU";
return 0;
}
Probleme propuse de pe pbinfo.ro : 288, 501, 500, 546, 486, 547.

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