Une belle aventure - CPGE du Lycée Montesquieu

publicité
Une belle aventure
Pour le 3 Novembre, minuit.
En pleine nuit, le téléphone sonne. « Monsieur, on vous attend au Louvre, c’est urgent ». La voix, rauque
et ténébreuse, semble sérieuse et impatiente. Vous enfilez vos vêtements et sans prendre le temps d’avaler
le reste de café froid de la veille, vous vous rendez au Louvre en taxi. Arrivé au musée, vous remarquez
l’étrange cortège de voitures de police et le balai de lumières bleutées qui vous aveugle. Vous êtes rapidement pris en charge par un homme au regard sombre qui vous emmène d’un pas alerte dans les méandres
du Louvre. Dans la pénombre, vous distinguez, allongé sur le sol, un corps qui vous semble familier.
Soudain, le réveil sonne. Ce n’était qu’un rêve. Vous vous rappelez alors l’annonce lue la veille dans le
journal : « On recherche, pour aventure extraordinaire, jeune symbologiste, H/F. Goût du risque et de
l’aventure obligatoire. Des compétences en déchiffrage de nombres romains et étude de suites seraient un
plus ». Vous interprétez alors ce rêve comme un signe et décidez de vous présenter à l’entretien. Mais un
entretien, ça se prépare.
1
Étude d’une suite.
On définit une suite de nombres appelée F de


F0
F1


Fn
la façon suivante :
=1
=1
= Fn−1 + Fn−2
Donnez les 10 premiers termes de la suite.
Écrire en Python un programme permettant de donner les 20 premiers termes de cette suite. On pourra
choisir de stocker les termes de la suite au fur et à mesure dans une liste F en utilisant l’instruction
F.append().
Écrire en Python un programme qui demande à l’utilisateur un entier n et renvoie la valeur de Fn .
Fn+1
Écrire en Python un programme qui calcule le 20-ième terme de la suite rn =
.
Fn
Modifier ce programme afin qu’il s’arrête lorsque la différence |rn+1 − rn | est inférieure à 10−5 et
retourne la valeur de rn ainsi que l’entier n associés.
. Pour accéder au
dernier terme d’une
liste L on utilise
L[-1]. Idem pour
L[-2] et l’avantdernier terme.
Quel est ce nombre ?
2
Décrypter les chiffres romains
On ne s’intéresse pas ici à la validité d’un nombre écrit en chiffre romains, mais à sa valeur. On rappelle
quelques principes de base. Les sept caractères de la numération romaine sont :
I
1
V
5
X
10
L
50
C
100
D
500
M
1000
Pour trouver la valeur d’un nombre écrit en chiffres romains, on s’appuie sur les règles suivantes :
— toute lettre placée à la droite d’une lettre dont valeur est supérieure ou égale à la sienne s’ajoute
à celle-ci ;
— toute lettre d’unité placée immédiatement à la gauche d’une lettre plus forte qu’elle indique que
le nombre qui lui correspond doit être retranché au nombre qui suit ;
— les valeurs sont groupées en ordre décroissant, sauf pour les valeurs à retrancher selon la règle
précédente ;
1
. Lettre d’unité : I
est une unité pour
V et X, X est une
unité pour L et C,
C est une unité
pour D et M.
— la même lettre ne peut pas être employée quatre fois consécutivement sauf M.
Vérifier qu’en suivant ces règles, on trouve bien DXXXV I = 536, CIX = 109 et M CM XL = 1940.
Écrire une fonction valeur(caractere) qui retourne la valeur décimale d’un caractère romain. Cette
fonction doit renvoyer 0 si le caractère n’est pas l’un des 7 chiffres romains.
Écrire le programme principal qui permet de convertir un nombre romain en nombre décimal. Voici un
algorithme pour vous aider :
— initialiser un variable resultat à 0 ;
— demander à l’utilisateur un nombre romain. On stocke ce résultat dans la variable nombre ;
— parcourir nombre en lisant à chaque fois un caractère et le caractère suivant, notés car et carsuiv ;
— transformer car et carsuiv en leur valeur val et valsuiv selon la fonction précédente ;
— si val<valsuiv on ajoute -val à resultat. Sinon, on ajoute val à resultat ;
— afficher resultat.
3
. Par mentor, on
entend
évidemment :
dernier
encadrant de TP.
Conclusion
Fier de vos programmes développés et afin de protéger vos arrières, vous ne pouvez vous empêcher
d’envoyer vos fichiers .py à votre mentor afin qu’il puisse se rendre compte du travail que vous avez
effectué. Ne tenant plus vous lui transmettez par mail sans plus attendre, et avant le 3 novembre à
minuit (horaire de réception faisant foi), le fruit de votre travail. Les fichiers Python devront être lisibles,
directement exécutables et facilement modifiables afin d’être testés (choisissez correctement les noms de
variable, pensez à mettre des commentaires, aérez votre code...).
2
TP Informatique - Introduction à Python
Lycée Montesquieu
Téléchargement