Sunteți pe pagina 1din 3

ADAUGAREA SAU ELIMINAREA UNUI ELEMENT INTR-UN VECTOR

a)Eliminarea unui element de pe pozitia k dintr-un vector


v=(1,2,5,3,7,8)
k=3
v=(1,2,3,7,8)
-pentru a elimina elemental v[k] deplasam elementele
v[k+1],v[k+2],…,v[n] cu o pozitie in partea stanga(in acest mod
elementul de pe pozitia k+1 va fi adus in locul lui v[k], deci acesta va fi
eliminat)
V[k]=v[k+1] for(i=k;i<=n-1;i++)

V[k+1]=v[k+2] v[i]=v[i+1];
n--;

V[n-1]=v[n]
exemplu: eliminarea valorilor negative din vector
k=1;
while(k<=n)
if(v[k]<0)
{ for(i=k;i<=n-1;i++)
v[i]=v[i+1];
n--;}
else
k++;
for(k=1;k<=n;k++)
if(v[k]<0)
{for(i=k;i<=n-1;i++)
v[i]=v[i+1];
n--;
k--;//ramane pe poz k pana cand v[k] nu mai e <0
}

b)Adaugarea unui element intr-un vector

-deplasam elementele v[n],v[n-1],…,v[k] cu o


pozitie in partea dreapta (in aceasta ordine
pentru a nu se pierde valori) apoi adaugam pe
pozitia k valoarea dorita(x)
for(i=n;i>=k;i--)
v[i+1]=v[i];
n++;
v[k]=x;
exemplu: sa se adauge dupa fiecare valoare para
dintr-un vector jumatatea ei

for(i=1;i<=n;i++)
if(v[i]%2==0)
{
x=v[i]/2;
for(j=n;j>=i+1;j--)
v[j+1]=v[j];
n++;
v[i+1]=x;
i++;//sare peste val inserata
}
V=(16 4 2 7 9 3 2)
V=(16 8 4 2 2 1 7 9 3 2 1)