From c6906747f1ae4a4abd3d136ee41b52a91b44b5d6 Mon Sep 17 00:00:00 2001 From: Takanuva Date: Sun, 29 Apr 2012 15:03:57 +0200 Subject: [PATCH] =?UTF-8?q?Il=20est=20temps=20de=20faire=20une=20mise=20?= =?UTF-8?q?=C3=A0=20jour?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __pycache__/book.cpython-32.pyc | Bin 4444 -> 0 bytes __pycache__/config.cpython-32.pyc | Bin 239 -> 0 bytes __pycache__/dev.cpython-32.pyc | Bin 7067 -> 0 bytes __pycache__/divers.cpython-32.pyc | Bin 560 -> 0 bytes __pycache__/lecon.cpython-32.pyc | Bin 12861 -> 0 bytes agreg.py | 71 +++++++++++++++++++++--------- config.py | 6 +-- dev.py | 61 +++++++++++++++++++++---- divers.py | 10 +++++ lecon.py | 7 ++- liste_lecon | 2 + notes | 5 ++- 12 files changed, 124 insertions(+), 38 deletions(-) delete mode 100644 __pycache__/book.cpython-32.pyc delete mode 100644 __pycache__/config.cpython-32.pyc delete mode 100644 __pycache__/dev.cpython-32.pyc delete mode 100644 __pycache__/divers.cpython-32.pyc delete mode 100644 __pycache__/lecon.cpython-32.pyc diff --git a/__pycache__/book.cpython-32.pyc b/__pycache__/book.cpython-32.pyc deleted file mode 100644 index 7eb377b119b4bbeb025fa4ae6636724d5b6346d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4444 zcmchaU2hyo6^5&N#xtIYLqe8y)*G|Nr`|f9u3Ybb z`)KF$SY5c<$o~xg@{hPB_-U0YHP&hzsGZilq^)+^>gP$IUZX}!y~4XCWjiWqtLK3# zzEE~ay;5qYt87<|mz6`yC6#p4-K49MWh6b7^wr&0T4~n6(>0Z>up@cytK_!)w~R6L1nRl;(@Yu$=~B#1|`DpRKc&OUSpoi@~SV@#O&?C3WoHzaWlWnePL2tn%&$Vc$bxZgX;}L zAJEVr;zl#tH195xpiW>ECJ<^hl9`0TJR_C22TL68TO97Q%vCN*T^Us_&rISM$K}|b z3zOv&-$okwYF{$0+|7mq7Rlo<&#Y&+F5AmXX_DAODM@XdX9KRV)GTefH^76Eo4wzl>U8=wNIZa;?e^ZmRWR(9?0iEG~|I z4S!jheP55s>@spaWAW6R383{YhL91z)%HEMp+@H0biIABMfo}MJqW*QZx6)ciG z7K7{J!ey0UM*F0w29lsYx5uUb8ZskWJxZ<2^8WF!qR}v#STPMR?p0Occ70Vh7Ix>> z)Z2zVaXHRMp^@=yw8aK^aV5;@!o4D>VTPmaFVyxusWiOTQoVTC4iItu_5k{Oh%P z+qP_W1Wo0xkR6dDGXq?yO4Jx=lXt;#3?xNI03BFA+7N= zaC~U!yN-vruu)}aXh~m!oCwxMvIuiDo!TsUufbTmn>A>UT{O-3Rd;k1KD~D&=8yltQz4ankDSiQY9tzaSjQsae?r` z`|x=Mt&&1=K_&nij_pP;se!-*5Q%JRXyEpM6ZK!i*;rTiBgmxWOA*K@vyNw9`Hfx~#a-;Kz>rb%8 zY)5b?ox4DTIs3CoKZ48`In>K#i97ITr;WTcnRivK1d)@=B$gwB=$-Niv$1?6ks}U1DxXk|-<9x_=LK*Ue$> zpq3?uhDcX7^TRs)Bs6uvMb{Q~nntk|igFxxqLeQRhu~@fU#eV{Pq8toV}y@VElzU; zc@Tl@ROdFDaT5 zhG`y0X&HuBo+}rSuBVYQ)qcrTUD)OpArii9zr?zyD zQCSB2{wF`Ezm#vF1fXmr`D9~)uR^4?h9ad8=4G>}jR`(V=aXJ^AxmXCZ#aWJ&6j`S pWW3-ERH*|palsY7W} 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 diff --git a/__pycache__/divers.cpython-32.pyc b/__pycache__/divers.cpython-32.pyc deleted file mode 100644 index ecb9bd961f11bf7eda990589dc0191f22b38f1b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 560 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 diff --git a/agreg.py b/agreg.py index efe1eef..900e9c2 100755 --- a/agreg.py +++ b/agreg.py @@ -106,6 +106,28 @@ class Agreg(): self.book += [bo] # -------------------- Analyse +# Enfin on compte le nombre de dev par leçon. Puis on fait la somme des min avec 2 et on divise par le nombre de dévelloppement + + + def compte_dev(self): + """Crée un dictionnaire correspondant aux leçons + dans le premier element on compte les devs possibles pour cette leçon + dans le deuxième on ne compte que ceux qui sont sensé être connu + + Arguments: + - `self`: + """ + # Initialisation du dico des du nombre de dev par leçons + self.nbr_dev_lecon = dict() + for l in liste_lecon: + self.nbr_dev_lecon[l] = [0,0] + + for d in self.dev: + for l in d.lecon: + self.nbr_dev_lecon[int(l)][0] += 1 + + if d.connu: + self.nbr_dev_lecon[int(l)][1] += 1 def nbr_dev(self): """ Calcul et trie le nombre de developpement par lecon et stock la liste dans lecon_nbr_dev @@ -120,7 +142,7 @@ class Agreg(): self.lecon_nbr_dev = sorted(self.lecon_nbr_dev, reverse=True, key=itemgetter(1)) def score_dev(self): - """ Calcul le score/avancement dans nos lecons + """ Calcul le score/avancement de l'elaboration des leçons et de leurs connaissance (théorique) Arguments: - `self`: @@ -128,13 +150,17 @@ class Agreg(): # Calcul du nombre de développement effectué (pas plus de 2 par lecon sinon c'est triché!) score = 0 - for l in self.lecon.values(): - score += min(2, len(l.dev)) + score_connu = 0 + + for n in self.nbr_dev_lecon.values(): + score += min(n[0],2) + score_connu += min(n[1],2) # Nombre total de développement nécessaire nbr_dev_tot = 2 * len(self.lecon) self.score = score / nbr_dev_tot * 100 + self.score_connu = score_connu / nbr_dev_tot * 100 @@ -142,15 +168,13 @@ class Agreg(): def print_analyse_dev(self): """ Affiche le nombre de developpement par lecon en ordre décroissant - Arguments: - `self`: """ # On calcul et trie le nombre de dev - self.nbr_dev() + self.compte_dev() - for i, n in self.lecon_nbr_dev: - self.lecon[i].print_nbr_dev() + self.print_nbr_dev() self.score_dev() if self.score != 100: @@ -158,6 +182,11 @@ class Agreg(): else: print("\n Bien joué! Toutes les lecons au moins deux développements!") + if self.score_connu != 100: + print("\n Courage! T'en connais déjà {score}% c'est déjà pas mal non?".format(score = self.score_connu)) + else: + print("\n Bien joué! Toutes les lecons au moins deux développements! Et tu les connais!") + def print_lecon_from_int(self, num = 101): """ Écrit le nom des développements en relation avec la leçonà partir du numero de la lecon @@ -197,21 +226,23 @@ class Agreg(): for d in [d for d in self.dev if divers.normalise_str(chaine) in divers.normalise_str(d.nom)]: d.print_info() - + + def print_nbr_dev(self): + """Affiche le nombre de dev et de dev connu pour les lecons""" + print("Connue , Envisagée numero: nom") + for l,n in self.nbr_dev_lecon.items(): + + color_defaut = "\033[00m" + color_print = color_defaut + if n[1] >= 2: # Chic j'ai deux dev pour cett lecon + color_print = "\033[0,32m" + if n[1] ==1: # Encore un de plus + color_print = "\033[0,33m" + + print(color_print + "{connu} , {envi} {num}: {nom}".format(connu = n[1] , envi = n[0] , num = l , nom=divers.dico_nom_lecon[str(l)]) + color_defaut ) + if __name__ == '__main__': - # agreg = Agreg() - # agreg.import_dev('/media/documents/Cours/Agreg/developpement/mes_dev/') - # # agreg.analyse_dev() - # # for num in dico_nom_lecon: - # # agreg.print_lecon_dev(num) - # agreg.extract_from_dev() - # # agreg.print_analyse_dev() - # agreg.print_lecon_dev(213) - # agreg.print_lecon_dev(201) - # agreg.print_lecon_dev(234) - # agreg.print_lecon_dev(245) - # Pour analyser les options qu'on lui demande parser = optparse.OptionParser() diff --git a/config.py b/config.py index e71ad2d..0eac47a 100644 --- a/config.py +++ b/config.py @@ -1,5 +1,5 @@ # Fichier configuration -lieu_dev = "developpements/" -lieu_lecon = "lecons/" -lieu_bouquin = "bouquins/" +lieu_dev = "../developpement/mes_dev/" +lieu_lecon = "../lecons/" +lieu_bouquin = "../Bouquins/" diff --git a/dev.py b/dev.py index 8a4e04e..33a6459 100755 --- a/dev.py +++ b/dev.py @@ -45,13 +45,21 @@ class Dev(): # Extraction du nom du developpement self.nom = self.document.getElementsByTagName('dev')[0].getAttribute("nom") + # On vérifie s'il est sensé être connu + self.connu = self.document.getElementsByTagName('dev')[0].getAttribute("connu") + # des lecons for lecon in self.document.getElementsByTagName('lecon'): self.lecon += [lecon.getAttribute("num")] # des bouquins for book in self.document.getElementsByTagName('book'): - self.book += [book.getAttribute("nom") , book.getAttribute("auth") , book.getAttribute("isbn") , book.getAttribute("pg")] + self.add_book({"nom" : book.getAttribute("nom") ,"auth" : book.getAttribute("auth") ,"isbn" : book.getAttribute("isbn") ,"pg": book.getAttribute("pg")}) + + try: + self.commentaire = self.document.getElementsByTagName('commentaire')[0].childNodes[0].nodeValue + except: + self.commentaire = "" # -------------------- Création et ajout d'information sur d'un développement @@ -72,20 +80,20 @@ class Dev(): # print(self.document.toprettyxml()) - def add_book(self, book = ["nom", "auth", "isbn", "pg"] ): + def add_book(self, book = {"nom" : "", "auth" : "", "isbn" : "", "pg" : ""} ): """ Ajoute un bouquin en relation avec ce developpement Arguments: - `self`: - - `book`: sous la forme suivante ["nom", "auth", "isbn", "pg"] + - `book`: sous la forme suivante {"nom" : "", "auth" : "", "isbn" : "", "pg" : ""} """ self.book += [book] element = self.document.createElement("book") - element.setAttribute("nom", book[0]) - element.setAttribute("auth", book[1]) - element.setAttribute("isbn", book[2]) - element.setAttribute("pg", book[3]) + element.setAttribute("nom", book["nom"]) + element.setAttribute("auth", book["auth"]) + element.setAttribute("isbn", book["isbn"]) + element.setAttribute("pg", book["pg"]) racine = self.document.getElementsByTagName('dev')[0] racine.appendChild(element) @@ -110,6 +118,26 @@ class Dev(): # print(self.document.toprettyxml()) + + def add_comment(self, comment): + """ Ajoute un commentaire + + Arguments: + - `self`: + - `comment`: le commentaire + """ + self.commentaire = comment + + element = self.document.createElement("commentaire") + com = self.document.createTextNode(comment) + element.appendChild(com) + + racine = self.document.getElementsByTagName('dev')[0] + racine.appendChild(element) + + # print(self.document.toprettyxml()) + + # -------------------- Concernant le Prompt def from_prompt(self): @@ -135,6 +163,8 @@ class Dev(): self.prompt_add_lecon() + self.prompt_add_comment() + print("\n ---------- Voila fini! ----------\n ") @@ -171,8 +201,14 @@ class Dev(): print("page") pg = input() - self.add_book([nom , auth , ref , pg]) + self.add_book({"nom" : nom , "auth" : auth ,"isbn" : ref , "pg" : pg}) + def prompt_add_comment(self): + """Prompt pour ajouter un commentaire""" + print("\n ---------- Ajout d'un commentaire ---------- \n Attention il vaut mieux ne pas faire entrer... ") + comment = input() + + self.add_comment(comment) # -------------------- Affichage @@ -183,14 +219,21 @@ class Dev(): - `self`: """ print(" \n ---------- Informations sur :{nom} ".format(nom = self.nom)) + if self.connu: + print("Ce développement est sensé être connu!") + print(" --- Leçons --- ") for l in self.lecon: lec = lecon.Lecon() lec.from_scratch(l) lec.print_nom() - # print(" --- Bouquins --- ") + print(" --- Bouquins --- ") + for b in self.book: + print("{nom} -- {aut} -- {isbn} p{pg}".format(nom = b["nom"] , aut = b["auth"] , isbn = b["isbn"] , pg = b["pg"])) + print(" --- Commentaire --- ") + print(self.commentaire) # -------------------- Sauvegarde diff --git a/divers.py b/divers.py index e8a2b7d..33bece7 100644 --- a/divers.py +++ b/divers.py @@ -14,3 +14,13 @@ def normalise_str(chaine): - `chaine`: """ return unicodedata.normalize('NFKD', chaine).encode('ASCII', 'ignore').lower() + + + +# ---------------------------------------- +# Les listes des lecons + + +liste_lecon = ( 101 , 103 , 104 , 105 , 106 , 107 , 108 , 109 , 110 , 111 , 112 , 113 , 114 , 116 , 117 , 119 , 120 , 123 , 124 , 125 , 126 , 127 , 128 , 130 , 131 , 132 , 133 , 135 , 136 , 137 , 139 , 140 , 141 , 144 , 145 , 146 , 148 , 149 , 201 , 202 , 203 , 204 , 205 , 206 , 207 , 208 , 213 , 214 , 215 , 216 , 217 , 218 , 219 , 220 , 221 , 223 , 224 , 226 , 228 , 229 , 230 , 232 , 234 , 235 , 236 , 238 , 239 , 240 , 241 , 242 , 243 , 245 , 246 , 247 , 249 , 250 , 251 , 252 , 253 , 254 , 255 , 256 ) + +dico_nom_lecon = { '101' : "Groupe opérant sur un ensemble. Exemples et applications." , '103' : "Exemples et applications des notions de sous-groupe distingué et de groupes quotient." , '104' : "Groupes finis. Exemples et applications." , '105' : "Groupe des permutations d'un ensemble fini. Applications." , '106' : "Groupe linéaire d'un espace vectoriel de dimension finie E, sous-groupes de GL(E). Applications" , '107' : "Représentations et caractères des groupes finis sur un espace vectoriel complexe" , '108' : "Exemples de parties génératrices d'un groupe. Applications." , '109' : "Anneau Z/nZ. Applications." , '110' : "Nombres premiers. Applications." , '111' : "Anneaux principaux. Applications" , '112' : "Corps finis. Applications." , '113' : "Groupe des nombres complexes de module 1. Sous-groupes des racines de l'unité. Applications." , '114' : "Anneau des séries formelles. Applications" , '116' : "Polynômes irréductibles à une indéterminée. Corps de rupture. Exemples et applications." , '117' : "Algèbre des polynômes à plusieurs inderterminées; aspects théoriques et applications" , '119' : "Exemples d'actions de groupes sur les espaces de matrices" , '120' : "Dimension d'un espace vectoriel (on se limitera au cas de dimension finie). Rang. Exemples et applications." , '123' : "Déterminant. Exemples et applications." , '124' : "Polynôme d'endomorphismes en dimension finie. Applications à la réduction d'un endomorphisme en dimension finie." , '125' : "Sous-espaces stables d'un endomorphisme ou d'une famille d'endomorphisme d'un espace vectoriel de dimension finie. Applications." , '126' : "Endomorphismes diagonalisables en dimension finie" , '127' : "Exponentielle de matrices. Applications." , '128' : "Endomorphismes trigonalisables. Endomorphismes nilpotents." , '130' : "Matrices symétriques réelles, matrices hermitiennes." , '131' : "Formes quadratiques sur un espace vectoriel de dimension finie. Orthogonalité, isotropie. Applications" , '132' : "Formes linéaires et hyperplans en dimension finie. Exemples et applications." , '133' : "Endomorphismes remarquables d'un espace vectoriel euclidien de dimension finie." , '135' : "Isométries d'un espace affine euclidien de dim finie. Formes réduites. Applications en dim 2 et 3." , '136' : "Coniques. Applications." , '137' : "Barycentres dans un espace affine réel de dimension finie, convexité. Applications" , '139' : "Application des nombres complexes à la géométrie" , '140' : "Systèmes linéaires;opérations, aspects algorithmiques et conséquences théoriques" , '141' : "Utilisation des groupes en géométrie." , '144' : "Problèmes d'angles et de distances en dimension 2 ou 3." , '145' : "Méthodes combinatoires, problèmes de dénombrement." , '146' : "Résultant. Applications" , '148' : "Formes quadratiques réelles. Exemples et applications." , '149' : "Représentations des groupes finis de petit cardinal" , '201' : "Espaces de fonctions. Exemples et applications." , '202' : "Exemples de parties denses et applications." , '203' : "Utilisation de la notion de compacité." , '204' : "Connexité. Exemples et applications." , '205' : "Espaces complets. Exemples et applications." , '206' : "Théorèmes de point fixe. Exemples et applications." , '207' : "Prolongement de fonctions. Exemples et applications." , '208' : "Espaces vectoriels normés, applications linéaires continues . Exemples" , '213' : "Espaces de Hilbert, bases hilbertiennes. Exemples et applications." , '214' : "Théorème d'inversion locale, théorème des fonctions implicites. Exemples et applications." , '215' : "Applications différentiables définies sur un ouvert de Rn. Exemples et applications." , '216' : "Etude métrique des courbes. Exemples" , '217' : "Sous-variétés de Rn, exemples" , '218' : "Applications des formules de Taylor." , '219' : "Problèmes d'extremum." , '220' : "Equations différentielles X ' = f(t, X), exemples d'études qualitatives des solutions." , '221' : "Equations différentielles linéaires. Systèmes d'équations différentielles linéaires. Exemples et applications." , '223' : "Convergence des suites numériques. Exemples et applications." , '224' : "Comportement asymptotique des suites numériques. Rapidité de convergence. Exemples." , '226' : "Comportement d'une suite réelle ou vectorielle définie par une itération un+1 = f (un). Exemples." , '228' : "Continuité et dérivabilité des fonctions réelles d'une variable réelle. Exemples et contrexemples." , '229' : "Fonctions monotones. Fonctions convexes. Exemples et applications." , '230' : "Séries de nombres réels ou complexes. Comportement des restes ou des sommes partielles des séries numériques. Exemples." , '232' : "Méthodes d'approximation des solutions d'une équation F(X) = 0. Exemples." , '234' : "Espaces Lp." , '235' : "Suites et séries de fonctions intégrables. Exemples et applications." , '236' : "Illustrer par des exemples quelques méthodes de calcul d'intégrales de fonctions d'une ou plusieurs variables réelles." , '238' : "Méthodes de calcul approché d'intégrales et d'une solution d'équation différentielle." , '239' : "Fonctions définies par une intégrale dépendant d'un paramètre. Exemples et applications" , '240' : "Transformation de Fourier, produit de convolution. Applications." , '241' : "Suites et Séries de fonctions. Exemples et contre-exemples." , '242' : "Utilisation en probabilités des transformations de Fourier ou de Laplace et du produit de convolution" , '243' : "Convergence des séries entières, propriétés de la somme. Exemples et applications." , '245' : "Fonctions holomorphes et méromorphes sur un ouvert de C." , '246' : "Séries de Fourier. Exemples et applications." , '247' : "Exemples de problèmes d'interversion de limites." , '249' : "Suites de variables de Bernoulli indépendantes." , '250' : "Loi des grands nombres, théorème de la limite centrale. Applications." , '251' : "Indépendance d'événements et de variables aléatoires. Exemples." , '252' : "loi binomiale, loi de Poisson - Applications" , '253' : "Utilisation de la notion de convexité en analyse." , '254' : "Espace de Schwartz et distributions tempérées." , '255' : "Dérivation au sens des distributions . Exemples et applications." , '256' : "Transformation de Fourier dans S(Rd) et S'(Rd)." } diff --git a/lecon.py b/lecon.py index 8c0171e..f3ba399 100644 --- a/lecon.py +++ b/lecon.py @@ -5,8 +5,7 @@ import xml.dom.minidom as md import os import config - -dico_nom_lecon = { '101' : "Groupe opérant sur un ensemble. Exemples et applications." , '103' : "Exemples et applications des notions de sous-groupe distingué et de groupes quotient." , '104' : "Groupes finis. Exemples et applications." , '105' : "Groupe des permutations d'un ensemble fini. Applications." , '106' : "Groupe linéaire d'un espace vectoriel de dimension finie E, sous-groupes de GL(E). Applications" , '107' : "Représentations et caractères des groupes finis sur un espace vectoriel complexe" , '108' : "Exemples de parties génératrices d'un groupe. Applications." , '109' : "Anneau Z/nZ. Applications." , '110' : "Nombres premiers. Applications." , '111' : "Anneaux principaux. Applications" , '112' : "Corps finis. Applications." , '113' : "Groupe des nombres complexes de module 1. Sous-groupes des racines de l'unité. Applications." , '114' : "Anneau des séries formelles. Applications" , '116' : "Polynômes irréductibles à une indéterminée. Corps de rupture. Exemples et applications." , '117' : "Algèbre des polynômes à plusieurs inderterminées; aspects théoriques et applications" , '119' : "Exemples d'actions de groupes sur les espaces de matrices" , '120' : "Dimension d'un espace vectoriel (on se limitera au cas de dimension finie). Rang. Exemples et applications." , '123' : "Déterminant. Exemples et applications." , '124' : "Polynôme d'endomorphismes en dimension finie. Applications à la réduction d'un endomorphisme en dimension finie." , '125' : "Sous-espaces stables d'un endomorphisme ou d'une famille d'endomorphisme d'un espace vectoriel de dimension finie. Applications." , '126' : "Endomorphismes diagonalisables en dimension finie" , '127' : "Exponentielle de matrices. Applications." , '128' : "Endomorphismes trigonalisables. Endomorphismes nilpotents." , '130' : "Matrices symétriques réelles, matrices hermitiennes." , '131' : "Formes quadratiques sur un espace vectoriel de dimension finie. Orthogonalité, isotropie. Applications" , '132' : "Formes linéaires et hyperplans en dimension finie. Exemples et applications." , '133' : "Endomorphismes remarquables d'un espace vectoriel euclidien de dimension finie." , '135' : "Isométries d'un espace affine euclidien de dim finie. Formes réduites. Applications en dim 2 et 3." , '136' : "Coniques. Applications." , '137' : "Barycentres dans un espace affine réel de dimension finie, convexité. Applications" , '139' : "Application des nombres complexes à la géométrie" , '140' : "Systèmes linéaires;opérations, aspects algorithmiques et conséquences théoriques" , '141' : "Utilisation des groupes en géométrie." , '144' : "Problèmes d'angles et de distances en dimension 2 ou 3." , '145' : "Méthodes combinatoires, problèmes de dénombrement." , '146' : "Résultant. Applications" , '148' : "Formes quadratiques réelles. Exemples et applications." , '149' : "Représentations des groupes finis de petit cardinal" , '201' : "Espaces de fonctions. Exemples et applications." , '202' : "Exemples de parties denses et applications." , '203' : "Utilisation de la notion de compacité." , '204' : "Connexité. Exemples et applications." , '205' : "Espaces complets. Exemples et applications." , '206' : "Théorèmes de point fixe. Exemples et applications." , '207' : "Prolongement de fonctions. Exemples et applications." , '208' : "Espaces vectoriels normés, applications linéaires continues . Exemples" , '213' : "Espaces de Hilbert, bases hilbertiennes. Exemples et applications." , '214' : "Théorème d'inversion locale, théorème des fonctions implicites. Exemples et applications." , '215' : "Applications différentiables définies sur un ouvert de Rn. Exemples et applications." , '216' : "Etude métrique des courbes. Exemples" , '217' : "Sous-variétés de Rn, exemples" , '218' : "Applications des formules de Taylor." , '219' : "Problèmes d'extremum." , '220' : "Equations différentielles X ' = f(t, X), exemples d'études qualitatives des solutions." , '221' : "Equations différentielles linéaires. Systèmes d'équations différentielles linéaires. Exemples et applications." , '223' : "Convergence des suites numériques. Exemples et applications." , '224' : "Comportement asymptotique des suites numériques. Rapidité de convergence. Exemples." , '226' : "Comportement d'une suite réelle ou vectorielle définie par une itération un+1 = f (un). Exemples." , '228' : "Continuité et dérivabilité des fonctions réelles d'une variable réelle. Exemples et contrexemples." , '229' : "Fonctions monotones. Fonctions convexes. Exemples et applications." , '230' : "Séries de nombres réels ou complexes. Comportement des restes ou des sommes partielles des séries numériques. Exemples." , '232' : "Méthodes d'approximation des solutions d'une équation F(X) = 0. Exemples." , '234' : "Espaces Lp." , '235' : "Suites et séries de fonctions intégrables. Exemples et applications." , '236' : "Illustrer par des exemples quelques méthodes de calcul d'intégrales de fonctions d'une ou plusieurs variables réelles." , '238' : "Méthodes de calcul approché d'intégrales et d'une solution d'équation différentielle." , '239' : "Fonctions définies par une intégrale dépendant d'un paramètre. Exemples et applications" , '240' : "Transformation de Fourier, produit de convolution. Applications." , '241' : "Suites et Séries de fonctions. Exemples et contre-exemples." , '242' : "Utilisation en probabilités des transformations de Fourier ou de Laplace et du produit de convolution" , '243' : "Convergence des séries entières, propriétés de la somme. Exemples et applications." , '245' : "Fonctions holomorphes et méromorphes sur un ouvert de C." , '246' : "Séries de Fourier. Exemples et applications." , '247' : "Exemples de problèmes d'interversion de limites." , '249' : "Suites de variables de Bernoulli indépendantes." , '250' : "Loi des grands nombres, théorème de la limite centrale. Applications." , '251' : "Indépendance d'événements et de variables aléatoires. Exemples." , '252' : "loi binomiale, loi de Poisson - Applications" , '253' : "Utilisation de la notion de convexité en analyse." , '254' : "Espace de Schwartz et distributions tempérées." , '255' : "Dérivation au sens des distributions . Exemples et applications." , '256' : "Transformation de Fourier dans S(Rd) et S'(Rd)." } +import divers # -------------------------------------------------- @@ -67,8 +66,8 @@ class Lecon(): """ self.num = str(num) - if self.num in dico_nom_lecon: - self.nom = dico_nom_lecon[self.num] + if self.num in divers.dico_nom_lecon: + self.nom = divers.dico_nom_lecon[self.num] self.document=md.Document() racine = self.document.createElement("lecon") diff --git a/liste_lecon b/liste_lecon index 5892bdd..f56d770 100644 --- a/liste_lecon +++ b/liste_lecon @@ -36,6 +36,8 @@ 146 Résultant. Applications 148 Formes quadratiques réelles. Exemples et applications. 149 Représentations des groupes finis de petit cardinal +150 Racines d'un polynôme, fonctions symétriques, localisation des racines (cas réél et complexe) +151 Extensions de corps. Exemples et applications. 201 Espaces de fonctions. Exemples et applications. 202 Exemples de parties denses et applications. 203 Utilisation de la notion de compacité. diff --git a/notes b/notes index 82684ca..0278e3b 100644 --- a/notes +++ b/notes @@ -1,3 +1,4 @@ - * Dans Gourdon (et certainement Rouvière) regrader extrema lié - * Verifier dans le Toulouse si test du khi2 passe pour Poisson-Binômiale + * Verifier dans le Toulouse si test du khi2 passe pour Poisson-Binômiale et le théorème de Cochran (potentiel dev pour les formes quadratiques) * Jeter un coup d'oeil à la méthode du gradiant optimal + * fonctions lipschitziennes dans le Brezis avec vocabulaire des distribs :D + * thm de Wantzel en BU math 512.3 CAR