Académique Documents
Professionnel Documents
Culture Documents
MASTER PHYSIQUE
de la Matière
et de Rayonnement
Soufiane DAHMANI
@ : s.dahmani@ump.ac.ma
S.DAHMANI 1
Chapitre 2
Les tests et les boucles en C++
S.DAHMANI 2
Introduction
S.DAHMANI 3
I- Les conditions
S.DAHMANI 4
1-L'INSTRUCTION SI ... ALORS ...
SINON
...l'instruction:
Il s'agit de
si (condition vraie)
alors {BLOC 1 D'INSTRUCTIONS}
sinon {BLOC 2 D'INSTRUCTIONS}
S.DAHMANI 5
1- L‘instruction Si ... Alors ...
Sinon ...
Syntaxe en C++:
if (condition)
{
............; // bloc 1 d'instructions
. ............;
............;
}
else
{
............; // bloc 2 d'instructions
............;
............;
}
suite du programme ...
S.DAHMANI 6
Condition Expression booléenne de la
condition d'exécution.
Instruction Une instruction ou un bloc
d'instructions exécuté si la condition est
vraie.
S.DAHMANI 7
LES OPÉRATEURS LOGIQUES
condition d'égalité: if (a==b) " si a est égal à b "
condition de non égalité: if (a!=b) " si a est différent de b "
conditions de relation d'ordre: if (a<b) if (a<=b) if (a>b) if
(a>=b) plusieurs conditions devant être vraies
simultanément, ET LOGIQUE:
if ((expression1) && (expression2)) " si l'expression1 ET
l'expression2 sont vraies "
une condition devant être vraie parmi plusieurs, OU
LOGIQUE if ((expression1) || (expression2)) " si
l'expression1 OU l'expression2 est vraie "
condition fausse if (!(expression1)) " si l'expression1 est
fausse "
Toutes les combinaisons sont possibles entre ces tests.
S.DAHMANI 8
Exemple1 :programme demande à
l'utilisateur de taper un entier a. Si a est
strictement plus grand que 10, il affiche "a est plus
grand que 10". Dans le cas contraire, il n'affiche
rien.
S.DAHMANI 9
Exemple2: programme demande à
l'utilisateur de taper un entier a. Si a est
strictement plus grand que 10, il affiche "a est plus
grand que 10". Dans le cas contraire, il affiche "a
est inférieur ou égal à 10".
S.DAHMANI 10
Exemple :
3
S.DAHMANI 11
S.DAHMANI 12
Remarque:
S.DAHMANI 13
2-La condition switch
S.DAHMANI 14
2- L'instruction Au cas ou ... Faire ...
S.DAHMANI
17
On peut faire ce genre de tests avec des
if...else if...else..., mais on peut faire la même
chose avec une condition switch qui, dans ce
genre de cas, a tendance à rendre le code
plus lisible. Voici ce que donnerait le code
précédent avec switch:
S.DAHMANI 18
S.DAHMANI 19
Remarque
Switch ne permet de tester que l'égalité.
Vous ne pouvez pas tester « Si le nombre
d'enfants est supérieur à 2 » avec switch: il
faut dans ce cas utiliser if.
De plus, switch ne peut travailler qu'avec des
nombres entiers (int,unsigned int,char). Il est
impossible de tester des nombres décimaux
(double).switch est donc limité en termes de
possibilités mais cette instruction propose
une écriture alternative parfois plus pratique
dans des cas simples.
S.DAHMANI 20
3-Booléens
Les booléens
Vous vous souvenez du type bool? Ce type de données
peut stocker deux valeurs : true(vrai) ; false(faux).
Ce type est souvent utilisé avec les conditions. Quand
on y pense, c'est logique : une condition est soit vraie,
soit fausse.
Si je vous parle du type bool, c'est parce qu'on peut
l'utiliser d'une façon un peu particulière dans les
conditions.
S.DAHMANI 21
Cette condition, qui vérifie la valeur de la
variable adulte, affiche un message si celle-ci
vaut vrai (true).
Vous vous demandez peut-être où je veux en
venir ? En fait, il est possible d'omettre la
partie «== true» dans la condition, cela
revient au même ! Regardez ce code, qui est
équivalent :
S.DAHMANI 22
II-Les boucles
S.DAHMANI 23
Les boucles sont répétées tant qu'une
condition est vraie. Par exemple on peut faire
une boucle qui dit : « Tant que l'utilisateur
donne un nombre d'enfants inférieur à 0,
redemander le nombre d'enfants ».
Il existe 3 types de boucles à connaître :
while;
do ... while;
for.
S.DAHMANI 24
1- La boucle Tant que ... faire ...
Syntaxe en C++:
while (condition)
{
............; // bloc d'instructions
............;
. ............;
}
suite du programme ...
S.DAHMANI 25
Exemple: un programme qui affiche
tous les entiers de 8 jusqu'à 23 (bornes
incluses) en utilisant un while
S.DAHMANI 26
2- L'instruction Répéter ...
Tant que ...
Syntaxe en C++:
do
{
............; // bloc d'instructions
. ............;
............;
}
while (condition);
suite du programme ...
S.DAHMANI 28
3- L'instruction Pour ...
Syntaxe en C++:
for(instruction1; condition; instruction2)
{
. ............; // bloc d'instructions
............;
............;
}
suite du programme ...
S.DAHMANI 29
Exemple 1 : programme qui
affiche des nombres de 0 à
9:
S.DAHMANI 30
Exemple2: un programme qui
demande à l'utilisateur de taper 10 entiers
et qui affiche leur somme.
S.DAHMANI 31
Exercice-1:
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.
Exercice-2:
Dans une élection, I est le nombre d’inscrits, V le
nombre de votants, Q le nombre minimum de
. votants pour que le vote soit déclaré valable, P =
100V/I le pourcentage de votants, M = V/2 + 1 le
nombre de voix pour obtenir la majorité absolue.
Écrire un programme qui
1- demande à l’utilisateur de saisir I, Q et V,
2- teste si le nombre minimum de votants pour que le
vote soit déclaré valable est atteint,
3- si oui calcule et affiche P, M, sinon affiche un
message d’avertissement.
S.DAHMANI 32
Exercice-3:
Écrire un programme permettant de saisir un
entier n, de calculer n!, puis de l’afficher. Utiliser
une boucle do ...while puis while puis for.
Quelle est la plus grande valeur possible de n, si
n est déclaré int, puis unsigned int?
Exercice-4:
La formule récurrente ci-dessous permet de
calculer la racine du nombre 2 :
U0 = 1
Ui = ( Ui-1+ 2/Ui-1 ) / 2
Écrire un programme qui saisit le nombre
d’itérations, puis calcule et affiche la racine de
2.
Exercice-5:
Résoudre ax2 + bx +c = 0.
S.DAHMANI 33
Exercice 6
S.DAHMANI 34
biblio
https://fr.wikibooks.org/wiki/Programmation_
C%2B%2B/Les_structures_de_contr%C3%B
4les
https://openclassrooms.com/courses/program
mez-avec-le-langage-c/les-structures-de-cont
role-4
https://fr.wikibooks.org/wiki/Programmation_
C%2B%2B/Les_structures_de_contr%C3%B
4les
S.DAHMANI 35