Vous êtes sur la page 1sur 18

PROGRAMMATION C++

(DEBUTANT)/INSTRUCTIONS
IF, IF...ELSE ET SWITCH
Le cours du chapitre 3 : le if, le if...else et le switch
Sections
 1 Le cours du chapitre 3 : le if, le if...else et le switch
o 1.1 Les structures de contrôle
o 1.2 Le if
 1.2.1 Syntaxe :
o 1.3 Les conditions
o 1.4 Une erreur classique
o 1.5 Exemple 1 : utilisation du if
 1.5.1 Exécution n°1 de l'exemple 1
 1.5.2 Exécution n°2 de l'exemple 1
 1.5.3 Exécution n°3 de l'exemple 1
o 1.6 Le if ... else
o 1.7 Exemple 2 :Utilisation du if ...else
 1.7.1 Exécution n°1 de l'exemple 2
 1.7.2 Exécution n°2 de l'exemple 2
 1.7.3 Exécution n°3 de l'exemple 2
o 1.8 Les conditions complexes
o 1.9 Le ET logique
 1.9.1 Syntaxe
o 1.10 Exemple 3 : utilisation du ET logique
o 1.11 Le OU logique
o 1.12 Exemple 4 : Utilisation du OU logique
o 1.13 Le NON logique
o 1.14 Exemple 5 : Utilisation du NON logique
o 1.15 Exemple 6 : Mettre plusieurs instructions dans un if
o 1.16 Exemple 7 : Mettre plusieurs instructions dans un if ...else
o 1.17 Le type bool
o 1.18 Exemple 8 : utilisation du type bool
o 1.19 Le switch
o 1.20 Exemple 9 : utilisation du switch
o 1.21 Exemple 10 : un autre exemple de switch
 2 Exercices
o 2.1 EXERCICE 1
o 2.2 EXERCICE 2
o 2.3 EXERCICE 3
o 2.4 EXERCICE 4
o 2.5 EXERCICE 5
o 2.6 EXERCICE 7
o 2.7 EXERCICE 8
o 2.8 EXERCICE 9

Les structures de contrôle

Ce sont des structures permettant d'exécuter certaines instructions de manière conditionnelle


ou répétitive. Nous verrons dans ce chapitres les structures de contrôles de type
conditionnelles :

 le if,
 le if else,
 le switch.

Le if

Cette structure de contrôle permet d'exécuter une instruction ou une suite d'instructions
seulement si une condition est vraie.

Syntaxe :

if (condition) instruction;

On évalue la condition :

 si elle est vraie on exécute l’instruction et on passe à l’instruction suivante,


 si elle est fausse on passe directement à l’instruction suivante.

L’instruction peut être remplacée par une suite d ’instructions entre accolades

Les conditions

Les conditions habituelles sont utilisables :

 if (a>b)… strictement supérieur à


 if (a>=b)… supérieur ou égal à
 if (a<b)… strictement inférieur à
 if (a<=b)… inférieur ou égal à
 if (a==b)… test d'égalité
 if (a!=b)… différent de

Une erreur classique


Pour effectuer un test d'égalité, il faut utiliser 2 fois le symbole =.

Par exemple :

if(a==b)…

Une erreur classique consiste à écrire :

if(a=b)…

Exemple 1 : utilisation du if

Exemple 1 : utilisation du if


#include <iostream>
using namespace std;

int main()
{
int a;
cout << "Tapez la valeur de a : ";
cin >> a;
if (a > 10) cout << "Gagné !" << endl;
cout << "Le programme est fini" << endl;
return 0;
}

 Ce programme demande à l'utilisateur de saisir une valeur entière a.


 Si la valeur tapée est strictement supérieure à 10 on affiche "Gagné" puis "Le
programme est fini" et le programme s'arrête.
 Dans le cas contraire, on affiche uniquement "le programme est fini" et le programme
s'arrête.

Exécution n°1 de l'exemple 1

Lorsqu'on exécute notre programme, il s'affiche à l'écran :

Tapez la valeur de a : 80
Gagné
Le programme est fini

Exécution n°2 de l'exemple 1

Lorsqu'on exécute notre programme, il s'affiche à l'écran :

Tapez la valeur de a : 8
Le programme est fini

Exécution n°3 de l'exemple 1

Tapez la valeur de a : 10
Le programme est fini

