Le langage C++ - Charlie-Soft

publicité
Les boucles
1
Les boucles en C++
Pseudo-code
C++
Tant que … Faire
while
Pour
for
Répéter … Jusqu'à
do...while
2
Les boucles Tant que
Tant 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 Pour
Pour 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)
for (i=0; i<n; i=i+1)
{
{
cout<<i<<endl;
cout<<i<<endl;
i=i+1;
}
}
return 0;
}
6
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)
for (i=0; i<n; i=i+1)
{
{
cout<<i<<endl;
cout<<i<<endl;
i=i+1;
}
}
return 0;
}
7
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)
for (i=0; i<n; i=i+1)
{
{
cout<<i<<endl;
cout<<i<<endl;
i=i+1;
}
}
return 0;
}
8
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)
for
(i=0; i<n; i=i+1)
{
{
cout<<i<<endl;
cout<<i<<endl;
i=i+1;
}
}
return 0;
}
9
Les boucles Jusqu’à
Répéter
<instructions>
Jusqu'à <expression>
do
instruction;
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 fois
 Peut être intéressant lorsque l’on valide une saisie :
 Demander un chiffre, jusqu’à ce qu’il soit compris entre
0 et 100…
11
Principe d’itération
 Une 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
BTS IRIS 1ère année
Le langage C++
12
Principe d’itération
C’est ici qu’on doit avoir le
résultat dans une variable
C’est ici qu’on réfléchit
aux valeurs de départ
Etat initial
Etat final
On quitte la boucle car la
condition est atteinte
On entre dans
la boucle
Etats
intermédiaires
On fait un calcul qui permet de faire avancer l’état
du calcul : on doit se rapprocher de l’état final
13
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
Téléchargement