SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
Introduction au langage C++
Travaux pratiques
Correction
Youssouf EL ALLIOUI
yelallioui@uhp.ac.ma
Notions de base
Exercice 1.
#include<iostream>
using namespace std;
int main()
{
double largeur,longueur,surface, perimetre;
cout << "Tapez la largeur du champ : "; cin >> largeur;
cout << "Tapez la longueur du champ : "; cin >> longueur;
surface = largeur * longueur;
perimetre = 2 * (largeur + longueur);
cout << "La surface vaut : " << surface << endl;
cout << "Le perimetre vaut : " << perimetre << endl;
cout << "Appuyez sur une touche pour continuer." << endl;
cin.ignore();
cin.get();
return EXIT_SUCCESS;
}
2016
P a g e 2 | 17
Exercice 2.
Cet exercice a pour but de vérifier les points techniques suivants :
 La notion de variables et leur déclaration.
 Calcul du moyenne.
 Utilisation des types int et double.
 L'utilisation de cin et de cout.
 L'affectation.
Voici le fichier source :
#include<iostream>
using namespace std;
int main()
{
int a;double s=0;
cout<<"Tapez la valeur numero 1 : ";cin>>a; s=s+a;
cout<<"Tapez la valeur numero 2 : ";cin>>a; s=s+a;
cout<<"Tapez la valeur numero 3 : ";cin>>a; s=s+a;
cout<<"Tapez la valeur numero 4 : ";cin>>a; s=s+a;
cout<<"Tapez la valeur numero 5 : ";cin>>a; s=s+a;
s=s/5.0;
cout<<"La moyenne vaut : "<<s<<endl;
cout << "Appuyez sur une touche pour continuer ..." << endl;
cin.ignore();
cin.get();
return EXIT_SUCCESS;
}
Exercice 3.
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.
 L'affectation.
 Un "algorithme" rudimentaire : échanger le contenu de 2 variables.
Voici le fichier source :
#include<iostream>
using namespace std;
int main()
{
int a,b,temp;
cout<<"Tapez la valeur de a : ";cin>>a;
cout<<"Tapez la valeur de b : ";cin>>b;
temp=a;
P a g e 3 | 17
a=b;
b=temp;
cout<<"La valeur de a est "<<a<<endl;
cout<<"La valeur de b est "<<b<<endl;
cout << "Appuyez sur une touche pour continuer ..." << endl;
cin.ignore();
cin.get();
return EXIT_SUCCESS;
}
Exercice 4.
Cet exercice a pour but de vérifier les points techniques suivants :
 La notion de variables et leur déclaration.
 Le choix d'identificateurs pertinents et explicites.
 L'utilisation de cin et de cout.
 L'affectation.
 Modélisation d'un problème "économique".
Voici le fichier source :
#include<iostream>
using namespace std;
int main()
{
double prixht,poids,tva,total;
cout<<"Tapez le prix HT d'un kilo de tomates : "; cin>>prixht;
cout<<"Combien de kilos avez-vous achetes : "; cin>>poids;
cout<<"Quel est le taux de TVA : "; cin>>tva;
total=(1+tva/100)*prixht*poids;
cout<<"Le prix TTC est : "<<total<<endl;
cout << "Appuyez sur une touche pour continuer ..." << endl;
cin.ignore();
cin.get();
return EXIT_SUCCESS;;
}
Structures de contrôles
Exercice 5.
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 !
P a g e 4 | 17
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<<"GAGNE"<<endl; else cout<<"PERDU"<<endl;
cout << "Appuyez sur une touche pour continuer ..." << endl;
cin.ignore();
cin.get();
return EXIT_SUCCESS;
}
Exercice 6.
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 7.
#include<iostream>
using namespace std;
int main()
{
int i,ppt,x;
for(i=0;i<10;i++)
{
P a g e 5 | 17
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 8.
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 9.
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++)
{
P a g e 6 | 17
w=u+v;
u=v;
v=w;
}
cout<<"u("<<N<<")="<<w<<endl;
return 0;
}
Exercice 10.
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.
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 :
P a g e 7 | 17
#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.
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 13.
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>
P a g e 8 | 17
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 14.
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;
}
Les tableaux
Exercice 15.
Cet exercice a pour but de vérifier les points techniques suivants :
P a g e 9 | 17
 Utilisation simple de tableaux.
 Un algorithme simple sur un tableau : recherche du nombre d'éléments vérifiant une
propriété.
Voici le fichier source :
#include<iostream>
using namespace std;
const int N=10;
int main()
{
int t[10],i,nb=0;
for(i=0;i<N;i++){cout<<"Tapez un entier ";cin>>t[i];}
for(i=0;i<N;i++)if(t[i]>=10)nb++;
cout<<"Le nombre d'entiers supérieurs ou égaux à 10 est : "
<<nb<<endl;
return 0;
}
Exercice 16.
Cet exercice a pour but de vérifier les points techniques suivants :
 Utilisation simple de tableaux.
 Un algorithme simple sur un tableau : recherche d'un élément dans un tableau.
