You are on page 1of 8

C++ Université FORMATEC

TD2 MP1 UE : C++


Enseignant : Alassani AKANATE Établissement : Université FORMATEC
Contact : 90 47 51 03 / 97 31 77 52 Niveau : MP1 GE et GC
a.daviman@gmail.com/ Session : 1er Semestre 2016-2017
alassaniakanate@yahoo.fr
DUREE 2 H 00’
DOCUMENTS NON AUTORISES

Outils nécessaires pour ce travail : Feuille d’Examen et brouillon !


A. Questions de cours
1. Expliquer l’en-tête d’un programme C++ comme suit :

#include <iostream>
#include <cstdlib>
#include <cmath>

using namespace std ;


Réponse :
#include<iostream> : Gestion des entrées/sorties
#include<cstdlib> : Constantes et bibliothèques standards
#include<cmath> : Gestion des fonctions mathématiques

using namespace std ; Permet l’utilisation des bibliothèques standards de C++ dans
le programme

2. Expliquer ce que fait le programme suivant ligne par ligne :

1 #include <iostream>
2 #include <cstdlib>
3
4 using namespace std ;
5 main(){
6 const double TAUX_TVA = 19.6 ;
7 double ht, ttc, net, tauxr, remise ;
8 cout << "donnez le prix hors taxes : " ;
9 cin >> ht ;
10 ttc = ht * ( 1. + TAUX_TVA/100.) ;
11 if ( ttc < 1000.) tauxr = 0 ;
12 else if ( ttc < 2000 ) tauxr = 1. ; else if ( ttc < 5000 ) tauxr = 3. ; else tauxr = 5. ;
13 remise = ttc * tauxr / 100. ;
14 net = ttc - remise ;
15 cout << "prix ttc = " << ttc << "\n" ; cout << "remise = " << remise << "\n" ;
16 cout << "net a payer = " << net << "\n" ;
17 system("PAUSE");
18 return EXIT_SUCCESS;
19 }

NB : Ht : Prix hors taxe, net : Montant net, tauxr : taux retenu, remise : montant de la remise
Réponse :
Ligne 1-2- importation des bibliothèques C++,3-, 4-Utilisation des bibliothèques
standards, 5-Début de la méthode principale C++ main(), 6-Déclaration d’une

Page 1 sur 8
C++ Université FORMATEC

constante de type double, 7-Déclaration d’autres variables de type double, 8-


Affichage à l’écran, 9-Saisie au clavier, 10-Calcul du prix ttc, 11et 12-Test de la
valeur de ttc, 13-Calcul de la remise, 14-Calcul du net, 15 et 16-Affichage des
résultats, 17-Pause (maintien de la console permettant à l’utilisateur de lire les
résultats), 18-Valeur retournée, 19-Fin de main.

3. A quoi servent les mots clés ou expressions suivants dans le programme ci-dessus ?
a. Const, cin >>, cout <<
b. Que fait la ligne ?
system("PAUSE");
Réponse :
a. Const permet de déclarer une constante, cin>> permet la saisie au clavier et
cout<< permet d’afficher à l’écran.
b. System(PAUSE) : Pause factice (maintien de la console permettant à l’utilisateur
de lire les résultats)
B. EXERCICES ET PROBLEMES :

EXERCICE 1 (DEV C++ OU CODE ::BLOCKS)

Ecrire un programme en C++ qui calcule et affiche le prix total hors taxe (PHT), le montant
de la TVA (MTVA) et le prix total toute taxe comprise (PTTC) d’un article à partir du prix
unitaire (PU) et de la quantité (Q).
Remarque : La TVA est une variable à saisir par l’utilisateur.
Réponse :
#include <iostream>
#include<conio.h>
#include<cstdlib>
using namespace std;
int main() {
int quantite ;
double pu, pht, pttc, mtva, tva ;
cout<<"Veuillez saisir la quantite"<<endl;
cin>>quantite;
cout<<"Veuillez saisir le taux"<<endl;
cin>>tva;
cout<<"Veuillez saisir le prix unitaire"<<endl;
cin>>pu;
//Calcul de pht, mtva et du pttc
Pht=pu*quantite ;
Mtva=pht*taux ;
Pttc=pht+mtva ; //pttc=pht*(1+taux) ;
//Affichage des résultats
cout<<"Le prix hors taxe est "<<pht<<endl ;
cout<<"Le montant de la tva est "<<mtva<<endl

Page 2 sur 8
C++ Université FORMATEC

cout<<"Le montant toute taxe comprise est "<<pttc<<endl


return 0;
}

