Vous êtes sur la page 1sur 19

Structures de Contrle

Dani Mezher
Instructions composes
!Un programme se rduit une
squence d#instructions simples.
!Une structure de contrle sert modier
l#ordre linaire d#excution d#un
programme.
Un exemple
#include <iostream>
#include <cmath>
using namespace std;
main()
{
double b=0.0;
double c=0.0,delta=0.0;
cin >> b >> c;
delta=b*b-4*c;
if (delta <0.0)
cout << pas de solutions<<endl;
else if (delta==0)
cout << sol. Unique << -b/2.0<<endl;
else
cout << deux sol. << (-b-sqrt(delta))/2.0<< et <<(-b+sqrt(delta))/
2.0<<endl;
}$
Les structures de contrle
!On distingue 3 types de structures de
contrle:
!Les branchement conditionnels: Si alors
!Les boucles conditionnelles: tant que
!Les itrations: pourallant de
Instruction compose
!Des instructions regroupes en blocs
dlimits par { et }
!Exemple:
{
int i;
double x;
cout << Valeur de i et x?<<endl;
cin>> i >> x;
}
Branchement conditionnel
if (condition)
instructions 1
else
instructions 2
O instructions 1 et instructions 2 sont soit une
instruction simple suivie par un ; soit un bloc
d#instructions.
Conseil: utilisez toujours la syntaxe avec des blocs.
Les oprateurs de comparaison
Oprat
eur
Test
== galit
!= Ingalit
< infriorit
> Supriorit
<= Infriorit ou galit
>= Supriorit ou galit
Oprateurs logiques
Oprateur Test
&& %Et% logique
|| %Ou% logique
! Ngation logique
Oprateur logique binaire
& %Et%
| %Ou%
~ Complment 2
if - exemple
if (x != 0.0){
cout << 1.0/x << endl ;
}
else {
cout << erreur : x est nul. << endl ;
}
if (x>y){
min = y;
max = x;
}
else {
min = x;
max = y;
}
if (x<0){
x=-x;
}
Y=sqrt(x);
Branchement conditionnel
switch(i) {
case 1: Instructions 1;break;

case 36:Instructions 36;break;
default: Instructions def;break;
case 243: Instructions 243;
}
Switch - exemple
switch (a+b)
{
case 0: instruction1; // execut uniquement lorsque
break; // (a+b) vaut 0
case 2:
case 3: instruction2; // lorsque (a+b) vaut 2 ou 3
case 4:
case 8: instruction3; // lorsque (a+b) vaut 2, 3, 4 ou 8
break;
default: instruction4; // dans tous les autres cas
}
Boucles
!Les boucles permettent de rpter un
traitement.
!La rptition est contrle par condition de
continuation
while(condition)
instruction
do
instructions
while(condition)
Boucle - exemples
int i(5)
while (i>1){
cout << i << endl;
i=i/2;
}
int i(0)
while (i>1){
cout << i << endl;
i=i/2;
}
int i(0)
do {
cout << i << endl;
i=i/2;
} while (i>1)
Itrations
! Permettent l#application itrative d#un traitement,
contrle par une initialisation, une condition de
continuation et une mise jour.
! Syntaxe
for(initialisation; condition;mise_a_jour)
instructions
Boucle for
! Une boucle for est quivalente la boucle while
suivante
{initialisation;
while (condition)
{
instructions
mise_a_jour;
}
}
Boucle for - exemple
for (int i(0), s(0); i < 5; s += i, ++i)
{
cout << i << ", " << s << endl ;
}
for(int i(0);i<10;++i){
cout<<i*i<<endl;
}
Rupture de squence
! break et continue permettent de contrler le
droulement d'une boucle.
! Si break est excute au sein du bloc intrieur de
la boucle, l'excution de la boucle est interrompue;
! Si l'instruction continue est excute au sein du
bloc intrieur de la boucle, l'excution du bloc est
interrompue et la condition de continuation est
value pour dterminer si l'excution de la boucle
doit tre poursuivie.$
break et continue
while (condition) {
. . .
instructions de la boucle
. . .
break;
. . .
continue;
. . .
}
instructions en sortie de la boucle
. . .
Continue - exemples
...
i = 0;
while (i < 100) {
++i;
if ((i % 2) == 0) continue;
// la suite n'est excute que pour les
// entiers impairs
instructions;
...
}

Vous aimerez peut-être aussi