Voici le fichier source :
#include<iostream>
using namespace std;
const int N=10;
int main()
{
int t[N],i,V;
bool trouve;
for(i=0;i<N;i++){cout<<"Tapez un entier ";cin>>t[i];}
cout<<"Tapez la valeur de V : ";cin>>V;
trouve=false;
i=0;
while(!trouve && i<N)
if(t[i]==V)trouve=true; else i++;
if(trouve) cout<<"La valeur V se trouve dans le tableau"<<endl;
else cout<<"La valeur V ne se trouve pas dans le tableau"<<endl;
return 0;
}
Exercice 17.
Cet exercice a pour but de vérifier les points techniques suivants :
 Utilisation simple de tableaux.
 Un algorithme simple sur un tableau : recherche de l'indice du plus grand élément.
Voici le fichier source :
#include<iostream>
using namespace std;
P a g e 10 | 17
const int N=10;
int main()
{
int t[N],i,indice;
for(i=0;i<N;i++){cout<<"Tapez un entier ";cin>>t[i];}
indice=0;
for(i=1;i<N;i++)
if(t[indice]<t[i])indice=i;
cout<<"L'indice du plus grand élément est : "<<indice<<endl;
return 0;
}
Exercice 18.
Cet exercice a pour but de vérifier les points techniques suivants :
 Utilisation simple de tableaux.
 Un algorithme simple sur un tableau : supression d'un éléments avec décalage des
suivants.
Voici le fichier source :
#include<iostream>
using namespace std;
const int N=10;
int main()
{
int t[N],i,j,V;
bool trouve;
for(i=0;i<N;i++){cout<<"Tapez un entier ";cin>>t[i];}
cout<<"Tapez la valeur de V : ";cin>>V;
trouve=false;
i=0;
while(!trouve && i<N)
if(t[i]==V)trouve=true; else i++;
if(trouve)
{
for(j=i;j<N-1;j++)t[j]=t[j+1];
t[N-1]=0;
}
for(i=0;i<N;i++)cout<<t[i]<<endl;
return 0;
}
}
Exercice 19.
Cet exercice a pour but de vérifier les points techniques suivants :
 Utilisation simple de tableaux.
 Un algorithme simple sur un tableau : tri d'un tableau.
Voici le fichier source :
#include<iostream>
P a g e 11 | 17
using namespace std;
const int N=10;
int main()
{
int a[N],i,j,min,imin,tmp;
for(i=0;i<N;i++)
{
cout<<"Veuillez taper l'entier numero "<<i<<" : ";cin>>a[i];
}
for(i=0;i<N-1;i++)
{
imin=i;min=a[i];
for(j=i+1;j<<N;j++)if(a[j]<min){min=a[j];imin=j;}
tmp=a[imin];a[imin]=a[i];a[i]=tmp;
}
cout<<"VOICI LE TABLEAU TRIE :"<<endl;
for(i=0;i<N;i++)cout<<"a["<<i<<"]="<<a[i]<<endl;
return 0;
}
Exercice 20.
Cet exercice a pour but de vérifier les points techniques suivants :
 Utilisation simple de tableaux.
 Un algorithme simple sur un tableau : tri d'un tableau.
Voici le fichier source :
#include<iostream>
using namespace std;
const int N=10;
int main()
{
int a[N],i,nb,tmp;
for(i=0;i<N;i++)
{cout<<"Veuillez taper l'entier numero "<<i<<" : ";cin>>a[i];}
do
{
nb=0;
for(i=0;i<N-1;i++)
if(a[i]>a[i+1])
{
tmp=a[i];a[i]=a[i+1];a[i+1]=tmp;
nb++;
}
}while(nb!=0);
cout<<"VOICI LE TABLEAU TRIE :"<<endl;
for(i=0;i<N;i++)cout<<"a["<<i<<"]="<<a[i]<<endl;
return 0;
P a g e 12 | 17
}
Exercice 21.
Cet exercice a pour but de vérifier les points techniques suivants :
 Utilisation simple de tableaux.
 Festion d'une liste simple grâce à un tableau statique.
