0% au considerat acest document util (0 voturi)
27 vizualizări60 pagini

Proiect Informatica

Documentul este un proiect de informatică care conține o serie de exerciții cu vectori, fiecare prezentând o problemă specifică și soluția sa în cod C++. Exercițiile acoperă diverse operații cu vectori, inclusiv calcularea sumelor, găsirea maximului și minimului, verificarea divizibilității și manipularea elementelor vectorului. Proiectul este structurat cu un cuprins detaliat și include exemple de cod pentru fiecare exercițiu.

Încărcat de

the mighht boss
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
27 vizualizări60 pagini

Proiect Informatica

Documentul este un proiect de informatică care conține o serie de exerciții cu vectori, fiecare prezentând o problemă specifică și soluția sa în cod C++. Exercițiile acoperă diverse operații cu vectori, inclusiv calcularea sumelor, găsirea maximului și minimului, verificarea divizibilității și manipularea elementelor vectorului. Proiectul este structurat cu un cuprins detaliat și include exemple de cod pentru fiecare exercițiu.

Încărcat de

the mighht boss
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd

Simion darius 10c

Proiect informatica
Colegiul national Gheorge Lazar
7 iunie 2024
Vectori

CUPRINS

Contents
15 decembrie exercitii cu vectori................................................................................................................2
Bubble sortFisiere text...............................................................................................................................42
Interclasarea..............................................................................................................................................50
Inserarea in text........................................................................................................................................52
Stergerea din vector..................................................................................................................................55
Cautarea binara.........................................................................................................................................59

1
Simion darius 10c

15 decembrie exercitii cu vectori


1. Sa se calculeze suma primelor n numere oarecare.

#include <iostream>

using namespace std;

int main()
{
int n, i, s=0, x;
cin>>n;
for (i=1; i<n; i++)
{
cin>>x; s+=x;
}
cout<<s;
return 0;
}
2. Se citesc n numere naturale. Care este suma elementelor aflate pe pozitii impare in vector?
Dar a celor aflate pe pozitii pare ?

2
Simion darius 10c

#include <iostream>

using namespace std;

int main()
{
int n, i, v[100], sp=0, si=0;
cin>>n;
for(i=0; i<n; i++)
{
cin>>v[i];
if (i%2==0) sp+=v[i];
else si+=v[i];
}
cout<<sp<<' '<<si;
return 0;
}
3. Se da un sir de n numere naturale. Sa se determine cate dintre acestea sunt divizibile cu un
numar -div - introdus de la tastatura.

3
Simion darius 10c

#include <iostream>

using namespace std;

int main()
{
int n, i, v[100], nr=0, div;
cin>>n;
cin>>div;
for(i=0; i<n; i++)
{
cin>>v[i];
if (v[i]%div==0) nr++;
}
cout<<nr;
return 0;
}
4. Sa se introduca n numere de la tastatura intr-un vector si sa se determine cate dintre
acestea apartin intervalului [a,b] si care sunt acestea.

4
Simion darius 10c

#include <iostream>

using namespace std;

int main()
{
int n, i, v[100],a , b, aux, nr=0;
cin>>n;
cin>>a>>b;
if (a>b)
{
aux=a; a=b; b=aux;
}
for (i=0; i<n; i++)
{
cin>>v[i];
if (v[i]>a && v[i]<b)nr++;
}
cout<<nr;
return 0;
}
5. 5. Sa se determine numarul maxim, respectiv minim dintr-un sir de n numere
naturale introduse de la tastatura.

5
Simion darius 10c

#include <iostream>

using namespace std;

int main()
{
int n, i, v[100], maxim, minim;
cin>>n; cin>>v[0];
maxim=minim=v[0];
for (i=1; i<n; i++)
{
cin>>v[i];
if (v[i]>maxim) maxim=v[i];
if (v[i]<minim) minim=v[i];
}
cout<<maxim<<' '<<minim;
return 0;
}
6. Se citesc numere pana la 0. Sa se calculeze suma celor negative si produsul celor pozitive.
Numarul 0 nu se ia in calcul.

6
Simion darius 10c

#include <iostream>

using namespace std;

int main()
{
int n, i, v[100], s=0, p=1;
cin>>n;
i=0; cin>>v[i];
while (v[i]!=0 )
{
if (v[i]<0) s+=v[i];
if (v[i]>0) p*=v[i];
if (i<n) cin>>v[++i];
else v[i]=0;
}
cout<<s<<' '<<p;
return 0;
}
7. Sa se afiseze elementele pare care se gasesc intr-un sir de numere naturale precum si
pozitia pe care se afla acestea in cadrul sirului.