Le if ... else
Cette structure de contrôle permet d'exécution soit l'instruction1, soit l'instruction 2 en
fonction du résultat d'une condition.

Syntaxe :

if (condition) instruction1;
else instruction2;

1. On évalue la condition,
2. si elle est vraie, on exécute l’instruction1 et on passe à l’instruction suivante,
3. si elle est fausse, on exécute l’instruction2 et on passe à l’instruction suivante.

L’instruction1 ou l’instruction2 peuvent être remplacées par une suite d’instructions entre
accolades.

Exemple 2 :Utilisation du if ...else

Exemple 2 : utilisation du if... else


#include <iostream>
using namespace std;

int main()
{
int a;
cout<<"Tapez la valeur de a : ";
cin>>a;
if(a>10)cout<<"Gagné !"<<endl;
else cout<<"Perdu"<<endl;
cout<<"le programme est fini"<<endl;
return 0;
}

 Ce programme demande à l'utilisateur de saisir une valeur entière a.


 Si la valeur tapée est strictement supérieure à 10, on affiche "Gagné" puis "Le
programme est fini" et le programme s'arrête.
 Dans le cas contraire, on affiche "Perdu" puis "Le programme est fini" et le
programme s'arrête.

Exécution n°1 de l'exemple 2

Lorsqu'on exécute notre programme, il s'affiche à l'écran :

Tapez la valeur de a : 80
Gagné
Le programme est fini

Exécution n°2 de l'exemple 2

Lorsqu'on exécute notre programme, il s'affiche à l'écran :

Tapez la valeur de a : 5
Perdu
Le programme est fini
Exécution n°3 de l'exemple 2

Lorsqu'on exécute notre programme, il s'affiche à l'écran :

Tapez la valeur de a : 10
Perdu
Le programme est fini

Les conditions complexes

Il est souvent nécessaire d'écrire des conditions assez compliquées. Il faudra alors utiliser le
ET logique, le OU logique et le NON logique. Il faudra une certaine habitude pour ne pas
confondre ces différents opérateurs.

Le ET logique

Syntaxe

condition1 && condition2

Exemple 3 : utilisation du ET logique

Exemple 3 : utilisation du ET logique


#include <iostream>
using namespace std;
int main()
{
int a;
cout<<"Tapez une valeur entière : ";
cin>>a;
if(a>10 && a<20)cout<<"GAGNÉ"<<endl;
else cout<<"PERDU"<<endl;
return 0;
}

 Dans ce programme, on demande à l'utilisateur de taper une variable entière a.


 Si la valeur tapée est comprise entre 11 et 19 bornes incluses on affiche "GAGNÉ".
 Dans le cas contraire, on affiche "PERDU".
 Exécution de l'exemple 3 n°1
Lorsqu'on exécute notre programme, il s'affiche à l'écran :
Tapez une valeur entière : 8
PERDU
 Exécution de l'exemple 3 n°2
Lorsqu'on exécute notre programme, il s'affiche à l'écran :
Tapez une valeur entière : 15
GAGNÉ
 Exécution de l'exemple 3 n°3
Lorsqu'on exécute notre programme, il s'affiche à l'écran :
Tapez une valeur entière : 20
PERDU

Le OU logique
Syntaxe : condition1 || condition2
Rappel sur le OU logique:
VRAI OU VRAI = VRAI
VRAI OU FAUX = VRAI
FAUX OU VRAI = VRAI
FAUX OU FAUX = FAUX

Exemple 4 : Utilisation du OU logique

Exemple 4 : utilisation du OU logique


#include <iostream>
using namespace std;

int main()
{
int a;
cout<<"Tapez une valeur entière : ";
cin>>a;
if( a<3 || a>20 )cout<<"GAGNÉ"<<endl;
else cout<<"PERDU"<<endl;
return 0;
}

 Dans ce programme, on demande à l'utilisateur de taper une variable entière a.


 Si la valeur tapée est strictement plus petite que 3 on affiche "GAGNÉ".
 Si la valeur tapée est strictement plus grande que 20 on affiche "GAGNÉ".
 Dans le cas contraire, on affiche "PERDU".
 Exécution de l'exemple 4 n°1
Lorsqu'on exécute notre programme, il s'affiche à l'écran :
Tapez une valeur entière : -6
GAGNÉ
 Exécution de l'exemple 4 n°2