Voici le fichier source :
#include<iostream>
using namespace std;
const int N=10;
int main()
{
int t[N],nb=0,choix,e,i;
bool fini=false;
while(fini==false)
{
cout<<"1. Ajouter un entier"<<endl;
cout<<"2. Afficher la liste des entier"<<endl;
cout<<"3. Supprimer le dernièr entier de la liste"<<endl;
cout<<"4. Afficher le dernier entier de la liste"<<endl;
cout<<"5. Quitter"<<endl;
cout<<"Votre choix : ";cin>>choix;
switch(choix)
{
case 1 : cout<<"Tapez un entier : ";cin>>e;
if(nb<N){t[nb]=e; nb++; cout<<"ENTIER
AJOUTE"<<endl;}
else cout<<"IMPOSSIBLE LE TABLEAU EST
PLEIN"<<endl;
break;
case 2 : if(nb==0)cout<<"LA LISTE EST VIDE"<<endl;
else {
cout<<"VOICI LA
LISTE"<<endl;
for(i=0;i<nb;i++)cout<<t[i]<<" ";
cout<<endl;
}
break;
case 3 : if(nb>0){nb--; cout<<"ENTIER SUPPRIME"<<endl;}
else cout<<"LA LISTE EST
VIDE"<<endl;
break;
case 4 : if(nb>0)cout<<"lLE DERNIER ENTIER EST "<<t[nb-
1]<<endl;
else cout<<"LA LISTE EST
VIDE"<<endl;
break;
case 5 : fini=true;
break;
P a g e 13 | 17
}
}
return 0;
}
Exercice 22.
Cet exercice a pour but de vérifier les points techniques suivants :
 Utilisation simple de tableaux.
 Gestion d'une liste triée grâce à un tableau statique.
Voici le fichier source :
#include<iostream>
using namespace std;
const int N=10;
int main()
{
int t[N],nb=0,choix,e,V,i,j,trouve;
bool fini=false;
while(fini==false)
{
cout<<"1. Ajouter un entier"<<endl;
cout<<"2. Afficher la liste des entier"<<endl;
cout<<"3. Supprimer le premier entier ayant une valeur
donnée"<<endl;
cout<<"4. Supprimer tous les entiers ayant une valeur
donnée"<<endl;
cout<<"5. Quitter"<<endl;
cout<<"Votre choix : ";cin>>choix;
switch(choix)
{
case 1 : if(nb<N)
{
cout<<"Tapez un entier : ";cin>>e;
i=0;
while(i!=nb && t[i]<e)i++;
for(j=nb;j>i;j--)t[j]=t[j-1];
t[i]=e;
nb++;
}
else cout<<"IMPOSSIBLE LE TABLEAU EST
PLEIN"<<endl;
break;
case 2 : if(nb==0)cout<<"LA LISTE EST VIDE"<<endl;
else {
cout<<"VOICI LA
LISTE"<<endl;
for(i=0;i<nb;i++)cout<<t[i]<<" ";
cout<<endl;
}
break;
P a g e 14 | 17
case 3 : cout<<"Tapez la valeur à supprimer :";cin>>V;
trouve=false;
i=0;
while(!trouve &&
i<nb)if(t[i]==V)trouve=true; else i++;
if(trouve)
{
for(j=i;j<nb-1;j++)t[j]=t[j+1];
nb--;
}
break;
case 4 : cout<<"Tapez la valeur à supprimer :";cin>>V;
j=0;
for(i=0;i<nb;i++)
if(t[i]!=V){t[j]=t[i];j++;}
nb=j;
break;
case 5 : fini=true;
break;
}
}
return 0;
}
Les fonctions
Exercice 23.
Cet exercice a pour but de vérifier les points techniques suivants :
 Création de fonction simple.
 Passage de paramètres par valeur.
 Utilisation de return.
 Appel d'une fonction.
Voici le fichier source :
#include<iostream>
using namespace std;
#include<cmath>
double distance(double xa, double ya, double xb, double yb)
{
double dx,dy;
dx=xa-xb;
dy=ya-yb;
return sqrt(dx*dx+dy*dy);
}
int main()
{
double x1,y1,x2,y2,d;
cout<<"Tapez l'abscisse de A : ";cin>>x1;
cout<<"Tapez l'ordonnée de A : ";cin>>y1;
P a g e 15 | 17
cout<<"Tapez l'abscisse de B : ";cin>>x2;
cout<<"Tapez l'ordonnée de B : ";cin>>y2;
d=distance(x1,y1,x2,y2);
cout<<"La distance AB vaut : "<<d<<endl;
return 0;
}
Exercice 24.
Cet exercice a pour but de vérifier les points techniques suivants :
 Création de fonction simple.
 Appel d'une fonction.
 Validation des données avant l'appel d'une fonction.
 Fonction renvoyant un booléen.
Voici le fichier source :
#include<iostream>
using namespace std;
#include<cmath>
bool f(int x)
{
bool r=true;
int d=2;
while(r && d*d<=x)if(x%d==0)r=false; else d++;
return r;
}
int main()
{
int x;
bool premier;
do{
cout<<"Tapez x :";cin>>x;
}while(x<=0);
premier=f(x);
if(premier)cout<<"x est premier"<<endl;
else cout<<"x n'est pas premier"<<endl;
return 0;
}
Exercice 25.
Cet exercice a pour but de vérifier les points techniques suivants :
 Création de fonctions simples.
 Appel de fonction.
 Fonction qui appelle une autre fonction.
Voici le fichier source :
#include<iostream>
using namespace std;
bool premier(int x)
P a g e 16 | 17
{
bool r=true;
int d=2;
while(r && d*d<=x)if(x%d==0)r=false; else d++;
return r;
}
int Npremier(int N)
{
int nb=0;
int i=2;
while(nb!=N)
{
if(premier(i))nb++;
i++;
}
return i-1;
}
int main()
{
int N,p;
cout<<"Tapez la valeur de N : ";cin>>N;
p=Npremier(N);
cout<<"Le N-ième nombre premier est : "<<p<<endl;
return 0;
}
Exercice 26.
Voir solution donnée dans le cours
Exercice 27.
Cet exercice a pour but de vérifier les points techniques suivants :
 Ecriture d'une fonction ayant comme paramètre un tableau de taille quelconque.
 Recherche d'un élément dans un tableau.
 Utilisation de return.
Voici le fichier source :
#include<iostream>
using namespace std;
void saisir(int t[],int n)
{
int i; for(i=0;i<n;i++)
{
cout<<"Tapez la valeur numero "<<i<<" : ";
cin>> t[i];
}
}
int f(int t[], int n)
{
int i=0,ind=-1;
P a g e 17 | 17
while(ind==-1 && i<n)
if(t[i]>=0 && t[i]<=10)ind=i;else i++;
return ind;
}
int main()
{
int a[10];
int w;
saisir(a,10);
w=f(a,10);
if(w!=-1)cout<<"Il existe une valeur entre 0 et 10. "
<<"l'indice de la première case est "<<w<<endl;
else cout<<"Il n'existe pas de valeurs entre 0 et 10"<<endl;
return 0;
}
Exercice 28.
Voir solution donnée dans le cours

Contenu connexe

Tendances

Ch2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfCh2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfFadouaBouafifSamoud
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java HéritageNadaBenLatifa
 
Cours langage c
Cours langage cCours langage c
Cours langage ccoursuniv
 
Examen principal - Algorithme & Structures de données
Examen principal - Algorithme & Structures de donnéesExamen principal - Algorithme & Structures de données
Examen principal - Algorithme & Structures de donnéesInes Ouaz
 
Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Aziz Darouichi
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmiqueAbdoulaye Dieng
 
Examen principal- php - correction
Examen principal- php - correctionExamen principal- php - correction
Examen principal- php - correctionInes Ouaz
 
Cours algorithme
Cours algorithmeCours algorithme
Cours algorithmebadr zaimi
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement webHouda TOUKABRI
 
Chapitre 4 récursivité
Chapitre 4 récursivitéChapitre 4 récursivité
Chapitre 4 récursivitéSana Aroussi
 
Examen principal - Fondement Multimedia - correction
Examen principal - Fondement Multimedia - correctionExamen principal - Fondement Multimedia - correction
Examen principal - Fondement Multimedia - correctionInes Ouaz
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrigeAmineMouhout1
 
Travaux dirigés 1: algorithme & structures de données
Travaux dirigés 1: algorithme & structures de donnéesTravaux dirigés 1: algorithme & structures de données
Travaux dirigés 1: algorithme & structures de donnéesInes Ouaz
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-CorrectionLilia Sfaxi
 
Chapitre6: Surcharge des opérateurs
Chapitre6:  Surcharge des opérateursChapitre6:  Surcharge des opérateurs
Chapitre6: Surcharge des opérateursAziz Darouichi
 
Manuel des TP : Atelier systèmes 2
Manuel des TP : Atelier systèmes 2Manuel des TP : Atelier systèmes 2
Manuel des TP : Atelier systèmes 2Faycel Chaoua
 

Tendances (20)

Ch2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfCh2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdf
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java Héritage
 
Tp n 3 linux
Tp n 3 linuxTp n 3 linux
Tp n 3 linux
 
Cours langage c
Cours langage cCours langage c
Cours langage c
 
Examen principal - Algorithme & Structures de données
Examen principal - Algorithme & Structures de donnéesExamen principal - Algorithme & Structures de données
Examen principal - Algorithme & Structures de données
 
Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Chap1V2019: Cours en C++
Chap1V2019: Cours en C++
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmique
 
Examen principal- php - correction
Examen principal- php - correctionExamen principal- php - correction
Examen principal- php - correction
 
Cours algorithme
Cours algorithmeCours algorithme
Cours algorithme
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement web
 
Chapitre 4 récursivité
Chapitre 4 récursivitéChapitre 4 récursivité
Chapitre 4 récursivité
 
Examen principal - Fondement Multimedia - correction
Examen principal - Fondement Multimedia - correctionExamen principal - Fondement Multimedia - correction
Examen principal - Fondement Multimedia - correction
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrige
 
02 correction-td smi-s3-algo2
02 correction-td smi-s3-algo202 correction-td smi-s3-algo2
02 correction-td smi-s3-algo2
 
Exercices algo
Exercices algoExercices algo
Exercices algo
 
Travaux dirigés 1: algorithme & structures de données
Travaux dirigés 1: algorithme & structures de donnéesTravaux dirigés 1: algorithme & structures de données
Travaux dirigés 1: algorithme & structures de données
 
Récursivité
RécursivitéRécursivité
Récursivité
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-Correction
 
Chapitre6: Surcharge des opérateurs
Chapitre6:  Surcharge des opérateursChapitre6:  Surcharge des opérateurs
Chapitre6: Surcharge des opérateurs
 
Manuel des TP : Atelier systèmes 2
Manuel des TP : Atelier systèmes 2Manuel des TP : Atelier systèmes 2
Manuel des TP : Atelier systèmes 2
 

Similaire à TP C++ : Correction

Cours c#
Cours c#Cours c#
Cours c#zan
 
Cours de C++, en français, 2002 - Cours 2.1
Cours de C++, en français, 2002 - Cours 2.1Cours de C++, en français, 2002 - Cours 2.1
Cours de C++, en français, 2002 - Cours 2.1Laurent BUNIET
 
Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)DriNox NordisTe
 
