Vous êtes sur la page 1sur 26

Chapitre

3
Structures de contrôle : condition-
nelles et répétitives
3.1 Introduction
En programmation procédurale comme en algorithmique, l’ordre des instruc-
tions est primordial. Le processeur exécute les instructions dans l’ordre
dans lequel elles apparaissent dans le programme, on dit que l’exécution est sé-
quentielle. Une fois que le programme a fini une instruction, il passe à la
suivante. Tant qu’une instruction n’est pas terminée, il attend avant de conti-
nuer. Les structures de contrôle décrivent l’enchaînement des instructions. Elles
sont réparties en trois catégories :

• Structures séquentielles,

• Structures conditionnelles,

• Structures répétitive.
3.2 Les structures séquentielles
3.2.1 Définition

Définition
- Une instruction séquentielle est une instruction ou une série d’instructions
qui sont exécutées de manière séquentielle, c’est-à-dire les unes après les
autres, dans l’ordre dans lequel elles apparaissent dans le programme.
- Lorsque le programme s’exécute, chaque instruction séquentielle est exécutée
l’une après l’autre, sans sauter ou réorganiser leur ordre.

55
Chapitre 3 Structures de contrôle : conditionnelles et répétitives 56

q L’exécution séquentielle est la base de l’algorithme, car elle permet de


décrire un processus ou une série d’étapes dans un ordre logique et cohérent.
q Les instructions séquentielles sont utilisées pour spécifier comment un
problème doit être résolu étape par étape, en suivant un flux de contrôle
linéaire.
q Une instruction se termine toujours par ’ ;’.
3.2.2 La syntaxe

Syntaxe en algorithmique
Début
Instruction 1 ;
Instruction 2 ;
.......
Instruction n ;
Fin

Exemple 3.1 Écrire un algorithme qui calcul la surface d’un rectangle

Algorithm 3.1 : Algorithme Surfaces


1 Variables : longueur, largeur, Surface : Entier
2 Début
3 Ecrire ("donner les cotes du rectangle") ;
4 Lire (longueur, largeur) ;
5 Surface ← Langueur* largeur ;
6 Ecrire (Surface) ;
7 Fin

3.3 Les structures conditionnelles

3.3.1 Définitions

Définition
- Les structures conditionnelles, ne permettent d’exécuter certaines instructions,
que sous certaines conditions.
- Une condition (expression conditionnelle ou logique) est évaluée, c’est à dire

Pr. O.IBRIHICH Informatique 1


Chapitre 3 Structures de contrôle : conditionnelles et répétitives 57

qu’elle est jugée vraie ou fausse.


- Si elle est vraie, un traitement (une ou plusieurs instructions)
est réalisé ; si la condition est fausse, une autre instruction va
être exécutée, et ensuite le programme va continuer normalement.

Définition d’une condition


- Une condition est une expression écrite entre parenthèse à valeur booléenne.
- Les instructions conditionnelles servent à n’exécuter une instruc-
tion ou une séquence d’instructions que si une condition est vérifiée.

q En programmation, on est souvent confronté à des situations ou on a besoin


de choisir entre 2 ou plusieurs traitements selon la réalisation ou non d’une
certaine condition d’où la notion de traitement conditionnel.
q On distingue deux structures de traitement conditionnel à savoir : Structures
conditionnelles simples ou à choix multiple.
3.3.2 Structures conditionnelles simples

En algorithmique
1. Forme simple : Si.......Alors.....Finsi
Dans cette forme, la condition est évaluée. Si elle vaut vrai alors
c’est la séquence d’instructions 1 qui est exécutée sinon c’est l’instruc-
tion qui suit l’instruction conditionnelle dans l’algorithme qui est exécutée.
Syntaxe en algorithmique
Si <Condition> alors
Instructions 1 ;
Finsi

Format Pseudo-code

Pr. O.IBRIHICH Informatique 1


Chapitre 3 Structures de contrôle : conditionnelles et répétitives 58

Figure 3.1 – Format Organigramme du si

Exemple 3.2 Exemples de test simple : Donner la valeur absolue d’un réel
saisi par l’utilisateur

Algorithm 3.2 : ValeurAbsolueV1


