From d6f35c05c2c8c21580c5b6a5f464f1f94c5fc90b Mon Sep 17 00:00:00 2001
From: gantchou koffi <koffi.gantchou.etu@univ-lille.fr>
Date: Tue, 25 Mar 2025 11:44:03 +0100
Subject: [PATCH] depot

---
 associations/recherches.py |  51 ++--
 tp4/date.py                | 225 ++++++++++++++
 tp4/etudiant.py            | 108 +++++++
 tp4/etudiants.csv          | 604 +++++++++++++++++++++++++++++++++++++
 tp4/gestion_promo_etu.py   | 229 ++++++++++++++
 5 files changed, 1195 insertions(+), 22 deletions(-)
 create mode 100644 tp4/date.py
 create mode 100644 tp4/etudiant.py
 create mode 100644 tp4/etudiants.csv
 create mode 100644 tp4/gestion_promo_etu.py

diff --git a/associations/recherches.py b/associations/recherches.py
index ce8e2dd..c138e12 100644
--- a/associations/recherches.py
+++ b/associations/recherches.py
@@ -41,7 +41,17 @@ def indice_seq(elem: C, liste: list[C], comp: Callable[[C, C], int]) \
     $$$ indice_seq(42, [], compare)
     (False, 0)
     """
-    
+    trouve = False
+    i = 0
+    while i<len(liste) and trouve == False:
+        res = comp(elem, liste[i])
+        if res == 0:
+            trouve = True
+        i+=1
+    if trouve :
+        return ((trouve, i-1))
+    return ((trouve,i))
+        
 
 def indice_dicho(elem: C, liste: list[C], comp: Callable[[C, C], int]) \
                                     -> tuple[bool, int]:
@@ -70,26 +80,21 @@ def indice_dicho(elem: C, liste: list[C], comp: Callable[[C, C], int]) \
     $$$ indice_dicho(42, [], compare)
     (False, 0)
     """
-    if len(liste) == 0:
-        return (False, 0)
     trouve = False
     i = 0
-    res = len(liste)-1
-    while i < len(liste) and not trouve:
-        cmp = comp(elem , liste[i])
-        if cmp == 0:
+    sup = False
+    while i<len(liste) and trouve == False and sup == False:
+        res = comp(elem, liste[i])
+        if res == 0:
             trouve = True
-            res = i
-        elif cmp==-1:
-            trouve = False
-            res = elem
-        else:
-            trouve = False
-            res = len(liste)
+        if res == -1:
+            sup = True
         i+=1
+    if trouve or sup:
+        return ((trouve, i-1))
+    else:
+        return ((trouve,i))
         
-    return (trouve,res)
-            
 
 def inserer(indice: int, elem: C, liste: list[C]) -> NoneType:
     """Insère l'élément elem à l'indice indice de la liste liste.
@@ -111,12 +116,14 @@ def inserer(indice: int, elem: C, liste: list[C]) -> NoneType:
     $$$ vide
     [42]
     """
-    licopier = liste.copy()
-    for i in range(len(licopier)):
-        licopier[indice] = elem
-        licopier[i] = licopier[i+1]
-    licopier.append(liste[-1])
-    return licopier
+    if indice == 0:
+        liste[:] = [elem]+liste
+    elif indice == len(liste):
+        liste.append(elem)
+    else:
+        l = liste[:indice]
+        l.append(elem)
+        liste[:] = l+liste[indice:]
 
 if __name__ == '__main__':
     import apl1test
