Sunteți pe pagina 1din 4

Stergeri si inserari in vectori

I. Stergeri in vectori
1) Stergeri simple (se sterge un element/ sau un numar fix de elemente)
Se da n natural, un vector de n elemente numere intregi si o pozitie poz(1<=poz<=n). Stergeti valoarea de pe
pozitia poz din vector.
#include <iostream>
using namespace std;
int main()
{
int n, x[100],i, poz,j;
///citiri
cin>>n;
for(i=1;i<=n;i++)
cin>>x[i];
cin>>poz;
///stergere simpla
for(j=poz;j<=n-1;j++)
x[j]=x[j+1]; Aplicatii:
n--; 1. Sa se sterga elemental de pe prima pozitie.
///afisarea 2. Sa se stearga elemental de pe a doua pozitie.
for(i=1;i<=n;i++) 3. Sa se steraga elemental/ elementele din mijloc.
cout<<x[i]<<" "; 4. Sa se stearga primul element par.
return 0; 5. Sa se steraga ultimul element negativ.
}
2) Stergeri multiple (se sterg toate elementele cu o proprietate data)
#include <iostream>
using namespace std;
int main()
{
int n, x[100],i, poz,j;
///citiri
cin>>n;
for(i=1;i<=n;i++)
cin>>x[i];
///stergere multipla-a tuturor elem pare
for(i=1;i<=n;i++)
if(x[i]%2==0)
{ ///stergere elem de pe pozitia poz=i
poz=i;
for(j=poz;j<=n-1;j++)
x[j]=x[j+1];
n--;
i--; ///ramanem la aceeasi pozitie i
}
///afisarea
for(i=1;i<=n;i++)
cout<<x[i]<<" ";
return 0;
}

Aplicatii:
1. Sa se stearga toate elementele negative.
2. Sa se stearga toate elementele div cu 7.
3. Sa se stearga toate elementele prime
II. Inserari in vectori
3) Inserari simple (se insereaza un element)
Se da n natural, un vector de n elemente numere intregi, o pozitie poz(1<=poz<=n) si o valoare v. Inserati
valoarea v pe pozitia poz in vectorul x.
#include <iostream>
using namespace std;
int main()
{
int n, x[100],i, poz,j,val;
///citiri
cin>>n;
for(i=1;i<=n;i++)
cin>>x[i];
cin>>poz>>val;
///inserare simpla
n++; Aplicatii:
for(j=n;j>=poz+1;j--)
x[j]=x[j-1]; 1. Pe prima pozitie inserati valoarea 100.
x[poz]=val; 2. Pe a doua pozitie inserati suma elementelor
///afisarea din vector
for(i=1;i<=n;i++) 3. Pe pozitia din mijloc inserati minimul din
cout<<x[i]<<" "; vector.
return 0;}
4) Inserari multiple (se insereaza mai multe elemente)

a) DUPA fiecare element cu o proprietate data, inserati o valoare (dublul sau, jumatatea sa, 2018, -1, etc.)
#include <iostream>
using namespace std;
int main()
{
int n, x[100],i, poz,j,val;
///citiri
cin>>n;
for(i=1;i<=n;i++)
cin>>x[i];
///inserare multipla-dupa fiecare par, ins. dublul
for(i=1;i<=n;i++)
if(x[i]%2==0)
{
poz=i+1;
val=2*x[i];
///inserare pe pozitia poz a valorii val
n++;
for(j=n;j>=poz+1;j--)
x[j]=x[j-1]; Aplicatii:
x[poz]=val; 1. Dupa fiecare element negativ, inserati -1
i++; 2. Dupa fiecare element pozitiv si patrat perfect,
} inserati partea intreaga a radicallui sau.
///afisarea 3. Dupa fiecare element divizibil cu 7, inserati
for(i=1;i<=n;i++) triplul sau
cout<<x[i]<<" "; 4. Dupa fiecare element neprim, inserati
return 0; numarul sau de divizori.
}
b) INAINTEA fiecarui element cu o proprietate data, inserati o valoare (dublul sau, jumatatea sa, 2018, -1)
#include <iostream>
using namespace std;
int main()
{
int n, x[100],i, poz,j,val;
///citiri
cin>>n;
for(i=1;i<=n;i++)
cin>>x[i];
///inserare multipla-dupa fiecare par, ins. dublul
for(i=1;i<=n;i++)
if(x[i]%2==0)
{
poz=i;
val=2*x[i];
///inserare pe pozitia poz a valorii val
n++;
for(j=n;j>=poz+1;j--)
x[j]=x[j-1];
x[poz]=val; Aplicatii:
i++; 1. Inaintea fiecarui element nul, inserati
} valoarea 2018
///afisarea 2. Inaintea fiecarui element par, inserati
for(i=1;i<=n;i++) jumatatea sa.
cout<<x[i]<<" "; 3. Inaintea fiecarui element perfect, inserati
return 0; suma cifrelor sale
}

c) INTRE oricare doua elemente vecine (de pe pozitii alaturate, inserati ceva)

#include <iostream>
using namespace std;
int main()
{
int n, x[100],i, poz,j,val;
///citiri
cin>>n;
for(i=1;i<=n;i++)
cin>>x[i];
///intre oricare doua el vecine care au acelasi semn,
inserati suma lor
for(i=1;i<=n-1;i++)
if(x[i]*x[i+1]>=0)
{
poz=i+1;
val=x[i]+x[i+1];
///inserare pe pozitia poz a valorii val
n++;
for(j=n;j>=poz+1;j--)
x[j]=x[j-1];
x[poz]=val; Aplicatii:
i++; 1.INTRE oricare doua elemente vecine, inserati
} produsul lor.
///afisarea 2.INTRE oricare doua elemente vecine, care au
for(i=1;i<=n;i++) aceeasi paritate, inserati minimul lor.
cout<<x[i]<<" "; 3.INTRE oricare doua elemente vecine a caror
return 0; diferenta in modul este 1, inserati maximul lor.
}

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