Atestat2016 1-10

/*1. Care este ultima cifră a lui 2^n, n>=0? n se citește de la tastatură.

Indicație: Calculând 2 la diverse puteri consecutive se observă că ultima cifră se repetă din 4 în 4, excepție

făcând cazul în care n=0.

Exemple: n=3 => 8; n=10 =>4 */

#include <iostream>

using namespace std;

int main()

{

    int n;

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

    if(n==0) cout<<1;

     else

        if(n%4==0) cout<<6;

         else

            if(n%4==3) cout<<8;

             else

                if(n%4==2) cout<<4;

                  else cout<<2;

    return 0;

}

 

/*2. Se citește un șir de caractere, introdus de la tastatură. Să se afișeze cate cuvinte conțin 3 caractere.*/

#include <iostream>

#include <string.h>

using namespace std;

 

int main()

{

char str[101],sir[101];

   char *p;

   int i,n; char v[50][20];

   cin.get(str,100);

   n=0;

   int nr=0;

   p = strtok(str, " ");

   while( p != NULL )

   {

     n++; strcpy(v[n],p);

     if(strlen(v[n])==3)nr++;

     p = strtok(NULL, " ");

   }

   cout<<nr;

}

 

/*3. Se citește o matrice cu m linii și n coloane și un număr x. m, n, x -citite de la tastatură.

Să se afișeze matricea și suma numerelor pare de pe linia x.

*/

#include <iostream>

using namespace std;

int main()

{

    int a[100][100],i,j,s=0,x,m,n;

    cout << "numarul de linii=";cin>>m;

    cout<<"numarul de coloane=";cin>>n;

    cout<<"x=";cin>>x;

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

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

        {

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

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

        }

    cout<<"suma elementelor pare de pe linia "<<x<<"="<<s<<endl;

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

    {

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

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

        cout<<endl;

    }

    return 0;

}

/*4. Se citește un număr n cu max. 9 cifre. Să se verifice dacă toate cifrele numărului n sunt pare și să

se afișeze un mesaj corespunzător. */

#include <iostream>

using namespace std;

int main()

{

    long int n;

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

    int c1 = 0, c2 = 0;

    while (n > 0)

            {

                if (n % 2 == 0) c1++;

                c2++;

                n = n / 10;

            }

            if (c1 == c2) cout<<"numarul are numai cifre pare";

            else cout<<"numarul are cifre pare si impare";

    return 0;

}

/*5. Să se afișeze rezultatul ecuației ax^2+bx+c=0, a,b și c se citesc de la tastatură.

Exemple: a=1; b=-2; c=1 =>x1,2=1; a=1; b=1; c=-2 => x1=1, x2=-2

*/

#include <iostream>

#include <math.h>

using namespace std;

int main()

{

    int a,b,c;

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

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

    cout<<"c=";cin>>c;

      if (a == 0 && b == 0 && c == 0)

               cout<<"infinitate solutii";

            else

                if (a == b && b == 0)

                    cout<<"Imposibil";

                else

                    if (a == 0)

                        cout<<"ecuatie de gr. I sol=" <<(double)(-c / b);

                    else

                    {

                        double d = (double)(b * b - 4 * a * c);

                        if (d < 0) cout<<"solutii complexe";

                        else

                        {

                           double dd = sqrt(d);

                           double x1 = (-b + dd) / (2 * a);

                           double x2 = (-b - dd) / (2 * a);

                            cout<<"x1="<<x1<<" x2="<<x2;

                        }

                    }

    return 0;

}

 

/*6. Să se afișeze cel mai mare divizor propriu al unui număr citit de la tastatură.

Exemple: n=24 => 12 ; n=11 => nu are divizori proprii.*/

#include <iostream>

using namespace std;

int main()

{

    int n,i;

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

    i=n/2;

    int are_divizori_propri = 0; //nu s-au gasit divizori

    while (are_divizori_propri == 0 && i >= 2)

            {

                if (n % i == 0)

                {

                    cout<<"cel mai mare divizor propriu="<<i;

                    are_divizori_propri = 1;

                }

                i--;

            }

 

            if (are_divizori_propri == 0)

                cout<<"Nu are divizori propri";

    return 0;

}

/*7. Să se afișeze media aritmetică a unui șir de numere care se citește de la tastatură până la

introducerea numărului 0 care nu face parte din șir.

Exemplu: 3,2,2,3,1,1,0 =>2 */

#include <iostream>

using namespace std;

int main()

{

    int s=0,c=0,n;

    while(cin>>n && n!=0)

    {

        s=s+n;

        c++;

    }

    cout<<(float)s/c;

    return 0;

}

 

/*8. Se citesc de la tastatură n numere. Să se afișeze acele numere care au exact 3 divizori.

Exemplu: n=7; x=(1,25,4,5,8,6,9) =>25,4,9 */

int nr_divizori(int n)

{

    int c=0,i;

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

        if(n%i==0)c++;

    return c;

}

#include <iostream>

using namespace std;

 

int main()

{

    int n,i,a[100];

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

    cout<<"dati numerele"<<endl;

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

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

        if(nr_divizori(a[i])==3) cout<<a[i]<<' ';

    return 0;

}

/*9. Se citeste un vector v cu n elemente numere naturale. Să se afișeze elementele care îndeplinesc

următoarele condiții:

-sunt divizibile cu 3;

-sunt mai mici decât 100.

*/

#include <iostream>

using namespace std;

int main()

{

    int i,n,a[100];

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

    cout<<"dati numerele"<<endl;

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

    cout<<endl;

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

        if(a[i]%3==0 && a[i]<100) cout<<a[i]<<' ';

    return 0;}

/*

10. Se citeşte de la tastatură un şir de caractere, scris cu litere mici ale alfabetului englez.

Se cere:

a) Să se afişeze cu ajutorul unui subprogram șirul în care spațiile se vor înlocui cu caracterul “.”;

b) Considerand că, în șirul dat, orice vocală valorează 2 puncte, orice consoana valoreaza 1 punct,

iar orice spațiu, punct sau virgulă valorează 10 puncte, să se calculeze cu ajutorul unui

subprogram, suma în fucție de valoarea fiecărui caracter.

Obs: Considerăm că șirul dat nu conține diacritice, sau alte semne, cu excepția celor menționate mai sus.

*/

#include <iostream>

#include<string.h>

char s[200];

int n;

using namespace std;

void pct_a()

{

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

        if(s[i]==' ') cout<<'.';

            else cout<<s[i];

}

void pct_b()

{

    int ss=0;

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

        if(strchr("AEIOUaeiou",s[i])!=0)ss=ss+2;

         else

            if(s[i]==','||s[i]==' '||s[i]=='.')ss=ss+10;

             else ss=ss+1;

    cout<<ss<<" puncte";

}

int main()

{

    cin.get(s,200);

    n=strlen(s);

    pct_a();

    pct_b();

    return 0;

}

 

counter for wordpress

View My Stats