Lorsqu'on exécute notre programme, il s'affiche à l'écran :
Tapez une valeur entière : 3
PERDU
 Exécution de l'exemple 4 n°3
Lorsqu'on exécute notre programme, il s'affiche à l'écran :
Tapez une valeur entière : 21
GAGNÉ

Le NON logique

Syntaxe : !(condition)
Rappel sur le NON logique :
! VRAI=FAUX
!FAUX=VRAI

Exemple 5 : Utilisation du NON logique

Exemple 5 : utilisation du NON logique


#include <iostream>
using namespace std;
int main()
{
int a;
cout<<"Tapez une valeur entière : ";
cin>>a;
if(!(a<3 || a>20))cout<<"GAGNÉ"<<endl;
else cout<<"PERDU"<<endl;
return 0;
}

 Dans ce programme, on demande à l'utilisateur de taper une valeur entière a.


 Si la condition assez complexe ( !(a<3 || a>20)) est vraie on affiche "GAGNÉ" sinon
on affiche "PERDU".
 En fait, on affichera "GAGNÉ" si a est compris entre 3 et 20 bornes incluses.
 Exécution de l'exemple 5 n°1
Lorsqu'on exécute notre programme, il s'affiche à l'écran :
Tapez une valeur entière : 2
PERDU
 Exécution de l'exemple 5 n°2
Lorsqu'on exécute notre programme, il s'affiche à l'écran :
Tapez une valeur entière : 20
GAGNÉ
 Exécution de l'exemple 5 n°3
Lorsqu'on exécute notre programme, il s'affiche à l'écran :
Tapez une valeur entière : 50
PERDU

Exemple 6 : Mettre plusieurs instructions dans un if

Exemple 6 : Mettre plusieurs instructions dans un if


#include <iostream>
using namespace std;

int main()
{
int a;
cout << "Tapez une valeur entière : ";
cin >> a;
if (a==12) {
cout << "GAGNÉ" << endl;
a = a+1;
}
cout << "La valeur finale de a vaut " << a << endl;
return 0;
}

 Dans ce programme, on demande à l'utilisateur de saisir une valeur entière a.


 Si a vaut 12 alors on va effectuer dans un premier temps deux instructions : on affiche
"GAGNÉ" et on incrémente a de 1. On affiche ensuite la valeur de a qui vaudra 13.
 Si a est différent de 12, on affiche directement la valeur de a qui n'aura pas été
modifiée.
 Exécution de l'exemple 6 n°1
Lorsqu'on exécute notre programme, il s'affiche à l'écran :
Tapez une valeur entière : 50
La valeur finale de a vaut 50

 Exécution de l'exemple 6 n°2


Lorsqu'on exécute notre programme, il s'affiche à l'écran :

Tapez une valeur entière : 12


GAGNÉ
La valeur finale de a vaut 13

Exemple 7 : Mettre plusieurs instructions dans un if ...else

Exemple 7 : Mettre plusieurs instructions dans un if...else


#include <iostream>
using namespace std;

int main()
{
int a;
cout<<"Tapez une valeur entière : ";
cin>>a;
if(a!=10){cout<<"GAGNÉ"<<endl;a=a+1;}
else {cout<<"PERDU"<<endl;a=a-1;}
cout<<"La valeur finale de a vaut "<<a<<endl;
return 0;
}

 Dans ce programme, on demande à l'utilisateur de saisir une valeur entière a.


 Si a est différent de 10 alors on va effectuer dans un premier temps 2 instructions : on
affiche "GAGNÉ" et on incrémente a de 1. On affiche ensuite la valeur de a.
 Si a est égal à 10 alors on va effectuer dans un premier temps 2 instructions : on
affiche "PERDU" et on décrémente a de 1. On affiche ensuite la valeur de a.
 Exécution de l'exemple 7 n°1
Lorsqu'on exécute notre programme, il s'affiche à l'écran :
Tapez une valeur entière : 7
GAGNÉ
La valeur finale de a vaut 8
 Exécution de l'exemple 7 n°2
Lorsqu'on exécute notre programme, il s'affiche à l'écran :
Tapez une valeur entière : 10
PERDU
La valeur finale de a vaut 9

Le type bool

Il s'agit d'un type de base prédéfini du langage C++. Il permet de stocker une valeur
booléenne pouvant prendre 2 valeurs : soit true soit false. Le résultat d’une condition peut être
stocké dans un bool.

