Pages

jeudi 27 mars 2014

Exercices corrigés en langage C++ : Les structures de contrôles (2)

Exercices corrigés en langage C++ : Les structures de contrôles
langage c++
Exercice 1 : 

Ecrire un programme qui demande à l'utilisateur de taper des entiers strictement positifs et qui affiche leur moyenne. Lorsqu'on tape une valeur négative, le programme affiche ERREUR et demande de retaper une valeur. Lorsqu'on tape 0, cela signifie que le dernier entier a été tapé. On affiche alors la moyenne. Si le nombre d'entiers tapés est égal à 0, on affiche PAS DE MOYENNE.

Correction exercice 1 :

#include<iostream>
using namespace std;

int main()
{
int x, s=0,nb=0;
double moyenne;

do{
  cout<<"Tapez un entier :";cin>>x;
  if(x>0){s=s+x;nb++;}
        else if(x<0)cout<<"ERREUR ";

  }while(x!=0);

if(nb==0)cout<<"AUCUN ENTIER TAPE "<<endl<<"PAS DE MOYENNE"<<endl;
else {
     moyenne=(double)s/nb;
     cout<<"La moyenne vaut : "<<moyenne<<endl;
     }

return 0;
}

Exercice 2 : 

Ecrire un programme qui demande à l'utilisateur de taper un entier N et qui calcule u(N) défini par :
u(0)=3
u(1)=2
u(n)=n.u(n-1)+(n+1).u(n-2)+n


Correction exercice 2 :

#include<iostream>

int main()
{
int N,u,i=0,v,w;

cout<<"Tapez la valeur de N : ";cin>>N;
u=3;
v=2;
if(N==0)w=u;
else if(N==1)w=v;
else for(i=2;i<=N;i++){w=i*v+(i+1)*u+i;u=v;v=w;}

cout<<"u("<<N<<")="<<w<<endl;

return 0;
} 

Exercice 3 : 

Ecrire un programme qui demande de saisir 10 entiers et qui affiche le nombre d'occurrences de la note la plus haute.

Correction exercice 3 :

#include<iostream>
using namespace std;

int main()
{
int nb,max,x,i;

for(i=0;i<10;i++)
        {
        cout<<"Tapez un entier : ";cin>>x;
         if(i==0){max=x;nb=1;}
        else if(x==max)nb++;
        else if(max<x){max=x;nb=1;}
        }

cout<<"le nombre d'occurences de "<<max<<" est "<<nb<<endl;

return 0;
}

Exercice 4 : 

Ecrire un programme qui demande de saisir un entier N et qui affiche N!.

Correction exercice 4 :

#include<iostream>
using namespace std;

int main()
{
int N,i,f=1;

cout<<"Tapez un entier : ";cin>>N;
for(i=2;i<=N;i++)f=f*i;
cout<<N<<"! vaut "<<f<<endl;

return 0;
}

Exercice 5 : 

Ecrire un programme qui demande de saisir un entier et qui indique si cet entier est premier ou non.

Correction exercice 5 :

#include<iostream>
using namespace std;

int main()
{
int n;
bool premier=true;
int d=2;

cout<<"Veuillez saisir un entier : ";cin>>n;

if(n<=1)premier=false;
        else
        {
        while(premier==true && d*d<=n)
                if(n%d==0)premier=false; else d=d+1;
        }
if(premier)cout<<n<<" est premier"<<endl; 
        else cout<<n<<" n'est pas premier"<<endl;

return 0;
}

Exercice 6 : 

Ecrire un programme qui demande à l'utilisateur de saisir un entier N et qui affiche le nombre de nombres premiers inférieurs ou égaux à N.

Correction exercice 6 :

#include<iostream>
using namespace std;

int main()
{
int N,i,nb=0,d;
bool est_premier;

cout<<"Tapez la valeur de N : ";cin>>N;

for(i=2;i<=N;i++)
        {
        /* ecrire un programme qui teste si i est premier*/
        est_premier=true;
        d=2;
        while(est_premier && d*d<=i)
                if(i%d==0)est_premier=false; else d++;

        if(est_premier==true)nb++;
        }

cout<<"Le nombre de nombre premiers inférieurs ou égaux à "
        <<N<<" est "<<nb<<endl;

return 0;
}

