Ch3 : Les Structures répétitives

publicité
Ch3 : Les Structures répétitives
Fathi Mguis
Atelier de programmation 1
LFSI1/LARI1
A.U : 2014-2015
Plan
1
Introduction
2
La structure ”while”
3
La structure ”for”
4
La structure ”do ... while”
5
Choix de la structure répétitive
Fathi Mguis (At. Prog LFSI1/LARI1)
Ch3 : Les Structures répétitives
A.U : 2014-2015
2 / 14
1. Introduction
Il est souvent nécessaire d’exécuter plusieurs fois une action ou un groupe
d’actions, non pas indéfiniment mais un certain nombre de fois (pas
forcement connu à l’avance) : c’est la notion de boucle.
Fathi Mguis (At. Prog LFSI1/LARI1)
Ch3 : Les Structures répétitives
A.U : 2014-2015
3 / 14
2. La structure ”while”
Syntaxe :
while(<Condition>)
{
<Bloc d’instructions>;
}
1
Tant que la <Condition> fournit une valeur différente de zéro, le
est exécuté.
Si la <Condition> fournit la valeur zéro, l’exécution continue avec
l’instruction qui suit le bloc d’instructions.
Le <bloc d’ instructions > est exécuté zéro ou plusieurs fois.
La partie <Condition> peut désigner :
<bloc d’ instructions >
2
3
4
Une variable de type numérique,
Une expression fournissant un résultat numérique.
5
La partie <bloc d’ instructions > peut désigner :
Un bloc d’instructions compris entre accolades,
Une seule instruction terminée par un point virgule.
Fathi Mguis (At. Prog LFSI1/LARI1)
Ch3 : Les Structures répétitives
A.U : 2014-2015
4 / 14
2. La structure ”while”
Exemple1
int i = 0 ;
while (i<10)
{ printf("%d\t ",i) ;
i++ ;
}
Exemple2
int i = 0 ;
while (i<10)
printf("%d\t ",++i) ;
Exemple3
int i = 10 ;
while (i)
printf("%d\t ",i--) ;
Fathi Mguis (At. Prog LFSI1/LARI1)
Ch3 : Les Structures répétitives
A.U : 2014-2015
5 / 14
3. La structure ”for”
Syntaxe
for(<expression-I>; <expression-C>; <expression-R>)
<Bloc d’instructions>;
Est équivalente à :
<expression-I>;
while(<expression-C>)
{ <Bloc d’instructions>;
<expression-R>;
}
expression-I : une expression initialisant les variables de contrôle qu’il
faut initialiser avant d’entrer dans la boucle.
expression-C : la condition de bouclage.
expression-R : une expression permettant de réinitialiser
(incrémentation, décrémentation) les variables de contrôles utilisées.
Fathi Mguis (At. Prog LFSI1/LARI1)
Ch3 : Les Structures répétitives
A.U : 2014-2015
6 / 14
3. La structure ”for”
Fonction de l’instruction ”for”
1
2
Exécuter les instructions initiales de ”for” (expression-I).
Evaluer la condition : (expression-C)
Faux (0) : branchement à l’instruction qui suit le fin du bloc ”for”.
Vrai (1) :
1
2
3
3
Exécution des instructions du corps ”for”.
Exécution de la liste des instructions de réitération (expression-R).
Revenir à (2)
Fin de l’instruction ”for”.
Exemple1
int i ;
for( i=0; i<=20; i++)
printf("Le carré de %d est %d\n ",i,i*i) ;
Fathi Mguis (At. Prog LFSI1/LARI1)
Ch3 : Les Structures répétitives
A.U : 2014-2015
7 / 14
3. La structure ”for”
Exemple 2 :
1- /* Calcul de la somme de 1+2+3 ... 100*/
int i ,S;
for( i=1,S=0 ;i<=100 ;i++)
S+=i ;
printf("La somme de 1 à 100 = %d\n ",S) ;
2- /*Notation utilisant la structure while*/
int i,S ;
i=0 ;
S=0 ;
while(i<+100)
{
S+=i ;
i++ ;
}
printf("La somme de 1 à 100 = %d\n ",S) ;
Fathi Mguis (At. Prog LFSI1/LARI1)
Ch3 : Les Structures répétitives
A.U : 2014-2015
8 / 14
3. La structure ”for”
3int i ,S;
for( i=1,S=0 ;i<=100 ; S+=i ,i++) ;
printf("La somme de 1 à 100 = %d\n ",S) ;
4int i =0,S=0;
for( ; i<=100 ; S+=i ,i++) ;
printf("La somme de 1 à 100 = %d\n ",S) ;
Fathi Mguis (At. Prog LFSI1/LARI1)
Ch3 : Les Structures répétitives
A.U : 2014-2015
9 / 14
3. La structure ”for”
Organigramme de flux pour les boucles for et while :
Fathi Mguis (At. Prog LFSI1/LARI1)
Ch3 : Les Structures répétitives
A.U : 2014-2015
10 / 14
4. La structure ”do ... while”
Syntaxe :
do
{
<Bloc d’instructions1>;
}while (<Condition>);
1
La boucle ”do-while” teste sa condition après exécution de(s)
instruction(s) du corps de la boucle.
2
Le(s) instruction(s) du ”do-while” sont effectuées au moins une fois
et aussi longtemps que la ¡Condition¿ fournit une valeur différente de
zéro.
3
En pratique, la structure ”do-while” n’est pas si fréquente que while ;
mais dans certains cas, elle fournit une solution plus élégante. Une
application typique de ”do-while” est la saisie de données qui doivent
remplir une certaine condition.
Fathi Mguis (At. Prog LFSI1/LARI1)
Ch3 : Les Structures répétitives
A.U : 2014-2015
11 / 14
4. La structure ”do ... while”
Exemple1 :
int N;
do
{
printf(" Donner un nombre entre 1 et 10 :");
scanf("%d",&N) ;
}while(N<1 || N>10);
Fathi Mguis (At. Prog LFSI1/LARI1)
Ch3 : Les Structures répétitives
A.U : 2014-2015
12 / 14
4. La structure ”do ... while”
Exemple2 :
#include<stdio.h>
void main()
{
int n ,div;
printf(" Donner le nombre à diviser :");
scanf("%d",&n) ;
do
{
printf(" Entrer le diviseur :");
scanf("%d",&div) ;
}while( !div);
printf("%d/%d = %f\n",n,div,(float)n/div);
}
Fathi Mguis (At. Prog LFSI1/LARI1)
Ch3 : Les Structures répétitives
A.U : 2014-2015
13 / 14
5. Choix de la structure répétitive
1
Si le bloc d’instructions ne doit pas être exécuté si la condition est
fausse, alors utilisez ”while” ou ”for”.
2
Si le bloc d’instructions doit être exécuté au moins une fois, alors
utilisez ”do...while”.
3
Si le nombre d’exécutions du bloc d’instructions dépend d’une ou de
plusieurs variables qui sont modifiées à la fin de chaque répétition,
alors utilisez ”for”.
4
Le choix entre ”for” et ”while” n’est souvent qu’une question de
préférence ou d’habitudes.
Fathi Mguis (At. Prog LFSI1/LARI1)
Ch3 : Les Structures répétitives
A.U : 2014-2015
14 / 14
Téléchargement