1 Variables : x, y : réel
2 Début
3 Ecrire (" Entrez un réel : " ) ;
4 Lire (x) ;
5 y ← x;
6 Si (x < 0) alors
7 y ← -x ;
8 Finsi
9 Ecrire ("la valeur absolue de ", x, "est :",y) ;
10 Fin

2. Forme composée : Si.......alors......Sinon


q Dans cette forme, la condition est évaluée. Si elle vaut vrai alors c’est la
séquence d’instructions 1 qui sera exécutée sinon c’est la séquence d’instructions
2 qui sera exécutée.
q Elle permet de choisir entre deux actions selon qu’une condition est vérifiée
ou non.
Syntaxe en algorithmique
Si <Condition> alors
Instructions 1 ;
Sinon
Instructions 2 ;
Finsi
Format Pseudo-code
Pr. O.IBRIHICH Informatique 1
Chapitre 3 Structures de contrôle : conditionnelles et répétitives 59

Figure 3.2 – Format Organigramme du si..sinon

Exemple 3.3 Exemple de test composé : Affiche la valeur absolue d’un entier
saisi par l’utilisateur.

Algorithm 3.3 : ValeurAbsolueV2


1 Variables : x : réel
2 Début
3 Ecrire (" Entrez un réel : ") ;
4 Lire (x) ;
5 Si (x < 0) alors
6 Ecrire ("la valeur absolue de ", x, "est :",-x) ;
7 Sinon
8 Ecrire ("la valeur absolue de ", x, "est :",x) ;
9 Finsi
10 Fin

Exemple 3.4 Écrire un algorithme qui demande un nombre entier à l’utili-


sateur, puis teste et affiche s’il est divisible par 3.

Algorithm 3.4 : Divsible_par3


1 Variables : n : entier
2 Début
3 Ecrire ("Entrez un entier : ") ;
4 Lire(n) ;
5 Si (n mod 3=0) alors
6 Ecrire (n," est divisible par 3") ;
7 Sinon
8 Ecrire (n," n’est pas divisible par 3") ;
9 Finsi
10 Fin

3. Forme imbriquée : Si....alors..........sinon.........Finsi


q Un test est une instruction qui permet d’effectuer un traitement différent

Pr. O.IBRIHICH Informatique 1


Chapitre 3 Structures de contrôle : conditionnelles et répétitives 60

selon qu’une condition est vérifiée ou non.


q Le test imbriqué est une généralisation de la structure de contrôle condition-
nelle, lorsque le nombre de traitements différents est plus grand que deux.
q Si la condition est vraie, alors la séquence d’instructions 1 sera exécutée
sinon on évalue la condition 2 si elle est vraie la séquence d’instructions 2 sera
exécutée.
q Enfin, si aucune des ces conditions est vraie alors on exécute la séquence
d’instructions 3.
Syntaxe en algorithmique
Si <Condition> alors
Instructions 1 ;
Sinon
Instructions 2 ;
Finsi
Sinon
Si <Condition> alors
Instructions 1 ;
Sinon
Instructions 2 ;
Finsi

Format Pseudo-code

Figure 3.3 – Format Organigramme du si imbriqué

Pr. O.IBRIHICH Informatique 1


Chapitre 3 Structures de contrôle : conditionnelles et répétitives 61

Exemple 3.5 État de l’eau


q Dans les conditions normales de température et de pression, l’eau est sous
forme de glace si la température est inférieure ou égale à 0° C, sous forme de
liquide si la température est comprise entre 0° C et 100° C et sous forme de
vapeur au-delà de 100° C.
q Écrivons l’algorithme qui permet de vérifier l’état de l’eau selon sa tempé-
rature. La solution pourrait être comme suit :

Algorithm 3.5 : Etat_EauV1


1 Variables : t : réel
2 Début
3 Ecrire ("Donner la température de l’eau :") ;
4 Lire (t) ;
5 Si (t <= 0) alors
6 Ecrire ("Etat solide") ;
7 FinSi
8 Si (t > 0 ET t < 100) alors
9 Ecrire ("Etat liquide") ;
10 Finsi
11 Si (t >= 100) alors
12 Ecrire ("Etat gazeux") ;
13 Finsi
14 Fin