EXERCICE 2 (DEV C++ OU CODE ::BLOCKS)

Ecrire un programme en C++ qui demande à l’utilisateur la saisie de deux nombres entiers et
qui calcule leur produit, somme, différence, racine carrée de chaque nombre, quotient
(nombre1/nombre2) et affiche le résultat des cinq (5) opérations.

Réponse :
#include <iostream>
#include<conio.h>
#include<cstdlib>
#include<cmath>
using namespace std;
int main() {
int n1, n2 ;
int somme, produit, difference, racine1, racine2, quotient ;
cout<<"Veuillez saisir le premier nombre strictement positif"<<endl;
cin>>n1 ;
cout<<"Veuillez saisir le deuxieme nombre strictement positif"<<endl;
cin>>n2 ;
somme=n1+n2 ;
produit=n1*n2 ;
difference=n1-n2 ;
racine1=sqrt(n1);
racine2=(n2) ;
quotient=n1/n2 ;
cout<<"Affichage de résultat "<<endl ;
cout<<"La somme est "<<somme<<endl ;
cout<<"Le produit est "<<produit<<endl ;
cout<<"La difference est "<<difference<<endl ;
cout<<"La racine 1 est "<<racine1<<endl ;
cout<<"La racine 2 est "<<racine2<<endl ;
cout<<"Le quotient est "<<quotient<<endl ;

return 0;
}

Page 3 sur 8
C++ Université FORMATEC

EXERCICE 3 (DEV C++ OU CODE ::BLOCKS)

Ecrire un programme en C++ qui fait la permutation de deux nombres entiers saisis par
l’utilisateur et affiche le résultat de l’opération de permutation.

Réponse :
#include <iostream>
#include<conio.h>
#include<cstdlib>
using namespace std;
int main() {
int n1, n2, tmp ;
cout<<"Veuillez saisir le premier nombre"<<endl;
cin>>n1 ;
cout<<"Veuillez saisir le deuxieme nombre"<<endl;
cin>>n2 ;
cout<<"Résultat avant permutation "<<a<<" et "<<b<<endl ;
//Opération de permutation
tmp=a ;
a=b ;
b=tmp ;
cout<<"Résultat apres permutation "<<a<<" et "<<b<<endl ;
return 0;
}
EXERCICE 4 (DEV C++ OU CODE ::BLOCKS)

Ecrire un programme en C++ qui calcule le périmètre d’un carré ou d’un rectangle. Le
programme devra demander la saisie du ou des côté (s) à l’utilisateur. Le programme s’arrête
si l’utilisateur saisit un nombre négatif. Le programme devra lui notifier la raison de l’arrêt de
l’exécution.

Réponse :
#include <iostream>
#include<conio.h>
#include<cstdlib>
using namespace std;
int main() {
//Prenons un rectangle
double longueur, largeur, perimetre;

Page 4 sur 8
C++ Université FORMATEC

cout<<"Veuillez donner la longueur"<<endl;


cin>>longueur ;
cout<<"Veuillez donner la largeur"<<endl;
cin>>largeur ;
perimetre=2*(longueur+largeur) ;
cout<<"Le perimetre du rectangle est : "<<perimetre<<endl;
return 0;
}

EXERCICE 5 (DEV C++ OU CODE ::BLOCKS)


Ecrire un programme en C++ qui calcule le périmètre d’un cercle. Le programme devra
demander la saisie du diamètre à l’utilisateur.
Réponse :
#include <iostream>
#include<conio.h>
#include<cstdlib>
using namespace std;
int main() {
double perimetre, diametre;
const double pi=3,14 ;
cout<<"Veuillez donner le diametre"<<endl;
cin>>diametre ;
perimetre=diametre*pi ;
cout<<"Le perimetre est : "<<perimetre<<endl;
return 0;
}

