Académique Documents
Professionnel Documents
Culture Documents
Chapitre.03
Structures de contrôle.
62
Objectif de ce chapitre
63
Plan
Structures de contrôle
64
conditionnelles
On appelle structures de contrôle conditionnelles les
instructions qui permettent de tester si une condition est vraie
ou non. Il s'agit des instructions suivantes :
La structure conditionnelle if
Le branchement conditionnel switch
65
La structure conditionnelle if(…)…
66
La structure conditionnelle if(…)…
Exemple: MAX
Exemple : Val_Abs
69
Exemple :
72
exemple
Exemple :
74
Le paiement des Amendes Transactionnelles pour l’excès de
vitesse
if(depassementVitesse < 7)
76
cout << " pas une infraction" << endl;
else if (depassementVitesse < 20)
cout << "contravention de troisième classe : 300 dh. " << endl;
else if (depassementVitesse <30)
cout << " contravention de deuxième classe : 500 dh." << endl;
else if (depassementVitesse < 50)
cout << " contravention de prmière classe : 700 dh ." << endl;
else
cout << " c’est un délit et non pas une contravention et \
possible d’une amende judiciaire. " << endl;
return 0;
}
Pr. EL MAKRANI Adil SMC S4 : Programmation C++
78
Syntaxe générale :
switch ( expression )
{
case const1 :
Liste d’instructions 1;
break ; //L’instruction d’échappement
case const2 :
Liste d’instructions 2;
break ;
...
default :
Liste d’instructions ;
break ; // break est facultative ici
}
Pr. EL MAKRANI Adil SMC S4 : Programmation C++
79
Exemple 1 :
switch(sexe) {
case ’m’ : cout << "Bonjour Monsieur.";
break;
case ’f’ : cout << "Bonjour Madame.";
break;
default : cout << "Bonjour.";
}
80
Exemple 1 :
switch ( chiffre ) {
case 0 :
case 2 :
case 4 : cout << " le nombre est pair \n" ;
break ;
case 1 :
case 3 :
case 5 : cout << " le nombre est impair \n" ;
break ;
}
Pr. EL MAKRANI Adil SMC S4 : Programmation C++
81
Exercices
Exercice 1 :
Écrire un programme qui détermine si un entier saisi est pair
ou impair.
Exercice 2 :
Proposer un programme C++ permettant de calculer et
afficher la valeur absolue |x − y| de deux réels x et y sans
utiliser la fonction prédéfinie abs().
Exercice 3 :
Écrire un programme C++ qui lit deux notes d’examen et
leurs coefficients, puis affiche la moyenne en précisant
"ajourné" si la moyenne est inférieur à 10, "validé" dans le
cas contraire.
82
Corrigé d’exercice 1
#include <iostream>
using namespace std;
int main ( ) {
int n ;
cout << "Donner un nombre entier positif : ";
cin >> n ;
if (n%2 == 0)
cout << n <<" est pair"<<endl;
else
cout << n <<" est impair " <<endl;
return 0; }
Pr. EL MAKRANI Adil SMC S4 : Programmation C++
83
Corrigé d’exercice 2
int main ( ) {
float x, y ;
cout << " Saisissez deux réels x et y \n";
cin >> x >> y;
if (x == y)
cout << " la valeur absolue est nulle"<<endl;
else if (x > y)
cout << " la valeur absolue est "<<x-y <<endl;
else
cout << " la valeur absolue est "<<y-x <<endl;
return 0; }
Pr. EL MAKRANI Adil SMC S4 : Programmation C++
84
Corrigé d’exercice 3
int main ( ) {
float note1, note2, note3, Moy;
int coef1, coef2, coef3 ;
cout << " Saisissez les trois notes \n";
cin >> note1 >> note2 >> note3;
cout << " Saisissez leurs coefficients resp. \n";
cin >> coef1 >> coef2 >> coef3;
Moy = (note1*coef1+note2*coef2+note3*coef3)/(coef1+coef2+coef3);
if (Moy >= 10)
cout << " VALIDE : " <<Moy<<endl;
else
cout << " AJOURNE : " <<Moy<<endl;
return 0; }
Pr. EL MAKRANI Adil SMC S4 : Programmation C++
85
Structures de contrôle itérative
La boucle for
86
#include <iostream>
using namespace std ;
int main ()
{
int somme = 0;
for ( int i=0 ; i<=100 ; i++ )
{
somme = somme + i ;
}
cout<< " La somme est : "<< somme <<endl ;
return 0 ;
}
Pr. EL MAKRANI Adil SMC S4 : Programmation C++
La boucle while
88
Le while permet d'exécuter des instructions en boucle tant
qu'une condition est vraie.
Sa syntaxe est la suivante :
while ( expression logique )
{
bloc d’instructions ; //code à exécuter.
}
Tout ce qui est entre accolades sera répété tant que la
condition est vérifiée. Essayons de refaire l'exemple
précédent, qui affiche les nombre de 1 à 9, en utilisant cette
fois-ci la boucle while :
#include <iostream>
using namespace std ;
int main () {
int n ;
long fact=1;
cout << " donner un entier positif " <<endl ;
cin >> n;
while ( n > 0 )
fact = fact * n−− ;
cout << "le factor de"<< n<<" est " << fact << endl ;
return 0 ; }
90
La boucle do ... while
92
Exercices
Exercice 4 :
Ecrire un programme en langage C++ qui lit deux entiers
entrés au clavier n et p et permet d’afficher les nombres de n
à p, sauf les multiples de 3 et les multiples de 5.
Exercice 5 :
Écrire un programme en langage C++ qui permet de calculer
le factoriel d’un entier positif n entré au clavier.
1Le programme doit faire un contrôle de saisi de n en utilisant la
boucle while.
2 Le programme calcule le factoriel de n avec la boucle for.
3Le programme doit continuer son exécution pour calculer le factoriel
d’un autre nombre jusqu’à ce que l’utilisateur quitte le programme
do...while.
Pr. EL MAKRANI Adil SMC S4 : Programmation C++
93
Exercice 6 :
Écrire un programme en langage C++ permettant l’affichage
suivant :
*
**
***
****
*****
******
*******
********
Pr. EL MAKRANI Adil SMC S4 : Programmation C++
94
Correction d’exercice 4
95
Correction d’exercice 5
//calcul de la factorielle
int main() {
int i = 1; //variable de controle pour la premiere boucle
int n;
do { // premiere boucle
//saisi d’un entier > 0
cout << "Calcul de la factorielle, entrez n (> 0) : " ;
cin >> n;
while (n <= 0) { // deuxieme boucle
cout << "n est <= 0 ! Entrez un autre nombre > 0 : " ;
cin >> n;
}
96
//calcul de la factorielle (1 * 2 * ... * n-1 * n)
long fact = 1;
for (int k=1 ; k <= n ; k++)
fact = fact * k;
cout << "La factorielle de " << n << " est : " << fact
<< endl;
//refaire le calcul ?
cout << "Voulez vous continuer (1 pour continuer, 0 pour
sortir) ? ";
cin >> i;
} while (i); // fin de la boucle do... while
return 0; } //fin programme
97
Correction d’exercice 6
# include <iostream >
using namespace std;
int main () {
for(int i=0;i <8;i++)
{
for(int j=0;j <=i;j++)
{
cout <<"*";
}
cout << endl ;
}
return 0; }
10
Exemple d’utilisation de l’instruction
0 continue dans une boucle.
Les deux morceaux de programme suivants donnent le
même résultat. Le programme cumule au maximum 100
entiers positifs lus au clavier.