diff --git a/tp4/date.py b/tp4/date.py
new file mode 100644
index 0000000..1ae7daa
--- /dev/null
+++ b/tp4/date.py
@@ -0,0 +1,225 @@
+#!/usr/bin/python3
+# -*- coding: utf-8 -*-
+
+"""
+:mod:`date` module :  a  module for date
+
+:author: `FIL - Faculté des Sciences et Technologies - 
+          Univ. Lille <http://portail.fil.univ-lille1.fr>`_
+
+:date: 2024, january. Last revision: 2024, january
+
+Date are objects
+
+"""
+
+NOM_MOIS = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet',
+            'août', 'septembre', 'octobre', 'novembre', 'décembre']
+DUREE_MOIS = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
+
+
+def est_bissextile(annee: int) -> bool:
+    """
+    Renvoie True si et seulement si annee est bissextile.
+
+    précondition: annee >= 1582.
+
+    $$$ est_bissextile(2024)
+    True
+    $$$ est_bissextile(2000)
+    True
+    $$$ est_bissextile(2100)
+    False
+    """
+    return annee % 4 == 0 and (annee % 100 != 0 or annee % 400 == 0)
+
+
+def nombre_de_jour_dans_mois(mois: int, annee: int) -> int:
+    """
+    Renvoie le nombre de jour dans le mois `mois` de l'année `année`.
+
+    précondition : 0 <= mois < 12 et annee >= 1582.
+    """
+    duree_mois = DUREE_MOIS[mois - 1]
+    if est_bissextile(annee) and mois == 2:
+        return duree_mois + 1
+    return duree_mois
+
+
+def nom_mois(mois) -> str:
+    """Renvoie le nom du mois en français."""
+    return NOM_MOIS[mois - 1]
+
+
+class Date:
+    """
+    une classe permettant de représenter des dates
+    """
+    
+    def __init__(self, jour: int, mois: int, annee: int):
+        """
+        initialise une nouvelle date
+
+        précondition : jour/mois/annee est une date valide
+
+        exemples :
+
+        $$$ adate = Date(4, 6, 2024)
+        $$$ type(adate) == Date
+        True
+        """
+        self.jour = jour
+        self.mois = mois
+        self.annee = annee
+
+    def __str__(self) -> str:
+        """
+        Renvoie une châine représentant la date.
+
+        $$$ adate = Date(23, 1, 2024)
+        $$$ str(adate)
+        '23 janvier 2024'
+        """
+        return f"{self.jour} {nom_mois(self.mois)} {self.annee}"
+
+    def __repr__(self) -> str:
+        """
+        Une représentation textuelle d'une date;
+        """
+        return f"Date({self.jour}, {self.mois}, {self.annee})"
+
+    def __eq__(self, other: 'Date') -> bool:
+        """
+        Renvoie True si, et seulement si, deux dates sont égales.
+
+        exemples :
+
+        $$$ adate1 = Date(23, 1, 2024)
+        $$$ adate2 = Date(23, 1, 2024)
+        $$$ id(adate1) == id(adate2)
+        False
+        $$$ adate1 == adate2
+        True
+        """
+        return self.jour == other.jour and \
+            self.mois == other.mois and \
+            self.annee == other.annee
+    
+    def __lt__(self, other: 'Date') -> bool:
+        """
+        Renvoie True si, et seulement si, la date représentée par
+        self est avant celle représentée par other.
+
+        exemples :
+
+        $$$ adate1 = Date(23, 1, 2024)
+        $$$ adate2 = Date(25, 1, 2024)
+        $$$ adate1 < adate2
+        True
+        $$$ adate2 < adate1
+        False
+        $$$ adate1 < Date(23, 1, 2024)
+        False
+        """
+        if self.annee == other.annee:
+            if self.mois == other.mois:
+                res = self.jour < other.jour                    
+            else:
+                res = self.mois < other.mois    
+        else:
+            res = self.annee < other.annee
+        return res
+
+    def __le__(self, other: 'Date') -> bool:
+        """
+        Renvoie True si, et seulement si, la date représentée par
+        self est avant ou egale à celle représentée par other.
+
+        exemples :
+
+        $$$ adate1 = Date(23, 1, 2024)
+        $$$ adate2 = Date(25, 1, 2024)
+        $$$ adate1 <= adate2
+        True
+        $$$ adate2 <= adate1
+        False
+        $$$ adate1 <= Date(23, 1, 2024)
+        True
+        """
+        return self < other or self == other
+
+    def tomorrow(self) -> 'Date':
+        """
+        renvoie la date du lendemain.
+
+        $$$ Date(31, 12, 2023).tomorrow() == Date(1, 1, 2024)
+        True
+        $$$ Date(31, 1, 2024).tomorrow() == Date(1, 2, 2024)
+        True
+        $$$ Date(24, 1, 2024).tomorrow() == Date(25, 1, 2024)
+        True
+        """
+        annee = self.annee
+        mois = self.mois
+        jour = self.jour
+
+        if jour == nombre_de_jour_dans_mois(mois, annee):
+            jour = 1
+            if mois == 12:
+                annee = annee + 1
+                mois = 1
+            else:
+                mois = mois + 1
+        else:
+            jour = jour + 1
+        return Date(jour, mois, annee)
+
+    def __add__(self, njour: int) -> 'Date':
+        """
+        ajoute un nombre de jour à une date.
+
+        $$$ Date(31, 1, 24) + 7
+        Date(7, 2, 24)
+        """
+        res = self
+        for _ in range(njour):
+            res = res.tomorrow()
+        return res
+
+    def __sub__(self, other: 'Date') -> int:
+        """
+        Renvoie le nombre de jour entre deux dates.
+
+        $$$ Date(7, 2, 24) - Date(31, 1, 24)
+        7
+        """
+        if self <= other:
+            start, ending = self, other
+        else:
+            start, ending = other, self
+        res = 0
+        while start != ending:
+            start = start.tomorrow()
+            res = res + 1
+        return res
+
+    def __gt__(self, other: 'Date') -> bool:
+        """ à_remplacer_par_ce_que_fait_la_fonction
+
+        Précondition :
+        Exemple(s) :
+        $$$
+        """
+        
+        if self.annee == other.annee:
+            if self.mois == other.mois:
+                res = self.jour > other.jour                    
+            else:
+                res = self.mois > other.mois    
+        else:
+            res = self.annee > other.annee
+        return res
+
+if (__name__ == '__main__'):
+    import apl1test
+    apl1test.testmod('date.py')
diff --git a/tp4/etudiant.py b/tp4/etudiant.py
new file mode 100644
index 0000000..8dae957
--- /dev/null
+++ b/tp4/etudiant.py
@@ -0,0 +1,108 @@
+#!/usr/bin/python3
+# -*- coding: utf-8 -*-
+
+"""
+:author: FIL - FST - Univ. Lille.fr <http://portail.fil.univ-lille.fr>_
+:date: janvier 2019
+:last revised: 
+:Fournit :
+"""
+from date import Date
+
+
+class Etudiant:
+    """
+    une classe représentant des étudiants.
+
+    $$$ etu = Etudiant(314159, 'Oléon', 'Tim', Date(7, 11, 2004), 'MI', '15')
+    $$$ str(etu)
+    'Tim Oléon'
+    $$$ repr(etu)
+    "Etudiant(314159, 'Oléon', 'Tim', Date(7, 11, 2004), 'MI', '15')"
+    $$$ etu.prenom
+    'Tim'
+    $$$ etu.nip
+    314159
+    $$$ etu.nom
+    'Oléon'
+    $$$ etu.formation
+    'MI'
+    $$$ etu.groupe
+    '15'
+    $$$ etu2 = Etudiant(314159, 'Oléon', 'Tim', Date(7, 11, 2004), 'MI', '15')
+    $$$ etu == etu2
+    True
+    $$$ etu3 = Etudiant(141442, 'Oléon', 'Tim', Date(7, 11, 2004), 'MI', '15')
+    $$$ etu == etu3
+    False
+    $$$ etu4 = Etudiant(141442, 'Calbuth', 'Raymond', Date(2, 1, 2005), 'MI', '11')
+    $$$ etu < etu4
+    True
+    $$$ isinstance(etu.naissance, Date)
+    True
+    """
+    from date import Date
+    def __init__(self, nip: int, nom, prenom,
+                 naissance: Date, formation: str, groupe: str):
+        """
+        initialise un nouvel étudiant à partir de son nip, son nom, son
+        prénom, sa formation et son groupe.
+
+        précondition : le nip, le nom et le prénom ne peuvent être nuls ou vides.
+        """
+        self.nip = nip
+        self.nom = nom
+        self.prenom = prenom
+        self.naissance = naissance
+        self.formation = formation
+        self.groupe = groupe
+        
+
+    def __eq__(self, etudiant) -> bool:
+        """
+        Renvoie True ssi other est un étudiant ayant :
+        - même nip,
+        - même nom et
+        - même prénom que `self`,
+        et False sinon.
+        """
+        if isinstance(etudiant,Etudiant):
+            return etudiant.nom  == self.nom and self.prenom==etudiant.prenom and self.nip == etudiant.nip
+    
+    def __lt__(self, other) -> bool:
+        """
+        Renvoie True si self est né avant other
+        """
+        if not (self.prenom < other.prenom and self.nom < other.nom and (self.Date < other.Date) and (self.naissance < other.naissance) and (self.nip < other.nip) and (self.formation < other.formation)):
+            return True
+        return False
+    
+
+    def __str__(self) -> str:
+        """
+        Renvoie une représentation textuelle de self pour impression.
+        """
+        return f"{self.prenom} {self.nom}"
+
+    def __repr__(self) -> str:
+        """
+        Renvoie une représentation textuelle interne de self pour le shell.
+        """
+        return f"Etudiant({self.nip}, '{self.nom}', '{self.prenom}', {repr(self.naissance)}, '{self.formation}', '{self.groupe}')"
+    
+    
+    
+    
+
+
+if (__name__ == "__main__"):
+    import apl1test
+    apl1test.testmod('etudiant.py')
+    
+
+ 
+ 
+ 
+ 
+ 
+ 
diff --git a/tp4/etudiants.csv b/tp4/etudiants.csv
new file mode 100644
index 0000000..18ca977
--- /dev/null
+++ b/tp4/etudiants.csv
@@ -0,0 +1,604 @@
+nip;nom;prenom;naissance;formation;groupe
+48464709;Courtois;David;2006-05-11;MIASHS;11
+49465355;Philippe;Christiane;2005-03-12;MI;11
+49459689;Marchand;Cécile;2006-07-16;MI;11
+49483931;Michaud;Andrée;2005-04-27;MI;11
+48500944;Perrin;Benoît;2005-05-25;PEIP;11
+49952015;Didier;David;2004-10-25;MI;11
+49282446;Moreau;Anne;2004-12-29;LICAM;11
+49862411;Allard;Paul;2006-05-12;MI;11
+49928552;Texier;Eugène;2006-02-21;MI;12
+49475876;Berthelot;Josette;2006-09-02;MIASHS;12
+49779669;Moreau;Gabriel;2004-05-24;MI;12
+48364455;Gros;Zacharie;2007-01-10;MI;12
+48433319;Hamon;Maurice;2004-04-04;MI;13
+48888498;Guilbert;Mathilde;2006-01-29;MI;13
+48002743;Duhamel;Marianne;2005-05-31;MI;13
+48887662;Deschamps;Jacqueline;2006-01-23;MI;13
+49218901;Delaunay;Paul;2006-03-17;MI;13
+49690157;Barre;Jacques;2005-11-17;MI;13
+49143616;Hebert;Laetitia;2006-12-24;MI;13
+48831353;Gosselin;Laure;2006-03-16;MI;13
+49545661;Guyot;Martine;2007-01-26;MI;13
+49299532;Camus;Nathalie;2005-11-18;MI;13
+49370082;Bazin;Maurice;2006-05-15;MI;14
+48254681;Poirier;Marcel;2004-10-02;MI;14
+48450591;Philippe;Jacqueline;2005-12-21;MI;14
+49488140;Charrier;Marthe;2006-03-23;MI;14
+49589784;Lefebvre;Gabriel;2005-04-29;MI;14
+48091905;Girard;Raymond;2006-12-04;MI;14
+48326830;Joseph;Patrick;2006-04-22;MI;14
+48207028;Maurice;Laurent;2006-11-13;MI;14
+49409126;Peltier;Daniel;2006-09-22;MI;14
+49718196;Charles;Mathilde;2006-02-20;MI;15
+48037379;Potier;Nath;2005-03-10;MI;15
+49980636;Breton;Marc;2004-11-30;MI;15
+48953882;Dupuy;Valérie;2005-11-24;MI;15
+48217566;François;Marthe;2005-09-06;MI;15
+49106166;Brunet;Martine;2005-07-02;MI;15
+49085299;Peltier;Valentine;2004-09-28;MI;21
+48178208;Guilbert;Matthieu;2004-04-06;MI;21
+49754608;Vallée;Gabriel;2004-11-28;MI;21
+48295822;Gillet;Nathalie;2005-12-21;MI;21
+48686424;Delmas;Margaud;2004-10-07;MI;21
+49225613;Letellier;Laetitia;2006-12-26;MI;21
+49935972;Rolland;Capucine;2004-08-28;MI;21
+48507983;Legros;Caroline;2004-02-26;MI;21
+49335270;Caron;Marthe;2005-06-21;MI;21
+48809570;Leblanc;Matthieu;2004-05-10;MI;21
+49075157;Aubry;Margaud;2005-10-16;MI;21
+48210578;Pasquier;Patricia;2004-10-08;MI;22
+48369209;Pons;Laure;2005-04-11;MI;22
+49268750;Techer;Marguerite;2006-10-16;MI;22
+48924352;Lopez;Laetitia;2005-10-17;MI;22
+48061936;Neveu;Laurent;2004-12-11;MI;23
+48223896;Leclerc;Sabine;2005-07-09;MI;23
+48107867;Hebert;Nathalie;2005-01-29;MI;23
+48218144;Fabre;Valentine;2006-01-27;MI;23
+49205699;Chauvin;Marcelle;2005-10-30;MI;23
+48368815;Prévost;Mathilde;2005-09-26;MI;23
+49090196;Michel;Capucine;2004-09-08;MI;24
+49762350;Rolland;Caroline;2007-01-02;MI;24
+48136263;Chevalier;Marcel;2007-01-05;MI;24
+48797669;Camus;Marcelle;2005-04-25;MI;24
+49859821;Giraud;Margot;2005-07-05;MI;24
+49071273;Rolland;Capucine;2004-10-12;MI;24
+49735587;Traore;Pauline;2006-10-28;MI;24
+48944055;Dijoux;Xavier;2004-12-03;MI;24
+49753296;Hamon;Martine;2005-07-24;MI;24
+48998245;Ramos;Caroline;2004-12-03;PEIP;1
+49009994;Maréchal;Marcelle;2004-03-09;PEIP;1
+49493319;Lebon;David;2006-03-08;PEIP;1
+48016286;Mendès;Gabrielle;2006-01-28;PEIP;1
+48387099;Guérin;Raymond;2004-05-19;PEIP;1
+48536776;Fernandes;Laetitia;2006-02-28;PEIP;1
+48846324;Giraud;Marthe;2004-11-25;PEIP;2
+48885115;Lefort;Martine;2005-05-24;PEIP;2
+49892103;Gilbert;Maggie;2006-02-22;PEIP;2
+49617306;Roy;Sabine;2004-05-11;PEIP;2
+48334957;Gaillard;Margaux;2004-02-20;PEIP;2
+48647679;Renault;Patricia;2004-03-11;PEIP;2
+48990399;Rivière;Pauline;2006-06-06;PEIP;2
+48867942;Poulain;Jacques;2006-02-20;PEIP;2
+48722258;Normand;Nath;2005-11-14;PEIP;2
+49100035;Courtois;Paulette;2005-10-15;PEIP;2
+48198447;Hamon;Maggie;2005-09-01;PEIP;2
+49792194;Laroche;Patrick;2006-03-13;PEIP;3
+48473285;Launay;Nath;2006-07-02;PEIP;3
+48237161;Verdier;Margaret;2004-09-25;PEIP;3
+48714204;Simon;Caroline;2006-02-04;PEIP;3
+48644213;Dos Santos;Marthe;2007-02-02;PEIP;3
+49440806;Leroy;Margot;2004-04-16;PEIP;3
+48603388;Gomez;Jacques;2004-10-01;PEIP;3
+48686596;Guérin;Danielle;2007-01-16;MIASHS;1
+49558307;Bonneau;Manon;2006-01-06;MIASHS;1
+49609922;Courtois;David;2006-08-10;MIASHS;1
+48193007;Caron;Manon;2006-11-06;MIASHS;1
+49766891;Lucas;David;2006-03-07;MIASHS;1
+49343667;Texier;Marc;2005-12-02;MIASHS;1
+49460619;Marion;Patrick;2005-07-17;MIASHS;1
+49850458;Payet;Manon;2005-01-24;MIASHS;2
+48394547;Gautier;Matthieu;2005-02-20;MIASHS;2
+48414602;Normand;Marcel;2006-04-21;MIASHS;2
+49674192;Seguin;Maggie;2006-12-19;MIASHS;2
+49298384;Langlois;Maryse;2004-04-24;MIASHS;2
+48743763;Pichon;Patrick;2006-07-06;MIASHS;2
+49858893;Dumont;Margot;2005-01-02;MIASHS;2
+49270005;Barre;Daniel;2005-04-13;MIASHS;2
+49551906;Martins;Daniel;2006-09-28;MIASHS;2
+48305428;Garcia;Patrick;2005-07-13;MIASHS;3
+48095123;Carre;Xavier;2004-05-30;MIASHS;3
+48089222;Blin;Martine;2005-08-07;MIASHS;3
+48727812;Monnier;Margaret;2005-03-08;MIASHS;3
+48479083;Dupuis;Nathalie;2005-11-28;MIASHS;3
+49320241;Grenier;Martine;2005-10-12;MIASHS;3
+48857353;Delmas;Patricia;2004-05-18;MIASHS;3
+49688156;Couturier;Xavier;2005-04-27;MIASHS;3
+49950940;Le Gall;Margaret;2005-03-22;MIASHS;4
+49044697;Lévy;Marcel;2005-10-06;MIASHS;4
+49845649;Robert;Raymond;2005-12-31;MIASHS;4
+48014455;Descamps;Marcelle;2004-07-27;MIASHS;4
+48901269;Colas;Martine;2005-01-24;MIASHS;4
+48331528;Lambert;Xavier;2006-11-13;MIASHS;4
+48729609;De Sousa;Marie;2006-01-14;MIASHS;5
+49001357;Perret;Manon;2006-01-30;MIASHS;5
+49579872;Rey;Xavier;2004-02-12;MIASHS;5
+49694899;Joubert;Maurice;2004-09-20;MIASHS;5
+48689571;Petit;Jacqueline;2004-09-05;MIASHS;6
+49092688;Pineau;Maurice;2005-03-28;MIASHS;6
+48367239;Chartier;Raymond;2004-05-11;MIASHS;6
+48154912;Durand;Patricia;2005-03-23;MIASHS;6
+49304296;Leduc;Raymond;2004-06-28;MIASHS;7
+48816189;Faivre;Pauline;2006-03-21;MIASHS;7
+49242540;Verdier;Marianne;2005-10-23;MIASHS;7
+48076879;Georges;Marcel;2004-06-05;MIASHS;7
+48771958;Martineau;Laetitia;2005-06-07;MIASHS;7
+48314422;Fouquet;Sabine;2005-08-17;MIASHS;7
+49577094;De Oliveira;Marguerite;2004-12-10;MIASHS;7
+48897341;Turpin;Valentine;2004-02-24;LICAM;1
+48435152;Ollivier;Nathalie;2005-11-15;LICAM;1
+48462487;Allard;Laurent;2004-06-26;LICAM;1
+48116082;Parent;Océane;2004-02-09;MI;12
+48929879;Girard;Océane;2005-05-05;MIASHS;5
+49999190;Rivière;Adrien;2006-01-15;MI;11
+48603000;Joubert;Édith;2006-06-05;MI;11
+48699708;Hernandez;Odette;2005-04-11;MI;12
+49346192;Philippe;Édouard;2004-09-26;MI;13
+48644490;Chrétien;Adélaïde;2006-01-06;MI;14
+48022498;Legendre;Édith;2007-01-21;MI;15
+49349318;Pages;Adèle;2006-11-04;MI;22
+48138348;Guilbert;Adèle;2004-06-08;MI;22
+49880382;Verdier;Adrienne;2006-10-13;MI;23
+49206571;Georges;Adèle;2004-03-30;MI;24
+48989315;Gaudin;Édouard;2006-10-25;MI;24
+49120628;Roussel;Adrienne;2004-05-31;PEIP;1
+49574410;Valentin;Adèle;2007-01-21;PEIP;3
+48747125;Dupré;Adrien;2005-08-23;MIASHS;3
+48367285;Laurent;Odette;2004-05-08;MIASHS;4
+48231600;Leclerc;Odette;2006-09-06;MIASHS;5
+49168357;Antoine;Édouard;2007-01-17;MIASHS;7
+48929403;Allain;Édith;2005-09-13;LICAM;1
+49182909;Mace;Henri;2004-12-02;MI;11
+49318500;Colas;Benjamin;2005-03-07;MI;11
+49277488;Le Roux;Jeanne;2006-12-29;MI;11
+48243028;Voisin;Denis;2005-04-26;MI;12
+49944339;Ledoux;René;2005-04-01;MI;12
+49075803;Masson;Georges;2005-02-11;MI;12
+49564150;Thibault;Jeannine;2004-07-07;MI;13
+48162293;Grondin;Geneviève;2006-02-13;MI;13
+49198171;Lemaître;Benjamin;2006-07-30;MI;13
+48603728;Muller;Georges;2005-08-30;MI;14
+48078561;Bonnin;Benoît;2005-05-01;MI;14
+48072112;Robert;Bernadette;2005-03-08;MI;15
+49227359;Lecoq;Bertrand;2006-08-16;MI;21
+48163433;Payet;Bernadette;2004-11-01;MI;21
+49770206;Hebert;Benoît;2005-11-15;MI;22
+48762057;Ollivier;Georges;2005-02-24;MI;23
+49885038;Rousset;Benjamin;2006-01-22;MI;23
+48810265;Letellier;Geneviève;2006-08-14;PEIP;1
+49542898;Laporte;Denise;2006-08-30;PEIP;3
+48288518;Loiseau;Denis;2004-06-14;PEIP;3
+49607023;Morin;Benoît;2005-11-21;PEIP;3
+48441303;Bertrand;Benoît;2006-12-11;MIASHS;1
+49344184;Labbé;Bertrand;2005-01-06;MIASHS;1
+49662735;Barbe;Georges;2005-10-23;MIASHS;1
+48369860;Dupont;Renée;2006-07-18;MIASHS;2
+48706454;Normand;Bernard;2004-08-17;MIASHS;2
+49592042;Peltier;Georges;2006-10-23;MIASHS;3
+48496784;Rolland;Benjamin;2006-09-03;MIASHS;3
+48552462;Verdier;Henriette;2007-02-03;MIASHS;3
+48654588;Gillet;Jeanne;2006-06-21;MIASHS;3
+48546089;Sanchez;Benoît;2004-05-28;MIASHS;3
+49332212;Daniel;Benoît;2004-07-27;MIASHS;3
+49323867;Duhamel;Bertrand;2006-11-07;MIASHS;4
+48714218;Rivière;Denis;2007-01-16;MIASHS;4
+49514710;Guyon;Denise;2006-07-29;MIASHS;4
+48355068;Étienne;Denise;2006-02-18;MIASHS;4
+48302481;Ruiz;Jean;2005-02-24;MIASHS;4
+49578292;Chauvin;Jeanne;2005-02-01;MIASHS;5
+49699602;Besson;Henri;2005-07-12;MIASHS;5
+49599475;Chevalier;Henri;2005-04-16;MIASHS;5
+49910061;Martins;Bernadette;2005-06-28;MIASHS;6
+49568642;Guillaume;Benoît;2004-11-13;LICAM;1
+48563768;Delmas;Agathe;2006-12-13;MIASHS;2
+49155325;David;Agathe;2006-04-24;MIASHS;6
+49841290;Meyer;Christophe;2005-12-18;MI;11
+48390136;Baudry;Théodore;2006-05-04;MI;11
+48372430;Gillet;Thibaut;2004-07-27;MI;11
+49208635;Dos Santos;Théodore;2006-05-06;MI;12
+49447409;Lévêque;Christiane;2007-01-06;MI;12
+48188305;Guyot;Thibault;2004-11-17;MI;13
+48457703;Delattre;Théodore;2004-05-20;MI;13
+49391240;Millet;Christelle;2005-05-12;MI;13
+49223835;Clément;Théodore;2005-12-25;MI;13
+49333362;Daniel;Thierry;2006-05-01;MI;13
+49078309;Robin;Christophe;2006-09-26;MI;14
+48285205;Schmitt;Thierry;2005-11-13;MI;14
+49310819;Maréchal;Philippe;2005-02-11;MI;21
+48882776;Gilbert;Christophe;2004-12-02;MI;21
+48511231;Blanc;Théophile;2005-06-30;MI;21
+48891170;Chauvet;Thérèse;2006-01-03;MI;22
+49091807;Brunel;Philippine;2005-11-13;MI;23
+49056255;Turpin;Christine;2004-05-18;MI;23
+48941559;Jean;Charles;2006-01-07;MI;24
+49571013;Lejeune;Christine;2007-01-11;MI;24
+48047609;Martel;Théodore;2004-03-01;MI;24
+49693520;Blanchard;Thierry;2005-01-05;MI;24
+48825890;Gaudin;Thérèse;2004-09-15;PEIP;1
+49780670;Fischer;Thomas;2006-09-06;PEIP;2
+48500186;Lévêque;Charles;2004-06-07;PEIP;2
+49437158;Raynaud;Théodore;2004-05-08;PEIP;3
+48610236;Roux;Théophile;2005-03-13;PEIP;3
+49859708;Vidal;Philippe;2005-11-25;MIASHS;1
+49364974;Clerc;Théophile;2006-11-02;MIASHS;2
+49858517;Pottier;Philippe;2004-06-20;MIASHS;2
+48899275;Besnard;Théophile;2006-07-13;MIASHS;2
+49106608;Hardy;Charles;2004-07-30;MIASHS;3
+49720242;Briand;Thibaut;2005-06-05;MIASHS;3
+49072674;Auger;Christophe;2005-07-27;MIASHS;4
+48278268;Perrier;Christophe;2005-12-12;MIASHS;4
+49319576;Carpentier;Théodore;2004-06-11;MIASHS;5
+49027624;Cohen;Philippine;2004-04-27;MIASHS;5
+49000721;Marie;Thérèse;2005-08-07;MIASHS;6
+49808312;Maurice;Thibault;2006-04-23;MIASHS;6
+48788281;Bourgeois;Charles;2006-05-26;MIASHS;6
+49468826;Charles;Thibaut;2006-05-12;MIASHS;6
+49348264;Hamon;Philippe;2006-05-10;MIASHS;7
+49258063;Nguyen;Thomas;2006-01-22;MIASHS;7
+49646759;Collet;Chantal;2004-05-17;LICAM;1
+48084967;Rousset;Charles;2005-04-12;LICAM;1
+49364963;Loiseau;Thibault;2006-03-29;LICAM;1
+48140841;Laroche;Aimé;2005-07-24;MI;11
+48658753;Guibert;Michel;2005-04-24;MI;11
+49690531;Noël;Simone;2005-07-24;MI;11
+49109272;Dubois;Michelle;2005-02-22;MI;11
+49960206;Moreau;Victoire;2005-11-17;MI;11
+48760164;Pages;Michelle;2005-04-03;MI;12
+49014081;Cousin;Simone;2005-06-18;MI;12
+49031747;Rolland;Michèle;2005-09-13;MI;12
+49249132;Faure;Victor;2005-11-11;MI;13
+48020809;Mahe;Timothée;2006-08-24;MI;13
+48449430;Fouquet;Pierre;2005-03-14;MI;14
+48679640;David;Michèle;2005-07-16;MI;15
+48072976;Laroche;Pierre;2004-08-17;MI;15
+48369301;Dumas;Richard;2004-11-17;MI;15
+48010476;Pascal;Nicole;2006-10-01;MI;15
+48224967;Charpentier;Victor;2004-11-30;MI;15
+49257872;Bonnet;Michel;2006-03-22;MI;15
+48515524;Ribeiro;William;2004-02-14;MI;21
+49829185;Perrin;Richard;2006-08-14;MI;21
+48569284;Benoit;Gilles;2006-05-20;MI;21
+48700284;Fournier;Victoire;2006-12-05;MI;21
+48203581;Marchand;Michel;2006-03-28;MI;21
+48327442;Martel;Victor;2004-08-19;MI;22
+48981580;Garnier;Vincent;2004-06-25;MI;22
+48919758;Roux;Gilbert;2005-10-01;MI;22
+49745284;Lebreton;Diane;2005-04-28;MI;23
+49028889;Maury;Nicolas;2004-04-22;MI;23
+48308113;Labbé;Michelle;2006-09-17;MI;23
+48462806;Guyot;Michel;2005-01-24;MI;23
+48900048;Moulin;Simone;2005-07-11;MI;23
+49752693;Bernard;Timothée;2004-11-21;MI;24
+48229976;Delaunay;Gilbert;2004-07-19;MI;24
+48554298;Lopez;Gilles;2005-10-05;PEIP;1
+48176997;Raymond;Vincent;2004-02-17;PEIP;2
+48619911;Giraud;Vincent;2005-02-22;PEIP;2
+48873029;Bodin;Timothée;2006-08-06;PEIP;2
+49869618;Guibert;Victor;2006-07-11;PEIP;2
+48382376;Bouvier;Gilles;2005-11-10;PEIP;3
+48993857;Albert;Pierre;2005-12-15;PEIP;3
+49196456;Pasquier;Aimé;2005-01-09;MIASHS;1
+49773989;Pichon;Timothée;2005-05-17;MIASHS;2
+49634828;Michaud;Nicolas;2006-09-16;MIASHS;2
+49365567;Peltier;Michelle;2004-05-19;MIASHS;3
+48486675;Aubry;Michelle;2004-02-28;MIASHS;4
+49827559;Renault;Aimée;2006-10-24;MIASHS;4
+48410651;Brunet;Gilles;2005-10-01;MIASHS;4
+48475700;Klein;Simone;2005-07-07;MIASHS;4
+49212966;Laporte;Simone;2006-08-31;MIASHS;5
+48848466;Barthelemy;Timothée;2004-09-30;MIASHS;5
+49065241;Rolland;Pierre;2006-12-12;MIASHS;6
+49419581;Gilbert;Richard;2004-07-15;MIASHS;6
+49543356;Delmas;Gilles;2006-12-17;MIASHS;6
+49102569;Rocher;Victoire;2006-01-16;MIASHS;7
+49910070;Huet;Aimé;2006-08-25;MIASHS;7
+48708809;Vasseur;Gilles;2005-09-26;MIASHS;7
+49039981;Henry;Claude;2004-08-26;MI;12
+48236910;Delorme;Claire;2005-07-21;MI;12
+49513689;Gauthier;Élisabeth;2004-10-12;MI;12
+48123370;Torres;Alphonse;2005-07-07;MI;13
+49787309;Andre;Alice;2004-10-16;MI;13
+48612369;Pelletier;Claire;2006-05-09;MI;13
+49410715;Grondin;Olivier;2005-05-16;MI;15
+48826561;Perret;Alfred;2007-01-25;MI;15
+49205811;Lelièvre;Olivier;2005-12-24;MI;15
+48524936;Laporte;Alphonse;2006-08-24;MI;21
+48644957;Besson;Alfred;2005-03-25;MI;21
+48044917;Baudry;Claude;2006-04-22;MI;22
+49661734;Potier;Olivie;2006-04-21;MI;23
+48854236;Couturier;Claudine;2005-10-25;MI;23
+49860240;Charles;Olivie;2005-11-05;MI;23
+49851744;Guichard;Alphonse;2004-05-23;MI;24
+48076356;Dupré;Olivier;2004-10-08;PEIP;1
+49228342;Lefort;Alexandrie;2005-07-26;PEIP;1
+49357003;Poirier;Élise;2005-03-14;PEIP;2
+49112353;Thibault;Clémence;2006-02-15;PEIP;2
+48986081;Barbe;Alfred;2004-05-30;MIASHS;1
+48625105;Colas;Éléonore;2004-10-12;MIASHS;1
+48282523;Paul;Alexandre;2007-01-22;MIASHS;2
+48276771;Laporte;Alexandrie;2005-12-27;MIASHS;2
+48616493;Weiss;Éléonore;2007-01-24;MIASHS;3
+49721805;Bodin;Élodie;2006-11-02;MIASHS;3
+49261274;Vincent;Clémence;2004-07-27;MIASHS;3
+49481840;Blin;Alain;2004-02-24;MIASHS;4
+48942805;Vidal;Claire;2004-11-08;MIASHS;5
+49776796;Fernandez;Éléonore;2004-03-13;MIASHS;5
+48415104;Dias;Alphonse;2006-09-03;MIASHS;6
+48963377;Merle;Clémence;2006-01-15;MIASHS;6
+48543691;Loiseau;Alix;2004-12-28;MIASHS;6
+49165826;Mace;Alice;2006-03-16;MIASHS;6
+48048199;Da Silva;Olivier;2005-03-19;MIASHS;7
+48498818;Adam;Emmanuelle;2005-11-22;MI;11
+49128966;Descamps;Émile;2004-07-09;MI;11
+48572164;Collet;Emmanuel;2006-09-21;MI;11
+48414807;Lefebvre;Emmanuel;2005-06-06;MI;13
+49280836;Imbert;Émilie;2006-12-27;MI;14
+48518720;Leclerc;Amélie;2004-07-17;MI;22
+49337732;Vidal;Emmanuelle;2004-07-11;MI;23
+48619520;Gosselin;Émile;2005-10-12;MI;23
+49538719;François;Emmanuelle;2005-09-22;PEIP;1
+48269577;Bouvet;Émile;2004-11-30;PEIP;1
+48293695;Olivier;Émile;2005-02-18;PEIP;2
+48246161;Hubert;Amélie;2005-04-16;PEIP;3
+48224814;Lefebvre;Emmanuel;2007-01-03;PEIP;3
+48968935;Bouvier;Emmanuel;2006-02-09;MIASHS;3
+48310302;Verdier;Émile;2004-10-01;LICAM;1
+49094242;Blanchet;Inès;2006-01-03;MI;12
+49492457;Mahe;Antoinette;2004-09-25;MI;13
+49398195;Faivre;Inès;2004-11-06;MI;14
+48098984;Valentin;Antoine;2006-04-27;MI;15
+48819150;Barbier;André;2004-08-12;MI;15
+49331908;Arnaud;Anouk;2005-05-04;MI;15
+49053294;Picard;André;2006-11-02;MI;15
+48194488;Bazin;Inès;2005-10-25;MI;21
+49943212;Morel;Anouk;2005-09-20;MI;22
+49810037;Valentin;Inès;2005-07-09;MI;22
+49074662;Pruvost;Andrée;2005-07-24;MI;22
+49286080;Rey;Inès;2005-04-26;MI;23
+49310002;Moreau;Anastasie;2006-08-18;MI;23
+48727471;Denis;Antoine;2006-08-14;MI;24
+49431097;Legendre;André;2006-06-12;MI;24
+49302131;Ollivier;Antoinette;2007-01-16;MI;24
+48194378;Pasquier;Anaïs;2004-04-01;PEIP;1
+49193197;Jacob;Anne;2005-02-16;PEIP;1
+48933157;Bouchet;Antoinette;2005-09-05;MIASHS;1
+49050456;Leclerc;Inès;2005-09-17;MIASHS;1
+49921157;Benoit;Anne;2005-11-10;MIASHS;1
+49014483;Boutin;Antoine;2004-02-26;MIASHS;1
+49909483;Renault;Anouk;2005-03-27;MIASHS;2
+48364353;Tessier;André;2006-02-24;MIASHS;2
+49409175;Poulain;Anaïs;2006-09-16;MIASHS;3
+48360589;Mahe;Anouk;2005-07-24;MIASHS;4
+49248615;Blondel;Andrée;2004-10-28;MIASHS;5
+49291270;Durand;Inès;2006-08-13;MIASHS;5
+49503671;Leclercq;André;2006-03-11;MIASHS;5
+48725022;Barbe;Anastasie;2004-08-13;MIASHS;6
+48569861;Mallet;Antoinette;2006-09-03;MIASHS;7
+49393513;Dupuis;Anne;2004-08-29;LICAM;1
+48771321;Vaillant;Inès;2004-12-19;LICAM;1
+48315394;Barbe;Joséphine;2005-11-13;MI;11
+48372869;Bernard;Dominique;2005-06-26;MI;11
+49407477;Baudry;Robert;2006-08-15;MI;11
+48041155;Wagner;Joséphine;2006-10-24;MI;11
+49025652;Merle;Robert;2006-08-10;MI;12
+49333337;Blanchard;Dominique;2005-07-08;MI;12
+49546065;Ramos;Honoré;2006-12-18;MI;12
+49828461;Hubert;Dorothée;2006-11-15;MI;13
+49859270;Samson;Colette;2006-02-26;MI;13
+48354435;Marie;Joseph;2006-11-13;MI;13
+49140447;Bouvier;Dorothée;2006-07-09;MI;13
+48743541;Foucher;Zoé;2004-09-16;MI;13
+48743085;Renard;Honoré;2004-02-23;MI;14
+49320759;Ledoux;Josette;2006-03-21;MI;14
+48064265;Bonnet;Joseph;2004-07-21;MI;14
+49169058;Arnaud;Dorothée;2007-02-02;MI;14
+48374351;Fournier;Louis;2006-04-02;MI;14
+49613999;Masson;Corinne;2004-06-12;MI;15
+48727972;Étienne;Roland;2006-04-15;MI;15
+48465697;De Sousa;Constance;2005-03-13;MI;15
+48916237;Jean;Louise;2005-08-10;MI;22
+49249912;Vasseur;Josette;2004-02-16;MI;22
+49772841;Fernandez;Honoré;2005-11-11;MI;22
+48079107;Marty;Corinne;2004-03-31;MI;23
+48360831;Simon;Corinne;2004-12-13;MI;23
+49012082;Laroche;Robert;2004-04-09;MI;23
+48572666;Lebreton;Dorothée;2004-09-17;MI;24
+49995394;Lejeune;Louis;2005-09-10;PEIP;1
+49042171;Maurice;Noël;2004-10-01;PEIP;1
+49305449;Collet;Constance;2005-03-02;PEIP;2
+48610956;Bazin;Dominique;2004-12-30;PEIP;2
+49343813;Maillet;Colette;2004-11-03;PEIP;3
+48390498;Costa;Louis;2005-06-29;PEIP;3
+49484993;Blin;Joseph;2005-07-01;PEIP;3
+49465977;Gallet;Honoré;2004-10-21;PEIP;3
+48066077;Sauvage;Joséphine;2005-09-06;PEIP;3
+48790724;Gilles;Monique;2005-03-10;MIASHS;1
+48065086;Gérard;Roland;2004-02-20;MIASHS;1
+48764030;Berthelot;Dorothée;2004-03-29;MIASHS;1
+48921041;Bègue;Noël;2005-01-15;MIASHS;1
+49419564;Gay;Sophie;2006-01-22;MIASHS;2
+49737763;Mallet;Noémi;2004-12-30;MIASHS;2
+49575769;Colas;Joseph;2004-10-26;MIASHS;2
+49877276;Dupuy;Lorraine;2006-10-27;MIASHS;2
+49931124;Vallée;Dorothée;2006-04-14;MIASHS;3
+49165955;Georges;Louis;2005-12-20;MIASHS;3
+48030093;Boutin;Roger;2005-03-29;MIASHS;3
+48250699;Labbé;Joseph;2004-09-29;MIASHS;4
+49958185;Raynaud;Louise;2006-11-27;MIASHS;4
+48725911;Jean;Louise;2005-12-02;MIASHS;4
+49281635;Techer;Constance;2005-07-25;MIASHS;4
+48976583;Millet;Robert;2004-02-10;MIASHS;5
+49166389;Gallet;Roger;2005-12-05;MIASHS;5
+48092805;Bouvet;Roger;2005-07-24;MIASHS;5
+49099719;Buisson;Roland;2005-02-14;MIASHS;6
+49968517;Munoz;Corinne;2004-03-06;MIASHS;6
+49390103;Perret;Noël;2005-01-06;MIASHS;7
+49976696;Pottier;Louis;2004-10-14;MIASHS;7
+48410392;Guérin;Dorothée;2005-04-07;MIASHS;7
+48289507;Fleury;Hortense;2005-02-23;LICAM;1
+49857513;De Oliveira;Frédérique;2006-06-21;MI;13
+49433716;Sauvage;Arnaude;2005-12-09;MI;14
+49986252;Neveu;Arnaude;2006-04-20;MI;14
+48098172;Traore;Grégoire;2005-10-07;MI;14
+49243418;Picard;Arthur;2005-05-24;MI;14
+48980032;Caron;Arnaude;2005-07-16;MI;15
+48385437;Germain;Frédéric;2004-02-09;MI;21
+48962661;Denis;Frédéric;2004-02-25;MI;22
+48102255;Lopez;Grégoire;2004-08-22;MI;22
+48685914;Pottier;Arthur;2004-04-18;MI;22
+49817939;Lefort;Arnaude;2005-11-21;MI;23
+48997921;Merle;Franck;2006-01-02;MI;23
+48036970;Costa;Françoise;2006-08-19;MI;23
+49690621;Leclerc;Arthur;2004-07-18;MI;24
+49399873;Georges;Frédérique;2004-06-12;MI;24
+48398113;Bertrand;Brigitte;2005-10-16;MI;24
+48047711;Lejeune;Franck;2006-09-07;MIASHS;1
+49474760;Roy;Éric;2005-03-31;MIASHS;2
+49106757;Lemonnier;François;2005-02-22;MIASHS;2
+48918826;Costa;Arnaude;2004-06-07;MIASHS;2
+48860640;Clerc;Arthur;2005-07-03;MIASHS;3
+49938930;Gaillard;Françoise;2006-07-03;MIASHS;3
+49878160;Vidal;Françoise;2006-10-16;MIASHS;4
+48413547;Meyer;Frédéric;2005-03-03;MIASHS;5
+48832278;Lemaître;Éric;2006-12-07;MIASHS;5
+48612266;Traore;Arthur;2004-12-22;MIASHS;6
+48920229;Baudry;Franck;2004-06-11;MIASHS;6
+48679708;Rousseau;Arthur;2005-10-29;MIASHS;7
+49873065;Boulanger;Brigitte;2004-10-30;MIASHS;7
+48760947;Bonnet;Grégoire;2006-04-21;LICAM;1
+49606462;Dias;Isabelle;2004-07-31;MI;11
+48038103;Verdier;Isaac;2006-08-06;MI;11
+48456198;Paris;Isaac;2005-07-14;MI;12
+49148655;De Oliveira;Isabelle;2004-06-01;MI;13
+48617264;Chevallier;Astrid;2005-05-04;MI;21
+48815743;Robert;Isaac;2004-10-08;MI;21
+49296767;Marty;Isaac;2004-05-29;MI;22
+48036851;Millet;Isabelle;2006-06-04;PEIP;1
+49754880;Legendre;Isaac;2005-05-10;MIASHS;2
+49773672;Mathieu;Astrid;2006-05-03;MIASHS;5
+48635844;Hardy;Isaac;2005-09-06;MIASHS;5
+48575357;Le Gall;Stéphane;2006-08-30;MI;12
+49278499;Boucher;Étienne;2006-03-20;MI;15
+49801751;Bertin;Étienne;2005-12-09;MI;22
+49535636;Chauvin;Stéphanie;2007-02-01;PEIP;3
+49963316;Petit;Stéphane;2006-02-03;MIASHS;1
+49194569;Hebert;Stéphanie;2006-08-15;MIASHS;3
+48395553;Lemaître;Stéphanie;2007-01-13;MIASHS;6
+48031169;Brun;Augustin;2006-12-27;MI;11
+48547533;Guibert;Luce;2006-05-01;MI;11
+48717052;Besson;Suzanne;2006-03-13;MI;11
+49410320;Collet;Eugène;2004-04-08;MI;11
+49640970;Gomes;Hugues;2006-02-11;MI;12
+48447250;Delaunay;Julien;2004-06-12;MI;12
+48847624;Delannoy;Luce;2006-12-07;MI;12
+49301141;Gautier;Suzanne;2005-09-15;MI;12
+48698282;Perrin;Eugène;2004-02-07;MI;12
+48805628;Rey;Julie;2005-09-01;MI;13
+48950318;Bonnet;Julien;2006-09-18;MI;13
+49840057;Petitjean;Suzanne;2005-09-22;MI;14
+48963709;Boulay;Guillaume;2005-09-05;MI;14
+49763993;Chevallier;Lucas;2004-11-04;MI;14
+49854638;Fabre;Jules;2004-09-13;MI;14
+49047337;Valette;Lucas;2005-07-06;MI;14
+48899378;Dupuis;Julien;2005-07-14;MI;14
+49648868;Michel;Guillaume;2004-04-04;MI;15
+48104375;Breton;Lucas;2004-04-11;MI;15
+48495920;Roy;Luc;2006-02-19;MI;15
+48762172;Bègue;Eugène;2006-02-04;MI;21
+48219548;Brunel;Suzanne;2005-12-31;MI;21
+48047365;Baudry;Luc;2005-10-10;MI;22
+49200531;Blanc;Lucas;2004-04-06;MI;22
+48652952;Gautier;Susan;2004-11-09;MI;23
+49161546;Lejeune;Luce;2004-02-22;MI;24
+49239388;Thomas;Hugues;2006-10-24;MI;24
+49787033;Chrétien;Jules;2004-11-16;MI;24
+49976882;Hardy;Audrey;2005-04-10;MI;24
+49245019;Thibault;Julie;2006-05-06;PEIP;1
+48556681;Étienne;Lucy;2006-02-27;PEIP;1
+49648375;Auger;Susan;2005-05-13;PEIP;1
+49871300;Arnaud;Guillaume;2005-02-13;PEIP;2
+49394612;Vincent;Auguste;2004-09-17;PEIP;2
+48748008;Sanchez;Aurélie;2006-01-18;PEIP;3
+48736976;Meyer;Eugène;2005-12-19;MIASHS;1
+48071954;Guillot;Eugène;2006-08-14;MIASHS;1
+49926329;Guillou;Eugène;2004-10-09;MIASHS;2
+49190771;Blin;Lucas;2005-11-20;MIASHS;2
+49780701;Teixeira;Guy;2006-07-28;MIASHS;2
+49010195;Normand;Aurore;2006-12-21;MIASHS;2
+49370759;Charpentier;Hugues;2006-08-25;MIASHS;3
+48583893;Navarro;Suzanne;2005-10-07;MIASHS;4
+49953685;Martin;Auguste;2005-06-01;MIASHS;4
+48964722;Merle;Lucie;2004-12-15;MIASHS;4
+49762099;Le Gall;Hugues;2006-01-01;MIASHS;4
+48976397;Gosselin;Eugène;2006-04-30;MIASHS;5
+48432908;Hernandez;Julien;2004-12-14;MIASHS;5
+48676920;Didier;Suzanne;2005-03-05;MIASHS;5
+48488578;Bazin;Suzanne;2006-01-21;MIASHS;5
+49650088;Diallo;Susanne;2006-01-20;MIASHS;5
+48674749;Mendès;Guillaume;2006-11-26;MIASHS;6
+49326039;Vaillant;Susanne;2006-01-27;MIASHS;6
+49507651;Lelièvre;Guillaume;2005-08-30;MIASHS;6
+49981665;Maillard;Auguste;2006-12-29;MIASHS;6
+48583896;Lefort;Juliette;2005-03-20;MIASHS;6
+48502816;Hardy;Aurore;2005-07-07;MIASHS;7
+49285383;Schmitt;Lucas;2004-04-18;MIASHS;7
+49698684;Lemaître;Julie;2006-12-27;MIASHS;7
+48532018;Barthelemy;Susanne;2004-11-03;MIASHS;7
+49651032;Da Silva;Suzanne;2004-12-30;LICAM;1
+49401175;Hervé;Lucas;2005-02-01;LICAM;1
+49429809;Ferrand;Lucas;2005-10-19;LICAM;1
+49421098;Costa;Léon;2006-12-24;MI;11
+49863015;Lévêque;Véronique;2006-02-03;MI;12
+49202011;Martin;Gérard;2006-06-05;MI;12
+49298382;Michaud;Cécile;2005-06-16;MI;12
+49380003;Guillet;Cécile;2006-12-31;MI;13
+49402564;Seguin;Célina;2005-06-10;MI;14
+48579445;Meunier;Jérôme;2006-06-09;MI;15
+49458368;Valentin;Jérôme;2006-12-01;MI;15
+48575120;Carpentier;Gérard;2006-11-08;MI;15
+49051125;Gallet;Rémy;2004-11-26;MI;21
+49272992;Chevalier;Jérôme;2005-10-18;MI;21
+48642327;Grondin;Sébastien;2006-07-26;MI;21
+49198512;Collin;Sébastien;2006-11-18;MI;22
+48315819;Allard;Cécile;2005-03-21;MI;22
+48639997;Normand;Célina;2004-04-23;MI;22
+49735241;Fournier;Gérard;2005-05-29;MI;22
+49569773;Thomas;Pénélope;2004-04-06;MI;23
+49953153;Allain;Rémy;2004-06-25;MI;24
+49248879;Grenier;Sébastien;2004-05-24;MI;24
+49885170;Meunier;Pénélope;2004-09-07;MI;24
+49618335;Bousquet;Célina;2005-12-19;PEIP;1
+49040164;Gillet;Céline;2004-12-06;PEIP;1
+48369100;Vallée;Rémy;2005-11-23;PEIP;2
+49649794;Marchal;Hélène;2006-09-10;PEIP;2
+48470875;Renault;Célina;2004-02-06;PEIP;3
+49085465;Peltier;Cécile;2006-03-23;MIASHS;1
+49300474;Gillet;Céline;2006-01-27;MIASHS;1
+48085754;Fernandes;Rémy;2006-06-22;MIASHS;1
+49400255;Gonzalez;Hélène;2006-02-14;MIASHS;1
+49211264;Poulain;Jérôme;2005-09-07;MIASHS;1
+49710675;Blanchard;Léon;2006-05-28;MIASHS;2
+48825409;Alexandre;Léon;2005-07-25;MIASHS;2
+49278797;Bailly;Hélène;2004-10-14;MIASHS;2
+49108520;Maillard;Sébastien;2004-04-19;MIASHS;3
+49127699;Delorme;Léon;2005-08-15;MIASHS;4
+48711456;Vincent;Véronique;2006-06-07;MIASHS;5
+49950372;Boulay;Cécile;2004-04-07;MIASHS;5
+48273478;Leduc;Céline;2004-06-27;MIASHS;6
+49938916;Moulin;Cécile;2005-02-08;MIASHS;7
+49161328;Godard;Léon;2004-12-30;MIASHS;7
+49355766;Klein;Gérard;2006-02-26;MIASHS;7
+48868115;Brunel;Léon;2005-11-25;MIASHS;7
+48338949;Fernandes;Céline;2006-08-28;LICAM;1
+49807421;Mendès;Pénélope;2005-08-25;LICAM;1
+49486952;Benard;Cécile;2004-07-20;LICAM;1
diff --git a/tp4/gestion_promo_etu.py b/tp4/gestion_promo_etu.py
new file mode 100644
index 0000000..fb7cf7e
--- /dev/null
+++ b/tp4/gestion_promo_etu.py
@@ -0,0 +1,229 @@
+
+
+
+
+def pour_tous(seq_bool:list[bool])->bool:
+
+    """ à_remplacer_par_ce_que_fait_la_fonction
+
+    Précondition :
+    Exemple(s) :
+    $$$ pour_tous([])
+    True
+    $$$ pour_tous([True, True, True])
+    True
+    $$$ pour_tous([True, True, False])
+    False
+    """
+    if False in seq_bool:
+        return False
+    return True
+
+
+def il_existe(seq_bool:list[bool])->bool:
+    """ à_remplacer_par_ce_que_fait_la_fonction
+
+    Précondition :
+    Exemple(s) :
+    $$$ il_existe([])
+    False
+    $$$ il_existe([False, True, False])
+    True
+    $$$ il_existe([False, False])
+    False
+
+    """
+    if True in seq_bool:
+        return True
+    return False
+
+from date import Date
+
+from etudiant import Etudiant
+
+def charge_fichier_etudiants(fname: str) -> list[Etudiant]:
+        """
+        Renvoie la liste des étudiants présents dans le fichier dont
+        le nom est donné en paramètre.
+
+        précondition: le fichier est du bon format.
+        """
+        res = []
+        with open(fname, 'r') as fin:
+            fin.readline()
+            ligne = fin.readline()
+            while ligne != '':
+                nip, nom, prenom, naissance, formation, groupe = ligne.strip().split(';')
+                y, m, d = naissance.split('-')
+                date_naiss = Date(int(d.lstrip('0')), int(m.lstrip('0')), int(y))
+                res.append(Etudiant(int(nip), nom, prenom, date_naiss, formation, groupe))
+                ligne = fin.readline()
+        return res
+    
+L_ETUDIANTS = charge_fichier_etudiants('etudiants.csv')
+COURTE_LISTE = L_ETUDIANTS[0:11]    
+    
+def est_liste_d_etudiants(x) -> bool:
+    """
+    Renvoie True si ``x`` est une liste de d'étudiant, False dans le cas contraire.
+
+    Précondition: aucune
+
+    Exemples:
+
+    $$$ est_liste_d_etudiants(COURTE_LISTE)
+    True
+    $$$ est_liste_d_etudiants("Timoleon")
+    False
+    $$$ est_liste_d_etudiants([('12345678', 'Calbuth', 'Raymond', 'Danse', '12') ])
+    False
+    """
+    for elt in x:
+        if not(isinstance(elt, Etudiant)):
+            return False
+    return True
+        
+        
+#c'est Etudiant(49801751, 'Bertin', 'Étienne', Date(9, 12, 2005), 'MI', '22')
+
+def ensemble_des_formations(liste: list[Etudiant]) -> set[str]:
+    """
+    Renvoie un ensemble de chaînes de caractères donnant les formations
+    présentes dans les fiches d'étudiants
+
+    Précondition: liste ne contient que des fiches d'étudiants
+
+    Exemples:
+
+    $$$ ensemble_des_formations(COURTE_LISTE)
+    {'MI', 'PEIP', 'MIASHS', 'LICAM'}
+    $$$ ensemble_des_formations(COURTE_LISTE[0:2])
+    {'MI', 'MIASHS'}
+    """
+    
+    ens = set()
+    for etudiant in liste:
+        ens.add(etudiant.formation)
+    return ens
+    
+def nom_pas_judicieux(liste):
+    """ renvoie le nombre de fois qu'un nom se repetent
+
+    Précondition :
+    Exemple(s) :
+    $$$ 
+    """
+    
+    res = {}
+    for etud in liste:
+        prenom = etud.prenom
+        if prenom in res:
+            res[prenom] = res[prenom] + 1
+        else:
+            res[prenom] = 1
+
+    return res
+
+
+# 1)
+res = nom_pas_judicieux(L_ETUDIANTS)
+res['Alexandre']
+# il y'a un Alexandre
+# il y'a pas de Camille
+# cette fonction necessite 603 parcours
+# il y'a 201 prenom differents parmis tous les etudiants
+# ces prenoms sont Cécile , Benoît
+
+def frequent(dico):
+    """ à_remplacer_par_ce_que_fait_la_fonction
+
+    Précondition :
+    Exemple(s) :
+    $$$
+    """
+    nb_max = 0
+    liste = []
+    
+    for nom, val in dico.items():
+        if val > nb_max:
+            nb_max = val
+            liste = [nom]
+        elif val == nb_max:
+            liste.append(nom)
+    
+    return liste
+
+print(frequent(res))
+
+def occurrences_nip(etudiants:list)->bool:
+    """ à_remplacer_par_ce_que_fait_la_fonction
+
+    Précondition :
+    Exemple(s) :
+    $$$
+    """
+    nips = []
+    for etudiant in etudiants:
+        if etudiant.nip in nips:
+            return False
+        nips.append(etudiant.nip)
+    return True
+    
+        
+def etu_formation(liste:list[Etudiant])->dict:
+    """ à_remplacer_par_ce_que_fait_la_fonction
+
+    Précondition :
+    Exemple(s) :
+    $$$
+    """
+    dico={}
+    for etudiant in liste:
+        if etudiant.formation in liste:
+            dico[etudiant.formation]+=1
+        else:
+            dico[etudiant.formation] = 1
+    return dico
+
+print(etu_formation(L_ETUDIANTS))
+
+def liste_formation(liste: list[Etudiant], form: str) -> list[Etudiant]:
+    """
+    Renvoie la liste des étudiants de la formation ``form``
+
+    Précondition:  liste ne contient que des fiches d'étudiants
+
+    Exemples:
+
+    $$$ l_MI = liste_formation(COURTE_LISTE, 'MI')
+    $$$ len(l_MI)
+    7
+    $$$ type(l_MI[1]) == Etudiant
+    True
+    $$$ len(liste_formation(L_ETUDIANTS, 'INFO'))
+    0
+    """
+    res = []
+    for etudiant in liste:
+        if etudiant.formation == form:
+            if not(etudiant in res):
+                res.append(etudiant)
+    return res
+        
+        
+if __name__ == '__main__':
+    # éxécuté qd ce module n'est pas initialisé par un import.
+    L_ETUDIANTS = charge_fichier_etudiants('etudiants.csv')
+    COURTE_LISTE = L_ETUDIANTS[0:10]
+    NBRE_ETUDIANTS = len(L_ETUDIANTS)        
+# il y'a 603 etudiants dans L_ETUDIANTS
+    NIP = 42425158       
+        
+        
+
+
+
+
+    
+    
+    
\ No newline at end of file
-- 
GitLab