Université d`Orléans Algorithmique 1

publicité
Université d’Orléans
Algorithmique 1
L1 Maths STIC, PCSI
Année scolaire 2007-2008
Feuille de Travaux Dirigés n◦ 2.
Exercice 11 Nombre premier
Écrire un programme qui détermine si un nombre est premier. Un nombre est premier si ses
seuls diviseurs sont 1 et lui-même.
Exercice 12
BOUCLES
Exercice 1 Écrire un programme qui calcule la somme des n premiers entiers, n étant saisi au
clavier.
n
Exercice 2 Écrire un programme qui permet de saisir deux entiers x et n, puis qui calcule x
par multiplications successives.
Exercice 3 Écrire un programme qui affiche tous les couples (x, y) où x est un entier compris
entre 1 et p et y un entier compris entre 1 et q; p et q sont deux entiers strictement positifs lus
au clavier.
Exercice 4 Écrire un programme qui, étant donné un entier n strictement plus grand que 2,
affiche tous les ensembles A ⊆ {1, · · · , n} tels que A ait exactement trois éléments. Si l’entier
est inférieur ou égal à 2, on demandera à 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 Écrire un programme qui étant donné un entier positif ou nul, calcule la factorielle
de cet entier. Si l’entier est strictement négatif, on demandera à l’utilisateur de saisir un nouvel
entier.
Puis, écrire un programme qui étant donnés deux nombres p et q, calcule Cpq .
Rappel : La factorielle de n, notée n!, est : n ! = 1 ∗ 2 ∗ · · · ∗ n La combinaison de p parmi p
p!
est : Cpq = q!∗(p−q)!
Exercice 6 Écrire 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ée par un nombre
négatif. La longueur de la liste n’est pas limitée.
Exemple : 7 2 20 15 2 6 5 -1. Le maximum est 20, le minimum est 2.
• Indiquer la valeur de x à la fin de ces boucles, ainsi que le nombre d’itérations effectuées.
• Puis remplacer toutes les boucles par des boucles Tant que
1 - x<-2
Pourtout i de 1 à 10 faire
x<-x+2
FinPour
2 - i<-1 ; x<-1
Répéter
x<-i
i<-i+1
Jusqu’à (i>10)
3 - i<-1 ; x<-1
Répéter
x<-x+2
i<-i+1
Jusqu’à (i>= 5)
4- i<-1 ; x<-0
Répéter
x<-x+2
i<-i+1
Jusqu’à (i >= x)
5- i<-1 ; x<-2
Répéter
x<-x+2
i<-i+1
Jusqu’à (i < x)
Exercice 13 Écrire un programme qui étant donnés le n◦ de jour (1, · · · , 7) et l’heure (de 0 à
24) affiche le jour correspondant et le nombre d’heures écoulées depuis le début de la semaine.
Si le jour ou l’heure n’est pas valide alors il redemande la saisie jusqu’à avoir une valeur valide.
Exercice 7 Écrire un programme qui renverse un entier saisis au clavier. Par exemple, si l’on
saisit 1234, le programme affiche 4321.
Exercice 14 Calcul du PGCD
Le plus grand diviseur commun (PGCD) de deux entiers positifs a et b, avec a > b, est tel que
P GCD(a, b) = P GCD(b, a mod b) et P GCD(a, 0) = a.
Exercice 8 Saisir la longueur et la largeur d’un rectangle et afficher à l’écran le rectangle formé
du caractère *.
Utiliser ces informations pour écrire un algorithme qui calcule le PGCD de deux entiers strictement positifs (on recommencera la saisie des nombres jusqu’à ce qu’ils soient bien strictement
positifs).
Puis modifier le programme pour qu’il affiche seulement le contour du rectangle.
Exercice 9 Écrire un programme qui affiche la table de multiplication de 1 à 10.
Exercice 10 Nombre parfait
Écrire un programme qui détermine si un nombre est parfait. Un nombre est parfait s’il est
égal à 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 15 Suite de Fibonacci
La suite de Fibonacci est définie par u0 = 1, u1 = 1 et un+2 = un+1 + un pour n > 0. Écrire un
programme qui étant donné un entier n positif, donne le nième 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 . Écrire un programme qui recherche et affiche tous les
entiers pythagoriciens compris entre 1 et 100.
2
Exercice 17 Le jeu du nombre mystérieux
Un entier est entré par le joueur A. Le joueur B doit ensuite retrouver ce nombre. Il entre un
nombre. Si ce n’est pas le bon, l’ordinateur indique si le nombre donné par B est trop grand
ou trop petit. B a le droit à 10 essais pour trouver le nombre de A. À la fin de la partie,
l’ordinateur propose de recommencer une nouvelle partie. Si B décline l’offre, le programme
affiche le nombre total de parties jouées et le nombre de parties gagnées par B.
Exercice 18 Écrire un programme qui pour un n donné :
• Si n est strictement positif, saisit au clavier n nombre(s) strictement(s) positif(s) a1 , · · · , an
tel que ∀ai , 0 < ai < 4. Puis, il affiche la moyenne (n1 ∗ 1 + n2 ∗ 2 + n3 ∗ 3)/n, où ni désigne
le nombre d‘apparitions de i parmi le(s) nombre(s) saisi(s).
• Si n est négatif, affiche −1.
Exercice 19 Conjecture de Goldbach
La conjecture de Goldbach affirme que tout nombre pair peut s’écrire comme la somme de deux
nombres premiers. Par exemple, 500 s’écrit comme 1+499, où 1 et 499 sont premiers.
Écrire un programme qui étant donné un entier n positif et pair, donne la liste (si possible) de
toutes les décompositions de ce nombre comme la somme de deux nombres premiers. Si l’entier
est négatif ou impair, on demandera à l’utilisateur de saisir un nouvel entier.
Puis écrire un programme qui étant donné un entier n strictement positif, affiche la liste des
nombres pairs vérifiant la conjecture de Goldbach et compris entre 1 et n.
3
Téléchargement