Sunteți pe pagina 1din 2

Tablouri unidimensionale- vectori

Prelucrări elementare ale vectorilor


1. Determinarea elementului minim/maxim
Metoda tipică de determinare a elementului minim/maxim dintr-un vector este următoarea : se
iniţializează minimul/maximul cu primul element din vector apoi se compară cu celelalte elemente din vector
reţinându-se, pe rând, valorile mai mici/mai mari.
minim=a[0]; /* maxim=a[1]; */
for(i=1; i<n; i++)
if(minim>a[i]) /* (maxim<a[i]) */
minim=a[i]; /* maxim=a[i]; */
2. Determinarea primului element cu o anumită proprietate
Pentru a determina primul element (de indice minim) cu o anumită proprietate, se parcurge vectorul
de la stânga la dreapta până când găsim primul element cu proprietatea cerută sau până când epuizăm
elementele vectorului. De exemplu, determinarea primului element nul dintr-un vector se realizează cu
secvenţa:
f=-1;
for(j=0;j<n;j++)
if(!a[j])
{ f=j; break; }

Verificând valoarea variabilei f decidem dacă în vectorul există cel puţin un element cu proprietatea cerută
(f=indicele acestuia) sau nici unul (f =-1).

3. Determinarea sumei elementelor de pe pozitii pare


s=0;
for(i=0; i<n; i+=2)
s+=a[i];
// parcurg vectorul doar pe pozitiile pare si insumez in s valorile din vector, respectiv i va lua
valorile 0, 2, 4,....

4. Determinarea produsului elementelor de pe pozitii impare


p=1;
for(i=1;i<n;i+=2)
p*=a[i];
// parcurg vectorul doar pe pozitiile impare si inmultesc in p valorile din vector, respectiv i va
lua valorile 1,3, 5,....

5. Determinarea numarului elementelor din vector care sunt numere impare


nr=0;
for(i=0;i<n;i++)
if(a[i]%2==1)
// parcurg vectorul si pentru fiecare valoare din vector impara, a[i]%2==1, o numar in
variabila nr

6. Inversarea elementelor din vector


Ex. a=(1 2 3 4 5)  a=(5 4 3 2 1)
for(i=0;i<n/2;i++)
{
aux=a[i], a[i]=a[n-1-i]; a[n-1-i]=aux; }

//se interschimba valorile din vector aflate la distante egale fata de marni, a[i] cu a[n-1-i]

7. Mutarea elementelor din vector cu o pozitie la dreapta (permutare circulara la


dreapta)
Ex. a=(1 2 3 4 5)  a=(5 1 2 3 4)
aux=a[n-1]; // se salveaza ultima valoare din vector in aux
for(i=1;i<n;i++)
a[i]=a[i-1];//se “muta” primele n-1 valori cu o pozitie la dreapta
a[0]=aux;//se memoreaza pe prima pozitie din vector valoarea din aux

8. Mutarea elementelor din vector cu o pozitie la stanga (permutare circulara la


stanga)
Ex. a=(1 2 3 4 5)  a=( 2 3 4 5 1)
aux=a[0]; // se salveaza prima valoare din vector in aux
for(i=0;i<n-1;i++)
a[i]=a[i+1]; ];//se “muta” ultimele n-1 valori cu o pozitie la stanga
a[n-1]=aux; ;//se memoreaza pe ultima pozitie din vector valoarea din aux

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