EXERCICE 6 (DEV C++ OU CODE ::BLOCKS)

Ecrire un programme en C++ qui fait la somme et affiche le résultat des n premiers éléments
(à partir de 0) d’un entier saisi au clavier par un utilisateur si le nombre saisi est pair sinon le
programme retournera le nombre saisi lui-même.

Réponse :
#include <iostream>
#include<conio.h>
#include<cstdlib>
using namespace std;
int main() {
int n;
int somme=0 ;

Page 5 sur 8
C++ Université FORMATEC

cout<<"Veuillez saisir un nombre entier"<<endl;


cin>>n ;
if(n%2==0){
for(int i=0 ; i<=n ;i++){
somme=somme+i ;
}
cout<<"La somme des n premiers entiers est"<<somme<<endl;
}else{
cout<<"Le nombre "<<a<<" saisi "<<" n’est pas pair "<<endl ;
}
return 0;
}
EXERCICE 7 (DEV C++ OU CODE ::BLOCKS)

Ecrire un programme en C++ qui résout l’équation du second degré suivante :

aX2 + bX + C = 0

Réponse :
#include <iostream>
#include<conio.h>
#include<cstdlib>
#include<cmath>
using namespace std;
int main() {
int a, b, c , delta;
double x1, x2, x0 ;
cout<<"Veuillez saisir a"<<endl;
cin>>a ;
cout<<"Veuillez saisir b"<<endl;
cin>>b;
cout<<"Veuillez saisir c"<<endl;
cin>>c;
cout<<"Calcul de delta" <<endl ;
delta=b*b-4*a*c ;
if(delta>0){
x1=(-b-sqrt(delta))/2*a ;
x2=(-b+sqrt(delta))/2*a ;
cout<<"Les valeurs de X1 et X2 sont "<<x1<<" et "<<x2<<endl ;
}else if(delta==0){
x0=-b/2*a ;

Page 6 sur 8
C++ Université FORMATEC

cout<<"La solution double est "<<x0<<endl ;


}else{
cout<<"Votre equation n’a pas de solution dans R "<<endl ;
}
return 0;
}
EXERCICE 8 (DEV C++ OU CODE ::BLOCKS)
Ecrire un programme en C++ qui demande la saisie d’un nombre entier, vérifie si le nombre
saisi est divisible par trois (3) ou non et affiche le résultat.
Réponse :
#include <iostream>
#include<conio.h>
#include<cstdlib>
using namespace std;
int main() {
int n;
cout<<"Veuillez saisir un nombre entier"<<endl;
cin>>n ;
if(n%3==0){
cout<<"Le nombre "<<n<<" saisi "<<" est divisible par 3 "<<endl ;
}else{
cout<<"Le nombre "<<n<<" saisi "<<" n’est pas divisible par 3 "<<endl ;
}
return 0;
}

EXERCICE 9 (DEV C++ OU CODE ::BLOCKS)


Ecrire un programme en C++ qui demande la saisie d’un nombre entier, vérifie si le nombre
saisi est premier ou non et affiche le résultat.
Réponse :
Non proposée (A traiter par l’étudiant)
EXERCICE 10 (DEV C++ OU CODE ::BLOCKS)
Ecrire un programme en C++ qui demande la saisie d’un nombre entier positif, calcule le
factoriel du nombre saisi et affiche le résultat de l’opération.
Réponse :
#include <iostream>
#include<conio.h>

Page 7 sur 8
C++ Université FORMATEC

#include<cstdlib>
using namespace std;
//Une fonction qui calcule le factoriel
int fact(int N){
if(N==1)
return 1 ;
return fact(N-1)*N ;
}
//Méthode principale
int main() {
int n , p;
do{
cout<<"Veuillez saisir un nombre entier"<<endl;
cin>>n ;
}
while(n<0) ;
p=fact(n);
cout<<"Le factoriel de "<<n<<" est " <<p<<endl ;
return 0;
}

FIN

Page 8 sur 8

You might also like