Vous êtes sur la page 1sur 7

TRAVAUX DIRIGES ET CORRIGES EN C++/GE3/2022-2023

Exercice 1
1- Ecrire un programme qui permet de calculer le produit de deux nombres
sans effectuer la multiplication : × = + +. . . +
2- Ecrire un programme qui permet de calculer le quotient de la division d'un
nombre par un autre sans effectuer la division
3- Ecrire un programme qui permet d'afficher toutes les tables de
multiplication de 1à 1. On affichera une seule table à la fois et chaque
affichage va durer 15secondes
4- Ecrire un programme qui pour valeur de n et p fournir à l'utilisateur
(p ≤ n) calcul et affiche Cpn
Solution
1- # include <iostream>
using namespace std;
int main()
{ int a,b,p,i;
cout<<"\n"<<"Veuillez entrer les nombres a et b:";
cin>>a>>b;
p=0;
for( i=1;i<=b;i++)
{p=p+a;
}
cout<<a<<"par"<<b<<"="<<p;
return 0;
}
2- # include <iostream>
using namespace std;
int main()
{ int divd,divsr,quotient,frac,r,k;
cout<<"\n Entrer la Dividende et le Diviseur:";
cin>>divd>>divsr;
quotient=0;
frac=0;
k=divd;
while (k>=divsr)
{ k-=divsr;
quotient++;
}
r=k;

MARTINIEN||C++_APLLICATION 1
if(r!=0)
{ while (r<divsr)
{ r=1000*r;
}
while (r>=divsr)
{ r-=divsr;
frac++;
}
cout<<"\n Le quotient vaut:"<<quotient<<","<<frac;
}

else
{cout<<"\n Le quotient vaut:"<<quotient<< "et il reste
:"<<k;
}
}

3- #include <iostream>
#include <iomanip>
#include <windows.h>
using namespace std;
int main()
{
int max(12);
int I,J;

for (I=0; I<= max;I++)


{cout<<"TABLE DE MULTIPLICATION DE"<<I<<"FOIS";
for (J=0; J<= max;J++)
{ cout<<"\n"<<setw(3)<<
I<<setw(3)<<"*"<<J<<"="<<setw(3)<< I*J;
cout<<"\n";
}
Sleep(3000);
system("cls");

return 0;
}

MARTINIEN||C++_APLLICATION 2
4- #include <iostream>
#include <windows.h>
using namespace std;
int n,p;
long nfact,pfact,n_pfact,Comb;
long factorielle(short);
int main()
{
do
{ system("Cls");
cout<<"\n Donner les valeurs de n et p avec n<p svp:";
cin>>n>>p;
} while(p>n);
nfact=factorielle(n);
pfact=factorielle(p);
n_pfact=factorielle(n-p);
Comb=nfact/((pfact)*(n_pfact));
cout<<"Le r\202sultat vaut:"<<" "<<Comb;
return 0;
}
//Définition de la fonction factorielle

long factorielle( short x)


{long factor (1),i;
if(x==0||x==1)
{factor=1;
}
else
{for(i=1;i<=x;i++)
{ factor=factor*i;
}
}
return factor;
}
Exercice 2 :
Ecrire un programme qui permet d’échanger le contenu de deux variables en
utilisant une fonction pour ce faire. On utilisera chacun des types de
transmissions des paramètres afin d’en observer le mécanisme.
Solution
# include <iostream>

MARTINIEN||C++_APLLICATION 3
using namespace std;
void Permuter2(float*,float* );
void Permuter3(float&,float& );
float x,y;
int main() ;
cout<<"Veuillez entrer deux nombres x et y : ";
cin>>x>>y;
cout<<"\n\nAvant permutation x = "<<x<<"et y = "<<y;
cout<<"\n\nPASSAGE PAR ADRESSE"<<endl;
Permuter2(&x,&y);
cout<<"\n\nApres permutation x= "<<x<<" et y= "<<y<<endl;
cout<<"Veuillez entrer deux nombres x et y : ";
cin>>x>>y ;
cout<<"\n\nAvant permutation x = "<<x<<" et y = "<<y;
cout<<"\n\nPASSAGE PAR REFERENCE"<<endl;;
Permuter3(x,y);
cout<<"\n\nApres permutation x= "<<x<<" et y= "<<y<<endl;
return 0;
}

void Permuter2(float *t, float *k)


{
float Temp=*k;
*k=*t;
*t=Temp;
}

void Permuter3(float &t, float &k)

MARTINIEN||C++_APLLICATION 4
{
float Temp=k;
k=t;
t=Temp;
}

Exercice 3 :
Ecrire un programme C++ en utilisant la notion de structure qui propose le menu
suivant :
1- Enregistrements des étudiants
2- Liste des étudiants
Chaque étudiant est caractérisé par un matricule, un nom, un âge et une
filière.
Solution
#include<iostream>
#include<Windows.h>
#include<string>
# define NBRETU 100
using namespace std;
void Enregistrer();
void Lister();
struct Etudiant
{
string matricule;
string nom;
string filiere;
short age;
};
struct Etudiant etu[NBRETU];

MARTINIEN||C++_APLLICATION 5
int i=0; char Reponse[5];
int ch;
int main ()
{
do{
cout <<"\n\nCHOISIR L'OPERATION A EFFECTUER";
cout<<"\n\n\t 1-ENREGISTRER ETUDIANTS";
cout <<"\n\n\t 2- LISTER LES ETUDIANTS";
cout <<"\n\n\t VOTRE CHOIX SVP : ";
cin>>ch;
switch(ch)
{
case 1: system("Cls");
cout<<"\n\n ENREGISTREMENT\n\n";
Enregistrer(); break;
case 2: system("Cls");
cout<<"\n\n LISTE\n\n";
Lister(); break;
}
cout<<"\n\nVEUILEZ VOUS CONTINUER .......(Oui/Non) ? : ";
cin>>Reponse;
} while(stricmp(Reponse,"Oui")==0);

return 0;
}

void Enregistrer(){
do{

MARTINIEN||C++_APLLICATION 6
cout<<"\n\n MATRICULE : ";
cin>>etu[i].matricule;
cout<<"\n\n NOM : ";
cin>>etu[i].nom;
cout<<"\n\n FILIERE : ";
cin>>etu[i].filiere;
cout<<"\n\n AGE : ";
cin>>etu[i].age;
i++;
cout<<"AUTRE ETUDIANT (Oui/Non) ? : ";
cin>>Reponse;
} while(stricmp(Reponse,"Oui")==0);
}

void Lister(){
for(int j=0;j<i;j++){

cout<<"\t"<<etu[j].matricule<<"\t"<<etu[j].nom<<"\t"<<etu[j].filiere<<"\t"<<e
tu[j].age;
}
}

MARTINIEN||C++_APLLICATION 7

Vous aimerez peut-être aussi