q Cet algorithme est correct mais il évalue les trois conditions qui portent sur
la même variable et qui sont exclusives. En effet, si (t <= 0), alors on ne peut pas
avoir (t>= 0 et t < 100) ni (t > 100).
q Il est donc inutile d’évaluer les deux dernières conditions si la première est
vérifiée, ou d’évaluer la dernière condition si la deuxième est vérifiée.
q Pour éviter ce cas de figure, il sera préférable d’utiliser des tests imbriqués
comme suit :

Exemple 3.6 Exemple d’algorithme état de l’eau amélioré

Pr. O.IBRIHICH Informatique 1


Chapitre 3 Structures de contrôle : conditionnelles et répétitives 62

Algorithm 3.6 : Etat_EauV2


1 Variables : t : réel
2 Début
3 Ecrire ("Donner la température de l’eau :") ;
4 Lire (t) ;
5 Si (t <= 0) alors
6 Ecrire ("Etat solide") ;
7 Sinon
8 Si (t < 100) alors
9 Ecrire (" Etat liquide") ;
10 Sinon
11 Ecrire ("Etat gazeux") ;
12 Finsi
13 Finsi
14 Fin

Remarque 3.1
3 Utiliser les tests imbriqués pour limiter le nombre de tests et placer d’abord les
conditions les plus probables
3 Un sinon se rapporte toujours au dernier si qui n’a pas encore de sinon associé.
3 Il est recommandé de structurer le bloc associé à si et celui associé à sinon.

3.3.3 Structure conditionnelle à choix multiple

Définition
- Il existe une autre variante d’instructions conditionnelles qui permet d’effectuer
des actions différentes suivant les différentes valeurs que peut avoir une variable.
- Une structure de contrôle conditionnelle est dite à choix lorsque le traitement
dépend de la valeur que prendra un sélecteur. Ce sélecteur est de type entier,
caractère ou booléen.
- Cette structure conditionnelle est appelée aussi sélective car elle sélectionne
entre plusieurs choix à la fois, et non entre deux choix alternatifs (le cas de la
structure Si...Sinon).

Pr. O.IBRIHICH Informatique 1


Chapitre 3 Structures de contrôle : conditionnelles et répétitives 63

En algorithmique
Cette structure est décrite comme suit :
Syntaxe en algorithmique
Selon <Sélecteur> faire
Valeur 1 : Instruction 1 ;
Valeur 2 : Instruction 2 ;
.................. ;
.................. ;
Valeur N : Instruction N ;
Sinon
Instruction(s) par défaut ;
FinSelon

Format Pseudo-code

Figure 3.4 – Format Organigramme de la structure Selon.... Faire

Remarque 3.2
Dans la structure de test à choix multiples :
3 Le sélecteur peut être une variable ou une expression arithmétique ou logique ;
3 La valeur est une constante de même type que le sélecteur ;
3 La partie « sinon » est exécutée si aucun des autres cas n’est vérifié ;
3 L’exécution des différents cas (y compris le cas par défaut) est exclusive c’est-
à-dire l’exécution d’un seul cas provoque la sortie de cette structure ;
3 L’instruction qui sera exécutée est celle qui correspondra à la valeur courante
de la variable testée ;
3 Lorsque cette exécution est achevée, on va ignorer toutes les séquences des
instructions suivantes ;
3 La partie sinon est facultative. Elle est exécutée si aucune des valeurs n’est égale

Pr. O.IBRIHICH Informatique 1


Chapitre 3 Structures de contrôle : conditionnelles et répétitives 64

au sélecteur.

Exemple 3.7 Exemple d’algorithme de choix multiples : Algorithme permet-


tant d’afficher Mr, Mme ou Mlle selon ce qui a saisi l’utilisateur.

Algorithm 3.7 : MonsieurMadamme


1 Variables : abréviation : Chaîne de caractère
2 Selon abréviation faire
3 "Mr" : Ecrire( " Monsieur " ) ;
4 "Mme" : Ecrire( " Madame " ) ;
5 "Mlle" : Ecrire( " Mademoiselle " ) ;
6 Sinon
7 Ecrire( " Monsieur, Madame " ) ;
8 FinSelon

Exercice 3.1
Ecrire un algorithme qui affiche selon un numéro compris entre 1 et 12 le mois
équivalent.

