برمجة بلغة c و c++ و c# برمجة بلغة السي وتطوراتها وجديدها وكل ما يلزمها

إضافة رد
قديم 25-03-2009, 12:23 PM
  #1
monarque
VIP_MEMBRE
مشرف سابق
 الصورة الرمزية monarque
 
تاريخ التسجيل: 01-12-2008
الدولة: بلد الله الواسع
المشاركات: 1,238
monarque عضو محترف الابداعmonarque عضو محترف الابداعmonarque عضو محترف الابداعmonarque عضو محترف الابداعmonarque عضو محترف الابداعmonarque عضو محترف الابداعmonarque عضو محترف الابداعmonarque عضو محترف الابداعmonarque عضو محترف الابداع
11 Serie N°2 Exercices C++avec Solution


على بركة الله نبدأ بالمجموعة الثانية...

Structures de contrôle
EXERCICE 1

Ecrire un programme qui demande à l'utilisateur de taper un entier et qui affiche GAGNE si l'entier est entre 56 et 78 bornes incluses PERDU sinon

Solution


Cet exercice a pour but de vérifier les points techniques suivants :
La notion de variables et leur déclaration.
L'utilisation de cin et de cout.
Le choix d'une structure de contrôle adaptée au problème !

Voici le fichier source :
#include<iostream>
using namespace std;

int main()
{

int a;
cout<<"Tapez un entier : ";cin>>a;
if((a>=56)&&(a<=78))cout<<"GAG NE"<<endl; else cout<<"PERDU"<<endl;

cout << "Appuyez sur une touche pour continuer ..." << endl;
cin.ignore();
cin.get();
return EXIT_SUCCESS;
}




EXERCICE 2

Ecrire un programme qui affiche tous les entiers de 8 jusqu’à 23 (bornes incluses) en utilisant un for.

Solution

Cet exercice a pour but de vérifier les points techniques suivants :
Utilisation rudimentaire d'un for.

Voici le fichier source :
#include<iostream>
using namespace std;

int main()
{

int i;
for(i=8;i<=23;i++)cout<<i<<end l;

return 0;
}


EXERCICE 3

Même exercice mais en utilisant un while.

Solution

Cet exercice a pour but de vérifier les points techniques suivants :
Utilisation rudimentaire d'un while.

Voici le fichier source :
#include<iostream>
using namespace std;
int main()
{

int i=8;
while(i<=23)
{
cout<<i<<endl;
i++;
}

return 0;
}


EXERCICE 4

Ecrire un programme qui demande à l’utilisateur de taper 10 entiers et qui affiche leur somme.

Solution

Cet exercice a pour but de vérifier les points techniques suivants :
Utilisation d'un for.
Etude d'un algorithme usuel : calcul d'une somme.

Voici le fichier source :
#include<iostream>
using namespace std;

int main()
{
int i,s=0,x;

for(i=0;i<10;i++)
{
cout<<"Tapez un entier : ";cin>>x;
s=s+x;
}

cout<<"La somme vaut : "<<s<<endl;

return 0;
}


EXERCICE 5

Ecrire un programme qui demande à l’utilisateur de taper 10 entiers et qui affiche le plus petit de ces entiers.

Solution

Voici le fichier source :
#include<iostream>
using namespace std;

int main()
{

int i,ppt,x;

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

cout<<"Le plus petit vaut vaut : "<<ppt<<endl;

return 0;
}


EXERCICE 6

Ecrire un programme qui demande à l'utilisateur de taper un entier N et qui calcule la somme des cubes de 5^3 à N^3.

Solution

Cet exercice a pour but de vérifier les points techniques suivants :
Utilisation simple du for.
Etude d'un algorithme usuel : calcul d'une somme.
Modélisation d'un problème simple issu des mathématiques.

Voici le fichier source :
#include<iostream.h>
using namespace std;
int main()

{
int N;
double somme;
cout << "Entrer un entier : "; cin >> N;
if (N>=5) {
for (int i=5; i<=N; i++) somme += i*i*i;
}
cout << "Somme des cubes de 5^3 a " << N << "^3 = " << somme << endl;
cin.ignore();
cin.get();
return EXIT_SUCCESS;
}


EXERCICE 7

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

Solution

Cet exercice a pour but de vérifier les points techniques suivants :
Utilisation simple du for.
Etude d'un algorithme usuel : calcul des termes d'une suite récurrente.
Modélisation d'un problème issu des mathématiques.

Voici le fichier source :
#include<iostream>
using namespace;
int main()
{
int i,u=3,N;

cout<<"Tapez N : ";cin>>N;

for(i=0;i<N;i++)
u=u*3+4;

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

return 0;
}


EXERCICE 8

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

Solution

Cet exercice a pour but de vérifier les points techniques suivants :
Utilisation simple du for.
Etude d'un algorithme usuel : calcul d'une suite récurrente.
Modélisation d'un problème simple issu des mathématiques.

Voici le fichier source :
#include<iostream>
using namespace std;

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

cout<<"Tapez N : ";cin>>N;

w=1;

for(i=2;i<=N;i++)
{
w=u+v;
u=v;
v=w;
}

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

return 0;
}


EXERCICE 9

Ecrire un programme qui demande à l’utilisateur de taper un entier N entre 0 et 20 bornes incluses et qui affiche N+17. Si on tape une valeur erronée, il faut afficher "erreur" et demander de saisir à nouveau l'entier.

Solution

Cet exercice a pour but de vérifier les points techniques suivants :
Utilisation simple du while.
Validation des données saisies par l'utilisateur.

Voici le fichier source :
#include<iostream>
using namespace std;