7
Simion darius 10c

#include <iostream>

using namespace std;

int main()
{
int n, i, v[100], s=0, p=1;
cin>>n;
for (i=0; i<n; i++) cin>>v[i];
for (i=0; i<n; i++)
if (v[i]%2==0) cout<<v[i]<<' '<<i<<'\n';
return 0;
}
8. Se da un sir x cu n elemente intregi unde n este cuprins in intervalul [a,b], iar a si b sunt
introduse de la tastatura. Sa se calculeze:
a) suma elementelor pozitive;
b) produsul elementelor pare;
c) suma elementelor negative aflate pe pozitii impare
d) media aritmetica a elementelor care dau restul 2 la impartirea cu 5
e) sa sa numere cate elemente sunt mai mici ca 6
f) sa se verifice daca al p-lea element din sir este divizibil cu 4

8
Simion darius 10c

9. 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.

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
int n, i, v[100], nrp=0, nri=0;
cin>>n;
for (i=0; i<n; i++)
{
cin>>v[i];
if (v[i]%2) nri++;
else nrp++;
}
cout<<abs(nrp-nri);

9
Simion darius 10c
return 0; }
10. Se citește un vector cu n elemente, numere naturale. Să se înlocuiască ultimul element
prim din vector cu 0, apoi să se afișeze vectorul.

#include <iostream>

using namespace std;

int main()
{
int n, i, v[100], d, prim, ok;
cin>>n;
for (i=0; i<n; i++) cin>>v[i];
for (i=n-1, ok=1; i>=0 && ok; i--)
{
for (d=2, prim=1; d<v[i]/2 && prim; d++)
if (v[i]%d==0) prim=0;
if (prim) {ok=0; v[i]=0;}
}
for (i=0; i<n; i++) cout<<v[i]<<' ';
return 0; }

11. Se citește un vector cu n elemente, numere naturale. Să se înlocuiască fiecare element prim din

vector cu 0, apoi să se afișeze vectorul.

#include <iostream>

using namespace std;

int main()