3.4 Les structures conditionnelles (en python) : if, elif, else

En python, on utilise aussi des tests qui permettent d’exécuter des différentes
instructions selon la valeur d’une condition logique. La syntaxe d’un test condi-
tionnel est la suivante :
Syntaxe en Python
if condition1 :
instruction1
instruction2
............
else :
instruction3
instruction4
............

Pr. O.IBRIHICH Informatique 1


Chapitre 3 Structures de contrôle : conditionnelles et répétitives 65

q La clause else est facultative. Lorsque la condition condition1 est fausse et


qu’il n’y a aucune instruction à exécuter dans ce cas, la clause else est inutile.
q S’il est nécessaire d’enchaîner plusieurs tests d’affilée, il est possible de
condenser l’écriture avec le mot-clé elif :
Syntaxe en Python
if condition1 :
instruction1
instruction2
...........
elif condition2 :
instruction3
instruction4
............
elif condition3 :
instruction5
instruction6
...........
else :
instruction7
instruction8
...........

Exemple 3.8 Exemple de programme Python qui affiche le minimum de deux


nombres.

1 x = 4
2 y = 3
3 i f x < y: # ecriture classique
4 plus_petit = x
5 else :
6 plus_petit = y
7 p r i n t ( " Plus p e t i t : " , p l u s _ pe t i t )
8 Plus p e t i t : 3

Pr. O.IBRIHICH Informatique 1


Chapitre 3 Structures de contrôle : conditionnelles et répétitives 66

Exercice 3.2
Écrire un programme Python qui demande à l’utilisateur de saisir un nombre, puis
détermine si le nombre est positif, nul ou négatif.

3.5 Les structures répétitives ou itératives (en algorith-


mique)

q Un algorithme peut répéter le même traitement plusieurs fois, avec éventuel-


lement quelques variantes. Dans certain cas, Il est impossible de savoir à l’avance
combien de fois la même instruction doit être décrite.
q Lorsqu’on a besoin de répéter une action un certain nombre de fois, on utilise
les structures répétitives. La plupart des langages de programmation proposent
trois types des boucles (la boucle Pour, la boucle TantQue et la boucle Répéter).
Définition d’une boucle
Une boucle (ou itération) est une instruction de contrôle qui permet de répéter
plusieurs fois un ensemble d’instructions. Généralement, deux cas sont distingués :
- Le nombre de répétitions est connu.
- Le nombre des répétitions est inconnu ou variable.

On distingue trois sortes de boucles en langages de programmation :


q Les boucles tant que : on y répète des instructions tant qu’une certaine
condition est réalisée ;
q Les boucles répéter jusqu’à : on y répète des instructions jusqu’à ce qu’une
certaine condition soit réalisée ;
q Les boucles pour : on y répète des instructions en faisant évoluer un
compteur (variable particulière) entre une valeur initiale et une valeur finale.

Pr. O.IBRIHICH Informatique 1


Chapitre 3 Structures de contrôle : conditionnelles et répétitives 67

Définition d’un compteur


Un compteur est une variable associée à la boucle dont la valeur est incrémentée de
un à chaque itération. Il sert donc à compter le nombre d’itérations (répétitions)
de la boucle.

q La notion du compteur est associée particulièrement aux deux boucles :


"Répéter...jusqu’" et "Tant que...faire". Par contre, dans la boucle "Pour", c’est
l’indice qui joue le rôle du compteur.

3.5.1 La boucle TantQue

q Cette instruction permet de tester une condition et répéter le traitement


associé tant que cette condition est vérifiée.
q On ne connaît pas le nombre d’itérations à effectuer, mais à chaque itération,
on vérifie si la condition est vraie ou fausse. Dés que cette condition est fausse, on
sort de la boucle.
Syntaxe en algorithmique
TantQue <Condition> faire
Instruction(s) ;
FinTantQue

Format Pseudo-code

Figure 3.5 – Format Organigramme de la boucle TantQue

Pr. O.IBRIHICH Informatique 1


Chapitre 3 Structures de contrôle : conditionnelles et répétitives 68

