Sunteți pe pagina 1din 5

Se citesc elementele unui tablou unidimensional cu n (n<=100) numere întregi cu cel mult patru cifre.


se realizeze următoarele prelucrări:

1. Să se determine câte elemente conţine cea mai lungă secvenţă de valori alăturate
ordonate Crescător din tablou.

#include <iostream>
using namespace std;
int main()
{
int n, a[100],i,nr=1,nrmax;
cout << "Introduceti n \n";
cin>>n;
for(i = 1; i <= n; i++)
cin >> a[i];
for(int i = 1; i < n; i++) {
if(a[i] <a[i+1]) {
nr++;
if(nr>nrmax)
nrmax=nr;
}
else
nr=1;
}
cout<<nrmax;
return 0;
}

2. Să se determine câte elemente conţine cea mai lungă secvenţă de valori egale alăturate din
tablou. In cazul în care sunt mai multe astfel de secvenţe de lungime maxima se va afişa
numărul lor.
#include <iostream>
using namespace std;
int main()
{
int n, a[100],i,nr=1,nrmax;
cout << "Introduceti n \n";
cin>>n;
for(i = 1; i <= n; i++)
cin >> a[i];
for(int i = 1; i < n; i++) {
if(a[i]==a[i+1]) {
nr++;
if(nr>nrmax)
nrmax=nr;
}
else
nr=1;
}
//Afișăm secvența maximă
cout<<"Cea mai lunga secventa de numere egale are "<<nrmax<<" elemente:";
return 0;
}

3. Să se determine câte elemente conţine cea mai lungă secvenţă de valori alăturate din tablou
care au exact 2 cifre. In cazul in care sunt mai multe secvenţe descrescătoare de lungime
maximă se va afişa prima.

#include <iostream>
using namespace std;
int main()
{
int n, a[100],i,nr=0,nrmax;
cout << "Introduceti n \n";
cin>>n;
for(int i = 1; i <= n; i++)
cin >> a[i];
//Căutăm secvența cu elemente de exact doua cifre
for(int i = 1; i <=n; i++) {
if(a[i]/100==0 && a[i]/10!=0) {
nr++;
if(nr>nrmax)
nrmax=nr;
}
else
nr=0;
}
//Afișăm secvența maximă
cout<<"Cea mai lunga secventa de numere de exact 2 cifre are "<<nrmax<<" elemente:";

return 0;
}

4. Să se determine câte elemente conţine cea mai lunga secvenţă de numere pare alăturate din
tablou. In cazul in care sunt mai multe secvenţe de lungime maximă se va afişa numărul lor.

#include <iostream>
using namespace std;
int main()
{
int n, a[100],i,nr,nrmax,j;
cout << "Introduceti n \n";
cin>>n;
for(int i = 1; i <= n; i++)
cin >> a[i];
//Căutăm secvența cu elemente pare
for(int i = 1; i <= n; i++)
if(a[i] %2==0) {
nr++;
if(nr>nrmax){
nrmax=nr;
j=i;
}
}
else
nr=0;
//Afișăm secvența maximă
cout<<"Cea mai lunga secventa de numere pare are "<<nrmax<<" elemente:";
return 0;
}

5. Să se afişeze pe ecran lungimea maximă a unei secvenţe din tablou cu proprietatea că oricare
două elemente aflate pe poziţii consecutive sunt prime între ele. Exemplu: dacă tabloul conţine
valorile: 16 25 6 12 1O 4 5 se va afişa 3 pentru că cea mai lungă secvenţa cu proprietatea cerută
este 16 25 6.

6. Să se determine cea mai lunga secvenţă palindromică din tablou. (de elemente alăturate)
Exemplu. pentru tabloul V:(3, 4, 7, 9, 2, 9, 7, 5) se afişează valoarea 5.

8. Se citesc elementele unui tablou unidimensional a cu n (n<=100) numere intregi cu cel mult patru
cifre. Să se elimine din componente astfel încât oricare două componente alaturate să aibă Valoare
diferită. Exemplu. pentru a=(3, 4, 4, 4, 3, 3, 2, 6) se obţine a:(3, 4, 3, 2, 6).

9. Se citesc elementele unui tablou unidimensional a cu n (n<=100) numere întregi cu cel mult patru
cifre. Să se elimine din componente astfel încât oricare două componente alãturate să aibă paritate
diferită. Exemplu. pentru a=(3, 4, 6, 4, 3, 3, 2, 6, 1) se obţine a=(3, 4, 3, 2, 1).

#include <iostream>
using namespace std;
int main()
{
int n, a[100],i,nr=1,nrmax;
cout << "Introduceti n \n";
cin>>n;
for(int i = 1; i <= n; i++)
cin >> a[i];
//Căutăm secvența cu elemente egale
for(int i = 1; i <=n; i++) {
if((a[i]%2==0 && a[i+1]%2==1) || (a[i]%2==1 && a[i+1]%2==0) ) {
nr++;
if(nr>nrmax)
nrmax=nr;
}
else
nr=1;
}
//Afișăm secvența maximă
cout<<"Cea mai lunga secventa de numere egale are "<<nrmax<<" elemente:";

return 0;
}

10. Se citesc elementele unui tablou unidimensional cu n (n<=100) numere întregi cu cel mult patru
cifre, ordonate crescător. Să se elimine duplicatele din tablou astfel încât fiecare Valoare să apară o
singură dată.Exemplu pentru v=(2, 3, 3, 3, 4, 7, 7, 8,10) se obţine: V:(2, 3, 4, 7, 8,10).

#include <iostream>
using namespace std;
int main() {
int v[100],n,i,j,nr;
cout << "Introduceti n \n";
cin>>n;
cout << "Elementele vectorului au cel mult patru cifre: \n";
for(i=1;i<=n;i++)
cin>>v[i];
for (i=1;i<=n;i++)
{
nr=i;
while (v[nr]==v[nr+1] && nr<n)
nr++;
if (nr!=i)
{
for (j=nr;j<=n;j++)
{
v[j-(nr-i)]=v[j];
}
n=n-nr+i;
}}
for (i=1;i<=n;i++)
cout<<v[i]<<" ";
}
11. Fie un tablou v unidimensional cu n numere întregi (n<=100). Sa se elimine valori din tablou astfel
încât suma componentelor să nu depăşească un S citit iar numărul de componente rămase să fie cât
mai mare.

#include <iostream>
using namespace std;
int main() {
int v[100],a[100],n,i,s,j,schimb,suma=0;
cout << "Introduceti n \n";
cin>>n;
cout << "Introduceti s \n";
cin>>s;
for(i=1;i<=n;i++)
cin>>v[i];
// Sortare vector crescator:
for(i=1;i<=n-1;i++)
for(j=i+1;j<=n;j++)
if(v[i]>v[j])
{
schimb=v[i];
v[i]=v[j];
v[j]=schimb;
}
//terminare sortare
i=1;
while (suma<s-1){
suma=suma+v[i];
a[i]=v[i];
i++;
}
i=i-1;
for (j=1;j<=i;j++)
cout<<a[j]<<" ";}

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