Exercices sur les itérations
L'itération en informatique est le terme
consacré pour désigner l'exécution répétée
d'une succession d'instructions dans un programme informatique. Dans
le jargon informatique anglo-saxon, on rencontre en général
le terme « loop », qui est
souvent traduit en français par « boucles ».
- Les itérations peuvent
servir à :
-
afficher des listes dont les élément peuvent être
calculés, comme une table de conversion;
-
répéter un traitement pour un ensemble de données,
comme calculer la paye de chaque employé;
-
calculer les éléments d'une suite ou d'une série
mathématique;
-
gérer l'interaction avec l'utilisateur du programme dans un
système de contrôle d'entrée;
-
capturer les évènements successifs émis par une
interface graphique ou des capteurs.
Syntaxe C des itérations
Les itérations en C s'écrivent de trois manières
différentes, qui sont partiqument équivalentes :
Syntaxe
|
Fonctionnement
|
Exemple
|
while ( condition )
{
bloc_instructions
}
|
Le bloc d'instructions est répété
tant que la condition est vraie.
|
int n = 0;
while ( n < 100)
{
printf("%d\n", n);
++n;
};
|
do
{
bloc_instructions
}
while ( condition )
|
Le bloc d'instructions est exécuté une
fois puis répété tant que la condition
est vraie.
Cette syntaxe est rarement utilisée, car la première
forme d'itération peut réaliser la même chose
en s'arrangeant pour que la condition soit toujours vraie la
première fois.
|
int n = 0;
do
{
printf("%d\n", n);
++n;
} while ( n < 100 );
|
for ( initiale; condition; suite)
{
bloc_instructions
}
|
L'expression initiale est exécutée une
fois, puis la condition est testée et le bloc
d'instructions est répété tant que la
condition est vraie. Après chaque exécution
du bloc d'instructions et avant chaque test de la
condition est exécutée l'expression suite.
Cette syntaxe est utilisée quand on connaît le
nombre d'itérations que l'on souhaite que le programme
réalise.
|
int n;
for(n = 0; n<100; ++n)
{
printf("%d\n", n);
};
|
Il est demandé de réaliser
chacun des exercices avec la première syntaxe (while) et la
troisième syntaxe (for).
Itérations simples avec compteur
- Exercice 1 :
-
Ecrire un programme qui affiche 100 fois la phrase « Le
langage de programmation C est le plus populaire. »
-
Exercice 2 :
-
Compléter le programme précédent en demandant à
l'utilsateur de saisir une phrase.
-
Exercice 3 :
-
Compléter le programme précédent en demandant à
l'utilisateur le nombre n de répétitions à
effectuer.
Calcul de suites
- Exercice 4 :
-
Ecrire un programme qui affiche tous les nombres de 1 à 100.
-
Exercice 5 :
-
Ecrire un programme qui affiche tous les nombres pairs inférieurs
à 100.
-
Exercice 6 :
-
Ecrire un programme qui affiche les 20 premiers termes d'une
progression arithmétique de raison -3 et de premier terme
19.
C'est à dire : 19, 16, 13, 10, 7, 4, 1, -2, -5, -8,
-11, -14, -17, -20, -23, -26, -29, -32, -35, -38 -
Exercice 7 :
-
Modifier le programme précédent pour demander le
premier terme, la raison et le nombre de termes à calculer à
l'utilisateur.
-
Exercice 8 :
-
Ecrire un programme qui affiche les 10 premiers termes d'une
progression géométrique de raison 2 et de premier
terme 1.
C'est à dire : 1, 2, 4, 8, 16, 32, 64, 128, 256,
512
-
Exercice 9 :
-
Modifier le programme précédent pour demander le
premier terme, la raison et le nombre de termes à calculer à
l'utilisateur.
-
Exercice 10 :
-
Ecrire un programme qui affiche une table de conversion des degrés
Kelvin en Celsius et Fahrenheit.
On affichera les degrés
Kelvin de 5 en 5 pour des valeurs décroissantes allant de
1000°K à 0°K.
L'échelle des Celsius est
identique à celle des Kelvin mais décalée de
273.15°, 0°K = -273.15°C
L'échelle des
Fahrenheit est définie par deux points : 32°F = 0°C
et 212°F = 100°C
Calcul de séries
- Exercice 11 :
-
Ecrire un programme qui calcule la somme des nombres de 10 à
1000.
-
Exercice 12 :
-
Ecrire un programme qui calcule la somme des inverses de n, soit
1+1/2+1/3+1/4.....
On demandera à l'utilisateur le nombre
de termes à calculer. -
Exercice 13 :
-
Ecrire un programme qui calcule la somme pour n donnée des
puissances de ½, soit ½+(½)2+(½)3+(½)4+(½)5...
On
n'utilisera pas la fonction de calcul de puissance : pow -
Exercice 14 :
-
Ecrire un programme qui calcule xn par une méthode
itérative, avec x est un nombre décimal demandé
à l'utilisateur et n un entier positif demandé à
l'utilisateur.
-
Exercice 15 :
-
Modifier le programme précédent pour diminuer le
nombre de multiplications en tenant compte du fait que : xn
= (x.x)p si n=2p ou xn = x.(x.x)p
si n = 2p+1.
-
Exercice 16 :
-
Ecrire un programme qui caclule n!, qui est le produit de tous les
nombres entiers de 1 àn, n est donné par
l'utilisateur.
Quel est la plus grande valeur de n pour laquelle
on peut calculer n! Avec un programme en C.
Interaction avec l'utilisateur
- Exercice 17 :
-
Ecrire un programme qui calcule la somme et la moyenne des nombres
positifs donnés par l'utilisateur, le programme lira des
nombres tant qu'ils seront positifs.
-
Exercice 18:
-
Ecrire un programme qui calcule la somme et la moyenne des nombres
donnés par l'utilisateur, le programme lira en premier le
nombre de valeurs à lire.
-
Exercice 19:
-
Ecrire un programme qui convertit des francs en euros et
réciproquement, on rappelle que 1 euro vaut 6,55957
francs.
On proposer un menu à l'utilisateur avec trois
possibilités : 1 : convertir de euros vers francs, 2
convertir de francs vers euros et 0 : quitter leprogramme. -
Exercice 20:
-
Modifier le programme précédent afin de pouvoir saisir
un taux de conversion, on ajoutera donc une entrée de menu,
et on fera des conversions entre monnaie locale et monnaie
étrangère.
Jeux
- Exercice 21:
-
Ecrire un programme qui demande au joueur de devinez un nombre
entier caché entre 1 et 100.
Le programmeur placera le
nombre caché dans le programme.
Exemple d'exécution
du programme :
Tapez un nombre entre 1 et 100 : 25
Le nombre 25 est trop petit !
Tapez un nombre entre 1 et 100 : 75
Le nombre 75 est trop grand !
Tapez un nombre entre 1 et 100 : 50
Le nombre 50 est trop grand !
Tapez un nombre entre 1 et 100 : 40
Le nombre 40 est trop petit !
Tapez un nombre entre 1 et 100 : 45
Le nombre 45 est trop grand !
Tapez un nombre entre 1 et 100 : 42
Bravo, vous avez obtenu la solution en 6 coups !
-
-
Exercice 22:
-
Cette fois écrire une programme d'intelligence artificielle,
qui devine le nombre auquel vous avez pensé.
Le programme
fait des suggestions et vous répondez par '+', '-' ou '=',
suivant que le nombre auquel vous avez pensé est plus grand,
plus petit ou égal au nombre proposé.
Exemple
d'exécution :
Voici ma proposition : 50
Donnez-moi votre indice +, - ou = : -
Voici ma proposition : 25
Donnez-moi votre indice +, - ou = : +
Voici ma proposition : 37
Donnez-moi votre indice +, - ou = : +
Voici ma proposition : 43
Donnez-moi votre indice +, - ou = : -
Voici ma proposition : 40
Donnez-moi votre indice +, - ou = : +
Voici ma proposition : 41
Donnez-moi votre indice +, - ou = : +
Voici ma proposition : 42
Donnez-moi votre indice +, - ou = : =
J'ai obtenu la solution en 7 coups !
-
-
Exercice 23:
-
Le jeu des allumettes se joue à deux, au départ on
place 17 allumettes sur la table, chaque joueur à son tour
peut retirer une, deux ou trois allumettes. Le joueur qui ramasse la
dernière allumette a perdu.
Ecrire un programme qui permet
de jouer à deux joueurs.
On pourra agrémenter le
programme pour demander le nom des joueurs. -
Exercice 24:
-
Modifier le programme des allumettes pour pouvoir jouer contre
l'ordinateur.
-
Exercice 25:
-
Ecrire un jeu de pendu, le joueur doit deviner en moins de 10 coups
un mot ou une phrase caché par l'ordinateur.
-