Évaluation
q Les variables de la condition doivent être initialisées avant la boucle.
q Tant que la condition est vraie, on répète l’exécution du bloc d’instructions ;
q Dès qu’elle devient fausse, on sort de la boucle ;
q Si la condition est fausse initialement, le bloc d’instructions ne sera jamais
exécuté.
Remarque 3.3
3 La condition (dite condition de contrôle de la boucle) est évaluée avant chaque
itération ;
3 Le nombre d’itérations dans une boucle TantQue n’est pas connu au moment
d’entrée dans la boucle. Il dépend de l’évolution de la valeur de condition ;
3 Une des instructions du corps de la boucle doit absolument changer la valeur
de condition de vrai à faux (après un certain nombre d’itérations), sinon le pro-
gramme tourne indéfiniment ;
3 Il est possible que les instructions à répéter ne soient jamais exécutées.

Exemple 3.9 Exemple d’algorithme qui calcule la somme des entiers positifs
inférieurs ou égaux à N.

Algorithm 3.8 : Somme


1 Variables : I, N, S : entier
2 Début
3 Écrire ("Entrer la valeur de N ") ;
4 Lire (N) ;
5 I ← 0;
6 S ← 0;
7 TantQue (I <= N) faire
8 S ← S+I ;
9 I ← I+1 ;
10 FinTantQue
11 Ecrire ("La Somme est : ", S) ;
12 Fin

Pr. O.IBRIHICH Informatique 1


Chapitre 3 Structures de contrôle : conditionnelles et répétitives 69

Problème d’une boucle infinie


Considérons l’algorithme suivant :
Algorithm 3.9 : Somme
1 Variables : I : Entier
2 I ← 1;
3 TantQue I<= 10 faire
4 Ecrire("Bonjour") ;
5 FinTantQue

Exercice 3.3
1- Expliquer ce qu’il fait cet algorithme.
2- Proposer une correction pour éviter la boucle infinie.

Attention
+ Une des instructions du corps de la boucle doit absolument changer la valeur
de la condition de vrai à faux (après un certain nombre d’itérations), sinon le
programme va tourner indéfiniment.

Exercice 3.4
Écrire un algorithme qui demande un nombre de départ, et qui ensuite affiche
les dix nombres suivants. Par exemple, si l’utilisateur entre le nombre 17, le pro-
gramme affichera les nombres de 18 à 27.

3.5.2 La boucle Répéter ... Jusqu’à

q La boucle répéter est utilisée elle aussi lorsque le nombre d’itérations n’est pas
connu. On répète l’exécution d’un bloc d’instruction jusqu’à ce qu’une condition
soit vraie.
q Dans la boucle Répéter, le bloc instructions est exécuté au moins une fois
quelle que soit la condition. les instructions entre Répéter et jusqu’à sont exécutées
au moins une fois et leur exécution est répétée jusqu’à ce que condition soit vrai

Pr. O.IBRIHICH Informatique 1


Chapitre 3 Structures de contrôle : conditionnelles et répétitives 70

(tant qu’elle est fausse).


Syntaxe en algorithmique
Répéter
Instruction(s) ;
Jusqu’à <Condition>

Format Pseudo-code

Figure 3.6 – Format Organigramme de la boucle Répéter

Évaluation
q La liste d’instructions est exécutée, puis la condition est évaluée.
q Si elle est fausse, le corps de la boucle est exécuté à nouveau puis la
condition est réévaluée.
q Si elle a la valeur "Vrai", le programme sort de la boucle et exécute l’ins-
truction qui suit Jusqu’à.
Attention
+ Cette boucle est dangereuse car il n’y a pas de vérification de la condition
avant d’y entrer !.

Exemple 3.10 Exemple d’algorithme qui calcule la somme des entiers posi-
tifs inférieurs ou égaux à N.

Pr. O.IBRIHICH Informatique 1


Chapitre 3 Structures de contrôle : conditionnelles et répétitives 71

Algorithm 3.10 : Somme


1 Variables : I, N, S : entier
2 Début
3 Écrire ("Entrer la valeur de N ") ;
4 Lire (N) ;
5 I ← 0;
6 S ← 0;
7 Répéter
8 S ← S+I ;
9 I ← I+1 ;
10 Jusqu’à (I > N)
11 Ecrire ("La Somme est : ", S) ;
12 Fin

