« 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 <<"
cout <<"
cout << " On trouve la solution de " << a << "x + " << b << " = 0 " << endl;
Ligne 34 ⟶ 35 :
return 0;
}
</syntaxhighlight>
}}
Ligne 50 :
<syntaxhighlight lang="cpp">
#include <iostream>
//
using namespace std;
int main()
Ligne 58 ⟶ 57 :
int a,maxv;
cout << "Tapez la valeur
cout << "Tapez la valeur
cout << "Tapez la valeur
cout << "Tapez la valeur
cout << "Tapez la valeur
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 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
{
if (b!=0) {
re1 = -c/b ; cout << "la solution est " << re1 << endl;
} //
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);
▲ }
▲ else if(delta < 0) // Il y a deux solutions complexes
}
return
}
</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 :
▲- 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;
else
{
▲ 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;▼
{
R1=YA*XB-XA*YB;▼
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;▼
return 0;▼
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;▼
▲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;
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
// Ce
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
<< " 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>
|