École préparatoire aux sciences et techniques, Annaba
Année universitaire 2013/2014
Module : Informatique 2
Série de TD no 3 : Itérations et boucles
Rappel sur les boucles
1. En C++, quelles sont les 3 manières d’executer des instructions de manière répé-
titive.
2. Donner la syntaxe d’une boucle while.
3. Donner la syntaxe d’une boucle for.
4. Donner la syntaxe d’une boucle do ... while.
5. Quelle différence existe entre une boucle while et une boucle do ... while ?
6. De manière générale, quand est-ce qu’il est préférable d’utiliser une boucle for ?
Exercice 1
Qu’affiche chaqu’un des programmes suivants ?
1. double x = 4.15;
for (int i=0; i < 3; i++) {
x *= 2;
cout << x << endl;
}
2. for (int i=0; i<8;i++) {
if (i%2==0)
cout << i+1 << "\t";
else if (i%3==0)
cout << i*i << "\t";
else if (i%5==0)
cout << 2*i-1 << "\t";
else
cout << i << "\t";
}
1
3. for (int i=0;i<8;i++) {
if (i%2==0)
cout << i+1 << endl;
else if (i%3==0)
continue;
else if (i%5==0)
break;
cout << "fin de l’itération" << endl;
}
cout << "fin du programme";
Exercice 2
Écrire un programme qui calcule et imprime la somme des carrés des nombres infe-
rieurs ou égales à un nombre donné. Par exemple, si 5 est entré, le programme imprimera
55, qui égale à 12 + 22 + 32 + 42 + 52 .
Exercice 3
Convertir cette boucle for en boucle while.
for (int i=1; i <= n; i++)
cout << i*i << " ";
Exercice 4
Ecrire un programme qui demande à l’utilisateur d’entrer un nombre entre 1 et 9 et
affiche la table de multiplication de ce nombre. Par exemple, si 4 est entré, le programme
affichera :
4 * 1 = 4
4 * 2 = 8
4 * 3 = 12
4 * 4 = 16
4 * 5 = 20
4 * 6 = 24
4 * 7 = 28
4 * 8 = 32
4 * 9 = 36
Exercice 5
Écrire un programme qui calcule le résultat de la division entière de deux nombre en
utilisant des soustractions succéssives. Par exemple, pour calculer 14 / 3, on soustrait 3
2
à 14 jusqu’à ce qu’on obienne une valeur inférieur à 3, le résultat de la division est égale
au nombre de soustractions effectuées :
14 - 3 = 11, 11 > 3 on continue
11 - 3 = 8, 8 > 3 on continue
8 - 3 = 5, 5 > 3 on continue
5 - 3 = 2, 2 < 3 on arrête, 4 soustractions ont été effectuées
Problème : Le nombre mystère
Le nombre mysère est un jeu dans lequel l’ordinateur tire de manière aléatoire un
nombre entre 1 et 100 et demande à l’utilisateur de découvrir ce nombre mystère en
un minimum de tentatives. À chaque tentative, l’ordinateur indique à l’utilisateur si le
nombre qu’il a entré est supérieur ou inférieur au nombre mystère. Quand l’utilisateur
trouve le nombre mystère, l’ordinateur le félicite et lui indique le nombre de tentative
qu’il a effectuée. La console suivante montre le déroulement du jeu du nombre mystère :
Entrez un nombre entre 1 et 100
90
Entrez un nombre plus petit
60
Entrez un nombre plus grand
80
Entrez un nombre plus petit
72
Entrez un nombre plus petit
65
Entrez un nombre plus petit
62
Entrez un nombre plus petit
61
Bravo vous avez trouvé le nombre mystère 61 en 7 tentative(s)
Ecrire en C++ le jeu du nombre mystère.
Remarque Pour générer un nombre aléatoire entre 1 et 100 en c++, on utilise les
instructions suivantes :
srand(time(NULL));
int nombreMystere = rand() % 100 + 1;