Atestat 2016 21-30

/*21. Să se realizeze un program care inversează două numere introduse de la tastatură, făra

utilizarea unei variabile auxiliare.*/

#include <iostream>

using namespace std;

 

int main()

{

    int a,b;

    cout << "a=";cin>>a;

    cout<<"b=";cin>>b;

    a=a+b;

    b=a-b;

    a=a-b;

    cout<<"a="<<a<<"b="<<b;

    return 0;

}

 

/*22. Se citește o matrice pătratică de ordinul n, să se afișeze:

- suma elementelor pare de pe diagonala principală

- produsul elementelor impare de pe diagonala secundară. */

#include <iostream>

using namespace std;

 

int main()

{

    int a[100][100],n,s=0,p=1,i,j;

 

    cout<<"n=";cin>>n;

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

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

    {

        cout<<"a["<<i<<"]["<<j<<"]=";cin>>a[i][j];

        if(i==j && a[i][j]%2==0)s=s+a[i][j];

        if(j==n-i+1 && a[i][j]%2==1)p=p*a[i][j];

    }

 

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

    {

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

            cout<<a[i][j]<<' ';

        cout<<endl;

    }

    cout<<"s="<<s<<"p="<<p;

    return 0;

}

/*23. Să se afișeze rezultatul produsului

p=(1-1/2^2)*(1-1/3^2)*...*(1-1/n^2), pentru n>=2 citit de la

tastatură. Exemplu: n=5 =>0.6 */

#include <iostream>

using namespace std;

int main()

{

    float p; int n,i;

    cout<<"n=";cin>>n;

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

        p=p*(float)(1-1/(i*i));

    cout<<"p="<<p;

    return 0;

}

/*24. Se citește un număr n natural de la tastatură. Creați un program care să calculeze și să afișeze

suma:

S=1! + 2! + 3! +...+ n! */

#include <iostream>

using namespace std;

int main()

{

    int s=0,p=1,i,n;

    cout<<"n=";cin>>n;

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

    {

        p=p*i;

        s=s+p;

    }

    cout<<s;

    return 0;

}

 

/*25. Să se afișeze rezultatul sumei 2+4+6+…+2n, n>=1, n citit de la tastatură.

Exemplu: n=3 => 12 */

#include <iostream>

using namespace std;

int main()

{

    int s=0,i,n;

    cout<<"n=";cin>>n;

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

        s=s+2*i;

    cout<<s;

    return 0;

}

/*26. Să se scrie subprogramul “combinări” ce calculează recursiv combinări de n luate câte k,

utilizând formula:

C(n,k)=C(n-1,k)*(n/(n-k));

Ce rezultat afișează programul dacă este apelat combinări (4,2)? */

#include <iostream>

using namespace std;

int c(int n, int k)

{

    if(k==0 || k==n) return 1;

    else

        if(n==0 && k==0) return 1;

          else if(k==1) return n;

            else return c(n-1,k)*(n/(n-k));

}

int main()

{

    int n,k;

    cout <<"n=";cin>>n;

    cout<<"k=";cin>>k;

    cout<<c(n,k);

    return 0;

}

 

/*27. 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>

#include <algorithm>

using namespace std;

int main()

{

    int n,i,a[100],aux;

    cout<<"n=";cin>>n;

    cout<<"dati numerele"<<endl;

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

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

    cout <<endl;

    sort(a+1,a+n+1);

    cout<<"sortat"<<endl;

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

    cout <<endl;

    cout<<"permutare cu o pozitie spre stanga"<<endl;

    aux=a[1];

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

        a[i]=a[i+1];

    a[n]=aux;

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

    cout <<endl;

    return 0;

}

 

/*28. Se citeşte o matrice cu n linii şi m coloane şi elemente numere întregi. Se cere:

a) Să se determine elementele minime de pe fiecare linie;

b) Să se numere elementele pare de pe perimetrul matricei. */

#include <iostream>

using namespace std;

 

int a[100][100],n,m;

void pct_a()

{

    int min;

    cout<<endl;

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

    {

        min=a[i][1];

        for(int j=1;j<=m;j++)

            if(min>a[i][j]) min=a[i][j];

        cout<<min<<' ';

    }

    cout<<endl;

}

void pct_b()

{

int c=0,i;

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

    if(a[1][i]%2==0){c++;cout<<a[1][i]<<' ';}

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

    if(a[n][i]%2==0){c++;cout<<a[n][i]<<' ';}

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

    if(a[i][1]%2==0){c++;cout<<a[i][1]<<' ';}

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

    if(a[i][m]%2==0){c++;cout<<a[i][m]<<' ';}

cout<<endl<<"numarul de elemente pare="<<c;

}

int main()

{

    int i,j;

    cout<<"n=";cin>>n;

    cout<<"m=";cin>>m;

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

        for(j=1;j<=m;j++)

    {

        cout<<"a["<<i<<"]["<<j<<"]=";cin>>a[i][j];

    }

 

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

    {

        for(j=1;j<=m;j++)

            cout<<a[i][j]<<' ';

        cout<<endl;

    }

    cout<<"elementele minime de e fiecare linie"<<endl;

    pct_a();

    cout<<"elementele pare de pe perimetrul matricii"<<endl;

    pct_b();

    return 0;

}

/*29. Se citeşte o matrice pătrată de dimensiune nxn şi elemente numere întregi. Se cere:

a) Să se afişeze numerele prime de pe diagonala principală;

b) Să se formeze un vector cu elementele matricei parcurse în ordine pe coloane. */

#include <iostream>

using namespace std;

int a[100][100],n;

int prim(int n)

{

    int i;

    if(n<2) return 0;

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

        if(n%i==0) return 0;

    return 1;

}

void pct_a()

{

    int i;

    cout<<"elementele prime de pe diagonala principala"<<endl;

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

        if(prim(a[i][i])) cout<<a[i][i]<<' ';

    cout<<endl;

}

void pct_b()

{

    int b[10000],i,j,c=1;

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

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

    {

        b[c]=a[i][j];

        c++;

    }

    cout<<"elementele parcurse pe coloane"<<endl;

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

        cout<<b[i]<<' ';

}

int main()

{

    int i,j;

    cout<<"n=";cin>>n;

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

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

    {

        cout<<"a["<<i<<"]["<<j<<"]=";cin>>a[i][j];

    }

 

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

    {

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

            cout<<a[i][j]<<' ';

        cout<<endl;

    }

    pct_a();

    pct_b();

    return 0;

}

/*30. 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>

using namespace std;

int n; float a[100];

void pct_a()

{

int i,j;

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

    if(a[i]==0)

        {

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

                a[j]=a[j+1];

            n--;

            }

}

void pct_b()

{

    int i;float s=0;

    for(i=1;i<=n;i++)s+=a[i];

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

        a[i]=(s-a[i])/(n-1);

 

}

int main()

{

    int i;

    cout<<"n=";cin>>n;

    cout<<"dati numerele"<<endl;

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

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

    cout <<endl;

    pct_a();

    cout<<"vectorul fara elementele nule"<<endl;

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

    cout<<endl;

    pct_b();

    cout<<"vectorul cu elementele inlocuite"<<endl;

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

    return 0;

}

 

 

counter for wordpress

View My Stats