« Programmation C++/Les structures de contrôles/Exercices if...else et switch » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
Aucun résumé des modifications
 
Ligne 3 :
== Exercices ==
=== EXERCICE 1 ===
Écrire un programme qui résout l' équation AX+B=0.
Bien évidemment, on n'oubliera pas tous les cas particuliers (notamment les cas "tout x est solution" et "pas de solution").
{{Boîte déroulante|titre=Solution|contenu=
Cet exercice a pour but de vérifier les points techniques suivants :
Ligne 20 ⟶ 21 :
{ double a,b,x=0;
 
cout <<"rentrerEntrer la valeur de a" << endl; cin >> a ;
cout <<"rentrerEntrer la valeur de b" << endl; cin >> b ;
cout << " On trouve la solution de " << a << "x + " << b << " = 0 " << endl;
 
Ligne 34 ⟶ 35 :
return 0;
}
 
</syntaxhighlight>
}}
Ligne 50 :
<syntaxhighlight lang="cpp">
#include <iostream>
// ExerciseExercice 8 Chapitre 2
using namespace std;
 
 
int main()
Ligne 58 ⟶ 57 :
int a,maxv;
 
cout << "Tapez la valeur numeronuméro 1 : "; cin>>a; maxv=a;
cout << "Tapez la valeur numeronuméro 2 : "; cin>>a; if(a>maxv) maxv=a;
cout << "Tapez la valeur numeronuméro 3 : "; cin>>a; if(a>maxv) maxv=a;
cout << "Tapez la valeur numeronuméro 4 : "; cin>>a; if(a>maxv) maxv=a;
cout << "Tapez la valeur numeronuméro 5 : "; cin>>a; if(a>maxv) maxv=a;
 
cout << "Le plus grand valeur vaut : " << maxv << endl;
 
