vectori
1. Se citeşte un vector cu n componente întregi. Se cere:
a) Să se ordoneze crescător elementele vectorului;
b) Să se permute circular stânga elementele vectorului ordonat cu o poziţie.
#include<iostream.h>
int a[100],n;
void citire()
{
cout<<"nr de elemente n=";cin >>n;
for(int i=1;i<=n;i++)
{cout<<"a["<<i<<"]=";cin >>a[i];
}
}
void afisare()
{
for(int i=1;i<=n;i++) cout<<a[i]<" ";
cout<<endl;
}
void sortare()
{ int aux;
for(int i=1;i<=n-1;i++)
for(int j=i+1;j<=n;j++)
if(a[i]>a[j])
{aux=a[i];a[i]=a[j];a[j]=aux;}
}
void permutare_stanga()
{
int aux=a[1];
for(int i=1;i<n;i++) a[i]=a[i+1];
a[n]=aux;
}
void main()
{citire();
afisare();
sortare();
cout<<"dupa sortare\n";
afisare();
cout<<"dupa permutare\n";
permutare_stanga();
afisare();
}
2. Se citeşte un vector cu n componente întregi. Se cere:
a) Să se elimine din vector elementele nule dacă acestea există;
b) Să se înlocuiască fiecare element al noului vector cu media aritmetică a celorlalte elemente din vector.
#include<iostream.h>
int a[100],n;
void citire()
{
cout<<"nr de elemente n=";cin >>n;
for(int i=1;i<=n;i++)
{cout<<"a["<<i<<"]=";cin >>a[i];
}
}
void afisare(int a[100],int n)
{
for(int i=1;i<=n;i++) cout<<a[i]<<" ";
cout<<endl;
}
void elimina_nule()
{ int b[100];
int j=0;
for(int i=1;i<=n;i++)
if(a[i]!=0) {j++;b[j]=a[i];}
cout<<"fara elemente nule\n";
afisare(b,j);
}
void inlocuire()
{ float b[100];
for(int i=1;i<=n;i++)
{
b[i]=0;
for(int j=1;j<=n;j++)
if(j!=i) b[i]=b[i]+a[j];
b[i]=b[i]/(n-1);
}
cout<<"dupa inlocuire";
for(i=1;i<=n;i++) cout<<b[i]<<" ";
cout<<"\n";
}
void main()
{citire();
cout<<"elementele citite\n";
afisare(a,n);
elimina_nule();
inlocuire();
}
3. Se dă un şir x de n elemente întregi. Să se caute ultimul element impar mai mare decât 15.
#include<iostream.h>
int x[100],n;
void citire()
{
cout<<"nr de elemente n=";cin >>n;
for(int i=1;i<=n;i++)
{cout<<"x["<<i<<"]=";cin >>x[i];
}
}
void afisare(int a[100],int n)
{
for(int i=1;i<=n;i++) cout<<x[i]<<" ";
cout<<endl;
}
void cauta()
{int i=n;int gasit=0;
while(gasit==0&&i>0)
{ if(x[i]>15 && x[i]%2==1) gasit=1;
else i--;
}
if(i>0)cout<<x[i];
else cout<<"nu s-a gasit niciun element impar mai mare ca 15\n";
}
void main()
{citire();
cauta();
}
4. Să se scrie un program care :
a) citeşte un vector cu n componente numere reale.
b) şterge un element din vector care se află pe o poziţie dată k.
#include<iostream.h>
#include<stdlib.h>
int a[100],n,k;
void citire()
{
cout<<"nr de elemente n=";cin >>n;
for(int i=1;i<=n;i++)
{cout<<"a["<<i<<"]=";cin >>a[i];
}
cout<<"k=";cin>>k;
if(k<1||k>n) {cout<<"stergerea nu se poate efectua";exit(0);}
}
void afisare()
{
for(int i=1;i<=n;i++) cout<<a[i]<<" ";
cout<<endl;
}
void sterge(int k)
{
for(int i=k;i<n;i++)
a[i]=a[i+1];
n--;
}
void main()
{
citire();
sterge(k);
afisare();
}
5. Să se scrie un program care determină media aritmetică a elementelor pare dintr-un vector folosind un subprogram (procedură sau funcţie).
#include<iostream.h>
#include<stdlib.h>
int a[100],n,k;
void citire()
{
cout<<"nr de elemente n=";cin >>n;
for(int i=1;i<=n;i++)
{cout<<"a["<<i<<"]=";cin >>a[i];
}
}
void afisare()
{
for(int i=1;i<=n;i++) cout<<a[i]<<" ";
cout<<endl;
}
float medie_pare()
{
float s=0;
int c=0;
for(int i=1;i<=n;i++)
if(a[i]%2==0){c++;s=s+a[i];}
if(c!=0)cout<<"media elementelor pare="<<s/c<<endl;
else cout<<"nu exista elemente pare\n";
}
void main()
{
citire();
medie_pare();
}
6. Se citeşte de la tastatură un număr natural nenul n şi alte n numere întregi . Se cere :
a) Suma elementelor pare de pe poziţii impare
b) Media aritmetică a elementelor pozitive.
#include<iostream.h>
#include<stdlib.h>
int a[100],n,k;
void citire()
{
cout<<"nr de elemente n=";cin >>n;
for(int i=1;i<=n;i++)
{cout<<"a["<<i<<"]=";cin >>a[i];
}
}
void afisare()
{
for(int i=1;i<=n;i++) cout<<a[i]<<" ";
cout<<endl;
}
float medie_pozitive()
{
float s=0;
int c=0;
for(int i=1;i<=n;i++)
if(a[i]>0){c++;s=s+a[i];}
if(c!=0)cout<<"media elementelor pare="<<s/c<<endl;
else cout<<"nu exista elemente pare\n";
}
void suma()
{
int s=0;
for(int i=1;i<=n;i++)
if(a[i]%2==0&&i%2==1)s=s+a[i];
cout<<"suma elementelor pare de pe pozitii impare="<<s<<endl;
}
void main()
{
citire();
medie_pozitive();
suma();
}
7. Se citeşte de la tastatură un număr natural nenul n şi alte n numere întregi. Se cere să se afişeze câte elemente prime conţine şirul citit ( se va folosi un subprogram pentru a stabili că un număr este prim sau nu).
#include<iostream.h>
#include<stdlib.h>
int a[100],n,k;
void citire()
{
cout<<"nr de elemente n=";cin >>n;
for(int i=1;i<=n;i++)
{cout<<"a["<<i<<"]=";cin >>a[i];
}
}
void afisare()
{
for(int i=1;i<=n;i++) cout<<a[i]<<" ";
cout<<endl;
}
int prim(int n)
{
if(n<2)return 0;
int i=2;
while(i<=n/2)
if(n%i==0) return 0; else i++;
return 1;
oid cate_prime()
{
int c=0;
for(int i=1;i<=n;i++)
if(prim(a[i]))c++;
cout<<"nr elemente prime="<<c<<endl;
}
void main()
{
citire();
cate_prime();
}
8. Se citeşte de la tastatură un număr natural nenul n şi alte n numere întregi. Se cere să se afişeze numărul de apariţii în şir ale unui număr citit de la tastatură.
#include<iostream.h>
#include<stdlib.h>
int a[100],n,k;
void citire()
{
cout<<"nr de elemente n=";cin >>n;
for(int i=1;i<=n;i++)
{cout<<"a["<<i<<"]=";cin >>a[i];
}
cout<<"k=";cin>>k;
}
void afisare()
{
for(int i=1;i<=n;i++) cout<<a[i]<<" ";
cout<<endl;
}
void nr_aparitii()
{
int c=0;
for(int i=1;i<=n;i++)
if(a[i]==k)c++;
cout<<k<<" apare de "<<c<<" ori\n";
}
void main()
{
citire();
nr_aparitii();
afisare();
}
9. Se citeşte de la tastatură un număr natural nenul n şi alte n numere întregi. Se cere să se afişeze valoarea minimă din şir , precum şi numărul său de apariţii în cadrul şirului.
#include<iostream.h>
#include<stdlib.h>
int a[100],n,k;
void citire()
{
cout<<"nr de elemente n=";cin >>n;
for(int i=1;i<=n;i++)
{cout<<"a["<<i<<"]=";cin >>a[i];
}
}
void afisare()
{
for(int i=1;i<=n;i++) cout<<a[i]<<" ";
cout<<endl;
}
int min()
{
int m;
m=a[1];
for(int i=1;i<=n;i++)
if(m>a[i])m=a[i];
return m;
}
void cate_min()
{
int m=min();
int c=0;
for(int i=1;i<=n;i++)
if(m==a[i]) c++;
cout<<"nr de elemente minime="<<c<<endl;
}
void main()
{
citire();
cout<<"val min="<<min();
cate_min();
}
10. Se citeşte un vector cu n componente numere reale. Să se înlocuiască ultimele k elemente ale vectorului cu valoarea –1. Valoarea k este dată de la tastatură (k<n).
#include<iostream.h>
#include<stdlib.h>
int a[100],n,k;
void citire()
{
cout<<"nr de elemente n=";cin >>n;
for(int i=1;i<=n;i++)
{cout<<"a["<<i<<"]=";cin >>a[i];
}
cout<<"k=";cin>>k;
if(k<1||k>=n) {cout<<"date incorecte";exit(0);}
}
void afisare()
{
for(int i=1;i<=n;i++) cout<<a[i]<<" ";
cout<<endl;
}
void inlocuieste()
{
for(int i=n-k+1;i<=n;i++) a[i]=-1;
}
void main()
{
citire();
afisare();
inlocuieste();
afisare();
}
11. Se citesc de la tastatură numere întregi până la citirea numărului 13. Se cere să se calculeze şi să se afişeze câte numere prime s-au citit precum şi numărul celor neprime.
#include<iostream.h>
#include<stdlib.h>
long unsigned int n;
void perfect()
{
long unsigned int s=0;
for(int i=1;i<=n/2;i++)
if(n%i==0)s=s+i;
if(s==n) cout<<"numar perfect\n";
else cout<<"numarul nu e perfect\n";
}
void main()
{
cout<<"n=";cin>>n;
perfect();
}