Exemple 8 : utilisation du type bool

Exemple 8 : utilisation du type bool


#include <iostream>
using namespace std;

int main()
{
int a; bool c,d;
cout<<"Tapez une valeur entière : ";
cin>>a;
c=(a<3);
d=(a>20);
if(c||d)cout<<"GAGNÉ"<<endl;
else cout<<"PERDU"<<endl;
return 0;
}

 Dans ce programme, nous définissons une variable entière a et 2 variable booléennes c


et d.
 On demande à l'utilisateur de saisir la variable entière a.
 Dans c, on affecte true si a est strictement plus petit que 3. c vaudra false dans le cas
contraire.
 Dans d, on affecte true si a est strictement plus grand que 20. d vaudra false dans le
cas contraire.
 Si c ou d est vrai, c'est à dire si a est strictement plus petit que 3 ou si a est strictement
plus grand que 20 alors on affiche "GAGNÉ". On affiche perdu dans le cas contraire.
 Exécution de l'exemple 8
Lorsqu'on exécute notre programme, il s'affiche à l'écran :
Tapez une valeur entière : -6
GAGNÉ

Le switch

Syntaxe :

switch(identificateur)
{
case c1:instruction1;break;
case c2:instruction2;break;
case c3:instruction3;break;
...
default: instruction;break;
}

Sémantique du switch :
On teste la variable définie par l'identificateur. On la compare successivement aux constantes
c1, c2, c3,…etc… Si la variable vaut c1 alors on exécute l’instruction1 et on passe à
l’instruction suivante. Si elle vaut c2, on exécute l'instruction2 et on passe à l’instruction
suivante. Idem s'il vaut c3. Si elle ne vaut ni c1, ni c2, ni c3 alors on exécute l'instruction
après default et on passe à l’instruction suivante. Le default est facultatif. On peut remplacer
les instructions instruction1, instruction2, instruction3 par des suites d'instructions sans mettre
d'accolades. Les valeurs c1, c2,c3 .. sont obligatoirement des constantes.

Exemple 9 : utilisation du switch

Exemple 9 : utilisation du switch


#include <iostream>
using namespace std;

int main()
{
int i;
cout<<"Tapez un entier entre 1 et 3 bornes incluses :";
cin>>i;
switch(i)
{
case 1: cout<<"GAGNÉ"<<endl;
i=i+99;
break;
case 2: cout<<"PERDU n° 2"<<endl;
i=0;
break;
case 3: cout<<"PERDU n°3"<<endl;
i=0;
break;
}
cout<<"La valeur finale de i est "<<i<<endl;
return 0;
}

 On commence par saisir un entier i.


 Il y a ensuite une switch qui permet d'effectuer une série d'instructions en fonction de
la valeur de i.
 Les 3 valeurs de i pour lesquelles on effectue une série d'instructions sont 1, 2 et 3.
 Si i vaut une autre valeur le switch ne fait rien car il n'y a pas de default.
 Exécution 1 de l’exemple 9
Tapez un entier entre 1 et 3 bornes incluses :1
GAGNÉ La valeur finale de i est 100
 Exécution 2 de l’exemple 9
Tapez un entier entre 1 et 3 bornes incluses :2
PERDU n°2
La valeur finale de i est 0
 Exécution 3 de l’exemple 9
Tapez un entier entre 1 et 3 bornes incluses :3
PERDU n°3 La valeur finale de i est 0

Exemple 10 : un autre exemple de switch

Exemple 10 : un autre exemple de switch


#include <iostream>
using namespace std;

int main()
{
int i;
cout<<"Tapez un entier entre 1 et 3 bornes incluses :";
cin>>i;
switch(i)
{
case 1:
cout<<"GAGNÉ"<<endl;
i=i+99;
break;
case 2 :
cout<<"PERDU n° 2"<<endl;
i=0;
break;

case 3 :
cout<<"PERDU n°3"<<endl;
i=0;
break;

default :
cout<<"J'ai dit entre 1 et 3 !!!"<<endl;
i=-1000;
break;
}
cout<<"La valeur finale de i est "<<i<<endl;
return 0;
}

 On commence par saisir un entier i.


 Il y a ensuite une switch qui permet d'effectuer une série d'instructions en fonction de
