13.07.2015 Views

ENSAE Ecole Nationale de la Statistique et de l ... - xavierdupre.fr

ENSAE Ecole Nationale de la Statistique et de l ... - xavierdupre.fr

ENSAE Ecole Nationale de la Statistique et de l ... - xavierdupre.fr

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

1. Séances notées 81.2.2 Programme équivalent avec <strong>de</strong>s c<strong>la</strong>ssesEnoncéLe programme précé<strong>de</strong>nt n’utilise pas <strong>de</strong> c<strong>la</strong>sse. L’objectif <strong>de</strong> ce second exercice est <strong>de</strong> le réécrire avec unec<strong>la</strong>sse.1) Une fonction du programme précé<strong>de</strong>nt effectue <strong>la</strong> conversion entre un couple jour-mois <strong>et</strong> un numéro<strong>de</strong> jour. Les calculs sont faits avec le numéro mais le résultat désiré est une date : les numéros ne sont que<strong>de</strong>s intermédiaires <strong>de</strong> calculs qui ne <strong>de</strong>vraient pas apparaître aussi explicitement. La première questionconsiste à créer une c<strong>la</strong>sse Date : (2 points)c<strong>la</strong>ss Date :<strong>de</strong>f __init__ (self, jour, mois) :...2) A c<strong>et</strong>te c<strong>la</strong>sse, on ajoute une métho<strong>de</strong> qui r<strong>et</strong>ourne <strong>la</strong> conversion du couple jour-mois en un numéro <strong>de</strong>jour <strong>de</strong> l’année. (2 points)3) On ajoute maintenant une métho<strong>de</strong> calcu<strong>la</strong>nt le nombre <strong>de</strong> jours séparant <strong>de</strong>ux dates (ou obj<strong>et</strong> <strong>de</strong> typeDate <strong>et</strong> non pas numéros). C<strong>et</strong>te métho<strong>de</strong> pourra par exemple s’appeler difference. (2 points)4) Il ne reste plus qu’à compléter le programme pour obtenir les mêmes résultats que le programme <strong>de</strong>l’exercice 1. (2 points)5) Avec ce programme, lors du calcul <strong>de</strong>s écarts entre tous les jours fériés consécutifs, combien <strong>de</strong> foiseffectuez-vous <strong>la</strong> conversion du couple jour-mois en numéro pour le second jour férié <strong>de</strong> l’année ? Est-ce lemême nombre que pour le programme précé<strong>de</strong>nt (en toute logique, <strong>la</strong> réponse pour le premier programmeest 1) ? (2 points)6) La réponse à <strong>la</strong> question précé<strong>de</strong>nte vous suggère-t-elle une modification <strong>de</strong> ce second programme ?(2 points)Correction# -*- coding: <strong>la</strong>tin-1 -*-##################################### exercice 1##################################### question 1<strong>de</strong>f numero (jour, mois, duree = [31, 28, 31,30,31,30,31,31,30,31,30,31] ) :s = 0for i in range (0,mois-1) :s += duree [i] 10s += jour - 1r<strong>et</strong>urn s+1# question 2<strong>de</strong>f conversion_liste (li) : 15res = []for jour,mois in s : res.append ( numero (jour, mois))# pareil que# for i in range (0, len (s)) : res.append ( numero (s [i][0], s [i][1]))r<strong>et</strong>urn res 20<strong>de</strong>f ecart (num) :res = []for i in range (1, len (num)) :d = num [i] - num [i-1] 25res.append (d)r<strong>et</strong>urn res5

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!