Informatique : devoir à la maison no 1 Ce DM est à chercher sur

publicité
PTSI G.Eiffel 2014/2015
Informatique : devoir à la maison no 1
pour le lundi 01/12 /2014
Ce DM est à chercher sur ordinateur. Vous enverrez vos fichiers à mon adresse astier.ywanadoo.fr avant le
lundi 1er décembre. Attention : utilisez Python 3 (et non pas Python 2) ! !
Pour toutes vos créations, pensez à commenter le code, afin de faciliter sa lecture.
Exercice 1 : On considère la suite définie par récurrence avec :
½
u n+1 =
u =1
p0
1 + u n , ∀n ≥ 0
1. Créer une fonction liste_termes(n) qui prenne en argument un nombre entier n et qui renvoie la liste
des premiers termes de la suite (de u 0 à u n inclus).
n
P
2. Créer une fonction somme_termes(n) qui renvoie la valeur de la somme des termes
uk .
k=0
Exercice 2 : Un jeu de Mastermind
Nous allons programmer une variante du célèbre jeu de logique : il s’agira ici de deviner une combinaison de 4
chiffres tirée au sort en début de partie (par exemple 2,0,1,4).
Le joueur proposera à chaque tour une liste de 4 chiffres, et selon sa réponse, le programme donnera le nombre
de chiffres qui sont exactement à la bonne place, et le nombre de ceux qui apparaissent dans la combinaison à
deviner mais qui ne sont situés au bon endroit.
Par exemple, avec le tirage présenté au début, si le joueur propose 2,4,4,1, le programme devra afficher qu’un
chiffre est en bonne position, et que deux autres sont mal placées.
Le joueur pourra alors ajuster sa proposition précédente. On répètera ce processus jusqu’à ce que le joueur
trouve la bonne combinaison. Le programme s’arrêtera alors, après affichage d’un message de félicitations.
1. Écrivez une fonction tirage_au_hasard() qui ne prenne aucun argument, et qui renvoie une liste constituée de 4 valeurs entières comprises entre 0 et 9. On utilisera la commande random.randint du module
random.
2. Écrivez une fonction saisie_proposition() qui ne prenne aucun argument, et qui renvoie une liste
constituée de 4 valeurs entières comprises entre 0 et 9 saisies au clavier par le joueur. (pas la peine de
tester leur validité)
3. Écrivez une fonction pareils(L,M) qui prenne deux listes de chiffres L et M (de même longueur quelconque n > 0) en argument, et qui renvoie le nombre d’éléments des listes L et M qui sont exactement à la
même position.
Par exemple pareils([2,0,1,4℄, [2,4,4,5℄) doit donner 1.
4. Écrivez une fonction differenes(L,M) qui prenne deux listes de chiffres L et M (de même longueur
quelconque n > 0) en argument, et le nombre d’éléments des listes L et M qui sont communs, mais non
placés au même endroit.
Par exemple differenes([2,0,1,4℄, [2,4,4,5℄) doit donner 1.
5. Après avoir testé la validité de chacune des fonctions précédentes, vous pouvez écrire le programme principal, qui suivra le cahier des charges donné en préambule.
Informatique : devoir à la maison no 1
Téléchargement