3.5.3 La boucle Pour

q La boucle Pour ... Faire permet de répéter une liste d’instructions un


nombre connu de fois. Elle s’arrête une fois que le nombre de répétitions est atteint.
Cette structure possède un indice (compteur) de contrôle d’itérations caractérisé
par :
- Une valeur initiale,
- Une valeur finale,
- Un pas de variation.
Syntaxe en algorithmique
Pour compteur ← valeur_initiale jusqu’à valeur_finale Faire
Instruction(s)
FinPour

Format Pseudo-code

Figure 3.7 – Format Organigramme de la boucle Pour

Pr. O.IBRIHICH Informatique 1


Chapitre 3 Structures de contrôle : conditionnelles et répétitives 72

Évaluation
q La variable compteur est de type entier. Elle est initialisée à la valeur initiale.
Le compteur augmente sa valeur de un (1) automatiquement à chaque tour de
boucle jusqu’à la valeur finale.
q Pour chaque valeur prise par la variable compteur, la liste des instructions
est exécutée.
q Lorsque la variable compteur vaut la valeur finale, le traitement est exécuté
une dernière fois puis le programme sort de la boucle.
Exemple 3.11 Exemple d’algorithme permettant de calculer la somme des
dix premiers nombres entiers.

Algorithm 3.11 : Somme


1 Variables : S, I : Entier
2 Début
3 S ← 0;
4 Pour I ← 1 jusqu’à 10 Faire
5 S ← S + I;
6 FinPour
7 Ecrire("La somme des dix premiers entiers est : ", S) ;
8 Fin

Remarque 3.3
3 Par défaut la variable compteur est incrémentée de 1 à chaque tour de boucle.
3 Pour modifier la valeur d’incrémentation, il suffit de rajouter le mot Pas (en
anglais step) et la valeur de ce pas à la boucle Pour.

La syntaxe générale de la structure Pour est :


Syntaxe en algorithmique
Pour compteur ← VI jusqu’à VF ValeursPas Faire
Instruction(s)
FinPour

Pr. O.IBRIHICH Informatique 1


Chapitre 3 Structures de contrôle : conditionnelles et répétitives 73

Où : VI c’est la valeur initiale et VF c’est la valeur finale.

Exercice 3.5
Écrire un algorithme qui permet de saisir un nombre entier et qui calcule la somme
des entiers pairs jusqu’à ce nombre. Par exemple, si l’on saisi 10, le programme
doit calculer : 0 + 2 + 4 + 6 + 8 + 10 = 30 ;

Lien entre Pour et TantQue


La boucle Pour est un cas particulier de TantQue (cas où le nombre d’itérations
est connu et fixé). Tout ce qu’on peut écrire avec Pour peut être remplacé avec
TantQue (la réciproque est fausse).
Pour compteur ← valInit jusqu’à valFin [par pas] faire
Instructions ;
FinPour
Peut être remplacé par : (cas d’un pas positif)
compteur ← valInit ;
TantQue compteur <= valFin faire
Instructions ;
compteur ← compteur+pas ;
FinTantQue
Choix d’un type de boucle
q Si on peut déterminer le nombre d’itérations avant l’exécution de la boucle,
il est plus naturel d’utiliser la boucle Pour.
q S’il n’est pas possible de connaître le nombre d’itérations avant l’exécution
de la boucle, on fera appel à l’une des boucles TantQue ou répéter...Jusqu’à.
q Pour le choix entre TantQue et répéter tantQue :
- Si on doit tester la condition de contrôle avant de commencer les instructions

Pr. O.IBRIHICH Informatique 1


Chapitre 3 Structures de contrôle : conditionnelles et répétitives 74

de la boucle, on utilisera TantQue ;


- Si la valeur de la condition de contrôle dépend d’une première exécution
des instructions de la boucle, on utilisera répéter...jusqu’à.

Figure 3.8 – Choix du type de la boucle

3.6 Les structures répétitives ou itératives (en Python)

Le langage Python propose deux types de boucles : While et For. Elles proposent
une écriture simplifiée pour répéter la même séquence d’instructions pour
tous les éléments d’un ensemble.
3.6.1 La boucle While

Répéter une partie de code tant qu’une expression booléenne (condition)