Cours Algorithmique (Echange de valeurs, Expressions, structure de choix et s...
Cours Algorithmique (Echange de valeurs, Expressions, structure de choix et s...Cours Algorithmique (Echange de valeurs, Expressions, structure de choix et s...
Cours Algorithmique (Echange de valeurs, Expressions, structure de choix et s...Fatima Zahra Fagroud
 
Les structures de données.pptx
Les structures de données.pptxLes structures de données.pptx
Les structures de données.pptxPROFPROF11
 
Cours de C++ / Tronc commun deuxième année ISIMA
Cours de C++ / Tronc commun deuxième année ISIMACours de C++ / Tronc commun deuxième année ISIMA
Cours de C++ / Tronc commun deuxième année ISIMALoic Yon
 
C++11 en 12 exemples simples
C++11 en 12 exemples simplesC++11 en 12 exemples simples
C++11 en 12 exemples simplesPethrvs
 
Electronique-Numérique-TD-7.pdf
Electronique-Numérique-TD-7.pdfElectronique-Numérique-TD-7.pdf
Electronique-Numérique-TD-7.pdfYassine Sabri
 
Les nouveautés de C++11 : Ecrire du C++ Moderne
Les nouveautés de C++11 : Ecrire du C++ ModerneLes nouveautés de C++11 : Ecrire du C++ Moderne
Les nouveautés de C++11 : Ecrire du C++ ModerneMicrosoft
 
La programmation fonctionnelle avec le langage OCaml
La programmation fonctionnelle avec le langage OCamlLa programmation fonctionnelle avec le langage OCaml
La programmation fonctionnelle avec le langage OCamlStéphane Legrand
 
Code Week 2014 - atelier d'initiation à la programmation avec python
Code Week 2014 - atelier d'initiation à la programmation avec pythonCode Week 2014 - atelier d'initiation à la programmation avec python
Code Week 2014 - atelier d'initiation à la programmation avec pythonbbourgois
 
3 vb reference
3 vb reference3 vb reference
3 vb referencekkatia31
 
cours python Chapitre 3- Les types de base.pptx
cours python Chapitre 3- Les types de base.pptxcours python Chapitre 3- Les types de base.pptx
cours python Chapitre 3- Les types de base.pptxAhmathBambaMBACKE
 
Cours python avancé
Cours python avancéCours python avancé
Cours python avancépierrepo
 
Python avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionPython avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionECAM Brussels Engineering School
 

Similaire à TP C++ : Correction (20)

Cours c#
Cours c#Cours c#
Cours c#
 
C++11
C++11C++11
C++11
 
Cours de C++, en français, 2002 - Cours 2.1
Cours de C++, en français, 2002 - Cours 2.1Cours de C++, en français, 2002 - Cours 2.1
Cours de C++, en français, 2002 - Cours 2.1
 
Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)
 
Cours Algorithmique (Echange de valeurs, Expressions, structure de choix et s...
Cours Algorithmique (Echange de valeurs, Expressions, structure de choix et s...Cours Algorithmique (Echange de valeurs, Expressions, structure de choix et s...
Cours Algorithmique (Echange de valeurs, Expressions, structure de choix et s...
 
Les structures de données.pptx
Les structures de données.pptxLes structures de données.pptx
Les structures de données.pptx
 
Cours de C++ / Tronc commun deuxième année ISIMA
Cours de C++ / Tronc commun deuxième année ISIMACours de C++ / Tronc commun deuxième année ISIMA
Cours de C++ / Tronc commun deuxième année ISIMA
 
C++11 en 12 exemples simples
C++11 en 12 exemples simplesC++11 en 12 exemples simples
C++11 en 12 exemples simples
 
Support programmation orientée objet c# .net version f8
Support programmation orientée objet c#  .net version f8Support programmation orientée objet c#  .net version f8
Support programmation orientée objet c# .net version f8
 
Corrige tp java
Corrige tp javaCorrige tp java
Corrige tp java
 
Mathématiques et Python
Mathématiques et PythonMathématiques et Python
Mathématiques et Python
 
C++ 11/14
C++ 11/14C++ 11/14
C++ 11/14
 
Electronique-Numérique-TD-7.pdf
Electronique-Numérique-TD-7.pdfElectronique-Numérique-TD-7.pdf
Electronique-Numérique-TD-7.pdf
 
Les nouveautés de C++11 : Ecrire du C++ Moderne
Les nouveautés de C++11 : Ecrire du C++ ModerneLes nouveautés de C++11 : Ecrire du C++ Moderne
Les nouveautés de C++11 : Ecrire du C++ Moderne
 
La programmation fonctionnelle avec le langage OCaml
La programmation fonctionnelle avec le langage OCamlLa programmation fonctionnelle avec le langage OCaml
La programmation fonctionnelle avec le langage OCaml
 
Code Week 2014 - atelier d'initiation à la programmation avec python
Code Week 2014 - atelier d'initiation à la programmation avec pythonCode Week 2014 - atelier d'initiation à la programmation avec python
Code Week 2014 - atelier d'initiation à la programmation avec python
 
3 vb reference
3 vb reference3 vb reference
3 vb reference
 
cours python Chapitre 3- Les types de base.pptx
cours python Chapitre 3- Les types de base.pptxcours python Chapitre 3- Les types de base.pptx
cours python Chapitre 3- Les types de base.pptx
 
Cours python avancé
Cours python avancéCours python avancé
Cours python avancé
 
Python avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionPython avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exception
 

Dernier

Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsRajiAbdelghani
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .Txaruka
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxAsmaa105193
 
presentation sur la maladie de la dengue .pptx
presentation sur la maladie de la dengue .pptxpresentation sur la maladie de la dengue .pptx
presentation sur la maladie de la dengue .pptxNYTombaye
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSKennel
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSKennel
 
le present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxle present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxmmatar2
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Gilles Le Page
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSKennel
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxMartin M Flynn
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxrababouerdighi
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSKennel
 

Dernier (20)

Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 temps
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. Marocpptx
 
presentation sur la maladie de la dengue .pptx
presentation sur la maladie de la dengue .pptxpresentation sur la maladie de la dengue .pptx
presentation sur la maladie de la dengue .pptx
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
 
DO PALÁCIO À ASSEMBLEIA .
DO PALÁCIO À ASSEMBLEIA                 .DO PALÁCIO À ASSEMBLEIA                 .
DO PALÁCIO À ASSEMBLEIA .
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
 
le present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxle present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptx
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptx
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptx
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
 

TP C++ : Correction

  • 1. Introduction au langage C++ Travaux pratiques Correction Youssouf EL ALLIOUI yelallioui@uhp.ac.ma Notions de base Exercice 1. #include<iostream> using namespace std; int main() { double largeur,longueur,surface, perimetre; cout << "Tapez la largeur du champ : "; cin >> largeur; cout << "Tapez la longueur du champ : "; cin >> longueur; surface = largeur * longueur; perimetre = 2 * (largeur + longueur); cout << "La surface vaut : " << surface << endl; cout << "Le perimetre vaut : " << perimetre << endl; cout << "Appuyez sur une touche pour continuer." << endl; cin.ignore(); cin.get(); return EXIT_SUCCESS; } 2016
  • 2. P a g e 2 | 17 Exercice 2. Cet exercice a pour but de vérifier les points techniques suivants :  La notion de variables et leur déclaration.  Calcul du moyenne.  Utilisation des types int et double.  L'utilisation de cin et de cout.  L'affectation. Voici le fichier source : #include<iostream> using namespace std; int main() { int a;double s=0; cout<<"Tapez la valeur numero 1 : ";cin>>a; s=s+a; cout<<"Tapez la valeur numero 2 : ";cin>>a; s=s+a; cout<<"Tapez la valeur numero 3 : ";cin>>a; s=s+a; cout<<"Tapez la valeur numero 4 : ";cin>>a; s=s+a; cout<<"Tapez la valeur numero 5 : ";cin>>a; s=s+a; s=s/5.0; cout<<"La moyenne vaut : "<<s<<endl; cout << "Appuyez sur une touche pour continuer ..." << endl; cin.ignore(); cin.get(); return EXIT_SUCCESS; } Exercice 3. 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.  L'affectation.  Un "algorithme" rudimentaire : échanger le contenu de 2 variables. Voici le fichier source : #include<iostream> using namespace std; int main() { int a,b,temp; cout<<"Tapez la valeur de a : ";cin>>a; cout<<"Tapez la valeur de b : ";cin>>b; temp=a;
  • 3. P a g e 3 | 17 a=b; b=temp; cout<<"La valeur de a est "<<a<<endl; cout<<"La valeur de b est "<<b<<endl; cout << "Appuyez sur une touche pour continuer ..." << endl; cin.ignore(); cin.get(); return EXIT_SUCCESS; } Exercice 4. Cet exercice a pour but de vérifier les points techniques suivants :  La notion de variables et leur déclaration.  Le choix d'identificateurs pertinents et explicites.  L'utilisation de cin et de cout.  L'affectation.  Modélisation d'un problème "économique". Voici le fichier source : #include<iostream> using namespace std; int main() { double prixht,poids,tva,total; cout<<"Tapez le prix HT d'un kilo de tomates : "; cin>>prixht; cout<<"Combien de kilos avez-vous achetes : "; cin>>poids; cout<<"Quel est le taux de TVA : "; cin>>tva; total=(1+tva/100)*prixht*poids; cout<<"Le prix TTC est : "<<total<<endl; cout << "Appuyez sur une touche pour continuer ..." << endl; cin.ignore(); cin.get(); return EXIT_SUCCESS;; } Structures de contrôles Exercice 5. 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 !
  • 4. P a g e 4 | 17 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<<"GAGNE"<<endl; else cout<<"PERDU"<<endl; cout << "Appuyez sur une touche pour continuer ..." << endl; cin.ignore(); cin.get(); return EXIT_SUCCESS; } Exercice 6. 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 7. #include<iostream> using namespace std; int main() { int i,ppt,x; for(i=0;i<10;i++) {
  • 5. P a g e 5 | 17 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 8. 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 9. 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++) {
  • 6. P a g e 6 | 17 w=u+v; u=v; v=w; } cout<<"u("<<N<<")="<<w<<endl; return 0; } Exercice 10. 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. 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 :
  • 7. P a g e 7 | 17 #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. 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 13. 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>
  • 8. P a g e 8 | 17 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 14. 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; } Les tableaux Exercice 15. Cet exercice a pour but de vérifier les points techniques suivants :
  • 9. P a g e 9 | 17  Utilisation simple de tableaux.  Un algorithme simple sur un tableau : recherche du nombre d'éléments vérifiant une propriété. Voici le fichier source : #include<iostream> using namespace std; const int N=10; int main() { int t[10],i,nb=0; for(i=0;i<N;i++){cout<<"Tapez un entier ";cin>>t[i];} for(i=0;i<N;i++)if(t[i]>=10)nb++; cout<<"Le nombre d'entiers supérieurs ou égaux à 10 est : " <<nb<<endl; return 0; } Exercice 16. Cet exercice a pour but de vérifier les points techniques suivants :  Utilisation simple de tableaux.  Un algorithme simple sur un tableau : recherche d'un élément dans un tableau. Voici le fichier source : #include<iostream> using namespace std; const int N=10; int main() { int t[N],i,V; bool trouve; for(i=0;i<N;i++){cout<<"Tapez un entier ";cin>>t[i];} cout<<"Tapez la valeur de V : ";cin>>V; trouve=false; i=0; while(!trouve && i<N) if(t[i]==V)trouve=true; else i++; if(trouve) cout<<"La valeur V se trouve dans le tableau"<<endl; else cout<<"La valeur V ne se trouve pas dans le tableau"<<endl; return 0; } Exercice 17. Cet exercice a pour but de vérifier les points techniques suivants :  Utilisation simple de tableaux.  Un algorithme simple sur un tableau : recherche de l'indice du plus grand élément. Voici le fichier source : #include<iostream> using namespace std;
  • 10. P a g e 10 | 17 const int N=10; int main() { int t[N],i,indice; for(i=0;i<N;i++){cout<<"Tapez un entier ";cin>>t[i];} indice=0; for(i=1;i<N;i++) if(t[indice]<t[i])indice=i; cout<<"L'indice du plus grand élément est : "<<indice<<endl; return 0; } Exercice 18. Cet exercice a pour but de vérifier les points techniques suivants :  Utilisation simple de tableaux.  Un algorithme simple sur un tableau : supression d'un éléments avec décalage des suivants. Voici le fichier source : #include<iostream> using namespace std; const int N=10; int main() { int t[N],i,j,V; bool trouve; for(i=0;i<N;i++){cout<<"Tapez un entier ";cin>>t[i];} cout<<"Tapez la valeur de V : ";cin>>V; trouve=false; i=0; while(!trouve && i<N) if(t[i]==V)trouve=true; else i++; if(trouve) { for(j=i;j<N-1;j++)t[j]=t[j+1]; t[N-1]=0; } for(i=0;i<N;i++)cout<<t[i]<<endl; return 0; } } Exercice 19. Cet exercice a pour but de vérifier les points techniques suivants :  Utilisation simple de tableaux.  Un algorithme simple sur un tableau : tri d'un tableau. Voici le fichier source : #include<iostream>
  • 11. P a g e 11 | 17 using namespace std; const int N=10; int main() { int a[N],i,j,min,imin,tmp; for(i=0;i<N;i++) { cout<<"Veuillez taper l'entier numero "<<i<<" : ";cin>>a[i]; } for(i=0;i<N-1;i++) { imin=i;min=a[i]; for(j=i+1;j<<N;j++)if(a[j]<min){min=a[j];imin=j;} tmp=a[imin];a[imin]=a[i];a[i]=tmp; } cout<<"VOICI LE TABLEAU TRIE :"<<endl; for(i=0;i<N;i++)cout<<"a["<<i<<"]="<<a[i]<<endl; return 0; } Exercice 20. Cet exercice a pour but de vérifier les points techniques suivants :  Utilisation simple de tableaux.  Un algorithme simple sur un tableau : tri d'un tableau. Voici le fichier source : #include<iostream> using namespace std; const int N=10; int main() { int a[N],i,nb,tmp; for(i=0;i<N;i++) {cout<<"Veuillez taper l'entier numero "<<i<<" : ";cin>>a[i];} do { nb=0; for(i=0;i<N-1;i++) if(a[i]>a[i+1]) { tmp=a[i];a[i]=a[i+1];a[i+1]=tmp; nb++; } }while(nb!=0); cout<<"VOICI LE TABLEAU TRIE :"<<endl; for(i=0;i<N;i++)cout<<"a["<<i<<"]="<<a[i]<<endl; return 0;
  • 12. P a g e 12 | 17 } Exercice 21. Cet exercice a pour but de vérifier les points techniques suivants :  Utilisation simple de tableaux.  Festion d'une liste simple grâce à un tableau statique. Voici le fichier source : #include<iostream> using namespace std; const int N=10; int main() { int t[N],nb=0,choix,e,i; bool fini=false; while(fini==false) { cout<<"1. Ajouter un entier"<<endl; cout<<"2. Afficher la liste des entier"<<endl; cout<<"3. Supprimer le dernièr entier de la liste"<<endl; cout<<"4. Afficher le dernier entier de la liste"<<endl; cout<<"5. Quitter"<<endl; cout<<"Votre choix : ";cin>>choix; switch(choix) { case 1 : cout<<"Tapez un entier : ";cin>>e; if(nb<N){t[nb]=e; nb++; cout<<"ENTIER AJOUTE"<<endl;} else cout<<"IMPOSSIBLE LE TABLEAU EST PLEIN"<<endl; break; case 2 : if(nb==0)cout<<"LA LISTE EST VIDE"<<endl; else { cout<<"VOICI LA LISTE"<<endl; for(i=0;i<nb;i++)cout<<t[i]<<" "; cout<<endl; } break; case 3 : if(nb>0){nb--; cout<<"ENTIER SUPPRIME"<<endl;} else cout<<"LA LISTE EST VIDE"<<endl; break; case 4 : if(nb>0)cout<<"lLE DERNIER ENTIER EST "<<t[nb- 1]<<endl; else cout<<"LA LISTE EST VIDE"<<endl; break; case 5 : fini=true; break;
  • 13. P a g e 13 | 17 } } return 0; } Exercice 22. Cet exercice a pour but de vérifier les points techniques suivants :  Utilisation simple de tableaux.  Gestion d'une liste triée grâce à un tableau statique. Voici le fichier source : #include<iostream> using namespace std; const int N=10; int main() { int t[N],nb=0,choix,e,V,i,j,trouve; bool fini=false; while(fini==false) { cout<<"1. Ajouter un entier"<<endl; cout<<"2. Afficher la liste des entier"<<endl; cout<<"3. Supprimer le premier entier ayant une valeur donnée"<<endl; cout<<"4. Supprimer tous les entiers ayant une valeur donnée"<<endl; cout<<"5. Quitter"<<endl; cout<<"Votre choix : ";cin>>choix; switch(choix) { case 1 : if(nb<N) { cout<<"Tapez un entier : ";cin>>e; i=0; while(i!=nb && t[i]<e)i++; for(j=nb;j>i;j--)t[j]=t[j-1]; t[i]=e; nb++; } else cout<<"IMPOSSIBLE LE TABLEAU EST PLEIN"<<endl; break; case 2 : if(nb==0)cout<<"LA LISTE EST VIDE"<<endl; else { cout<<"VOICI LA LISTE"<<endl; for(i=0;i<nb;i++)cout<<t[i]<<" "; cout<<endl; } break;
  • 14. P a g e 14 | 17 case 3 : cout<<"Tapez la valeur à supprimer :";cin>>V; trouve=false; i=0; while(!trouve && i<nb)if(t[i]==V)trouve=true; else i++; if(trouve) { for(j=i;j<nb-1;j++)t[j]=t[j+1]; nb--; } break; case 4 : cout<<"Tapez la valeur à supprimer :";cin>>V; j=0; for(i=0;i<nb;i++) if(t[i]!=V){t[j]=t[i];j++;} nb=j; break; case 5 : fini=true; break; } } return 0; } Les fonctions Exercice 23. Cet exercice a pour but de vérifier les points techniques suivants :  Création de fonction simple.  Passage de paramètres par valeur.  Utilisation de return.  Appel d'une fonction. Voici le fichier source : #include<iostream> using namespace std; #include<cmath> double distance(double xa, double ya, double xb, double yb) { double dx,dy; dx=xa-xb; dy=ya-yb; return sqrt(dx*dx+dy*dy); } int main() { double x1,y1,x2,y2,d; cout<<"Tapez l'abscisse de A : ";cin>>x1; cout<<"Tapez l'ordonnée de A : ";cin>>y1;
  • 15. P a g e 15 | 17 cout<<"Tapez l'abscisse de B : ";cin>>x2; cout<<"Tapez l'ordonnée de B : ";cin>>y2; d=distance(x1,y1,x2,y2); cout<<"La distance AB vaut : "<<d<<endl; return 0; } Exercice 24. Cet exercice a pour but de vérifier les points techniques suivants :  Création de fonction simple.  Appel d'une fonction.  Validation des données avant l'appel d'une fonction.  Fonction renvoyant un booléen. Voici le fichier source : #include<iostream> using namespace std; #include<cmath> bool f(int x) { bool r=true; int d=2; while(r && d*d<=x)if(x%d==0)r=false; else d++; return r; } int main() { int x; bool premier; do{ cout<<"Tapez x :";cin>>x; }while(x<=0); premier=f(x); if(premier)cout<<"x est premier"<<endl; else cout<<"x n'est pas premier"<<endl; return 0; } Exercice 25. Cet exercice a pour but de vérifier les points techniques suivants :  Création de fonctions simples.  Appel de fonction.  Fonction qui appelle une autre fonction. Voici le fichier source : #include<iostream> using namespace std; bool premier(int x)
  • 16. P a g e 16 | 17 { bool r=true; int d=2; while(r && d*d<=x)if(x%d==0)r=false; else d++; return r; } int Npremier(int N) { int nb=0; int i=2; while(nb!=N) { if(premier(i))nb++; i++; } return i-1; } int main() { int N,p; cout<<"Tapez la valeur de N : ";cin>>N; p=Npremier(N); cout<<"Le N-ième nombre premier est : "<<p<<endl; return 0; } Exercice 26. Voir solution donnée dans le cours Exercice 27. Cet exercice a pour but de vérifier les points techniques suivants :  Ecriture d'une fonction ayant comme paramètre un tableau de taille quelconque.  Recherche d'un élément dans un tableau.  Utilisation de return. Voici le fichier source : #include<iostream> using namespace std; void saisir(int t[],int n) { int i; for(i=0;i<n;i++) { cout<<"Tapez la valeur numero "<<i<<" : "; cin>> t[i]; } } int f(int t[], int n) { int i=0,ind=-1;
  • 17. P a g e 17 | 17 while(ind==-1 && i<n) if(t[i]>=0 && t[i]<=10)ind=i;else i++; return ind; } int main() { int a[10]; int w; saisir(a,10); w=f(a,10); if(w!=-1)cout<<"Il existe une valeur entre 0 et 10. " <<"l'indice de la première case est "<<w<<endl; else cout<<"Il n'existe pas de valeurs entre 0 et 10"<<endl; return 0; } Exercice 28. Voir solution donnée dans le cours