int main()
{
int N;
bool ok;

do
{
cout<<"Tapez N entre 0 et 20 :";cin>>N;
ok= N<=20 && N>=0;
if(!ok)cout<<"ERREUR RECOMMENCEZ"<<endl;
}while(!ok);

N=N+17;
cout<<"La valeur finale est : "<<N<<endl;

return 0;
}


EXERCICE 10

Ecrire un programme qui permet de faire des opérations sur un entier (valeur initiale à 0). Le programme affiche la valeur de l'entier puis affiche le menu suivant :
1. Ajouter 1
2. Multiplier par 2
3. Soustraire 4
4. Quitter


Le programme demande alors de taper un entier entre 1 et 4. Si l'utilisateur tape une valeur entre 1 et 3, on effectue l'opération, on affiche la nouvelle valeur de l'entier puis on réaffiche le menu et ainsi de suite jusqu'à ce qu'on tape 4. Lorsqu'on tape 4, le programme se termine.

Solution

Cet exercice a pour but de vérifier les points techniques suivants :
Utilisation du while.
Utilisation du switch.
Gestion d'un programme à l'aide d'un menu.
Modélisation d'un problème simple sous forme informatique.

Voici le fichier source :
#include<iostream>
using namespace std;

int main()
{
int x=0,choix;

do
{
cout<<"x vaut "<<x<<endl;
cout<<"1 : Ajouter 1"<<endl;
cout<<"2 : Multiplier par 2"<<endl;
cout<<"3 : Soustraire 4"<<endl;
cout<<"4 : Quitter"<<endl;
cout<<"Votre choix : ";cin>>choix;

switch(choix)
{
case 1 : x++;break;
case 2: x=x*2; break;
case 3: x=x-4;break;
}
}while(choix!=4);

cout<<"La valeur finale de x vaut : "<<x<<endl;

return 0;
}


EXERCICE 11

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.

Solution
Cet exercice a pour but de vérifier les points techniques suivants :
Utilisation d'un while de difficulté moyenne.
Etude d'un algorithme usuel : calcul d'une moyenne.

Voici le fichier source :
#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 12

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

Solution

Cet exercice a pour but de vérifier les points techniques suivants :
Utilisation d'un for.
Etude d'un algorithme usuel : calcul d'une suite récurrente assez difficile.
Modélisation d'un problème issu des mathématiques.

Voici le fichier source :
#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 13

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

Solution

Cet exercice a pour but de vérifier les points techniques suivants :
Utilisation d'un for.
Etude d'un algorithme usuel de difficulté moyenne : calcul du nombre d'occurence d'une valeur.

Voici le fichier source :
#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 14

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

Solution

Cet exercice a pour but de vérifier les points techniques suivants :
Utilisation du for.
Etude d'un algorithme usuel : calcul d'une factorielle.
Modélisation d'un problème issu des mathématiques.

Voici le fichier source :
#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 15

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

Solution

Cet exercice a pour but de vérifier les points techniques suivants :
Utilisation d'un while de difficulté moyenne.
Etude d'un algorithme usuel assez difficile : primarité d'un entier.
Modélisation d'un problème issu des mathématiques.

Voici le fichier source :
#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 16

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.

Solution

Cet exercice a pour but de vérifier les points techniques suivants :
Utilisation des boucles for et while.
Imbrication de boucles.
Lire précisément un énoncé.
Modélisation assez complexe d'un problème issu des mathématiques.

Voici le fichier source :
#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 17

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

Solution

Cet exercice a pour but de vérifier les points techniques suivants :
Utilisation des boucles for et while.
Imbrication de boucles assez complexe.
Lire précisément un énoncé.
Modélisation assez complexe d'un problème issu des mathématiques.

Voici le fichier source :
#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 18

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

Solution

Cet exercice a pour but de vérifier les points techniques suivants :
Utilisation des boucles for.
Imbrication de boucles assez complexe.

Voici le fichier source :
#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 19

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

Solution

Cet exercice a pour but de vérifier les points techniques suivants :
Utilisation des boucles for.
Imbrication de boucles.
Voici le fichier source :
#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 20

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.


Solution

Cet exercice a pour but de vérifier les points techniques suivants :
Utilisation du while.
Lire précisément un énoncé.
Modélisation assez complexe d'un problème issu des mathématiques.

Voici le fichier source :
#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) 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

Solution

Cet exercice a pour but de vérifier les points techniques suivants :
Utilisation du while et du for.
Imbrication de boucles.
Lire précisément un énoncé.
Modélisation assez complexe d'un problème issu des mathématiques.

Voici le fichier source :
#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;
}


__________________
L'accès est mieux que la paresse

ليس المهم أن تشارك بألف موضوع ... بل المهم أن تنشأ موضوع يشارك فيه ألف عضو
monarque غير متواجد حالياً  
رد مع اقتباس
إضافة رد

أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
exo MDF avec solution zghar1017 الهندسة الميكانيكية 5 02-07-2016 02:51 PM
la serie n°1 de probabilité et leur solution seulement au ingdz شذى الروح الإعــلام الآلي والرياضيــات 15 13-10-2014 09:46 PM
cours java+TP et exercices avec solution S_hanane لغـــة الجافا java 7 26-03-2010 09:29 PM
Serie N°1 d 'Exercices C++ avec Les Solution monarque برمجة بلغة c و c++ و c# 1 24-03-2009 10:12 PM
concours madjistére2006 avec solution randa1985 الإعــلام الآلي والرياضيــات 8 03-12-2008 04:44 PM


الساعة الآن 07:55 PM.