est vraie.
Syntaxe en Python
While <cond> :
Instruction 1
.......
Instruction N

Où cond est une condition qui détermine la poursuite de la répétition des


instructions incluses dans la boucle. Tant que celle-ci est vraie, les instructions
1 à N sont exécutées.

Pr. O.IBRIHICH Informatique 1


Chapitre 3 Structures de contrôle : conditionnelles et répétitives 75

Exemple 3.12 Exemple de programme Python permettant d’afficher les dix


premiers multiples de 7.

1 c=0
2 w h i l e c <10 :
3 p r i n t (7∗ c )
4 c=c+1

Exemple 3.13 Exemple de programme Python permettant de calculer la


somme 1+2 +3+...+N des N premiers entiers où N est un entier naturel.

1 N=i n t ( i n p u t ( " E n t r e z l a v a l e u r de N: " ) )


2 somme = 0
3 indice = 1
4 w h i l e i n d i c e <=N :
5 somme = somme + i n d i c e
6 indice = indice + 1
7 p r i n t ( somme )

3.6.2 La boucle For

L’instruction for permet d’exécuter un bloc de lignes en fonction d’une


séquence.
Syntaxe en Python
For variable in set :
Instruction 1
.......
Instruction N

Où variable est un élément de l’ensemble set. Les instructions 1 à N sont exé-


cutées pour chaque élément variable de l’ensemble set.

Exemple 3.14 Exemple de programme Python permettant d’utiliser la boucle


For.

Pr. O.IBRIHICH Informatique 1


Chapitre 3 Structures de contrôle : conditionnelles et répétitives 76

1 For e i n [ 1 , 4 , 5 , 0 , 9 , 1 ] :
2 print ( e )
3 For e i n [ " a " , " e " , " i " , " o " , " u " , " y " ] :
4 print ( e )
5 For e i n " python " :
6 print ( e )
7 For l e t t r e i n " c i a o " :
8 print ( l e t t r e )

La fonction range()
La boucle la plus répandue est celle qui parcourt des indices entiers compris
entre 0 et n-1. On utilise pour cela la boucle for et la fonction range(val1,val2),
cette fonction renvoie la "collection" des valeurs comprises entre val1 (inclus)
et val2 (exclus).

1 f o r i in range (5) :
2 print ( i )
3 f o r i in range ( 1 , 6 ) :
4 p r i n t ( i , end=" , " )

Ou encore, une autre notation de la fonction range(deb, fin, pas) :


