Documente Academic
Documente Profesional
Documente Cultură
-Sa spunem ca vrem sa eliminam din vectorul v=( 22, 7, 2020, 3, 1) cu n=5 , elementul de pe pozitia 3,
adica 2020. Cum procedam? Elementele cu indici p+1 (4) si p+2 (5) se muta spre stanga cu o pozitie, iar
dimensiunea n a tabloului unidimensional se micsoreaza cu 1 (n--)
X[i] = X[i+1];
n --;
-Considerăm un șir v cu n elemente întregi. Să se elimine din șir toate elementele impare.
dacă elementul v[i] este impar, aplicăm algoritmul de mai jos pentru ștergerea elementului cu indicele i.
-algoritm-
La sfarsitul parcurgerii, raman doar elementele pare (logic), ca in imaginea de mai jos
Codul (tot bolduit)
#include <iostream>
int main()
int v[100], i , n, j;
cin>>n;
cin>>v[i];
if(v[i]%2!=0)
v[j]=v[j+1];
n--;
i--;
cout<<v[i]<<" ";
return 0;
}
2. Inserare dublu elemente pare
Adaugarea unui element in vector inseamna marirea dimensiunii logice n a vectorului si memorarea in
ultimul element a noii valori.
Similar cu algoritmul de ștergere a unui element dintr-un vector, și cel de inserare presupune
modificarea elementelor din dreapta lui v[i] . De data aceasta elementele vor fi mutate spre
dreapta, începând cu ultimul. Elementul v[i] se înlocuiește cu noua valoare, iar dimensiunea logică a
vectorului crește, fără a depăși însă dimensiunea fizică.
---Sa se insereze intr-un vector v cu n elemente, dublul elementelor pare.----
Se procedeaza astfel:
Parcurgem sirul
Inseram pe pozitia i+1 valoarea v[i]*2, pe care am denumit o in cod cu ajutorul variabilei k.
-algoritmul-
Pentru vectorul v=(7, 9, 4, 2, 1, 6, 5) cu n=7 elemente
i=1, v[1]=7, 7%2!=0, deci v[1] ramane pe aceeasi pozitie, neschimbat
i=3, v[3]=4, 4%2==0, deci v[3] ramane pe aceeasi pozitie, insa in dreapta lui se
insereaza 4*2, respectiv 8
i=4, v[4]=2, 2%2==0, deci in dreapta v[4] (initial) se insereaza 2*2, respectiv 4
i=6, v[6]=6, 6%2==0, deci in dreapta v[6](=6, initial) se insereaza 6*2, respectiv 12
Codul(tot bolduit):
#include <iostream>
int main()
int v[100], n , i, j, k;
cin>>n;
cin>>v[i];
k=v[i];
if(k%2==0)
n++;
v[j+1]=v[j];
v[i+1]=2*k;
i++;
cout<<v[i]<<" ";