Universit´e d’Orl´eans Algorithmique 1
L1 Maths STIC, PCSI Ann´ee scolaire 2007-2008
Feuille de Travaux Dirig´es n◦2.
BOUCLES
Exercice 1 ´
Ecrire un programme qui calcule la somme des npremiers entiers, n´etant saisi au
clavier.
Exercice 2 ´
Ecrire un programme qui permet de saisir deux entiers xet n, puis qui calcule xn
par multiplications successives.
Exercice 3 ´
Ecrire un programme qui affiche tous les couples (x, y) o`u xest un entier compris
entre 1 et pet yun entier compris entre 1 et q;pet qsont deux entiers strictement positifs lus
au clavier.
Exercice 4 ´
Ecrire un programme qui, ´etant donn´e un entier nstrictement plus grand que 2,
affiche tous les ensembles A⊆ {1,···, n}tels que Aait exactement trois ´el´ements. Si l’entier
est inf´erieur ou ´egal `a 2, on demandera `a l’utilisateur de saisir un nouvel entier.
Par exemple, pour n= 5, le programme affiche :
{1,2,3} {1,2,4} {1,2,5} {1,3,4} {1,3,5} {1,4,5} {2,3,4} {2,3,5} {2,4,5} {3,4,5}
Exercice 5 ´
Ecrire un programme qui ´etant donn´e un entier positif ou nul, calcule la factorielle
de cet entier. Si l’entier est strictement n´egatif, on demandera `a l’utilisateur de saisir un nouvel
entier.
Puis, ´ecrire un programme qui ´etant donn´es deux nombres pet q, calcule Cq
p.
Rappel : La factorielle de n, not´ee n!, est : n! = 1 ∗2∗ · · · ∗ nLa combinaison de pparmi p
est : Cq
p=p!
q!∗(p−q)!
Exercice 6 ´
Ecrire un programme qui permet de retrouver le maximum et le minimum d’une
liste de nombres positifs saisis par l’utilisateur. La fin de liste est indiqu´ee par un nombre
n´egatif. La longueur de la liste n’est pas limit´ee.
Exemple : 7 2 20 15 2 6 5 -1. Le maximum est 20, le minimum est 2.
Exercice 7 ´
Ecrire un programme qui renverse un entier saisis au clavier. Par exemple, si l’on
saisit 1234, le programme affiche 4321.
Exercice 8 Saisir la longueur et la largeur d’un rectangle et afficher `a l’´ecran le rectangle form´e
du caract`ere *.
Puis modifier le programme pour qu’il affiche seulement le contour du rectangle.
Exercice 9 ´
Ecrire un programme qui affiche la table de multiplication de 1 `a 10.
Exercice 10 Nombre parfait
´
Ecrire un programme qui d´etermine si un nombre est parfait. Un nombre est parfait s’il est
´egal `a la somme de ses diviseurs stricts. Par exemple, 28 est parfait car 28 = 1 + 2 + 4 + 7 + 14.
Modifier votre programme pour qu’il affiche tous les nombres parfaits ente 1 et 100.
1
Exercice 11 Nombre premier
´
Ecrire un programme qui d´etermine si un nombre est premier. Un nombre est premier si ses
seuls diviseurs sont 1 et lui-mˆeme.
Exercice 12
•Indiquer la valeur de x`a la fin de ces boucles, ainsi que le nombre d’it´erations effectu´ees.
•Puis remplacer toutes les boucles par des boucles Tant que
1 - x<-2
Pourtout i de 1 `a 10 faire
x<-x+2
FinPour
2 - i<-1 ; x<-1
R´ep´eter
x<-i
i<-i+1
Jusqu’`a (i>10)
3 - i<-1 ; x<-1
R´ep´eter
x<-x+2
i<-i+1
Jusqu’`a (i>= 5)
4- i<-1 ; x<-0
R´ep´eter
x<-x+2
i<-i+1
Jusqu’`a (i >= x)
5- i<-1 ; x<-2
R´ep´eter
x<-x+2
i<-i+1
Jusqu’`a (i < x)
Exercice 13 ´
Ecrire un programme qui ´etant donn´es le n◦de jour (1,···,7) et l’heure (de 0 `a
24) affiche le jour correspondant et le nombre d’heures ´ecoul´ees depuis le d´ebut de la semaine.
Si le jour ou l’heure n’est pas valide alors il redemande la saisie jusqu’`a avoir une valeur valide.
Exercice 14 Calcul du PGCD
Le plus grand diviseur commun (PGCD) de deux entiers positifs aet b, avec a > b, est tel que
P GCD(a, b) = P GCD(b, a mod b) et P GCD(a, 0) = a.
Utiliser ces informations pour ´ecrire un algorithme qui calcule le PGCD de deux entiers stricte-
ment positifs (on recommencera la saisie des nombres jusqu’`a ce qu’ils soient bien strictement
positifs).
Exercice 15 Suite de Fibonacci
La suite de Fibonacci est d´efinie par u0= 1, u1= 1 et un+2 =un+1 +unpour n > 0. ´
Ecrire un
programme qui ´etant donn´e un entier npositif, donne le ni`eme terme de la suite de fibonacci.
Exercice 16 Le nombre 5 est un entier pythagoricien car il existe deux autres entiers, en
l’occurence 3 et 4, tels que 52= 32+ 42.´
Ecrire un programme qui recherche et affiche tous les
entiers pythagoriciens compris entre 1 et 100.
2