0% ont trouvé ce document utile (0 vote)
94 vues22 pages

Structures Itératives en C : For, While, Do-While

Transféré par

Jendoubi Hafedh
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
94 vues22 pages

Structures Itératives en C : For, While, Do-While

Transféré par

Jendoubi Hafedh
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd

Chapitre 3: Structures

Répétitives (Itératives)
Niveau: 1A
Version: 1.0
Date: 14-09-2016
Objectifs
A la fin de ce chapitre, l’étudiant doit :

 Appliquer les structures itératives : for, while, do…while,

 Connaître la différence entre les trois boucles

 Appliquer chaque structure itérative dans son contexte.


Plan
• Introduction

• La boucle « For »

• Les boucles while et do…while

• La règle à retenir
Intoduction
• Une ou plusieurs instructions qui se répètent:

Un cas ins°1
simple ins°2
ins°3 ins°1
ins°1 ins°2
ins°2
ins°3
ins°3
ins°1 …
ins°2
ins°3

Il existe 2 familles de boucles en langage C:


1. For (nombre d’itérations connu à l’avance)
2. While et Do … While (nombre d’itérations non connu
à l’avance).
La boucle « for »
La boucle « for »
Syntaxe de la boucle For:
for
(Init_compteur;Condition;Inc(Déc)rémentation_compte
ur)
{
… Bloc d’instructions


}
• Cette boucle permet d’exécuter un bloc d’instructions un certain nombre de fois (ce nombre
est connu à l’avance).
• Une variable d’itération (appelée Compteur) servira à compter le nombre de répétitions
effectuées
• Si le bloc contient une seule instruction, les accolades ne sont plus nécessaires.
Schéma de la boucle "For"


A B D
for
(Init_compteur;Condition;Inc(Déc)rémentation_compte
ur)
{
C1 Si la Condition est

vraie


} C2 Si la Condition est

fausse

Exemple
// Programme utilisant une boucle for

#include <stdio.h>
void main ()
{
int a, k=10;
for (a=1; a <= k; a++)
printf (‘’Bonjour’’);
}
Exerçons-nous?
// Programme utilisant une boucle for Incorrect:
Erreur de programmation
Modification de la limite
de la boucle !!!
#include <stdio.h>
void main ()
{
int a, k=100;
for (a=1; a <= k+100; a++)
k = k+10; Syntaxiquement correct

}
Exercice d’application TD

• Correction des exercices 1 et 2


La boucle : while
La boucle while
Tant qu’une condition est vraie, répéter un bloc d’instructions.

Expression logique
simple ou combinée. Cette condition
while (condition) est testée avant chaque itération.
{

bloc d'instructions
bloc d’instructions exécuté si la condition
… est vraie (0 ou n fois)
}

Si la boucle ne comporte qu’une instruction, les accolades ne


sont plus nécessaires.
Problème ?

Comment calculer la moyenne de plusieurs étudiants sachant


qu’on ne connaît pas leur nombre?
La solution
#include <stdio.h>
void main()
{
float Note1, Note2, Moyenne;
char reponse = 'O';

while (reponse == 'O') || (reponse == ‘o')


{
printf ("Donner la note 1: ");
scanf ("%f", &Note1);
printf ("Donner la note 2: ");
scanf ("%f", &Note2);
Moyenne = (Note1 * 0.8) + (Note2 * 0.2); // possibilité de saisir les coefficients
printf (“Moyenne de l’étudiant: %f", Moyenne);
printf ("Voulez-vous calculer la moyenne d’un autre étudiant (O/N)?");
scanf ("%c", &reponse);
}
}
Que fait ce programme ?
#include <stdio.h>
void main ()
{
int n = 2;
while ( (n%2) == 0) && (n != 0) )
{
printf (“Donner un entier : “);
scanf (“%d”, &n);
}
}

On sort de la boucle quand l’utilisateur saisit un entier impair ou nul.


Exercice d’application TD

• Correction des exercices 3 et 4


La boucle : do .. while
La boucle do..while
do {
bloc d'instructions
}
while (condition) ;

La structure do..while ressemble à la structure while, sauf que…

La structure while évalue la condition avant d’exécuter le bloc


d’instructions, alors que la structure do..while évalue la condition
après avoir exécuté le bloc d’instructions (à la fin de l’itération).

Avec la boucle do..while le bloc d’instructions


est exécuté au moins une fois.
while ou do..while ? (1)
int i;
printf(“Combien il vous reste de séances de cours aujourd’hui?” );
scanf(“%d”, &i);
do
{ printf(“Il reste %d séances ”, i );
i--;
}
while (i > 0); while

int i;
printf(“Combien il vous reste de séances de cours aujourd’hui?” );
scanf(“%d”, &i);
while (i > 0)
{ printf(“Il reste %d séances ”, i );
i--;
}
while ou do..while (2)
float note;
do
{
printf(“Entrer votre note:” );
scanf(“%f”, &note);
}
while (note<0) || (note>20);
do..while

printf(“Entrer votre note: ” );


scanf(“%f”, &note);
while (note<0) || (note>20)
{
printf(“Entrer une note:” );
scanf(“%note”, &note);
}
Application

• Apporter les modifications nécessaires pour Ex 2 en ajoutant un

contrôle de saisie sur les nombre n1 et n2, ces nombres doivent être

positifs et n2>n1.

• Correction de l’exercice 5 et 6
La règle à retenir
1. Si on connaît à
l’avance le nombre de Boucle for
fois que le traitement
sera répété
2. Si on ne connaît pas à
l’avance le nombre de fois
que le traitement sera
répété:
a) Si le traitement doit être
Boucle do…while
exécuté au moins une
fois
b) Si le traitement peut ne
pas être exécuté du tout (0 Boucle while
fois)

Vous aimerez peut-être aussi