Les boucles 1. Les boucles en C++ 2 Pseudo-codeC++ Tant que … Fairewhile Pourfor Répéter …...

Preview:

Citation preview

Les boucles

1

Les boucles en C++

2

Pseudo-code C++Tant que … Faire while

Pour for

Répéter … Jusqu'à do...while

Les boucles Tant queTant que expression Faire Instructions

FinTantque

while (expression)Instruction;

while (expression){

Instruction1;Instruction2;

}

3

Exemple 1 : afficher les n premiers nombres

# include <iostream.h> using namespace std;int main (void){int n, i=0 ;cout << " Saisir n : « << endl;cin >> n;while (i < n){

cout<<i<<endl;i=i+1;

}return 0;

}

4

Les boucles PourPour variable de debut à fin Faire Instructions

FinTantque

For(i=debut; i<fin; i=i+1)Instruction;

For(i=debut; i<fin; i=i+1){

Instruction1;Instruction2;

}

5

Exemple 2 :afficher les n premiers nombres

# include <iostream.h> using namespace std;int main (void){int n, i=0 ;cout << " Saisir n : « << endl;cin >> n;while (i < n){

cout<<i<<endl;i=i+1;

}return 0;

}

6

for (i=0; i<n; i=i+1){

cout<<i<<endl;}

Exemple 2 :afficher les n premiers nombres

# include <iostream.h> using namespace std;int main (void){int n, i=0 ;cout << " Saisir n : « << endl;cin >> n;while (i < n){

cout<<i<<endl;i=i+1;

}return 0;

}

7

for (i=0; i<n; i=i+1){

cout<<i<<endl;}

Exemple 2 :afficher les n premiers nombres

# include <iostream.h> using namespace std;int main (void){int n, i=0 ;cout << " Saisir n : « << endl;cin >> n;while (i < n){

cout<<i<<endl;i=i+1;

}return 0;

}

8

for (i=0; i<n; i=i+1){

cout<<i<<endl;}

Exemple 2 :afficher les n premiers nombres

# include <iostream.h> using namespace std;int main (void){int n, i;cout << " Saisir n : « << endl;cin >> n;while (i < n){

cout<<i<<endl;i=i+1;

}return 0;

}

9

for (i=0; i<n; i=i+1){cout<<i<<endl;}

Les boucles Jusqu’àRépéter<instructions>

Jusqu'à <expression>

doinstruction;

while (expression);

do{instruction1;instruction2;

}while (expression);

10

Les boucles Jusqu’àAvantage par rapport au Tant que :

La boucle est exécutée au moins une foisPeut être intéressant lorsque l’on valide une

saisie :Demander un chiffre, jusqu’à ce qu’il soit

compris entre 0 et 100…

11

BTS IRIS 1ère année Le langage C++ 12

Principe d’itérationUne itération est une boucle dans laquelle

la valeur d’une (ou plusieurs) variable dépend des valeurs au tour précédent

Démarche itérative = cheminement d'un état initial à un état final recherché

Le cheminement vers l'état recherché se fait en passant par des états intermédiaires

Une boucle permet de progresser d'un état à un autre état, en se rapprochant de l'état final. Lorsque l'état final est atteint, la boucle doit s'arrêter

Principe d’itération

13

Etat initial

Etats intermédiair

es

Etat final

On entre dans la boucle

C’est ici qu’on réfléchit aux valeurs de départ

C’est ici qu’on doit avoir le résultat dans une variable

On quitte la boucle car la condition est atteinte

On fait un calcul qui permet de faire avancer l’état du calcul : on doit se rapprocher de l’état final

Exemples :Calcul de la somme des 100 premiers entiers

État final ? Que veut on? Comment on y arrive ?

État initial ? On débute comment?

États intermédiaires ? Que fait on pour se rapprocher de l’état final ?

14

Exemples :Calcul de la somme des 100 premiers entiers :

État final ? On veut avoir une variable qui contient la somme des

100 premiers entiers (somme) On y arrive quand on aura fait 100 additions

(cpt<100)État initial ?

On a fait aucune somme, donc on initialise à 0 somme On a fait aucune addition, donc on initialise à 0 cpt

États intermédiaires ? On ajoute à somme le nombre auquel on est rendu :

somme=somme+cpt On incrémente le compteur (on a fait un tour de plus)

15

Exemples :Demander un nombre à l’utilisateur, tant que

le nombre saisi est différent de 321 :État final ?

Que veut on? Comment on y arrive ?

État initial ? On débute comment?

États intermédiaires ? Que fait on pour se rapprocher de l’état final ?

16

Exemples :Compter les nombres pairs sur 20 entiers saisis :

État final ? On veut avoir une variable qui contient le nombre de

nombres pairs (nbPaire) On y arrive quand on aura fait 20 tests (cpt<20)

État initial ? On a rencontré aucun nombre pair, on initialise nbPaire à

0 On a fait aucune comparaison, donc on initialise à 0 cpt

États intermédiaires ? On teste si le nombre courant est pair, si oui, on

incrémente :if(cpt%2==0)

nbPaire=nbPaire+1 ; 17

Exemples :Demander un nombre à l’utilisateur, tant que

le nombre saisi est différent de 321 :État final ?

Que veut on? Comment on y arrive ?

État initial ? On débute comment?

États intermédiaires ? Que fait on pour se rapprocher de l’état final ?

18

Exemples :Demander un nombre à l’utilisateur, tant que

le nombre saisi est différent de 321 :État final ?

Une variable qui contient le nombre saisi par l’utilisateur

Quand le nombre saisi est égal à 321 (nombre==321)État initial ?

On fait saisir le nombre par l’utilisateur (cin>>nombre).

États intermédiaires ? On redemande le nombre à l’utilisateur…

19

Recommended