0% ont trouvé ce document utile (0 vote)
97 vues3 pages

3IIR - TP1 - Structures - Controle - Correction

Transféré par

dkarlhimovic
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
97 vues3 pages

3IIR - TP1 - Structures - Controle - Correction

Transféré par

dkarlhimovic
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

3IIR

TP C++ N°1 : Structures de Contrôle


Correction

Exercice 1 :
Trouver et corriger les erreurs qui se trouvent dans les morceaux suivants écrits en C++
if (x<y<z)
cout << x << "<" << y << "<" <<z << endl ;

1. Dans la condition x < y < z il y’aura une erreur syntaxique, parce qu’il y a deux
comparaisons.
L’expression correcte est if (x < y && y < z).

Tous les 3 morceaux de code qui restent, sont correct du point de vue de la syntaxe
C++. Le compilateur ne génèrera pas de messages d’erreur. Le mal fonctionnement
de ces morceaux est aperçu au moment d’exécution ou après

2. L’expression dans la condition if (x=0) et if (y=0) sont des affectations, pas des
comparaisons. L’expression correcte est if (x==0) et if (y==0). L’instruction else est
exécutée lorsque x et y sont égaux à zéro.
Cette instruction est alternative à l’instruction qui suive la condition if (y==0). Pour
que le programme fasse ce que nous voulons, nous devons mettre des accolades autour
du deuxième if : Version corrigée :

if (x==0)
{
if (y==0) cout <<"x = y = 0 "<<endl;
}
else cout << "x est différent de zero \n" ;

3. Il n’y a pas d’incrémentation ou de décrémentation de la variable de contrôle compteur


dans la boucle. La boucle devient donc infinie, parce que la condition while sera
toujours vraie.
4. Il y a un point-virgule de trop, à la fin de la ligne de l’instruction for.
Exercice 2 :

#include<iostream>
using namespace std;
int main()
{
int I, V, M, P, Q;
cout<<"Entrer le nombre d’inscrits : "; cin>>I;
cout<<"Entrer le nombre de votants : "; cin>>V;
cout<<"Entrer le quorum : "; cin>>Q;
P = V*100/I;
M = V/2 +1;
if(P > Q)
{
cout<<"Quorum atteint - vote valable\n";
cout<<"Participation: "<<P<<"%";

1
cout<<"\n Majorite obtenue pour :"<< M <<" bulletins \n";
}
else
{
cout<<"Quorum non atteint - vote non valable\n";
}
return 0;
}

Exercice 3 :

#include<iostream>
using namespace std;
int main()
{
int x,y,z;
cout<<"Saisir les trois entiers"<<endl;
cin>>x>>y>>z;
if(x<y && y<z)
cout<<x<<"\t"<<y<<"\t"<<z<<endl;
else if(x<z && z<y)
cout<<x<<"\t"<<z<<"\t"<<y<<endl;
else if(y<x && x<z)
cout<<y<<"\t"<<x<<"\t"<<z<<endl;
else if(y<z && z<x)
cout<<y<<"\t"<<z<<"\t"<<x<<endl;
else if(z<x && x<y)
cout<<z<<"\t"<<x<<"\t"<<y<<endl;
else if(z<y && y<x)
cout<<z<<"\t"<<y<<"\t"<<x<<endl;
else
cout<<"Deux nombres sont identiques "<<endl;
return 0;
}

Exercice 4 :

#include<iostream>
using namespace std;
int main()
{
double a1 = -3., b1 = 5., r1 = 2.;
double a2 = 1.5, b2 = 4., r2 = 5.;
double x, y, d1, d2;
cout<<" Donner les cordonnees du point"<<endl;
cin>>x>>y;
d1 = (x-a1)*(x-a1) + (y-b1)*(y-b1);
d2 = (x-a2)*(x-a2) + (y-b2)*(y-b2);
short val=(d1 <= r1*r1) + (d2 <= r2*r2);
switch(val){
case 0 :
cout << "Le point est exterieur aux deux disques" << endl;
break;
case 1 :
cout << "Le point est interieur a l’un des disques et\
exterieur a l’autre" << endl;

2
break;
case 2 :
cout << "Le point est interieur aux deux disques" << endl;
break;
}
return 0;
}

Dans ce cas il est inutile de mettre un cas default puisque la valeur de l’expression ne peut
jamais être différente de 0, 1 ou 2

Exercie 5 :

1. Avec la boucle While 2. Avec la boucle do – While

#include <iostream> #include <iostream>


using namespace std; using namespace std;
int main(){ int main(){
int i=0, n, som ; int i=0, n, som ;
som = 0 ; som = 0 ;
while(i++<4) do
{ {
cout << "donnez un entier " ; cout << "donnez un entier " ;
cin>> n ; cin>> n ;
som += n ; som += n ;
} i++ ;
cout<< "La somme est : " << som <<endl } while(i<4);
; cout<< "La somme est : " << som
return 0 ; <<endl ;
} return 0 ;
}

Exercice 6 :

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n;
double S=0.0;
cout<<"Saisir un entier positif "; cin>>n;
for(int i=1;i<=n;++i)
S+=pow(-1,i)/(i*i);
cout<<"La somme est : "<<S<<endl;
return 0;
}

Vous aimerez peut-être aussi