10
Simion darius 10c
{

int n,v[10],d,nr,i,ok;

cin>>n;

for (i=1;i<=n;i++) cin>>v[i];

ok=0;nr=0;

for (i=1;i<=n;i++)

{ ok=0;

for (d=2;d<=v[i]/2 && ok==0;d++)

if (v[i]%d==0) ok=1;

if (ok==0) v[i]=0;

for (i=1;i<=n;i++) cout<<v[i];

return 0;

11
Simion darius 10c

12. Se citește un vector cu n elemente, numere naturale. Să se afișeze


elementele din vector care sunt multipii ultimului.

#include <iostream>
using namespace std;

int main()
12
Simion darius 10c

{
int n,v[10],u,i;
cin>>n;
for (i=1;i<=n;i++) cin>>v[i];
for (i=1;i<=n;i++)
if (i=n) u=v[i];
for (i=1;i<=n;i++)
if (v[i]%u==0&& i!=n) cout<<v[i]<<" ";

return 0;

13
Simion darius 10c
13. Se citește un vector cu n elemente, numere naturale. Să se afișeze elementele vectorului în

următoarea ordine: primul, ultimul, al doilea, penultimul, etc.

#include <iostream>

using namespace std;

int main()

int n,v[10],i;

cin>>n;

for (i=1;i<=n;i++) cin>>v[i];

for (i=1;i<=n;i++)

if (i<n-1)

cout<<v[i]<<" "<<v[n-i+1]<<" ";

return 0;

14. Se citește un vector cu n elemente, numere naturale. Să se determine câte elemente ale vectorului

14
Simion darius 10c
sunt egale cu diferența dintre cea mai mare și cea mai mică valoare din vector.

#include <iostream>

using namespace std;

int main()

int n,v[10],i,min,max,nr;

cin>>n;nr=0;

for (i=1;i<=n;i++) cin>>v[i];

min=v[1]; max=v[1];

for (i=1;i<=n;i++)

if (v[i]<min) min=v[i];

if (v[i]>max) max=v[i];

for (i=1;i<=n;i++)

if (v[i]==max-min)

nr=nr+1;

cout <<nr;

return 0;

15
Simion darius 10c

15. Se citește un vector cu n elemente, numere naturale distincte. Să se afișeze elementele cuprinse

între elementul cu valoarea minimă și cel cu valoare maximă din vector, inclusiv acestea.

16
Simion darius 10c

#include <iostream>

using namespace std;

int main()

int n,i,v[100],max,min,x,y;

cin>>n;

17
Simion darius 10c
for(i=1;i<=n;i++)

cin>>v[i];

min=v[1];

max=v[1];

for(i=1;i<=n;i++)

if (v[i]>max)

max=v[i];

x=i;

if (v[i]<min){

min=v[i];

y=i;

if(y<x){

for(i=y+1;i<x;i++)

cout<<v[i]<<" ";}

else

for(i=x+1;i<y;i++)

cout<<v[i]<<" ";

cout<<" "<<min<<" "<<max;

18
Simion darius 10c

return 0;

16. Se citește un vector cu n elemente, numere naturale. Să se determine suma valorilor elementelor

cuprinse între primul și ultimul element par al vectorului, inclusiv acestea.

19
Simion darius 10c

20
Simion darius 10c
#include <iostream>

using namespace std;

int main()

int n,i,v[100],x,y,s=0;

cin>>n;

for(i=1;i<=n;i++)

cin>>v[i];

y=0;

for(i=1;i<=n;i++)

while(y=0){

if(v[i]%2==0){

y=i;

for(i=1;i<=n;i++)

if(v[i]%2==0){

x=i;}

for(i=y;i<=x;i++)

s=s+v[i];

cout<<s;

return 0;

21
Simion darius 10c
}

17. Se dă un vector cu n numere naturale. Să se determine câte dintre elemente au valoarea strict mai

mare decât media aritmetică a elementelor vectorului.

22
Simion darius 10c

23
Simion darius 10c

18. Se dă un vector cu n numere naturale. Să se determine cel mai mare divizor comun al elementului

cel mai mare, respectiv cel mai mic din vector.

24
Simion darius 10c

25
Simion darius 10c
#include <iostream>

using namespace std;

int main()

int n,i,v[100],max,min;

cin>>n;

for(i=1;i<=n;i++)

cin>>v[i];

max=v[1];

min=v[1];

for(i=1;i<=n;i++)

if(v[i]<min)

min=v[i];

if(v[i]>max)

max=v[i];

while(max!=min)

if(max>min)

max-=min;

else

26
Simion darius 10c
min-=max;

cout<<max;

return 0;

19. Se dă un vector cu n numere naturale. Să se determine câte dintre perechile de elemente egal

depărtate de capetele vectorului au aceeași cifră a zecilor

#include <iostream>

using namespace std;

int main()

int v[100],n,i,nr=0;

do{

cin>>n;

}while(n>100);

for(i=0;i<n;i++) cin>>v[i];

for(i=0;i<n/2;i++){

if(v[i]/10%10==v[n-i-1]/10%10) nr++;

cout<<nr;

return 0;

27
Simion darius 10c

20. Se dă un vector cu n numere naturale. Să se determine câte dintre elementele vectorului sunt prime

cu ultimul element.

#include <iostream>

using namespace std;

int main()

int v[100],n,i,nr=0,r,a,b;

do{

cin>>n;

}while(n>100);

for(i=0;i<n;i++) cin>>v[i];

for(i=0;i<n;i++){

a=v[i];b=v[n-1];

r=a%b;

while(r!=0){

a=b;

b=r;

r=a%b;

if(b==1) nr++;

cout<<nr;

28
Simion darius 10c
return 0;

21. Se dă un vector cu n numere naturale. Să se determine câte dintre perechile de elemente egal

depărtate de capetele vectorului sunt prime între ele.

#include <iostream>

using namespace std;

int main()

int v[100],n,i,nr=0,r,a,b;

do{

cin>>n;

}while(n>100);

for(i=0;i<n;i++) cin>>v[i];

for(i=0;i<n/2;i++){

a=v[i];b=v[n-i-1];

29
Simion darius 10c
r=a%b;

while(r!=0){

a=b;

b=r;

r=a%b;

if(b==1) nr++;

cout<<nr;

return 0;

22. Se dă un vector cu n numere naturale. Să se determine care elemente din vector au cea mai mare

sumă a cifrelor.

#include <iostream>

using namespace std;

int main()

30
Simion darius 10c
int v[100],n,i,c,s,max=0;

do{

cin>>n;

}while(n>100);

for(i=0;i<n;i++) cin>>v[i];

for(i=0;i<n;i++){

c=v[i];

s=0;

while(c!=0){

s=s+c%10;

c/=10;

if(s>max) max=s;

for(i=0;i<n;i++){

c=v[i];

s=0;

while(c!=0){

s=s+c%10;

c/=10;

if(s==max) cout<<v[i]<<" ";

return 0;

31
Simion darius 10c

23. Să se înlocuiască toate elementele nule dintr-un vector cu elemente numere naturale cu partea

întreagă a mediei aritmetice a elementelor nenule din vector.

int v[100], n, c=0, ma,s=0;

cin >> n;

for (int i = 0; i < n; i++)

cin >> v[i];

for (int i = 0; i < n; i++)

if (v[i] != 0)

c++;

s = s + v[i];

32
Simion darius 10c
ma = s / c;

for (int i = 0; i < n; i++)

if (v[i] == 0)

v[i] = ma;

for (int i = 0; i < n; i++)

cout << v[i] << " ";

24. Se dă un număr natural nenul k și vector cu n numere naturale. Să se înlocuiască fiecare element cu
multiplul lui k cel mai apropiat de el și să se afișeze elementele astfel obținute în ordine inversă.

33
Simion darius 10c

int v[100], n, c=0, ma,s=0,k;

cin >> n;

cin >> k;

for (int i = 0; i < n; i++)

cin >> v[i];

for (int i = 0; i < n; i++)

c = v[i] / k;

v[i] = k * c;

for (int i = 0; i < n; i++)

34
Simion darius 10c
cout << v[i] << " ";

25. Se dă un șir cu n elemente, numere naturale. Să se afișeze, pentru fiecare element din șir, valoarea
din șir aflată după acesta și mai mare decât acesta. Dacă o asemenea valoare nu există, se va afișa -1.

int v[100], n, c=0, ma,s=0,k;

cin >> n;

for (int i = 0; i < n; i++)

cin >> v[i];

for (int i = 0; i < n; i++)

for (int j = i; j < n; j++)

if (v[j] > v[i])

cout << v[j] << " ";

35
Simion darius 10c
}

cout << endl;

26. Se dă un șir a1, a2, …, an de numere întregi. Se dau de asemenea numerele întregi x și k. Să se

determine:

a) Cea mai din stânga poziție p din șir cu a[p] = x

b) Cea mai din dreapta poziție q din șir cu a[q] = x

c) Poziția r a celei de-a k-a apariții a lui x în șir.

int a[100], n, c = 0, ma, s = 0, k, x, p, q;

cin >> n;

36
Simion darius 10c
cin >> x >> k;

for (int i = 0; i < n; i++)

cin >> a[i];

for (int i = 0; i < n; i++)

if (a[i] == x)

p = i;

i = n;

cout << p<<endl;

for (int i = n; i >= 0; i--)

if (a[i] == x)

q = i;

i = 0;

cout << q<<endl;

for (int i = 0; i < n; i++)

37
Simion darius 10c
{

if (a[i] == x)

c++;

if (c == k)

cout << i;

27. Se dă un vector cu n elemente, numere naturale. Verificați dacă vectorul are un element
majoritar. Numim element majoritar o valoare pentru care numărul de apariții în vector este mai mare
decât n/2.

#include <iostream>

using namespace std;

int f[100];

int main()

38
Simion darius 10c
{

int n, i, x, ok;

cin>>n;

for (i=0; i<n; i++) {cin>>x; f[x]++;}

for (i=0, ok=0; i<100 && !ok; i++)

if (f[i]>n/2) ok=1;

if (ok) cout<<"da";

return 0; }

28. Se consideră un șir a[1], a[2], …, a[n] de numere întregi. Să se determine diferența maximă de
forma a[i+1] - a[i], unde 1 ≤ i <n.

#include <iostream>

using namespace std;

39
Simion darius 10c

int main()

int n, v[100], i, maxim;

cin>>n;

for (i=0; i<n; i++) cin>>v[i];

maxim=v[1]-v[0];

for (i=0; i<n-1; i++)

if (maxim<v[i+1]-v[i]) maxim=v[i+1]-v[i];

cout<<maxim;

return 0; }

29. Se consideră un șir a[1], a[2], …, a[n] de numere întregi. Să se determine diferența maximă de
forma a[i] - a[j], unde 1 ≤ i <j ≤ n

#include <iostream>

using namespace std;

int main()

int n, v[100], i, maxim, j;

cin>>n;

40
Simion darius 10c
for (i=0; i<n; i++) cin>>v[i];

maxim=v[1]-v[0];

for (i=0; i<n-1; i++)

for (j=i+1; j<n; j++)

if (maxim<v[i]-v[j]) maxim=v[i]-v[j];

cout<<maxim;

return 0; }

30. Se dă un şir cu n numere naturale. Să se afişeze suma primilor n termeni din şir, apoi suma
primilor n-1 termeni din şir, şi aşa mai departe.

#include <iostream>

using namespace std;

int main()

int n, v[100], i, s, j;

cin>>n;

for (i=0; i<n; i++) cin>>v[i];

for (i=0; i<n; i++)

41
Simion darius 10c
for (j=i, s=0; j<n; j++) s+=v[j];

cout<<s<<' ';

return 0; }

Bubble sort
Crescator

#include &lt;iostream&gt;

#include &lt;fstream&gt;

using namespace std;

int main()

unsigned int v[10],n,i,aux,ok;

ifstream f(&quot;date.in&quot;);

ofstream g(&quot;date.out&quot;);

f&gt;&gt;n;

for (i=1;i&lt;=n;i++)

f&gt;&gt;v[i];

do

ok=1;

for(i=1;i&lt;=n;i++)

if(v[i]&gt;v[i+1])

{aux=v[i];

v[i]=v[i+1];

v[i+1]=aux;

42
Simion darius 10c
ok=0;}

}while(ok==0);

for (i=1;i&lt;=n;i++)

g&lt;&lt;v[i]&lt;&lt;&quot; &quot;;

g.close();

f.close();

return 0;

Descrescator

#include &lt;iostream&gt;

#include &lt;fstream&gt;

using namespace std;

43
Simion darius 10c
int main()

unsigned int v[10],n,i,aux,ok;

ifstream f(&quot;date.in&quot;);

ofstream g(&quot;date.out&quot;);

f&gt;&gt;n;

for (i=1;i&lt;=n;i++)

f&gt;&gt;v[i];

do

ok=1;

for(i=n;i&gt;=1;i++)

if(v[i]&gt;v[i+1])

{aux=v[i];

v[i]=v[i+1];

v[i+1]=aux;

ok=0;}

}while(ok==0);

for (i=n;i&gt;=1;i++)

g&lt;&lt;v[i]&lt;&lt;&quot; &quot;;

g.close();

f.close();

return 0;

44
Simion darius 10c

3. Sa se ordoneze crescator elementele de pe pozitiile p1 si p2, unde p1 si p2 sunt date.

#include <iostream>

using namespace std;

int main()

int n, v[100], i, aux, p1, p2;

cin>>n>>p1>>p2;

for (i=0; i<n; i++) cin>>v[i];

45
Simion darius 10c
if (v[p1]<v[p2])

aux=v[p1]; v[p1]=v[p2]; v[p2]=aux;

for (i=0; i<n; i++) cout<<v[i]<<' ';

return 0; }

46
Simion darius 10c

Fisiere text
1. sa se scrie de cate ori apare fiecare cifra in vector

2.

Sa se scrie nr din vector o singura data fara sa se repete

47
Simion darius 10c
3.

Sa se scrie nr impare crescator si cele pare descrescator fara ca acestea sa se repete

4. Fișierul bac.in conține cel mult 106 numere naturale din intervalul [0,109], separate prin
câte un spațiu. Se cere să se afișeze pe ecran, în ordine descrescătoare, cele mai mari
două numere de două cifre distincte care NU se află în fișier. Numerele afișate sunt
separate printr-un spațiu, iar dacă nu există două astfel de numere, se afișează pe ecran
mesajul nu exista. Proiectați un algoritm eficient din punctul de vedere al timpului de
executare.
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("bac.in");
int v[110];
int main()
{
int x,ok=2;
while(f>>x){
v[x]++;
}
for(x=99;x>9 && ok;x--){
if(v[x]==0 && x%10!=x/10) {
cout<<x<<" "; ok--;
}
}

48
Simion darius 10c
if(ok) cout<<"Nu exista";
f.close();
return 0;
}

49
Simion darius 10c

Interclasarea

. Din fisierul txt nr.in se citesc de pe prima linie 2 nr naturale n si m(2<=n,m<=100), pe linia a 2 a n nr in
ordine crescatoare, iar pe linia a 3 a m nr ordine crescatoare separate prin spatiu, rep el a 2 vectori x si
y.Sa se construiasca al 3 lea vector care sa contina el din x resp y pastrandu se ordinea cresc a
elementelor.

#include <iostream>

#include <fstream>

using namespace std;

ifstream f("nr.in");

int main()

int x[100],y[100],z[200],n,m,i,j,k;

f>>n>>m;

for(i=0;i<n;i++) f>>x[i];

for(i=0;i<m;i++) f>>y[i];

i=0;

j=0;

k=-1;

while(i<n&&j<m){

if(x[i]>y[j]){

k++;

z[k]=y[j];

j++;

else if(x[i]<y[j]){

z[k]=x[i];

i++;

50
Simion darius 10c

k++;

if(n>m)

for(i=m;i<n;i++) z[i]=x[k];

else for(j=n;j<m;j++) z[j]=y[k];

for(i=0;i<k;i++) cout<<z[i]<<" ";

f.close();

return 0;

51
Simion darius 10c

Inserarea in vector
1. Se considera un vector cu cel mult 100 de elemente, 2 valori naturale k si x sa se inserezew= in

vector pe pozitia k nr x

2. Se considera unb vector cu elemente distincte. Sa se insereze in vector dupa primul element

impar valoarea x, respective sa se scrie mesajul nu exista daca nu contine niciun elem impar

52
Simion darius 10c

3. Se considera un vector. Sa se insereze I vector intre 2 elemnte pare successive media lor

Aritmetica

53
Simion darius 10c

54
Simion darius 10c

Stergerea din vector


1. Se citeste un nr n, se citeste o pozitie k. Sa se stearga el de pe poz k.

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
int v[100],n,i,k;
do{
cin>>n;
}while(n>100);
do{
cin>>k;
}while(k<0||k>n);
for (i=0;i<n;i++) cin>>v[i];
for(i=k-1;i<n-1;i++) v[i]=v[i+1];
n--;
for (i=0;i<n;i++) cout<<v[i]<<" ";

return 0;
}

2. Sa se stearga elementele impare

55
Simion darius 10c

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
int v[100],n,i,j;
do{
cin>>n;
}while(n>100);
for (i=1;i<=n;i++) cin>>v[i];
for (i=1;i<=n;i++)
if (v[i] %2==0)
{
for (j=i;j<n-1;j++) v[j]=v[j+1];
n--;
}
for (i=1;i<=n;i++) cout<<v[i]<<" ";
return 0;
}
3. Sa se stearga elementele palindrom

56
Simion darius 10c

#include <iostream>

#include <fstream>

using namespace std;

int main()

int v[100],n,i,j,c,inv;

do{

cin>>n;

}while(n>100);

for (i=1;i<=n;i++) cin>>v[i];

for (i=1;i<=n;i++)

c=-v[i];inv=0;

while (c>0)

inv=inv*10+c%10;c=c/10;

57
Simion darius 10c
}

if (inv==v[i])

for (j=i;j<n-1;j++) v[j]=v[j+1];

n--;

for (i=0;i<n;i++) cout<<v[i]<<" ";

4. Sa se stearga toate elementele negative

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
int v[100],n,i,j,c,inv;
do{
cin>>n;
}while(n>100);
for (i=1;i<=n;i++) cin>>v[i];
for (i=0;i<n;i++)

58
Simion darius 10c
if (v[i]<0)
{
for (j=i;j<n-2;j++) v[j]=v[j+1];
n--; i--;
}
for (i=0;i<n;i++) cout<<v[i]<<" ";
return 0;
}

Cautarea binara

Sa se caute intr-un vector v o valoare x folosind metoda cautarii binare

#include <iostream>

using namespace std;

int main()

{int v[100],n,i,left,right,mid,x,ok;

cin>>n; ok=0;

for (i=1;i<=n;i++) cin>>v[i];

59
Simion darius 10c
left=0;

right=n-1;

cin>>x;

while (left<=right && ok==0)

{ mid=(left+right)/2;

if (v[mid]==x) {ok=1;cout<<mid;}

if (v[mid]>x) right=mid-1;

if (v[mid]<x) left =mid+1;

if (ok==0) cout<<"nu se gaseste";

return 0;

60

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