TP01 - IMJ-PRG

publicité
Université de Paris 7
TP01
M1MME (F.Han 1 )
Exercice I: Mise en route Python.
Lancer l’éditeur idle.
1) a) Utilisation intéractive : Calculer 21000 .
b) Que fait 2^10. (On pourra deviner en essayant d’autres valeurs et vérifier dans la documentation officielle)
c) Faire quelques opérations dans Z/ [i]. Par exemple (1 + 2.i)3 et (1 + i).(2 + 3.i)
d) Sous idle on peut obtenir une complétion avec la tabulation. Par exemple complétez s.
Définir un liste d’entiers l de 5 à 21, et trouver une fonction qui calcule sa somme.
e) Utilisez la tabulation pour trouver une fonction qui calcule la somme des éléments de l
f) On peut aussi obtenir des fonction qui s’appliquent à un type, par exemple comptéz par
tabulation : str. et trouver un instruction qui remplace la chaine ”old” par la chaine ”new” dans
la chaine ch=’The new golden gate ’
g) Remarquer que les chaines se comportent comme des listes de caractères. Comment trouve
t’on la longueur d’une liste ? (On pourra utiliser la complétion). Comment étendre une liste avec
une autre ?
2) Utilisation pour un programme. Ouvrir une nouvelle fenêtre (cf menu file, remarquez la
difference avec la fenêtre shell). On peut cette fois taper sur plusieurs lignes, et exécuter le tout à
la fin avec F5.
a) Trouver une instruction pour saisir une chaine de caracteres, puis créer une liste de caractères à partir de cette chaine. Tester si la chaı̂ne initialement saisie ne comporte que des nombres.
Dans ce cas, créer une liste de chiffres lchi correspondant à cette chaine.
Exercice II: Clef de Luhn
On considère une suite de l chiffres où l est pair. On considère l’algorithme suivant :
1. on démarre avec le dernier chiffre (à droite) et on se déplace vers la gauche, en doublant la
valeur de tous les chiffres de rang pair : le dernier est traité en 1er, il n’est pas doublé, l’avant-dernier
(2e) sera doublé. Si le double d’un chiffre dépasse 10, on le remplace par la somme de ses chiffres.
Ainsi,
Par exemple, 1 111 devient 2 121, tandis que 8 763 devient 7 733 (car 26=12, et 1+2=3 ; 28=16,
et 1+6=7).
1. on additionne ensemble tous les chiffres du nombre ainsi obtenu. Par exemple, 1111 devient
2121 dont la somme donne 6 (2+1+2+1) ; tandis que 8763 devient 7733 et 7+7+3+3 donne alors
20. 2. si le total est un multiple de 10 (le chiffre des unités est un zéro), alors le nombre est valide,
en accord avec la formule de Luhn. Sinon il est invalide.
1) Programmez cet algorithme en python.
2) Vérifiez avec votre CB que le numéro passe le test de luhn.
1. http://www.math.jussieu.fr/~han/
1
Téléchargement