Vous êtes sur la page 1sur 26

Chapitre 1: Structures conditionnelles et

répétitives

1
1-Structures conditionnelles

Definition :
Une instruction conditionnelle est une instruction qui permet l’exécution d’une
ou plusieurs autres instructions spécifiées selon le résultat d’une condition
établie. Il faut remarquer qu’une instruction conditionnelle peut englober une
autre, et sont alors appelées des instructions conditionnelles imbriquées. Les
actions à effectuer peuvent être des actions simples ou composées
(affectation, appel de procédures, instruction tant que, suite d’instructions, …).

2
1-Structures conditionnelles
1,1-La structure conditionnelle SI
Les structures de contrôle définissent l'ordre dans lequel les instructions sont
effectuées.
Syntaxe en algorithmique :
SI < Condition1 > ALORS
<Traitement 1>
SINON
<Traitement 2>
FINSI
 La est un prédicat, qui peut être vrai ou faux, selon les valeurs des
paramètres la constituant.
 Si la condition est vérifiée (sa valeur est vrai), c’est le qui sera exécuté.
Ensuite, le système passe à l’exécution juste après le FINSI.
 Dans le cas contraire, lorsque la condition n’est pas vérifiée (valeur de la
condition est faux), c’est le qui s’exécute, en cas où celui ci existe. S’il n’existe
pas, le système passe directement à l’instruction qui suit le FINSI.
 Les traitements 1 et 2, peuvent être des actions simples ou même des
structures conditionnelles. 3
1-Structures conditionnelles

Particularité des instructions de contrôle en C: les "conditions" peuvent être


des expressions qui fournissent un résultat numérique.
1) if-else
Structure:
if(condition) si condition est vrai (≠0) on execute bloc d'instructions 1
{
bloc d'instructions 1;
}
else sinon on execute bloc d'instructions 2
{
bloc d'instructions 2;
}

4
1-Structures conditionnelles

Remarques :
- S'il n'y a qu'une seule instruction, les accolades sont inutiles.
- "condition" peut être:
- une variable de type numérique
- une expression fournissant un résultat numérique
- On peut imbriquer plusieurs if-else
Exemple 1 :
if(a>b) si a est plus grand que b
max=a; on affecte à max la valeur de a
else sinon
max=b; on affecte à max la valeur de b

5
1-Structures conditionnelles

Application :Écrire un algorithme qui saisit 3 nombres A, B et C au clavier


puis les range en ordre décroissant et les affiche dans cet ordre à l'écran.

6
1-Structures conditionnelles

#include
void main()
{
float A,B,C;
printf("Donner A\n");
scanf("%f",&A);
printf("Donner B\n");
scanf("%f",&B);
printf("Donner C\n");
scanf("%f",&C);
if((A<B)&&(B<C))
printf("%f %f %f\n",C,B,A);
else if((B<A)&&(A<C))
printf("%f %f %f\n",C,A,B);
else if((C<A)&&(A<B))
printf("%f %f %f\n",B,A,C); 7
1-Structures conditionnelles

else if((A<C)&&(C<B))
printf("%f %f %f\n",B,C,A);
else if((C<B)&&(B<A))
printf("%f %f %f\n",A,B,C);
else
printf("%f %f %f\n",A,C,B);
}

8
1-Structures conditionnelles
1,2 -La structure conditionnelle SELON
Cette structure conditionnelle est appelée aussi à choix multiple ou sélectif car
elle sélectionne entre plusieurs choix à la fois, et non entre deux choix
alternatifs (le cas de la structure SI).
Syntaxe en algorithmique:

9
1-Structures conditionnelles

 Le sélecteur peut être une variable de type scalaire (entier, caractère,


booléen) ou une expression arithmétique ou logique.
 La structure SELON évalue le "sélecteur", passe à comparer celui ci
respectivement avec les valeurs dans les listes. En cas d'égalité avec une
valeur, les actions correspondantes, qui sont devant cette valeur seront
exécutées.
 Devant "Cas", il peut y avoir une seule valeur ou une suite de valeurs
séparées par des virgules.
 Après avoir traité la suite d'actions correspondante, l'exécution se poursuit
après le FINSELON.
 Les parties comprises entre crochets sont facultatives (non obligatoires).

10
1-Structures conditionnelles

En programmation C
switch (selecteur )
{
case : instructions;
break;
case : instructions;
Break;
…….
default : instructions;
}

11
1-Structures conditionnelles

12
2-Structures répétitives

Definition :

Les itérations appelées aussi structures itératives, répétitives ou encore


boucles, permettent de faire exécuter plusieurs fois certaines phases d'un
algorithme, sans qu'il soit nécessaire à chaque fois de récrire les instructions
correspondantes. En algorithmiques nous distinguons trois types de boucles
(pour, tant que et répéter). Elles ont toutes en commun le fait que l'exécution
des instructions à répéter dépend, comme avec les instructions alternatives,
d'une condition, c'est-à-dire de la valeur de vérité (VRAI ou FAUX) de celle-ci.
Ce qui les différencie, c'est le moment auquel nous contrôlons la valeur
logique de la condition.

13
2-Structures répétitives

2,1. Le Schéma Itératif TANT QUE


Rôle Ce type de schéma permet l’exécution d’un traitement donné, plusieurs
fois, tant qu’une condition spécifiée est vraie. La condition est une expression
logique qui peut être simple ou composée mais qui donne toujours un résultat
logique. Par conséquent, ce type de schéma est utilisé chaque fois que le
nombre d’itérations qui seront exécutées n’est pas déterminé à priori.
Formulation algorithmique
[Initialisation]
TANT QUE < condition > FAIRE
< traitement >
FINTANTQUE