Exercice 7 : 

Ecrire un programme qui demande à l'utilisateur de saisir un entier N et qui affiche le N-ième nombre premier.

Correction exercice 7 :

#include<iostream>
using namespace std;

int main()
{
int N,i=1,nb=0,d;
bool est_premier;

cout<<"Tapez la valeur de N : ";cin>>N;

while(nb<N)
        {
        i++;
        est_premier=true;
        d=2;
        while(est_premier && d*d<=i)
                if(i%d==0)est_premier=false; else d++;

        if(est_premier==true)nb++;
        }

cout<<"Le N-ième nombre premier est "<<i<<endl;

return 0;
} 

Exercice 8 : 

Ecrire un programme qui demande à l'utilisateur de saisir un entier N et qui affiche la figure suivante.
N=1
*
N=2
**
*
N=3
***
**
*

Correction exercice 8 :

#include <iostream>

using namespace std;

int main()
{
    int N=0;
    cout<<"Saisissez une valeur pour N: ";
    cin>>N;
    cout<<endl<<endl;
    cout<<"N= "<<n<<endl;
    for(int i=0;i<N;i++)
    {
            
            for(int j=0;j<(N-i);j++)
            {
            cout<<"*";
            }      
    cout<<endl;
    }
      cout << "Appuyez sur une touche pour continuer ..." << endl;
cin.ignore();
cin.get();
return 0; 
}

Exercice 9 : 

Ecrire un programme qui demande à l'utilisateur de saisir un entier N et qui affiche la figure suivante.
N=1
*
N=2
**
 *
N=3
***
 **
  *
et ainsi de suite

Correction exercice 9 :

#include<iostream>
using namespace std;

int main()
{
int i,j,N;

cout<<"Tapez la valeur de N : ";cin>>N;

for(i=1;i<=N;i++)
        {
        for(j=1;j<i;j++)cout<<" ";
        for(j=1;j<=N+1-i;j++)cout<<"*";
        cout<<endl;
        } 
return 0;
}

Exercice 10 : 

On considère la suite hongroise : u(0)=a (a entier)
si u(n) pair alors u(n+1)=u(n)/2 sinon u(n+1)=3*u(n)+1
Pour toutes les valeurs a, il existe un entier N tel que u(N)=1 (conjecture admise).
a)
 Ecrire un programme qui demande à l'utilisateur de taper a et qui affiche toutes les valeurs de u(n) de  n=1 à n=N.

b)
 Ecrire un programme qui demande à l'utilisateur de taper un entier M puis qui cherche la valeur de a  comprise entre 2 et M qui maximise la valeur de N. On appelle A cette valeur. La programme doit  afficher la valeur A et la valeur N correspondante.

Correction exercice 10 :

a- 

#include<iostream>
using namespace std;

int main()
{
int a,n,u;
cout<<"Tapez la valeur de a : ";cin>>a;
n=0;
u=a;

while(u!=1)
        {
        if(u%2==0)u=u/2; else u=3*u+1;
        n++;
        cout<<"u("<<n<<")="<<u<<endl;
        }
return 0;
}

b-

#include<iostream>
using namespace std;

int main()
{
int a,n,u,M,amax,nmax;
cout<<"Tapez la valeur de M : ";cin>>M;
amax=2;
nmax=2;

for(a=3;a<=M;a++)
    {
    n=0;
    u=a;
    while(u!=1)
       {
       if(u%2==0)u=u/2; else u=3*u+1;
       n++;
       }
    if(n>nmax){amax=a;nmax=n;}
    }
cout<<"La valeur de A est :"<<amax<<endl;
cout<<"La valeur de N correspondante est :"<<nmax<<endl;

return 0;
}


Aucun commentaire:

Enregistrer un commentaire

Partenaires

Computers Blogs

Contactez-nous

Nom

E-mail *

Message *

Tous droits resérvés-www.exercices-corriges.com Seo Blogger Templates