From b40df15de82825bbdedf8b3a5ff9ab4a78ac4a91 Mon Sep 17 00:00:00 2001 From: Dahmane Lynda <lynda.dahmane.etu@118p28.fil.univ-lille.fr> Date: Wed, 7 Feb 2024 09:03:38 +0100 Subject: [PATCH] pour_tous --- Tp4/etudiants.zip | Bin 0 -> 13011 bytes Tp4/etudiants/apl1test.py | 89 +++++ Tp4/etudiants/date.py | 204 +++++++++++ Tp4/etudiants/etudiant.py | 84 +++++ Tp4/etudiants/etudiants.csv | 604 +++++++++++++++++++++++++++++++++ Tp4/gestion_promo_etudiants.py | 334 ++++++++++++++++++ 6 files changed, 1315 insertions(+) create mode 100644 Tp4/etudiants.zip create mode 100644 Tp4/etudiants/apl1test.py create mode 100644 Tp4/etudiants/date.py create mode 100644 Tp4/etudiants/etudiant.py create mode 100644 Tp4/etudiants/etudiants.csv create mode 100644 Tp4/gestion_promo_etudiants.py diff --git a/Tp4/etudiants.zip b/Tp4/etudiants.zip new file mode 100644 index 0000000000000000000000000000000000000000..c2821fc239a613e1ae4ea9daad741d3e1e9498f6 GIT binary patch literal 13011 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 T1_~h-1{MYnMh1pbLl6%DT7>2# literal 0 HcmV?d00001 diff --git a/Tp4/etudiants/apl1test.py b/Tp4/etudiants/apl1test.py new file mode 100644 index 0000000..8533cca --- /dev/null +++ b/Tp4/etudiants/apl1test.py @@ -0,0 +1,89 @@ +import thonnycontrib +from thonnycontrib.backend.evaluator import Evaluator +import thonnycontrib.backend.l1test_backend +from thonny.plugins.cpython_backend.cp_back import MainCPythonBackend +import thonnycontrib.backend.doctest_parser +from thonnycontrib.backend.doctest_parser import ExampleWithExpected, ExampleWithoutExpected +import thonnycontrib.backend.ast_parser +from thonnycontrib.backend.ast_parser import L1DocTest +import thonnycontrib.backend.verdicts +from thonnycontrib.backend.verdicts.ExceptionVerdict import ExceptionVerdict + +import inspect +import tempfile +import os +import sys + +class MockBackend(MainCPythonBackend): + """ + Fake backend. + """ + def __init__(self): + ... + + def send_message(self, msg) -> None: + ... + +# register backend +thonnycontrib.backend.l1test_backend.BACKEND = MockBackend() + +def l1test_to_org(filename: str, source: str=""): + """ + Return an org abstract of the tests presents in `filename` file. + """ + abstract = {'total': 0, + 'success': 0, + 'failures': 0, + 'errors': 0, + 'empty': 0} + + if source == "": + with open(filename, 'rt') as fin: + source = fin.read() + evaluator = Evaluator(filename=filename, + source=source) + tests = evaluator.evaluate() + n = len(tests) + abstract['total'] = n + res = "" + for test in tests: + examples = test.get_examples() + res_examples = "" + nb_test, nb_test_ok = 0, 0 + empty = True + for example in examples: + verdict = test.get_verdict_from_example(example) + if isinstance(example, ExampleWithExpected): + nb_test += 1 + if verdict.isSuccess(): + nb_test_ok += 1 + abstract['success'] += 1 + else: + abstract['failures'] += 1 + empty = False + if isinstance(verdict, ExceptionVerdict): + abstract['errors'] += 1 + empty = False + res_examples += f"** {verdict}\n\n" + if not verdict.isSuccess(): + res_examples += f" {verdict.get_details()}\n\n" + if not empty: + res += f"* {test.get_name()} ~ {nb_test_ok}/{nb_test} réussis\n\n" + else: + abstract['empty'] += 1 + res += f"* {test.get_name()}\n\n Aucun test trouvé !\n\n" + res += res_examples + res = f"Tests exécutés : {abstract['total']}\nSuccès: {abstract['success']}, \ +Echecs: {abstract['failures']}, Erreurs: {abstract['errors']}, \ +Vide: {abstract['empty']}\n\n" + res + return res + + +def testmod(modulename: str): + """ + mimic the doctest.testmod function + for `modulename` module + """ + print(l1test_to_org(modulename)) + + diff --git a/Tp4/etudiants/date.py b/Tp4/etudiants/date.py new file mode 100644 index 0000000..01410c8 --- /dev/null +++ b/Tp4/etudiants/date.py @@ -0,0 +1,204 @@ +#!/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 __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 + + +if (__name__ == '__main__'): + import apl1test + apl1test.testmod('date.py') diff --git a/Tp4/etudiants/etudiant.py b/Tp4/etudiants/etudiant.py new file mode 100644 index 0000000..d647fa8 --- /dev/null +++ b/Tp4/etudiants/etudiant.py @@ -0,0 +1,84 @@ +#!/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) + '314159 : Tim OLÉON' + $$$ 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 + """ + def __init__(self, nip: int, nom: str, prenom: str, + 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. + """ + ... + + def __eq__(self, other) -> 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. + """ + ... + + def __lt__(self, other) -> bool: + """ + Renvoie True si self est né avant other + """ + ... + + def __str__(self) -> str: + """ + Renvoie une représentation textuelle de self. + """ + ... + + def __repr__(self) -> str: + """ + Renvoie une représentation textuelle interne de self pour le shell. + """ + ... + +if (__name__ == "__main__"): + import apl1test + apl1test.testmod('etudiant.py') diff --git a/Tp4/etudiants/etudiants.csv b/Tp4/etudiants/etudiants.csv new file mode 100644 index 0000000..1502a36 --- /dev/null +++ b/Tp4/etudiants/etudiants.csv @@ -0,0 +1,604 @@ +nip;nom;prenom;formation;groupe +49734124;Cordier;Eugène;2003-10-04;MIASHS;11 +48031156;Voisin;Josette;2005-08-22;MI;11 +48898866;Georges;Benoît;2005-11-28;MI;11 +48210311;Pinto;David;2005-05-29;MIASHS;11 +48340330;Traore;Andrée;2005-08-14;MI;11 +49105978;Pereira;Cécile;2005-12-31;PEIP;11 +48271883;Chauvin;Christiane;2005-12-09;MI;11 +49688675;Buisson;David;2003-07-24;MI;11 +48566946;Descamps;Paul;2005-07-17;MI;11 +48192226;Bernier;Anne;2003-02-16;LICAM;12 +48949140;Morvan;Patricia;2006-01-16;MI;12 +49134744;Roger;Marcel;2003-02-22;MI;12 +49452026;Sanchez;Laetitia;2005-08-19;MI;12 +49931926;Guilbert;Mathilde;2005-06-11;MI;12 +48684943;Camus;Marc;2004-10-27;MI;12 +49052632;Lejeune;Patricia;2005-03-11;MI;13 +48023510;Guillet;Maurice;2003-05-06;MI;13 +49601133;Hebert;Daniel;2004-12-02;MI;13 +48325354;Bègue;Nath;2003-07-18;MI;13 +49907945;Charrier;Matthieu;2004-12-15;MI;13 +48844461;Diallo;Paul;2003-08-01;MI;14 +48926711;Schmitt;Nathalie;2004-04-27;MI;14 +49316362;Lemaire;Catherine;2005-05-11;MI;14 +48293146;Gilbert;David;2005-02-18;MI;14 +49286644;Lesage;Raymond;2003-10-06;MI;14 +49247948;Charles;David;2005-09-15;MI;14 +49020225;Lesage;Patrick;2004-07-01;MI;14 +49682364;Gonzalez;Marie;2005-10-19;MI;14 +49253372;Marin;Maurice;2003-06-01;MI;14 +48608081;Chartier;Laetitia;2004-09-01;MI;14 +49127541;Chrétien;Marie;2004-04-24;MI;14 +49550241;Humbert;Matthieu;2003-11-10;MI;15 +48993947;Simon;Nathalie;2005-06-05;MI;15 +49628386;Julien;Margaud;2005-07-19;MI;15 +48071104;Munoz;Martine;2005-07-20;MI;15 +49334956;Pottier;Patrick;2003-03-08;MI;15 +49532314;Ruiz;Martine;2003-05-03;MI;15 +48124483;Hamel;Marine;2003-10-27;MI;21 +48090779;Gautier;Marc;2005-01-19;MI;21 +48772409;Jean;Patrick;2004-02-17;MI;21 +48535786;Jourdan;Marcel;2003-06-30;MI;21 +49323570;Duval;Martine;2003-03-25;MI;21 +49389310;Diaz;Marianne;2005-05-17;MI;21 +48036711;Reynaud;Margot;2005-12-29;MI;22 +49236792;Pinto;Paul;2004-12-15;MI;22 +49105986;Boucher;Martin;2003-05-04;MI;22 +49449182;Diaz;Danielle;2005-10-29;MI;22 +49694608;Seguin;Martine;2004-03-25;MI;22 +48025609;Laurent;Laurence;2004-09-10;MI;22 +48002358;Benoit;Valérie;2005-01-26;MI;22 +48209995;Valette;Margot;2003-07-18;MI;22 +49816612;Breton;Nath;2004-10-24;MI;22 +49869349;Cohen;Paul;2003-12-10;MI;23 +48752422;Lefebvre;Margot;2005-08-19;MI;23 +48733295;Colin;Caroline;2004-07-20;MI;23 +48645537;Dumas;Gabrielle;2005-12-18;MI;23 +48855861;Bonneau;Gabriel;2004-12-08;MI;23 +49823938;Sanchez;Camille;2005-08-01;MI;23 +48848853;Lemonnier;Marc;2003-04-21;MI;24 +48752722;Letellier;Sabine;2004-04-28;MI;24 +48839656;Besson;Margot;2004-11-23;MI;24 +48848148;Deschamps;Manon;2003-04-19;MI;24 +49485052;Toussaint;Margot;2003-12-20;MI;24 +48530211;Lemaître;Jacques;2003-04-24;MI;24 +49906684;Fouquet;Raymond;2003-12-25;MI;24 +49360748;Leclerc;Marie;2005-03-08;MI;24 +48834305;Roux;Marcelle;2004-04-21;PEIP;1 +49340030;Blanchet;Valentine;2003-04-24;PEIP;1 +49819299;Thomas;Margaret;2005-11-24;PEIP;1 +49582670;Blanchard;Nath;2003-11-30;PEIP;1 +49443847;Martin;Laurent;2005-10-30;PEIP;1 +49050418;Pasquier;Daniel;2003-12-28;PEIP;2 +49027106;Henry;Marthe;2004-11-06;PEIP;2 +48929853;Marques;Gabrielle;2004-07-21;PEIP;2 +48488768;Becker;Xavier;2004-02-08;PEIP;3 +48156692;Samson;Marie;2004-06-18;PEIP;3 +49298374;Rolland;Martin;2005-04-05;PEIP;3 +49886756;Chevallier;David;2003-09-15;PEIP;3 +49361472;Leclerc;Nath;2005-11-22;PEIP;3 +49814672;Martineau;Nath;2005-05-27;PEIP;3 +48367411;Duval;Margaux;2004-08-08;PEIP;3 +48972267;Schneider;Maryse;2005-07-18;PEIP;3 +48724344;Grégoire;Xavier;2005-09-20;MIASHS;1 +49579268;Turpin;Caroline;2004-11-03;MIASHS;1 +48515216;Moulin;Marc;2005-12-26;MIASHS;1 +48729307;Guillou;Raymond;2004-05-02;MIASHS;1 +49459349;Boulanger;Madeleine;2004-02-05;MIASHS;1 +49923186;Cousin;David;2003-02-14;MIASHS;1 +49058420;Brunel;Gabriel;2003-02-13;MIASHS;2 +49722979;Collin;Margaret;2004-07-03;MIASHS;2 +48244173;Garnier;Jacqueline;2004-10-10;MIASHS;2 +48372548;Maréchal;Margaret;2005-04-19;MIASHS;2 +48323083;Baron;Patricia;2005-04-17;MIASHS;2 +48092669;Peltier;Madeleine;2003-04-28;MIASHS;3 +48868613;Bouvet;Margot;2003-04-23;MIASHS;3 +49563852;Parent;Paulette;2005-10-27;MIASHS;3 +49295358;Olivier;Maryse;2005-12-06;MIASHS;3 +48007778;Lemoine;Pauline;2005-10-07;MIASHS;3 +49572023;Diallo;Jacques;2005-09-13;MIASHS;3 +49203686;Baudry;Marie;2005-08-22;MIASHS;3 +49423558;Rocher;Marcel;2005-12-30;MIASHS;3 +49848686;Poirier;Margot;2005-09-01;MIASHS;4 +49298228;Poirier;Pauline;2004-08-09;MIASHS;4 +49638934;Gillet;Martin;2003-12-20;MIASHS;4 +49607465;Briand;Marthe;2005-03-23;MIASHS;4 +48582935;Jacques;Daniel;2004-09-05;MIASHS;4 +49863128;Da Silva;Manon;2005-12-02;MIASHS;4 +49799114;Colas;Raymond;2006-01-23;MIASHS;4 +48267195;Bonnet;Martine;2003-08-28;MIASHS;5 +49037647;Leconte;Gabrielle;2005-03-18;MIASHS;5 +48571509;Gosselin;Margaret;2003-02-23;MIASHS;5 +48228771;Vasseur;Patricia;2004-12-19;MIASHS;6 +48489867;Fournier;Marcel;2005-04-16;MIASHS;6 +49191965;Bruneau;Margot;2006-02-01;MIASHS;7 +48360824;Fernandez;Caroline;2004-07-28;MIASHS;7 +48599916;Martinez;Matthieu;2004-03-26;MIASHS;7 +48072870;De Sousa;Manon;2004-04-19;MIASHS;7 +48719910;Bodin;Marc;2004-02-24;MIASHS;7 +49242065;Lévy;Margot;2005-08-17;MIASHS;7 +49062809;Boulay;Marcel;2004-12-17;MIASHS;7 +48065010;Gaillard;Valentine;2004-10-07;MIASHS;7 +49021462;Lebrun;Camille;2004-11-09;LICAM;1 +48007615;Mary;Jacques;2005-01-26;LICAM;1 +48217536;Le Gall;Jacqueline;2005-01-31;LICAM;1 +49397241;Foucher;Caroline;2004-08-09;LICAM;1 +49739698;Louis;Marcel;2005-07-27;LICAM;1 +49024680;Humbert;Jacques;2003-03-07;LICAM;1 +49539083;Chauvin;Océane;2004-05-06;MIASHS;2 +48058735;Lacroix;Océane;2003-10-19;MIASHS;7 +49312748;Lemaître;Océane;2004-02-21;LICAM;1 +49417115;Vincent;Adrien;2004-10-24;MI;12 +49658312;Valette;Édouard;2003-09-22;MI;13 +49211845;Leroy;Adrien;2005-04-28;MI;13 +49082743;Dupont;Adèle;2004-08-12;MI;14 +48115483;Hebert;Édouard;2005-08-27;MI;15 +49846736;Pelletier;Adélaïde;2003-04-10;MI;21 +48333415;Perret;Adèle;2003-06-07;MI;22 +48304876;Lemoine;Adèle;2004-09-19;MI;22 +48013351;Ledoux;Adélaïde;2005-04-16;MI;23 +49449283;Colas;Adélaïde;2005-09-29;MI;23 +49021326;Bruneau;Odette;2005-10-10;MI;24 +49925606;Jacques;Adèle;2003-05-19;PEIP;3 +49288666;Maillet;Adélaïde;2003-08-23;MIASHS;1 +49685407;Lebon;Adélaïde;2004-10-05;MIASHS;2 +49433211;Lambert;Adrien;2004-11-18;MIASHS;2 +49741841;Hervé;Édouard;2005-04-16;MIASHS;5 +49721572;Brunel;Adèle;2005-02-03;MIASHS;6 +48249671;Toussaint;Adrienne;2003-05-12;MIASHS;6 +49980450;Letellier;Odette;2003-08-03;MIASHS;6 +49053077;Bernier;Édith;2005-05-24;LICAM;1 +49189180;Bernard;Bernadette;2004-09-13;MI;11 +48152927;Chevalier;Denis;2003-12-12;MI;11 +49728615;Lévêque;Denise;2004-12-18;MI;11 +49056284;Humbert;René;2004-05-13;MI;12 +48247523;Godard;Bernard;2003-03-30;MI;12 +49932218;Costa;Henriette;2006-01-14;MI;13 +49190835;Rossi;Jean;2004-02-29;MI;13 +49025599;Peltier;Bernadette;2005-02-03;MI;13 +49426949;Weber;Georges;2004-08-28;MI;13 +48232140;Guillet;Denise;2005-06-08;MI;14 +48218300;Hamel;Denis;2004-09-11;MI;14 +48662142;Leconte;Denise;2004-07-18;MI;15 +48566496;Lopes;Bernadette;2004-01-20;MI;15 +49488918;Prévost;Benjamin;2005-10-02;MI;21 +49284323;Bodin;René;2003-07-12;MI;21 +49994796;Jean;Jean;2003-07-22;MI;21 +48397553;Delahaye;Bertrand;2005-11-17;MI;22 +48730740;Sauvage;Henri;2004-11-10;MI;23 +48970826;Leleu;Henriette;2003-09-13;MI;23 +48190285;Rossi;Denise;2004-02-10;MI;23 +49032060;Gaudin;Georges;2003-09-07;MI;23 +49915977;Bourdon;Benjamin;2003-02-10;MI;24 +48448951;Duval;Jeanne;2004-04-10;MI;24 +49087375;Pereira;Georges;2004-07-20;MI;24 +48954152;Wagner;Bernard;2004-10-22;MI;24 +49406265;Coulon;Jean;2005-03-05;PEIP;1 +48853611;Chauveau;Denise;2003-07-20;PEIP;1 +48495650;Lefort;Benjamin;2005-10-11;PEIP;1 +49216685;Muller;Georges;2004-08-12;PEIP;1 +49026325;Gautier;Bernadette;2005-10-28;PEIP;3 +48000371;Boucher;Jean;2003-12-25;MIASHS;1 +49907917;Masse;Henri;2005-07-23;MIASHS;1 +48751991;Gauthier;René;2006-01-05;MIASHS;2 +49708032;Maréchal;Bertrand;2005-03-29;MIASHS;2 +49786808;Gautier;Benjamin;2004-11-24;MIASHS;2 +48035774;Leconte;Denise;2003-11-30;MIASHS;2 +49372998;Marchand;Denise;2003-05-12;MIASHS;3 +49609047;Nguyen;Renée;2004-05-27;MIASHS;3 +49943147;Rousset;Bertrand;2003-02-13;MIASHS;3 +48713440;Vaillant;Jean;2005-03-25;MIASHS;3 +49502170;Arnaud;Denise;2004-06-15;MIASHS;3 +48900179;Vasseur;Henriette;2004-09-17;MIASHS;4 +49676398;Techer;Denis;2005-02-21;MIASHS;4 +48541435;Baudry;René;2005-08-29;MIASHS;5 +48500876;Brunel;Georges;2004-12-14;MIASHS;5 +49290334;Da Silva;Benjamin;2005-08-15;MIASHS;5 +49409128;Potier;Jean;2005-11-09;MIASHS;6 +48596222;Lecomte;Bernadette;2004-12-11;MIASHS;6 +49448516;Rousseau;Benjamin;2003-02-13;MIASHS;6 +48442291;Arnaud;Bertrand;2003-08-18;MIASHS;7 +48381478;Briand;Bertrand;2003-03-21;MIASHS;7 +49039629;Jean;Benjamin;2003-05-10;MIASHS;7 +49979858;Benoit;Jeannine;2004-09-02;LICAM;1 +49261959;Gonzalez;Agathe;2003-04-26;MI;12 +48117170;Daniel;Agnès;2004-05-17;MI;23 +49055702;Moreau;Agathe;2003-08-22;PEIP;1 +49194610;Bourgeois;Agathe;2004-01-30;MIASHS;6 +49785470;Morvan;Philippine;2004-11-14;MI;11 +48865644;Legrand;Philippe;2003-08-21;MI;11 +48160496;Leblanc;Théodore;2005-07-03;MI;11 +49772637;Lecoq;Philippine;2004-01-07;MI;11 +49430510;Guilbert;Théodore;2005-07-18;MI;12 +49670457;Didier;Philippine;2005-05-01;MI;12 +49741568;Fernandes;Christiane;2004-09-16;MI;12 +49447196;Lucas;Théophile;2003-12-05;MI;12 +48830867;Leclerc;Théodore;2005-03-23;MI;12 +49554614;Guillaume;Chantal;2004-12-14;MI;13 +49019548;Da Costa;Théodore;2005-11-19;MI;13 +48081529;Charrier;Christelle;2005-10-24;MI;13 +48878604;Breton;Thibaut;2003-12-26;MI;14 +48080188;Dupré;Charlotte;2004-09-02;MI;14 +49438591;Perez;Thomas;2003-05-19;MI;14 +49486455;Ramos;Théodore;2005-07-03;MI;14 +48813193;Pruvost;Thierry;2003-04-26;MI;15 +49001947;Bouvet;Théophile;2003-08-06;MI;15 +49730708;Moreau;Thierry;2003-07-27;MI;22 +48829568;Gonzalez;Philippine;2003-12-08;MI;22 +49412385;Payet;Christophe;2004-02-29;MI;22 +48794681;Gonzalez;Philippine;2004-04-25;MI;22 +49888259;Tanguy;Christine;2003-09-29;MI;23 +49901712;Leblanc;Thierry;2005-06-27;PEIP;1 +49374022;Hamel;Philippine;2003-11-06;PEIP;1 +48786826;Roche;Charlotte;2005-01-14;PEIP;3 +49349106;Barbier;Thibaut;2005-06-07;PEIP;3 +49188132;Diaz;Christelle;2005-01-31;PEIP;3 +49402837;Guillet;Théodore;2003-03-09;MIASHS;1 +48571639;Bonnet;Thibault;2005-05-25;MIASHS;1 +48367626;Antoine;Thierry;2003-03-21;MIASHS;1 +48756911;Mahe;Christophe;2004-08-27;MIASHS;2 +48513659;Bouchet;Thomas;2003-09-15;MIASHS;2 +49489871;Lebon;Christophe;2005-02-03;MIASHS;2 +48269138;Picard;Thomas;2003-03-23;MIASHS;2 +49719607;Barbe;Thomas;2005-10-06;MIASHS;3 +48008911;Pascal;Thierry;2004-06-15;MIASHS;3 +48508845;Pascal;Théophile;2003-07-11;MIASHS;4 +48264785;Duval;Thierry;2003-04-22;MIASHS;4 +48054742;Chauvet;Thibaut;2005-12-11;MIASHS;4 +48106240;Le Goff;Charlotte;2004-12-28;MIASHS;5 +49102843;Bègue;Christine;2003-08-09;MIASHS;5 +48452689;Sanchez;Thierry;2003-10-31;MIASHS;5 +49881643;Da Costa;Théophile;2006-01-13;MIASHS;6 +48484914;Adam;Théodore;2003-08-10;MIASHS;6 +49390446;Lévêque;Théodore;2004-02-08;MIASHS;7 +49830129;Marques;Christine;2004-04-24;LICAM;1 +48653028;Pruvost;Pierre;2004-05-27;MI;11 +48106856;Boulay;Aimé;2003-03-05;MI;11 +48773384;Hernandez;Michel;2003-10-25;MI;12 +49370157;Benard;William;2003-09-21;MI;12 +48736257;Philippe;Michel;2004-10-17;MI;12 +48876600;Texier;Michelle;2004-06-28;MI;13 +49056299;Wagner;Gilles;2005-05-10;MI;13 +49905381;Rousset;Aimé;2004-10-22;MI;13 +49807206;François;Pierre;2005-01-20;MI;13 +49016048;Fouquet;Aimée;2005-08-04;MI;13 +48507125;Bonnin;Richard;2004-05-04;MI;14 +48320231;Blin;Michel;2005-11-07;MI;14 +48484735;Reynaud;Diane;2003-03-16;MI;14 +48276290;Martinez;Nicole;2003-08-13;MI;14 +48924152;Pasquier;Victoire;2005-11-09;MI;15 +49954213;Foucher;Michelle;2003-07-17;MI;15 +48138371;Hervé;Diane;2005-11-23;MI;21 +49866886;Bonnin;Gilles;2004-11-19;MI;21 +49757344;Lecomte;Nicole;2003-08-08;MI;21 +49853214;Delorme;Aimé;2004-07-29;MI;21 +48211548;Thibault;Timothée;2006-01-26;MI;21 +49745427;Gauthier;Nicolas;2005-10-24;MI;22 +49260291;Bouchet;Virginie;2005-06-24;MI;22 +49976658;Vallet;Victor;2005-09-02;MI;22 +49956366;Parent;William;2003-08-27;MI;23 +49568088;Marchal;Michelle;2004-06-30;MI;23 +49437729;Huet;Timothée;2005-10-24;MI;23 +49711645;Lebrun;William;2004-05-23;MI;23 +49238341;Brunet;Nicole;2005-06-01;MI;24 +48196327;Martel;Aimée;2003-07-16;MI;24 +48795538;Antoine;Michel;2004-08-26;PEIP;1 +48688355;Gilbert;Victoire;2004-06-27;PEIP;2 +49733203;Roy;Gilbert;2004-11-13;PEIP;2 +49803870;Navarro;Michèle;2005-12-07;PEIP;3 +48731149;Klein;Aimé;2005-01-21;PEIP;3 +48165677;Joseph;Nicolas;2004-05-23;MIASHS;1 +49119990;Evrard;Pierre;2003-03-17;MIASHS;1 +48330645;Lemonnier;Vincent;2003-07-11;MIASHS;1 +49288497;Julien;Victor;2003-04-05;MIASHS;1 +48899538;Lévy;Michel;2004-09-27;MIASHS;1 +48514748;Devaux;Richard;2005-01-28;MIASHS;1 +49738956;Gérard;Gilbert;2005-07-22;MIASHS;1 +49204742;Rémy;Vincent;2004-11-07;MIASHS;2 +48114676;Louis;Pierre;2003-04-29;MIASHS;2 +49584947;Baudry;Aimée;2003-09-10;MIASHS;2 +49600822;Thierry;Michelle;2005-09-22;MIASHS;3 +49868294;Blondel;Aimé;2005-12-11;MIASHS;3 +49580693;Godard;Michèle;2005-10-26;MIASHS;3 +49656342;Lemaître;Aimée;2005-02-12;MIASHS;4 +48090043;Pruvost;Michel;2005-03-25;MIASHS;4 +48578802;Julien;Vincent;2004-10-03;MIASHS;6 +49375918;Millet;Vincent;2004-12-26;MIASHS;6 +49580537;Nicolas;Nicolas;2003-09-24;MIASHS;7 +48634928;Riou;Michel;2004-01-24;MIASHS;7 +49954875;Bertin;Pierre;2004-11-14;MIASHS;7 +48602090;Rodrigues;Michelle;2004-09-07;MIASHS;7 +49452839;Poirier;Simone;2003-04-03;LICAM;1 +48972970;Blanchet;Victoire;2004-11-19;LICAM;1 +48773759;Bouvet;Olivie;2004-02-28;MI;11 +48268173;Carre;Élisabeth;2005-12-09;MI;11 +49144825;Garnier;Alexandre;2003-03-02;MI;11 +49383780;Noël;Élodie;2004-08-21;MI;11 +48647968;Vidal;Alexandrie;2004-06-27;MI;11 +48138421;Garcia;Alfred;2005-10-08;MI;12 +48511198;Chevallier;Alfred;2003-07-07;MI;13 +48303181;Le Roux;Élise;2004-12-31;MI;14 +49690399;Marques;Alphonse;2003-08-18;MI;14 +49328403;Blanchet;Alexandrie;2006-01-31;MI;14 +48973546;Martinez;Claude;2005-07-29;MI;15 +49587287;Letellier;Claude;2005-07-17;MI;15 +48566061;Thomas;Olivier;2006-01-07;MI;15 +48733086;Guillaume;Éléonore;2003-12-21;MI;21 +49646890;Ledoux;Élisabeth;2005-05-15;MI;21 +49611994;Leclercq;Alphonse;2003-10-16;MI;23 +49839766;Delaunay;Alphonse;2005-07-24;MI;23 +48813171;Dupuis;Alphonse;2005-07-17;MI;24 +48440787;Arnaud;Olivier;2005-12-13;MI;24 +49506193;Raymond;Alain;2005-05-27;MI;24 +48983656;Robert;Olivier;2004-10-08;PEIP;1 +48644844;Berger;Alfred;2003-11-11;PEIP;1 +49090195;Bonnin;Olivie;2004-08-04;PEIP;1 +48456426;Étienne;Olivier;2004-04-27;PEIP;2 +48759482;Lemonnier;Alexandria;2005-10-20;PEIP;2 +48693368;Potier;Olivier;2004-12-28;PEIP;2 +49714787;Thierry;Alphonse;2004-07-18;PEIP;2 +48965726;Perez;Alice;2003-05-26;PEIP;3 +49397669;Morel;Alex;2004-01-03;MIASHS;1 +48169889;Humbert;Élisabeth;2003-07-07;MIASHS;1 +49682513;Berthelot;Alexandrie;2004-02-13;MIASHS;1 +49705720;Moreno;Clémence;2004-08-20;MIASHS;2 +48236648;Besnard;Élisabeth;2004-03-29;MIASHS;2 +49473975;Roux;Élodie;2003-08-09;MIASHS;3 +48138122;Moreno;Olivier;2004-10-06;MIASHS;4 +48887738;Petitjean;Alexandria;2003-03-15;MIASHS;4 +49312553;Perret;Claude;2005-02-20;MIASHS;4 +49044547;Vidal;Alexandrie;2004-01-21;MIASHS;4 +49278701;Wagner;Élise;2004-09-11;MIASHS;5 +49855581;Maury;Alex;2004-02-14;MIASHS;5 +48560167;Delannoy;Alexandre;2003-04-08;MIASHS;5 +48754525;Maillard;Alexandre;2004-07-14;MIASHS;5 +49857754;Michaud;Alphonse;2004-12-13;MIASHS;6 +48956308;Lefort;Alphonse;2004-10-14;MIASHS;6 +49472347;Blot;Clémence;2005-01-30;MIASHS;7 +49026649;Hernandez;Élodie;2004-04-22;MIASHS;7 +48754496;Lambert;Alexandrie;2003-09-28;MIASHS;7 +48885656;Valentin;Alex;2004-01-16;LICAM;1 +49446369;Gros;Émile;2003-12-03;MI;11 +48683750;De Oliveira;Emmanuel;2006-01-02;MI;12 +48237719;Giraud;Émilie;2005-04-02;MI;13 +48290400;Meunier;Émile;2003-06-15;MI;13 +49984805;Imbert;Emmanuel;2004-08-16;MI;21 +49079305;Grondin;Emmanuel;2005-09-08;MI;21 +49799324;Cohen;Emmanuel;2005-11-29;MI;22 +49333027;Marin;Émile;2005-07-27;MI;22 +48876461;Lucas;Émilie;2005-10-09;MI;23 +48136097;Valentin;Émilie;2003-12-29;MI;24 +48714204;Dupré;Émilie;2005-11-28;MIASHS;1 +49596641;Duhamel;Émilie;2006-01-27;MIASHS;2 +48517805;Bertin;Emmanuelle;2005-03-28;MIASHS;3 +49207709;Thierry;Emmanuel;2004-06-22;MIASHS;5 +48990065;Payet;Emmanuelle;2004-02-02;MIASHS;5 +48046674;Fabre;Émile;2003-02-13;MIASHS;5 +49729750;Weiss;Émilie;2004-07-12;MIASHS;6 +48704994;Charrier;Andrée;2006-01-23;MI;12 +48216842;Gaillard;Anaïs;2005-05-23;MI;12 +48163705;Gilles;Anastasie;2004-02-28;MI;14 +48410459;Rolland;Andrée;2004-08-31;MI;14 +48495440;Foucher;Anne;2003-05-08;MI;15 +48752215;Briand;Anne;2003-08-28;MI;15 +48645123;Roger;André;2005-05-18;MI;15 +48183654;Rey;Anaïs;2004-09-08;MI;21 +48562276;Pons;Anastasie;2003-05-09;MI;21 +48905953;Antoine;Anastasie;2005-05-12;MI;23 +49781710;Marchand;André;2003-04-24;MI;23 +49678996;Hamel;Anouk;2006-01-16;MI;24 +48846569;Besson;Andrée;2006-01-05;MIASHS;2 +48388612;Gilbert;Anastasie;2003-07-22;MIASHS;3 +48554292;Joubert;Andrée;2003-02-09;MIASHS;5 +48379920;Turpin;André;2003-11-17;MIASHS;5 +48334622;Gérard;Anaïs;2003-04-24;MIASHS;6 +49937414;Bailly;Anaïs;2005-11-10;MIASHS;7 +49464849;Delaunay;André;2005-03-10;LICAM;1 +48401725;Valentin;Robert;2004-01-10;MI;11 +48216852;Alexandre;Roland;2003-08-09;MI;12 +49517652;Lefèvre;Lorraine;2004-06-09;MI;12 +49451039;Leclercq;Dorothée;2004-09-26;MI;12 +49399947;Hernandez;Lorraine;2004-09-30;MI;12 +48203700;Alves;Noël;2004-01-07;MI;13 +48589542;Thibault;Robert;2003-07-28;MI;13 +49955321;Parent;Monique;2004-08-14;MI;13 +49733429;Julien;Dorothée;2004-11-26;MI;13 +48641215;Hoareau;Roland;2004-09-01;MI;13 +48546831;Vidal;Noémi;2005-05-04;MI;15 +48051736;Lenoir;Lorraine;2003-06-17;MI;15 +48972507;Dubois;Louis;2003-07-25;MI;21 +48329429;Maury;Zoé;2005-06-08;MI;21 +49481031;Bonnet;Joséphine;2004-09-10;MI;21 +49493461;Gaillard;Lorraine;2003-04-14;MI;22 +48325676;Bernier;Constance;2004-08-15;MI;22 +49355649;Becker;Louis;2004-07-21;MI;22 +49613807;Lacroix;Louise;2004-01-05;MI;23 +49848413;Lacroix;Monique;2004-06-15;MI;23 +49513886;Roger;Louise;2005-07-04;MI;23 +49521136;Rousseau;Roger;2004-03-08;MI;23 +48207452;Gilles;Roland;2005-12-26;MI;23 +48448577;Blanchard;Joséphine;2003-09-02;MI;24 +49910238;Lombard;Robert;2004-01-23;MI;24 +48925513;Tanguy;Noël;2005-06-07;MI;24 +48058742;Hamon;Constance;2004-06-23;PEIP;1 +49358494;Fabre;Josette;2004-12-21;PEIP;1 +49469204;Vallet;Lorraine;2003-11-07;PEIP;1 +48972418;Lamy;Corinne;2004-10-04;PEIP;2 +48984615;Bigot;Constance;2004-01-17;PEIP;2 +49673558;Albert;Honoré;2006-01-28;PEIP;2 +48760318;Tanguy;Josette;2003-12-10;PEIP;2 +49178642;Mahe;Robert;2004-09-16;PEIP;2 +49182573;Lopes;Constance;2004-04-12;PEIP;2 +48548769;Hamon;Corinne;2004-01-15;PEIP;3 +48198023;Dumas;Josette;2003-04-21;PEIP;3 +48678486;Richard;Noël;2005-03-15;MIASHS;1 +48527516;Antoine;Sophie;2003-10-16;MIASHS;1 +48017314;Maillot;Noël;2005-08-03;MIASHS;2 +48086172;Goncalves;Roland;2004-05-18;MIASHS;3 +49602134;Boulay;Josette;2005-04-22;MIASHS;3 +49220080;Pires;Joséphine;2005-03-07;MIASHS;3 +48167617;Meunier;Joseph;2005-03-28;MIASHS;4 +48495939;Hoareau;Constance;2004-07-03;MIASHS;4 +49537843;Traore;Dominique;2004-08-26;MIASHS;4 +48544533;Hamon;Joséphine;2003-10-03;MIASHS;4 +49550107;Letellier;Roger;2005-08-10;MIASHS;4 +48977321;Weiss;Robert;2004-01-19;MIASHS;4 +49688464;Mace;Colette;2004-01-04;MIASHS;5 +49296543;Ribeiro;Roland;2004-12-18;MIASHS;5 +49588752;Diaz;Louise;2003-08-10;MIASHS;5 +49607397;Renaud;Robert;2004-01-14;MIASHS;5 +49984838;Antoine;Sophie;2005-02-23;MIASHS;5 +48965109;Muller;Roger;2004-03-06;MIASHS;6 +49656404;Diaz;Roger;2005-07-01;MIASHS;6 +49353257;Roche;Zoé;2003-09-16;MIASHS;7 +48990218;Adam;Robert;2004-04-30;MIASHS;7 +48480870;Philippe;Tristan;2003-10-20;MI;11 +49097773;Munoz;Frédérique;2005-11-04;MI;11 +49809460;Dos Santos;Françoise;2004-08-20;MI;11 +49646914;Delaunay;Franck;2003-06-23;MI;11 +48193127;Fernandez;Françoise;2003-07-01;MI;11 +48213012;Gimenez;Brigitte;2003-02-25;MI;12 +48120447;Traore;Grégoire;2004-09-17;MI;12 +49401676;Labbé;Arthur;2004-02-27;MI;13 +48843734;Barre;Franck;2004-01-12;MI;13 +49022042;Leclerc;Frédérique;2004-06-21;MI;14 +49629305;Seguin;Franck;2003-03-14;MI;14 +49137405;Diaz;Arthur;2004-10-07;MI;14 +49874487;Gautier;Éric;2004-04-10;MI;15 +49940759;Joubert;Frédéric;2003-12-17;MI;15 +49896940;Schmitt;Brigitte;2004-05-25;MI;21 +49605342;Weber;Éric;2004-11-11;MI;21 +49023523;Lagarde;Franck;2004-06-29;MI;22 +48482607;Rivière;Grégoire;2005-09-15;MI;23 +48416989;Dias;Frédérique;2003-04-28;MI;24 +49259885;Roger;Grégoire;2004-11-25;PEIP;1 +48719952;Fouquet;Françoise;2005-01-19;PEIP;1 +49999011;Lefèvre;Françoise;2005-08-28;PEIP;1 +49735897;Rossi;Grégoire;2005-08-27;PEIP;2 +49339317;Delmas;Tristan;2005-05-17;PEIP;2 +49687129;Mary;François;2005-01-12;PEIP;3 +49446489;Allard;Arnaude;2003-05-22;PEIP;3 +48404341;Fontaine;Tristan;2004-03-28;PEIP;3 +49187573;Fabre;Brigitte;2004-09-08;MIASHS;1 +48412120;Duhamel;Arnaude;2005-06-13;MIASHS;1 +49655877;Martinez;Brigitte;2004-10-14;MIASHS;2 +49460064;Roche;Arthur;2005-04-20;MIASHS;2 +48977383;Albert;Arthur;2005-11-15;MIASHS;2 +48280920;Mary;François;2003-08-02;MIASHS;3 +48729266;Guichard;Brigitte;2004-11-19;MIASHS;4 +48828718;Caron;Éric;2003-06-16;MIASHS;4 +49549884;Bonnin;Grégoire;2004-08-19;MIASHS;5 +49835650;Bernard;Brigitte;2003-09-03;MIASHS;5 +49257889;Roy;Brigitte;2005-07-04;MIASHS;5 +48393693;Masse;Arthur;2004-07-11;MIASHS;5 +49715433;Le Goff;Franck;2004-10-23;MIASHS;6 +49854376;Auger;Grégoire;2004-11-21;MIASHS;6 +49926416;Toussaint;Isabelle;2005-02-14;MI;13 +48567447;Joly;Astrid;2005-01-06;PEIP;3 +48334669;Masse;Isaac;2003-09-30;PEIP;3 +49003715;Bonnet;Isaac;2005-07-15;MIASHS;2 +49715181;Diaz;Astrid;2003-08-12;MIASHS;5 +48126757;Bigot;Astrid;2004-08-15;MIASHS;5 +48751255;Gillet;Astrid;2005-12-12;MIASHS;7 +49009208;Boulanger;Stéphanie;2003-02-15;MI;13 +49235646;Leconte;Stéphane;2005-01-20;MI;14 +48454012;Louis;Étienne;2003-11-24;MI;15 +49116483;Grégoire;Stéphanie;2006-01-08;MI;23 +48718614;Guérin;Stéphane;2003-03-02;PEIP;2 +48117116;Lemonnier;Étienne;2004-10-17;MIASHS;2 +49514207;Moreno;Stéphane;2003-08-30;MIASHS;2 +48074993;Dufour;Stéphane;2003-10-14;MIASHS;6 +48779996;Peltier;Aurélie;2003-09-23;MI;11 +49278361;Wagner;Julie;2004-01-19;MI;11 +48695445;Diallo;Auguste;2003-09-15;MI;12 +48632683;Julien;Hugues;2003-09-05;MI;12 +48190066;Le Roux;Auguste;2003-11-18;MI;12 +49764853;Dumas;Aurore;2003-08-11;MI;13 +48187625;Carpentier;Suzanne;2003-12-13;MI;13 +49495483;Renault;Julien;2003-06-05;MI;15 +48924794;Barbier;Audrey;2004-03-09;MI;15 +49230516;Bazin;Lucas;2003-09-12;MI;15 +48445904;Le Roux;Suzanne;2005-08-07;MI;15 +49982535;Leblanc;Jules;2003-10-11;MI;15 +48286930;Lucas;Guy;2005-07-06;MI;15 +49044399;Toussaint;Augustin;2005-09-07;MI;21 +49882211;Maillard;Guy;2003-06-02;MI;21 +48811280;Chrétien;Luc;2003-04-13;MI;21 +49146923;Allard;Luc;2005-07-25;MI;21 +49530349;Benoit;Eugène;2003-02-12;MI;21 +48853558;Marion;Lucy;2005-12-17;MI;21 +48919005;Dupré;Auguste;2004-10-26;MI;22 +49933607;Valentin;Luce;2005-08-26;MI;23 +49285225;Legros;Lucy;2004-08-15;MI;24 +48643661;Duval;Aurélie;2004-02-06;MI;24 +48701623;Barbier;Lucie;2004-11-02;PEIP;1 +49712369;Letellier;Lucie;2004-01-16;PEIP;2 +49272640;Mahe;Aurore;2004-11-18;PEIP;2 +48017714;Mercier;Jules;2003-09-25;PEIP;2 +48079428;Reynaud;Auguste;2004-05-15;PEIP;2 +49612689;Renaud;Julie;2004-07-28;PEIP;2 +49463251;Picard;Julien;2006-01-02;PEIP;3 +49067436;Fournier;Guy;2004-10-19;MIASHS;1 +48850683;Blanc;Susan;2005-03-28;MIASHS;1 +49143725;Rey;Suzanne;2005-10-05;MIASHS;1 +48815148;Munoz;Susanne;2005-09-12;MIASHS;1 +49531171;Charrier;Juliette;2003-02-20;MIASHS;2 +48423154;Bonnin;Susanne;2005-04-21;MIASHS;2 +49933240;Picard;Hugues;2004-05-09;MIASHS;2 +48946225;Lacroix;Luc;2003-05-11;MIASHS;3 +49132618;Dubois;Auguste;2005-09-17;MIASHS;3 +49261750;Hebert;Luc;2004-02-29;MIASHS;3 +49921271;Ollivier;Julie;2005-03-14;MIASHS;4 +49752648;Torres;Luce;2003-06-06;MIASHS;4 +48233515;Garcia;Auguste;2004-12-14;MIASHS;5 +48832931;Rey;Julie;2004-03-02;MIASHS;6 +49577568;Charpentier;Julie;2006-01-15;MIASHS;6 +48157967;Bigot;Guy;2004-09-28;MIASHS;6 +48591138;Guérin;Hugues;2005-06-13;MIASHS;6 +48727488;Leroux;Lucy;2003-07-23;MIASHS;6 +49673077;Blanchet;Jules;2006-01-18;MIASHS;6 +48874005;Fernandez;Aurélie;2005-12-24;MIASHS;6 +49010638;Fischer;Eugène;2004-04-10;MIASHS;7 +49408983;Guillot;Suzanne;2006-01-03;LICAM;1 +49623451;Roussel;Luc;2004-10-02;LICAM;1 +49148527;Carlier;Hugues;2003-11-29;LICAM;1 +49385357;Lucas;Yves;2005-02-27;MI;11 +49065414;Adam;Yves;2005-10-31;MIASHS;4 +48002201;Normand;Sylvie;2003-07-31;PEIP;2 +48007966;Couturier;Hélène;2004-09-08;MI;11 +48968324;Rocher;Léon;2004-05-22;MI;11 +48557658;Pruvost;Rémy;2005-12-31;MI;13 +49712300;Laurent;Céline;2003-05-11;MI;13 +49746104;Jacquet;Gérard;2003-05-31;MI;13 +49701987;Tanguy;Hélène;2005-12-01;MI;14 +48045826;Durand;Rémy;2003-10-23;MI;14 +49682295;Moreno;Hélène;2005-06-07;MI;15 +49413769;Pierre;Jérôme;2004-03-10;MI;15 +49284203;Diaz;Rémy;2003-06-04;MI;22 +49920415;De Sousa;Véronique;2004-03-20;MI;22 +49057431;Pichon;Rémy;2004-05-15;MI;22 +48523096;Colin;Jérôme;2003-02-27;MI;22 +49433804;Marchal;Cécile;2005-11-11;MI;24 +48016098;Royer;Célina;2004-02-20;MI;24 +49659861;Besson;Véronique;2003-05-03;MI;24 +48181180;Fournier;Léon;2005-10-16;MI;24 +49167660;Wagner;Hélène;2004-06-03;MI;24 +48868012;Julien;Jérôme;2005-01-11;MI;24 +48368117;Regnier;Véronique;2003-08-12;PEIP;1 +48563541;Guillou;Rémy;2004-01-04;PEIP;2 +48955432;Robin;Jérôme;2004-04-05;PEIP;2 +48560966;Ollivier;Rémy;2003-07-08;PEIP;3 +48119390;Chrétien;Léon;2005-08-19;MIASHS;2 +48711761;Le Gall;Jérôme;2004-10-12;MIASHS;2 +48793413;Bernier;Jérôme;2004-10-15;MIASHS;2 +49206351;Moulin;Gérard;2005-08-03;MIASHS;3 +49552005;Royer;Gérard;2006-01-28;MIASHS;3 +49908105;Le Roux;Céline;2004-12-22;MIASHS;3 +48413490;Raymond;Sébastien;2004-12-16;MIASHS;4 +49566201;Delattre;Cécile;2003-03-18;MIASHS;5 +49860184;Perret;Léon;2003-09-28;MIASHS;7 +48288849;Moreau;Hélène;2004-03-28;MIASHS;7 +48012571;Hamon;Pénélope;2004-05-09;MIASHS;7 +48141131;Perrot;Cécile;2003-12-15;LICAM;1 +48907549;Tanguy;Gérard;2006-01-09;LICAM;1 diff --git a/Tp4/gestion_promo_etudiants.py b/Tp4/gestion_promo_etudiants.py new file mode 100644 index 0000000..547ada8 --- /dev/null +++ b/Tp4/gestion_promo_etudiants.py @@ -0,0 +1,334 @@ +#nom: +#prenom: +#groupe: +#date: + + +def pour_tous(seq_bool: list[bool]) -> bool: + """ + Renvoie True ssi `seq_bool` ne contient pas False + + Exemples: + + $$$ pour_tous([]) + True + $$$ pour_tous((True, True, True)) + True + $$$ pour_tous((True, False, True)) + False + """ + + for element in seq_bool: + if not element: + return False + return True + + + +def il_existe(seq_bool: list[bool]) -> bool: + """ + + Renvoie True si seq_bool contient au moins une valeur True, False sinon + + Exemples: + + $$$ il_existe([]) + False + $$$ il_existe([False, True, False]) + True + $$$ il_existe([False, False]) + False + """ + for element in seq_bool: + if element: + return True + return False + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- GitLab