Les boucles
Exercice 5.1
Ecrire un algorithme qui demande à l’utilisateur un nombre compris entre 1 et 3 jusqu’à ce que la réponse convienne.
Exercice 5.2
Ecrire un algorithme qui demande un nombre compris entre 10 et 20, jusqu’à ce que la réponse convienne. En cas de réponse
supérieure à 20, on fera apparaître un message : « Plus petit ! », et inversement, « Plus grand ! » si le nombre est inférieur à
10.
Exercice 5.3
Ecrire un algorithme qui demande un nombre de départ, et qui ensuite affiche les dix nombres suivants. Par exemple, si
l'utilisateur entre le nombre 17, le programme affichera les nombres de 18 à 27.
Exercice 5.4
Ecrire un algorithme qui demande un nombre de départ, et qui ensuite écrit la table de multiplication de ce nombre, présentée
comme suit (cas où l'utilisateur entre le nombre 7) :
Table de 7 :
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
…7
x 10 = 70
Exercice 5.5
Ecrire un algorithme qui demande un nombre de départ, et qui calcule la somme des entiers jusqu’à ce nombre. Par exemple,
si l’on entre 5, le programme doit calculer :
1 + 2 + 3 + 4 + 5 = 15
NB : on souhaite afficher uniquement le résultat, pas la décomposition du calcul.
Exercice 5.6
Ecrire un algorithme qui demande un nombre de départ, et qui calcule sa factorielle.
NB : la factorielle de 8, notée 8 !, vaut
1 x 2 x 3 x 4 x 5 x 6 x 7 x 8
Exercice 5.7
Ecrire un algorithme qui demande successivement 20 nombres à l’utilisateur, et qui lui dise ensuite quel était le plus grand
parmi ces 20 nombres :
Entrez le nombre numéro 1 : 12
Entrez le nombre numéro 2 : 14
etc.
Entrez le nombre numéro 20 : 6
Le plus grand de ces nombres est : 14
Modifiez ensuite l’algorithme pour que le programme affiche de surcroît en quelle position avait été saisie ce nombre :
C’était le nombre numéro 2
Exercice 5.8
Réécrire l’algorithme précédent, mais cette fois-ci on ne connaît pas d’avance combien l’utilisateur souhaite saisir de
nombres. La saisie des nombres s’arrête lorsque l’utilisateur entre un zéro.
Exercice 5.9
Lire la suite des prix (en euros entiers et terminée par zéro) des achats d’un client. Calculer la somme qu’il doit, lire la somme
qu’il paye, et simuler la remise de la monnaie en affichant les textes "10 Euros", "5 Euros" et "1 Euro" autant de fois qu’il y a
de coupures de chaque sorte à rendre.
Exercice 5.10
Écrire un algorithme qui permette de connaître ses chances de gagner au tiercé, quarté, quinté et autres impôts volontaires.
On demande à l’utilisateur le nombre de chevaux partants, et le nombre de chevaux joués. Les deux messages affichés
devront être :
Dans l’ordre : une chance sur X de gagner
Dans le désordre : une chance sur Y de gagner
X et Y nous sont donnés par la formule suivante, si n est le nombre de chevaux partants et p le nombre de chevaux joués (on
rappelle que le signe ! signifie "factorielle", comme dans l'exercice 5.6 ci-dessus) :
X = n ! / (n - p) !
Y = n ! / (p ! * (n – p) !)
NB : cet algorithme peut être écrit d’une manière simple, mais relativement peu performante. Ses performances peuvent être
singulièrement augmentées par une petite astuce. Vous commencerez par écrire la manière la plus simple, puis vous
identifierez le problème, et écrirez une deuxième version permettant de le résoudre.
corrigée
Exercice 5.1
Variable N en Entier
Debut
N 0
Ecrire "Entrez un nombre entre 1 et 3"
TantQue N < 1 ou N > 3
Lire N
Si N < 1 ou N > 3 Alors
Ecrire "Saisie erronée. Recommencez”
FinSi
FinTantQue
Fin
Exercice 5.2
Variable N en Entier
Debut
N 0
Ecrire "Entrez un nombre entre 10 et 20"
TantQue N < 10 ou N > 20
Lire N
Si N < 10 Alors
Ecrire "Plus grand !"
SinonSi N > 20 Alors
Ecrire "Plus petit !"
FinSi
FinTantQue
Fin
Exercice 5.3
Variables N, i en Entier
Debut
Ecrire "Entrez un nombre : "
Lire N
Ecrire "Les 10 nombres suivants sont : "
Pour i N + 1 à N + 10
Ecrire i
i Suivant
Fin
Exercice 5.4
Variables N, i en Entier
Debut
Ecrire "Entrez un nombre : "
Lire N
Ecrire "La table de multiplication de ce nombre est : "
Pour i 1 à 10
Ecrire N, " x ", i, " = ", n*i
i Suivant
Fin
Exercice 5.5
Variables N, i, Som en Entier
Debut
Ecrire "Entrez un nombre : "
Lire N
Som 0
Pour i 1 à N
Som Som + i
i Suivant
Ecrire "La somme est : ", Som
Fin
Exercice 5.6
Variables N, i, F en Entier
Debut
Ecrire "Entrez un nombre : "
Lire N
F 1
Pour i 2 à N
F F * i
i Suivant
Ecrire "La factorielle est : ", F
Fin
Exercice 5.7
Variables N, i, PG en Entier
Debut
PG 0
Pour i 1 à 20
Ecrire "Entrez un nombre : "
Lire N
Si i = 1 ou N > PG Alors
PG N
FinSi
i Suivant
Ecrire "Le nombre le plus grand était : ", PG
Fin
En ligne 3, on peut mettre n’importe quoi dans PG, il suffit que cette variable soit affectée pour que le premier passage en
ligne 7 ne provoque pas d'erreur.
Pour la version améliorée, cela donne :
Variables N, i, PG, IPG en Entier
Debut
PG 0
Pour i 1 à 20
Ecrire "Entrez un nombre : "
Lire N
Si i = 1 ou N > PG Alors
PG N
IPG i
FinSi
i Suivant
Ecrire "Le nombre le plus grand était : ", PG
Ecrire "Il a été saisi en position numéro ", IPG
Fin
Exercice 5.8
Variables N, i, PG, IPG en Entier
Debut
N 1
i 0
PG 0
TantQue N <> 0
Ecrire "Entrez un nombre : "
Lire N
i i + 1
Si i = 1 ou N > PG Alors
PG N
IPG i
FinSi
FinTantQue
Ecrire "Le nombre le plus grand était : ", PG
Ecrire "Il a été saisi en position numéro ", IPG
Fin
Exercice 5.9
Variables FF, somdue, M, IPG, Reste, Nb10F, Nb5F En Entier
Debut
E 1
somdue 0
TantQue E <> 0
Ecrire "Entrez le montant : "
Lire E
somdue somdue + E
FinTantQue
Ecrire "Vous devez :", E, " euros"
Ecrire "Montant versé :"
Lire M
Reste M - E
Nb10E 0
TantQue Reste >= 10
Nb10E Nb10E + 1
Reste Reste – 10
FinTantQue
Nb5E 0
Si Reste >= 5
Nb5E 1
Reste Reste – 5
FinSi
Ecrire "Rendu de la monnaie :"
Ecrire "Billets de 10 E : ", Nb10E
Ecrire "Billets de 5 E : ", Nb5E
Ecrire "Pièces de 1 E : ", reste
Fin
Exercice 5.10
Spontanément, on est tenté d'écrire l'algorithme suivant :
Variables N, P, i, Numé, Déno1, Déno2 en Entier
Debut Ecrire "Entrez le nombre de chevaux partants : "
Lire N
Ecrire "Entrez le nombre de chevaux joués : "
Lire P
Numé 1
Pour i 2 à N
Numé Numé * i
i Suivant
Déno1 1
Pour i 2 à N-P
Déno1 Déno1 * i
i Suivant
Déno2 1
Pour i 2 à P
Déno2 Déno2 * i
i Suivant
Ecrire "Dans l’ordre, une chance sur ", Numé / Déno1
Ecrire "Dans le désordre, une sur ", Numé / (Déno1 * Déno2)
Fin