la valeur de i.
 Les 3 valeurs de i pour lesquelles on effectue une série d'instructions sont 1, 2 et 3.
 Si i vaut une autre valeur , on exécute l'instruction après default.
 Exécution 1 de l’exemple 10
Tapez un entier entre 1 et 3 bornes incluses :1
GAGNÉ
La valeur finale de i est 100
 Exécution 2 de l’exemple 10
Tapez un entier entre 1 et 3 bornes incluses :2
PERDU n°2
La valeur finale de i est 0
 Exécution 3 de l’exemple 10
Tapez un entier entre 1 et 3 bornes incluses :3
PERDU n°3
La valeur finale de i est 0
 Exécution 4 de l’exemple 10
Tapez un entier entre 1 et 3 bornes incluses :5
J'ai dit entre 1 et 3 !!!
La valeur finale de i est -1000

Exercices
EXERCICE 1

Ecrire 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").

Solution

Cet exercice a pour but de vérifier les points techniques suivants :


 La notion de variables et leur déclaration.
 Modélisation d'un problème mathématique simple.
 Utilisation de if imbriqués.
 L'utilisation de cin et de cout.
 L'affectation.

Voici le fichier source :

#include<iostream>
using namespace std;

int main()
{
double A,B,X;

cout<<"Tapez la valeur de A : ";cin>>A;


cout<<"Tapez la valeur de B : ";cin>>B;

if(A==0)
{
if(B==0)cout<<"Tout X est solution"<<endl;
else cout<<"Pas de solution"<<endl;
}
else {
X=-B/A;
cout<<"1 seule solution : "<<X<<endl;
}
return 0;
}

EXERCICE 2

Ecrire un programme qui demande à l'utilisateur de taper 5 entiers et qui affiche le plus grand.
Le programme ne devra utiliser que 2 variables.

Solution

Cet exercice a pour but de vérifier les points techniques suivants :

 La notion de variables et leur déclaration.


 Recherche du plus grand élément.
 Utilisation du if.
 L'utilisation de cin et de cout.
 L'affectation.

Voici le fichier source :

#include<iostream>
using namespace std;

int main()
{
int a,max;
cout<<"Tapez la valeur numero 1 : ";cin>>a;max=a;
cout<<"Tapez la valeur numero 2 : ";cin>>a;if(a>max)max=a;
cout<<"Tapez la valeur numero 3 : ";cin>>a;if(a>max)max=a;
cout<<"Tapez la valeur numero 4 : ";cin>>a;if(a>max)max=a;
cout<<"Tapez la valeur numero 5 : ";cin>>a;if(a>max)max=a;

cout<<"Le plus grand vaut : "<<max<<endl;

return 0;
}

EXERCICE 3

Ecrire un programme qui résout l’équation ax2+bx+c=0 en envisageant tous les cas
particuliers.

Solution

Cet exercice a pour but de vérifier les points techniques suivants :

 La notion de variables et leur déclaration.


 L'utilisation de cin et de cout.
 L'affectation.
 Evaluation d'expressions "complexes".
 Utilisation de la bibliothèque cmath.
 Structure de if... else imbriquées avec de nombreux cas particuliers.
 Proposition d'un jeu de tests complet pour gérer ces cas particuliers.
 Modélisation d'un problème issu des mathématiques.

Voici le fichier source :

#include<iostream>
#include<cmath>
using namespace std;

int main()
{
double A,B,C,X1,X2,d;

cout<<"RESOLUTION DE AX2+BX+C=0 "<<endl;


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(A==0)
{
if(B==0)
{
if(C==0)cout<<"Tout x est solution"<<endl;
else cout<<"Pas de solution"<<endl;
}
else
{
X1=-C/B;
cout<<"Il y a une solution unique :"<<X1<<endl;
}
}
else
{
d=B*B-4*A*C;
if(d<0)cout<<"Pas de solution"<<endl;
else if(d==0)
{
X1=-B/(2*A);
cout<<"Il y a une solution double :"<<X1<<endl;
}
else
{
X1=(-B-sqrt(d))/(2*A);
X2=(-B+sqrt(d))/(2*A);
cout<<"Il y a 2 solutions : "<<X1<<" et "<<X2<<endl;
}
}

return 0;
}

EXERCICE 4

Ecrire 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 sont confondus, on affiche ‘A et B sont confondus’
- si C et D sont confondus, on affiche ‘ C et D sont confondus’
- 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.

