Previous Up Next
Version pdf - Version archive

2.4  Boucles

2.4.1  Compréhension

Exercice 1

Qu’affiche le programme suivant ?

using System; namespace tests { class MainClass { public static void Main (string[] args) { int a = 1, b = 0, n = 5; while(a <= n) b += a++; Console.WriteLine(a + ", " + b); } } }

Exercice 2

Qu’affiche le programme suivant ?

using System; namespace tests { class MainClass { public static void Main (string[] args) { int a, b, c = 0, d, m=3, n=4; for (a = 0 ; a < m ; a++) { d = 0; for(b = 0 ; b < n ; b++) d+=b; c += d; } Console.WriteLine(a + ", " + b + ", " + c + ", " + d + "."); } } }

Exercice 3

Qu’affiche le programme suivant ?

using System; namespace tests { class MainClass { public static void Main (string[] args) { int a, b, c, d; a = 1; b = 2; c = a/b; d = (a==b)?3:4; Console.WriteLine(c + ", " + d + "."); a = ++b; b %= 3; Console.WriteLine(a + ", " + b + "."); b = 1; for(a = 0 ; a <= 10 ; a++) c = ++b; Console.WriteLine(a + ", " + b + ", " + c + ", " + d + "."); } } }

2.4.2  Utilisation de toutes les boucles

Les exercices suivants seront rédigés avec les trois types de boucle : tant que, répéter jusqu’à et pour.

Exercice 4 - Compte à rebours

Écrire un programme demandant à l’utilisateur de saisir une valeur numérique positive n et affichant toutes les valeurs n, n−1, …, 2, 1, 0.

corrigé

Exercice 5 - Factorielle

Ecrire un programme calculant la factorielle (factorielle n = n! = 1 × 2 × … × n et 0! = 1) d’un nombre saisi par l’utilisateur.

corrigé

2.4.3  Choix de la boucle la plus appropriée

Pour les exercices suivants, vous choisirez la boucle la plus simple et la plus lisible.

Exercice 6 - Table de multiplication

Écrire un programme affichant la table de multiplication d’un nombre saisi par l’utilisateur.

corrigé

Exercice 7 - Tables de multiplications

Écrire un programme affichant les tables de multiplications des nombres de 1 à 10 dans un tableau à deux entrées.

corrigé

Exercice 8 - Puissance

Écrire un programme demandant à l’utilisateur de saisir deux valeurs numériques b et n (vérifier que n est positif) et affichant la valeur bn.

corrigé

Exercice 9 - Joli carré

Écrire un programme qui saisit une valeur n et qui affiche le carré suivant (n = 5 dans l’exemple) :

n = 5
X  X  X  X  X

X  X  X  X  X

X  X  X  X  X

X  X  X  X  X

X  X  X  X  X

corrigé

2.4.4  Morceaux choisis

Exercice 10 - Approximation de 2 par une série

On approche le nombre 2 à l’aide de la série ∑i=0+ ∞ 1/2i. Effectuer cette approximation en calculant un grand nombre de termes de cette série. L’approximation est-elle de bonne qualité ?

corrigé

Exercice 11 - Approximation de e par une série

Mêmes questions qu’à l’exercice précédent en e à l’aide de la série ∑i=0+ ∞ 1/i!.

corrigé

Exercice 12 - Approximation de ex par une série

Calculer une approximation de ex à l’aide de la série ex = ∑i=0+ ∞ xi/i!.

corrigé

Exercice 13 - Conversion d’entiers en binaire

Écrire un programme qui affiche un unsigned short en binaire. Vous utiliserez l’instruction sizeof(unsigned short), qui donne en octets la taille de la représentation en mémoire d’un unsigned short.

corrigé

Exercice 14 - Conversion de décimales en binaire

Écrire un programme qui affiche les décimales d’un double en binaire.

corrigé

Exercice 15 - Inversion de l’ordre des bits

Écrire un programme qui saisit une valeur de type unsigned short et qui inverse l’ordre des bits. Vous testerez ce programme en utilisant le précédent.

corrigé

Exercice 16 - Racine carrée par dichotomie

Écrire un algorithme demandant à l’utilisateur de saisir deux valeurs numériques x et p et affichant √x avec une précision p. On utilisera une méthode par dichotomie : à la k-ème itération, on cherche x dans l’intervalle [min, sup], on calcule le milieu m de cet intervalle (à vous de trouver comment le calculer). Si cet intervalle est suffisament petit (à vous de trouver quel critère utiliser), afficher m. Sinon, vérifiez si √x se trouve dans [inf, m] ou dans [m, sup], et modifiez les variables inf et sup en conséquence. Par exemple, calculons la racine carrée de 10 avec une précision 0.5,

corrigé

2.4.5  Extension de la calculatrice

Une calculatrice de poche prend de façon alternée la saisie d’un opérateur et d’une opérande. Si l’utilisateur saisit 3, + et 2, cette calculatrice affiche 5, l’utilisateur a ensuite la possibilité de se servir de 5 comme d’une opérande gauche dans un calcul ultérieur. Si l’utilisateur saisit par la suite * et 4, la calculatrice affiche 20. La saisie de la touche = met fin au calcul et affiche un résultat final.

Exercice 17 - Calculatrice de poche

Implémentez le comportement décrit ci-dessus.

Exercice 18 - Puissance

Ajoutez l’opérateur $ qui calcule ab, vous vous restreindrez à des valeurs de b entières et positives.

Exercice 19 - Opérations unaires

Ajoutez les opérations unaires racine carrée et factorielle.

2.4.6  Révisions (SISR)

Exercice 20

  1. Écrire un programme saisissant un entier et l’affichant. corrigé
  2. Précisez ensuite à l’utilisateur si ce nombre est positif ou négatif. corrigé
  3. Affichez ensuite toutes les valeurs entre ce nombre et 0. corrigé
  4. Affichez ensuite la somme des nombres affichés. corrigé

Exercice 21

  1. Écrire un programme saisissant deux entiers i et j et disant lequel est supérieur à l’autre. corrigé
  2. Dans le cas où i est plus petit que j, affichez toutes les valeurs se trouvant entre i et j. corrigé
  3. Même question mais en n’affichant que les valeurs paires. corrigé
  4. Même question en donnant à la fin le produit des nombres affichés. corrigé

Exercice 22 - C+C-

  1. Programmez un "C’est plus, c’est moins". corrigé
  2. Inversez les rôles avec l’ordinateur, c’est à lui de deviner le nombre que vous avez choisi. corrigé

Previous Up Next