return 0;
Ligne 93 ⟶ 92 :
{
double a, b, c, re1, re2, im, delta;
cout << "Entrez a : " ; cin >> a ;
cout << "Entrez b : " ; cin >> b ;
cout << "Entrez c : " ; cin >> c ;
 
cout << "Ce programme trouve la solution de " << a << "x^2 + "
<< b << " x + " << c << " = 0 " << endl << endl;
 
if (a == 0) // Il s'agit d'une equationéquation linéaire
{
if (b!=0)
{
re1 = -c/b ;
cout << "la solution est " << re1 << endl;
} // EqÉquation lineairelinéaire
else if (c==0) cout << " Tout x est solution " << endl;
else cout << " Il n'y a pas de solution " << endl;
Ligne 108 ⟶ 111 :
else // Il s'agit d'une équation quadratique
{
delta = (b*b)-(4*a*c);
 
if(delta > 0) // Il y a deux solutions réelles
{
re1 = (-b-sqrt(delta))/(a*2);
re2 = (-b+sqrt(delta))/(a*2);
cout << "Les solutions reels sont : " << re1 << " et " << re2 << endl;
}
else if(delta < 0) // Il y a deux solutions complexes
{
re1 = -b/(a*2);
im = sqrt(-delta)/(a*2);
cout << "Les solutions complexes sont : " << re1 << " + i" << im <<
" et z2 = " << re1 << " - i" << im << endl;
}
else // on arrive ici seulement si delta == 0
{
re1 = -b/(2*a);
cout << "il y a 1 solution : = " << re1 << endl ;
}
 
if(delta > 0) // Il y a deux solutions réelles
{
re1 = (-b-sqrt(delta))/(a*2);
re2 = (-b+sqrt(delta))/(a*2);
cout << "Les solutions reelsréelles sont : " << re1 << " et " << re2 << endl;
}
else if(delta < 0) // Il y a deux solutions complexes
{
re1 = -b/(a*2);
im = sqrt(-delta)/(a*2);
cout << "Les solutions complexes sont : " << re1 << " + i" << im <<
" et z2 = " << re1 << " - i" << im << endl;
}
else // on arrive ici seulement si delta == 0
{
re1 = -b/(2*a);
cout << "il y a 1 solution : = " << re1 << endl ;
}
}
return( 0);
}
</syntaxhighlight>
Ligne 136 ⟶ 138 :
 
=== EXERCICE 4 ===
Écrire un programme qui demande à l’utilisateur de saisir les coordonnées de 4 points A, B, C et D puis qui affiche les informations suivantes : <br/>* si A et B sont confondus, on affiche ‘A et B sont confondus’ ;
-* si AC et BD sont confondus, on affiche ‘A‘ C et BD sont confondus’ <br/>;
-ù si A et B ne sont pas confondus et si C et D ne sont pas confondus , on affiche soit ‘AB et CD sont parallèles’, soit 'AB et CD sont confondues', soit ‘AB et CD sont sécantes’. Dans ce dernier cas, on affiche les coordonnées de l'intersection de AB et de CD. <br/>
- si C et D sont confondus, on affiche ‘ C et D sont confondus’ <br/>
 
- si A et B ne sont pas confondus et si C et D ne sont pas confondus , on affiche soit ‘AB et CD sont parallèles’, soit 'AB et CD sont confondues', soit ‘AB et CD sont sécantes’. Dans ce dernier cas, on affiche les coordonnées de l'intersection de AB et de CD. <br/>
{{Boîte déroulante|titre=Solution|contenu=
Cet exercice a pour but de vérifier les points techniques suivants :
* La notion de variables et leur déclaration.
* L'utilisation de <code>cin</code> et de <code>cout</code>.
* L'affectation.
* Structure de <code>if... else</code> imbriquées.
* Modélisation d'un problème issu de la géométrie sous forme informatique.
* Traiter de manière informatique une suite de calculs mathématiques relativement longue *comportant de nombreux cas particuliers.
* Proposition d'un jeu de tests complet pour gérer ces cas particuliers.
Voici le fichier source :
<syntaxhighlight lang="cpp">
Ligne 156 ⟶ 158 :
int main()
{
double XA,YA,XB,YB,XC,YC,XD,YD,XI,YI;
double DX1,DY1,R1,DX2,DY2,R2,K;
 
cout << "Tapez l'abscisse de A : "; cin >> XA;
cout << "Tapez l'ordonnée de A : "; cin >> YA;
cout << "Tapez l'abscisse de B : "; cin >> XB;
cout << "Tapez l'ordonnée de B : "; cin >> YB;
cout << "Tapez l'abscisse de C : "; cin >> XC;
cout << "Tapez l'ordonnée de C : "; cin >> YC;
cout << "Tapez l'abscisse de D : "; cin >> XD;
cout << "Tapez l'ordonnée de D : "; cin >> YD;
 
DX1 = XB - XA;
DY1 = YB - YA;
DX2 = XD - XC;
DY2 = YD - YC;
 
if (DX1==0 && DY1==0)
cout << "A et B sont confondus" << endl;
if (DX2==0 && DY2==0)
cout << "C et D sont confondus" << endl;
else
{
K=DX1*DY2-DX2*DY1;
if (K==0)
if(K==0)
{
if(DX1*(YC-YA)==DY1*(XC-XA))
cout<<"AB et CD sont confondues."<<endl;
else cout<<"AB et CD sont parallèles."<<endl;
}
else
{
if (DX1*(YC-YA)==DY1*(XC-XA))
cout<<"Les droites sont sécantes."<<endl;
cout << "AB et CD sont confondues." << endl;
R1=YA*XB-XA*YB;
else cout << "AB et CD sont parallèles." << endl;
R2=YC*XD-XC*YD;
}
XI=(R1*DX2-R2*DX1)/K;
else
YI=(R1*DY2-R2*DY1)/K;
{
cout<<"L'abscisse de l'intersection est : "<<XI<<endl;
cout<<"L'ordonnéeLes dedroites l'intersection est :sont sécantes."<<YI<<endl;
R1=YA*XB-XA*YB;
}
R2=YC*XD-XC*YD;
}
XI=(R1*DX2-R2*DX1)/K;
 
YI=(R1*DY2-R2*DY1)/K;
return 0;
cout<<"L'abscisse de l'intersection est : "<<XI<<endl;
cout<<"L'ordonnée de l'intersection est : "<<YI<<endl;
}
}
return 0;
}
</syntaxhighlight>
Ligne 217 :
int main()
{
int X;
cout<<"Tapez la valeur de X :"; cin>>X;
 
if (X<0) X = -X;;
cout<<"Tapez la valeur de X :";cin>>X;
cout<<"La valeur absolue de X est : "<<X<<endl;
 
return 0;
if(X<0)X=-X;;
 
cout<<"La valeur absolue de X est : "<<X<<endl;
 
return 0;
}
</pre>
Ligne 245 ⟶ 241 :
int main()
{
int A,B;
 
cout<<"Tapez la valeur de A : ";cin>>A;
cout<<"Tapez la valeur de B : ";cin>>B;
 
if if(A<=0) cout<<"A n'est pas valide !"<<endl;
else if (B<=0) cout<<"B n'est pas valide !"<<endl;
else if (A%B==0) cout<<A<<" est divisible par "<<B<<endl;
else cout<<A<<" n'est pas divisible par "<<B<<endl;
 
return 0;
if(A<=0) cout<<"A n'est pas valide !"<<endl;
else if(B<=0) cout<<"B n'est pas valide !"<<endl;
else if(A%B==0) cout<<A<<" est divisible par "<<B<<endl;
else cout<<A<<" n'est pas divisible par "<<B<<endl;
 
return 0;
}
</syntaxhighlight>
Ligne 276 ⟶ 271 :
int main()
{
int A,B,C;
 
cout<<"Tapez la valeur de A : ";cin>>A;
cout<<"Tapez la valeur de B : ";cin>>B;
cout<<"Tapez la valeur de C : ";cin>>C;
 
if( (C>A && C<B)||(C<A && C>B)) cout<<"C est compris entre A et B"<<endl;
else cout<<"C n'est pas compris entre A et B"<<endl;
 
return 0;
}
</syntaxhighlight>
Ligne 308 ⟶ 303 :
 
cout << "Le premier intervalle [A , B] : ";
cout << "Tapez la valeur de A : "; cin >> a;
cout << "Tapez la valeur de B : "; cin >> b;
cout << "Le deuxième intervalle [C , D] : ";
cout << "Tapez la valeur de C : "; cin >> c;
cout << "Tapez la valeur de D : "; cin >> d;
 
 
// Attention ce programprogramme ne fonctionne correctement que si b > a et d > c
// Ce défaultdéfaut peut être corrigé : comment ?
 
 
Ligne 322 ⟶ 317 :
if(b < d) maxintv = b; else maxintv = d;
 
if (minintv > maxintv) cout << "L'intersection est vide." << endl;
else if (minintv == maxintv) cout << "L'intersection ne comporte qu'une valeur :" << minintv << endl;
else cout << "L'intersection des intervalesintervalles [" << a << ";" << b << "]"
<< " et [" << c << ";" << d << "] est l'intervalle [" << minintv << ";" << maxintv << "]" << endl;
return 0;
Ligne 347 ⟶ 342 :
int main()
{
int A;
 
cout<<"Tapez la valeur de A : ";cin>>A;
if (A%2==0 || A<83 || A>101) cout<<"ERREUR"<<endl;
else cout<<"PAS D'ERREUR"<<endl;
 
return 0;
}
</syntaxhighlight>