Solution

Cet exercice a pour but de vérifier les points techniques suivants :

 La notion de variables et leur déclaration.


 L'utilisation de cin et de cout.
 L'affectation.
 Structure de if... else 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 :

#include<iostream>
using namespace std;

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(DX1*(YC-YA)==DY1*(XC-XA))
cout<<"AB et CD sont confondues."<<endl;
else cout<<"AB et CD sont parallèles."<<endl;
}
else
{
cout<<"Les droites sont sécantes."<<endl;
R1=YA*XB-XA*YB;
R2=YC*XD-XC*YD;
XI=(R1*DX2-R2*DX1)/K;
YI=(R1*DY2-R2*DY1)/K;
cout<<"L'abscisse de l'intersection est : "<<XI<<endl;
cout<<"L'ordonnée de l'intersection est : "<<YI<<endl;
}
}

return 0;
}

EXERCICE 5

Ecrire un programme qui demande à l’utilisateur de saisir un entier X et qui affiche la valeur
absolue de X.

Solution

Cet exercice a pour but de vérifier les points techniques suivants :

 La notion de variables et leur déclaration.


 L'utilisation de cin et de cout.
 Utilisation rudimentaire du if.

Voici le fichier source :


#include<iostream>
using namespace std;
int main()
{
int X;

cout<<"Tapez la valeur de X :";cin>>X;

if(X<0)X=-X;;

cout<<"La valeur absolue de X est : "<<X<<endl;

return 0;
}
</pre>
}}

=== EXERCICE 6 ===


Ecrire un programme qui demande à l’utilisateur de saisir deux entiers
strictement positifs A et B et qui indique si A est divisible par B.
{{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 cin et de cout.
*Utilisation du if...else....
*Validation de données.
Voici le fichier source :
<source lang="cpp">
#include<iostream>
using namespace std;

int main()
{
int A,B;

cout<<"Tapez la valeur de A : ";cin>>A;


cout<<"Tapez la valeur de B : ";cin>>B;

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;
}

EXERCICE 7

Ecrire un programme qui demande à l’utilisateur de saisir 3 entiers A, B et C et qui indique si


C est compris entre A et B, bornes incluses.

Solution

Cet exercice a pour but de vérifier les points techniques suivants :

 La notion de variables et leur déclaration.


 L'utilisation de cin et de cout.
 Utilisation du if...else....
 Utilisation des opérateurs logiques.

Voici le fichier source :

#include<iostream>
using namespace std;

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;
}

EXERCICE 8

Ecrire un programme qui demande à l’utilisateur de saisir 4 entiers A, B, C et D, puis qui


indique quelle est l'intersection des intervalles [AB] et [CD].

Solution

Cet exercice a pour but de vérifier les points techniques suivants :

 La notion de variables et leur déclaration.


 L'utilisation de cin et de cout.
 Utilisation du if...else....
 Utilisation des opérateurs logiques.

Voici le fichier source :

#include<iostream>
using namespace std;

int main()
{
double A,B,C,D,E,F;

cout<<"Tapez la valeur de A : ";cin>>A;


cout<<"Tapez la valeur de B : ";cin>>B;
cout<<"Tapez la valeur de C : ";cin>>C;
cout<<"Tapez la valeur de D : ";cin>>D;

if(A>C)E=A; else E=C;


if(B>D)F=D; else F=B;
if(E>F) cout<<"L'intersection est vide."<<endl;
else if(E==F)cout<<"L'intersection ne comporte qu'une valeur :"<<E<<endl;
else cout<<"L'intersection est l'intervalle ["<<E<<";"<<F<<"]"<<endl;
return 0;
}

EXERCICE 9

Ecrire un programme qui demande à l’utilisateur de saisir un entier A puis qui affiche
"ERREUR" si A n'est pas un nombre impair compris entre 83 et 101 bornes incluses. Dans le
cas contraire, on affiche "PAS D'ERREUR".

Solution

Cet exercice a pour but de vérifier les points techniques suivants :

 La notion de variables et leur déclaration.


 L'utilisation de cin et de cout.
 Utilisation du if...else....
 Utilisation des opérateurs logiques.
 Proposition d'un jeu de tests complet.

Voici le fichier source :

#include<iostream>
using namespace std;

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;
}

Vous aimerez peut-être aussi