14
2-Structures répétitives

En programmation C
Structure:
while(condition) tant que condition est vraie (≠0)
{ on exécute
bloc d'instructions ; bloc d'instructions

}
Remarques:
- S'il n'y a qu'une seule instruction, les accolades sont inutiles.
- Le bloc d’instructions est exécuté 0 ou plusieurs fois.

15
Structures répétitives

Exemple

16
2-Structures répétitives

2,2. Le Schéma Itératif REPETER


Rôle
Ce type de schéma permet l’exécution d’un traitement donné, plusieurs fois,
jusqu’à ce qu’une condition spécifiée soit vraie. La condition est une expression
logique qui peut être simple ou composée mais qui donne toujours un résultat
logique. On peut utiliser ce schéma si on ne peut pas déterminer le nombre de
répétitions à l’avance et qu'il forcément supérieur ou égal à 1.

< traitement > : une ou plusieurs instructions < condition arrêt > : c’est une
condition d’arrêt sous forme d’expression logique (vrai ou faux).

17
Structures répétitives

Les étapes d'exécution de la boucle Répéter


1) Exécution du < traitement >
2) Test de la valeur de la <condition d’arrêt >
 Si elle est vérifiée Alors la boucle s'arrête
 Sinon Retour à l'étape 1.
En programmation C :Do-while
Il est semblable au while, mais : while évalue la condition avant d’exécuter,
alors que do while exécute une fois avant d’évaluer la condition.
Structure:
do on exécute
{
bloc d'instructions ; bloc d'instructions
}
while(condition) ; tant que condition est vrai (≠0)

18
Structures répétitives

Remarque :
- S'il n'y a qu'une seule instruction, les accolades sont inutiles.
- Le bloc d’instructions est exécuté au moins une fois, et aussi longtemps
que condition fournit une valeur vraie (différente de 0).
.

19
2-Structures répétitives

2,3- Le Schéma Itératif Pour


Rôle
Ce schéma itératif permet l’exécution d’un traitement donné en un nombre de
fois n donné. On peut donc l’utiliser chaque fois qu’on connaît le nombre
d’exécutions souhaitées d’un même traitement (ensemble d’instructions
formant le corps de la boucle),
<nom_var >:nom de la variable représentant le compteur des itérations à
effectuer.
<v1 >: valeur initiale du compteur ,
<vf >: valeur finale, son dépassement provoque la sortie de la boucle.
<val>: valeur du pas pour faire passer < nom_var > d’une valeur à la suivante.

20
Structures répétitives

En programmation C :for
structure:
for(expr1;expr2;expr3)
{
bloc d'instructions ;
}
expr1 est évaluée une fois avant le passage dans la boucle, elle est utilisée
pour initialiser les données de la boucle.
expr2 est évaluée à chaque passage de la boucle, elle est utilisée pour
savoir si la boucle est répétée ou non (c'est une condition de répétition, et
non d'arrêt).
expr3 est évaluée à la fin de chaque passage de la boucle, elle est utilisée
pour réinitialiser les données de la boucle.

21
Structures répétitives

Remarques 1:
La boucle POUR est utilisée lorsqu'on connaît le nombre de répétition du
traitement à l'avance.
2. La valeur du pas peut être positive ou négative et par conséquent, il faut; au
départ de la boucle; que Vi <= Vf ou Vi >= Vf selon la positivité ou la négativité
de cette valeur.
3. La valeur du pas est égale à 1 par défaut.

22
Structures répétitives
Equivalence entre une boucle for et une boucle while:
for(expr1;expr2;expr3) expr1;
{ while(expr2)
bloc d'instructions ; {
bloc d'instructions ;
expr3;
} }
Le plus souvent, for est utilisé comme boucle de comptage:
for(init;cond_repetition;compteur)
{
bloc d'instructions ;
}

23
Structures répétitives

24
Structures répétitives

Remarque :
Les parties expr1 et expr2 peuvent contenir plusieurs initialisations ou
réinitialisations, séparées par des virgules.
4) Choix de la structure répétitive
On choisit la structure qui reflète le mieux l'idée du programme que l'on veut
réaliser, en respectant les directives suivantes:
- Si le bloc d'instructions ne doit pas être exécuté si la condition est fausse ->
while ou for
- Si le bloc d'instructions doit être exécuté au moins une fois -> do-while
- Si le nombre d'exécution du bloc d'instructions dépend de une ou plusieurs
variables qui sont modifiées à la fin de chaque répétition -> for
- Si le bloc d'instructions doit être exécuté aussi longtemps qu'une condition
extérieure est vraie (par exemple aussi longtemps qu'il y a des données
dans un fichier d'entrées) ->while

25
Structures répétitives

Le choix entre for et while est souvent une question de préférence et


d’habitude.
- for permet de réunir les instructions qui influencent le nombre de répétitions
au début de la structure.
- while a l’avantage de correspondre plus exactement aux structures d’autres
langages et à la logique humaine.
- for a le désavantage de favoriser la programmation de structures surchargées
et par la suite illisibles.
- while a le désavantage de mener parfois à de longues structures dans
lesquelles il faut chercher pour trouver les instructions influençant la condition
de répétition.

26

Vous aimerez peut-être aussi