q Les paramètres deb et pas sont optionnels ;
q range(a) : séquence des entiers dans [0, a[, c’est-à-dire dans [0, a-1] ;
q range(b,c) : séquence des valeurs [b, c[, c’est-à-dire dans [b, c-1] ;
q range(e, f, g) : séquence des valeurs [e, f[ avec un pas de g.
La forme de la boucle for devient :
Syntaxe en Python
For variable in range (deb,fin,pas) :
Instruction(s)

1 f o r i in range ( 1 , 1 1 , 2 ) :
2 print ( i )
3 f o r i in range (10 ,0 , −1) :
4 print ( i )

Pr. O.IBRIHICH Informatique 1


Chapitre 3 Structures de contrôle : conditionnelles et répétitives 77

Exercice 3.6
Écrire un programme Python qui permet de compter le nombre de voyelles (a, e, i,
o, u, y) dans la phrase "Python est un langage tres sympa" et afficher le résultat.

3.7 Les instructions break et continue

Les mots réservés break et continue sont utilisés pour modifier le cours nor-
mal du déroulement d’une boucle for ou d’une boucle while. Il arrive
en effet que dans certaines situations (détectées par un test if à l’intérieur d’une
boucle), on décide soit de sortir de la boucle (grâce à l’instruction break), soit
de sauter le reste des instructions de la boucle pour commencer direc-
tement l’itération suivante de la boucle (grâce à l’instruction continue).

3.7.1 L’instruction break

q Lors de l’écriture d’une boucle While, il n’est pas toujours adéquat de


résumer en une seule condition toutes les raisons pour lesquelles il est néces-
saire d’arrêter l’exécution de cette boucle.
q De même, pour une boucle for, il n’est pas toujours utile de visiter
tous les éléments de l’ensemble à parcourir.
q C’est le cas par exemple lorsqu’on recherche un élément, une fois qu’il a été
trouvé, il n’est pas nécessaire d’aller plus loin.
q L’instruction break provoque une sortie brutale de la boucle, mais le
programme continue son exécution après la boucle.

Exemple 3.15 Exemple de programme Python permettant d’utiliser la boucle


For avec l’instruction break.

Pr. O.IBRIHICH Informatique 1


Chapitre 3 Structures de contrôle : conditionnelles et répétitives 78

1 f o r x in range (1 , 11) :
2 i f x == 5 :
3 br ea k
4 p r i n t ( x , end=" " )
5 ...
6 1 2 3 4
7 p r i n t ( " Boucle i n t e r r o m p u e pour x =" , x )
8 Boucle i n t e r r o m p u e pour x = 5

3.7.2 L’instruction continue

q Pour certains éléments d’une boucle, lorsqu’il n’est pas nécessaire d’exé-
cuter toutes les instructions, il est possible de passer directement à l’élé-
ment suivant ou l’itération suivante.
q L’instruction continue permet de passer à l’itération suivante.

Exemple 3.16 Exemple de programme Python permettant d’utiliser la boucle


For avec l’instruction continue.

1 f o r x in range (1 , 11) :
2 i f x == 5 :
3 continue
4 p r i n t ( x , end=" " )
5 ...
6 1 2 3 4 6 7 8 9 10
7 #l a b o u c l e a s a u t e l a v a l e u r 5

3.8 Les notions de bloc d’instructions et d’indentation

3.8.1 Indentation

q La plupart des langages de programmation tels que C, C ++ et Java uti-


lisent des accolades pour définir un bloc de code, Python utilise l’indentation.
q Indenter un code consiste à introduire des espaces ou des tabulations
en début de ligne (décalage). Ce décalage est appelé indentation, et l’ensemble
des lignes indentées constitue un bloc d’instructions.

Pr. O.IBRIHICH Informatique 1


Chapitre 3 Structures de contrôle : conditionnelles et répétitives 79

q L’indentation est souvent utilisée à des fins esthétiques mais en Python,


elle fait partie de la sémantique.
q On utilise habituellement quatre espaces par indentation et on ne mé-
lange pas les tabulations et les espaces.
q Il est essentiel de maintenir une indentation cohérente au sein d’un même
bloc d’instructions. Une erreur d’indentation peut entraîner des erreurs de
syntaxe ou des comportements inattendus dans le programme.

3.8.2 Bloc d’instructions

q Un bloc d’instruction est défini par une indentation obtenue en dé-


calant le début des instructions vers la droite grâce à des espaces en début
de ligne (habituellement 4 espaces mais ce n’est pas obligatoire).
q Toutes les instructions d’un même bloc doivent être indentées exac-
tement au même niveau (c’est-à-dire décalées à droite d’un même nombre
d’espaces).

Figure 3.9 – Bloc d’instructions

Pr. O.IBRIHICH Informatique 1


Chapitre 3 Structures de contrôle : conditionnelles et répétitives 80

3.9 Les Commentaires

q En Python, les commentaires sont des annotations dans le code source


qui sont ignorées lors de l’exécution du programme.
q Les commentaires permettent aux développeurs d’inclure des explica-
tions, des notes ou des informations supplémentaires directement dans le code
source.
Il existe deux façons principales d’ajouter des commentaires en Python :
1- Commentaires sur une ligne :
Utilisez le symbole dièse # pour créer un commentaire sur une seule ligne. Tout
ce qui suit le # sur la même ligne est considéré comme un commentaire.
1 # C e c i e s t un commentaire s u r une l i g n e
2 x = 10 # Cela a s s i g n e l a v a l e u r 10 a l a v a r i a b l e x

2- Commentaires sur plusieurs lignes :


Vous pouvez également utiliser des triples guillemets simples (”’) ou doubles
(""") pour créer un commentaire sur plusieurs lignes.
1 ’’’
2 C e c i e s t un commentaire
3 sur p l u s i e u r s l i g n e s
4 ’’’

Pr. O.IBRIHICH Informatique 1

Vous aimerez peut-être aussi