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 à :

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.