Nouvelle tentative

This commit is contained in:
Takanuva 2012-03-09 22:39:12 +01:00
commit f0a0a0837a
16 changed files with 1054 additions and 0 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

243
agreg.py Executable file
View File

@ -0,0 +1,243 @@
#! /usr/bin/env python
# Mes classes
import lecon
import dev
import book
import divers
import config
# celles des autres
import glob
from operator import itemgetter
import os
import optparse
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 )
class Agreg():
""" Gere les bouquins, les developpements et les leçons
"""
def __init__(self, ):
"""
"""
self.book = []
self.dev = []
self.init_lecon()
def init_lecon(self):
""" Initialise la liste des lecons
Arguments:
- `self`:
"""
self.lecon = {}
for num in liste_lecon:
num = str(num)
l = lecon.Lecon()
l.from_scratch(num)
self.lecon[num] = l
# -------------------- Import et extraction
def import_dev(self, folder = ""):
""" Import les dev contenus dans folder
Arguments:
- `self`:
- `folder`: Dossier ou les developpements sont stockés
"""
# for d in glob.glob(folder + '*.agregDev'):
for d in glob.glob(folder + '*'):
devel = dev.Dev()
devel.from_file(d)
self.dev += [devel]
def extract_from_dev(self):
""" Remplit les liste lecon et book à partir des informations contenu dans dev
Arguments:
- `self`:
"""
for d in self.dev:
# Extraction des leçons
for l in d.lecon:
self.lecon[l].add_dev(d.nom)
# # Extraction des bouquins
# for b in d.book:
# self.book Faudra le faire mais j'ai la flemme pour le moment
def import_lecon(self, folder = ""):
""" Import les lecons contenus dans folder
Arguments:
- `self`:
- `folder`: Dossier ou les lecons sont stockés
"""
for l in glob.glob(folder + '*.agregLecon'):
le = lecon.Lecon()
le.from_file(l)
self.lecon += [le]
def import_book(self, folder = ""):
""" Import les bouquins contenus dans folder
Arguments:
- `self`:
- `folder`: Dossier ou les developpements sont stockés
"""
for b in glob.glob(folder + '*.agregBook'):
bo = book.Book()
bo.from_file(b)
self.book += [bo]
# -------------------- Analyse
def nbr_dev(self):
""" Calcul et trie le nombre de developpement par lecon et stock la liste dans lecon_nbr_dev
Arguments:
- `self`:
"""
self.lecon_nbr_dev = []
for l in self.lecon.values():
self.lecon_nbr_dev += [(l.num , len(l.dev))]
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
Arguments:
- `self`:
"""
# 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))
# Nombre total de développement nécessaire
nbr_dev_tot = 2 * len(self.lecon)
self.score = score / nbr_dev_tot * 100
# -------------------- Affichage
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()
for i, n in self.lecon_nbr_dev:
self.lecon[i].print_nbr_dev()
self.score_dev()
if self.score != 100:
print("\n Courage! Ton score est de {score}% c'est déjà pas mal non?".format(score = self.score))
else:
print("\n Bien joué! Toutes les lecons au moins deux développements!")
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
Arguments:
- `self`:
- `num`: le numero d'une lecon
"""
num = str(num)
if num in self.lecon:
self.lecon[num].print_dev()
else:
print("Leçon inconnue!")
def print_lecon_from_name(self, chaine):
""" Écrit le nom des développements en relation avec la leçon à partir d'une partie du nom de la lecon
Arguments:
- `self`:
- `chaine`: Une partie du nom de la (ou des!) lecons
"""
for l in [l for l in self.lecon.values() if divers.normalise_str(chaine) in divers.normalise_str(l.nom)]:
l.print_dev()
def print_dev(self, chaine):
""" Affiche les informations sur les développements dont le nom contient "chaine"
Arguments:
- `self`:
- `chaine`: chaine de caracteres à partir duquel on va séléctionner les dév
"""
# Pour chaque nom de dev on selectionne ceux qui contienne la chaine
for d in [d for d in self.dev if divers.normalise_str(chaine) in divers.normalise_str(d.nom)]:
d.print_info()
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()
# options proposée
parser.add_option("-a","--analyse",action="store_true",dest="analyse", help="Donne le nombre de developpement pour les leçons")
parser.add_option("-l","--lecon",action="store",type="string",dest="lecon", help="Affiche les développements associés à aux lecons qui contiennent la chaine mis en argument.")
parser.add_option("-L","--lecons",action="store",type="string",dest="list_lecons", help="Affiche les développements associés aux lecons mis en argument (Entre guillemets séparé par un espace ou sans rien s'il n'y a qu'une lecon)")
parser.add_option("-d","--dev",action="store",type="string",dest="dev", help="Affiche la liste des developpements et propose d'en selectionner une à décrire")
# Digestion
(options, args) = parser.parse_args()
agreg = Agreg()
agreg.import_dev(config.lieu_dev)
agreg.extract_from_dev()
if options.analyse:
agreg.print_analyse_dev()
if options.lecon:
agreg.print_lecon_from_name(options.lecon)
if options.list_lecons:
for l in options.list_lecons.split(" "):
agreg.print_lecon_from_int(str(l))
if options.dev:
agreg.print_dev(options.dev)

134
book.py Normal file
View File

@ -0,0 +1,134 @@
#! /usr/bin/env python
import xml.dom.minidom as md
import os
class Book():
""" Pour les bouquins
"""
def __init__(self, ):
""" Initialisation du bouquins
"""
self.infos = {"nom":None , "auth":None , "isbn": None}
self.dev=[]
self.lecon=[]
def from_file(self, file):
""" Importe les informations depuis un fichier
Arguments:
- `self`:
- `file`: fichier au format xml
"""
try:
self.document=md.parse(file)
except:
print("Le fichier ", file , " est inconnu")
else:
self.file = file
# Extraction des infos sur le bouquin en question
for cle in self.infos.keys():
self.infos[cle] = self.document.getElementsByTagName('lecon')[0].getAttribute(cle)
# Extraction des lecons liées
for lecon in self.document.getElementsByTagName('lecon'):
self.lecon += [lecon.getAttribute("num")]
# Extraction des devloppements
for dev in self.document.getElementsByTagName('dev'):
self.dev += [dev.getAttribute("nom")] # Manque d'extraire la page qui le concerne
# print("Ce bouquin est utile dans les leçons ", self.lecon, "et pour les développements", self.dev)
def from_scratch(self, book = {"nom":None , "auth":None , "isbn": None}):
""" Créé le bouquin depuis rien
Arguments:
- `self`:
- `book`: sous la forme suivante {"nom":val , "auth": val , "isbn": val }
"""
self.infos = book
self.document=md.Document()
racine = self.document.createElement("book")
for cle in self.infos.keys():
racine.setAttribute(cle, self.infos[cle])
self.document.appendChild(racine)
# print(self.document.toprettyxml())
def add_lecon(self, lecon = 0):
""" Ajoute une lecon où apparait ce developpement
Arguments:
- `self`:
- `lecon`: le numero de la lecon
"""
self.lecon += [lecon]
element = self.document.createElement("lecon")
element.setAttribute("num", str(lecon))
racine = self.document.getElementsByTagName('book')[0]
racine.appendChild(element)
# print(self.document.toprettyxml())
def add_dev(self, dev = None, pg = None):
""" Ajoute une lecon où apparait ce developpement
Arguments:
- `self`:
- `dev`: le nom du developpement
- `pg`: page ou on peut le retrouver
"""
self.dev += [dev]
element = self.document.createElement("dev")
element.setAttribute("nom", str(dev))
element.setAttribute("pg", str(pg))
racine = self.document.getElementsByTagName('book')[0]
racine.appendChild(element)
# print(self.document.toprettyxml())
def sauve(self, destination = 0):
""" Sauve le developpement à l'endroit indiqué
Arguments:
- `self`:
- `destination`: on veut l'enregistrer
"""
if not destination:
destination = self.infos["nom"].replace(" ", "_") + ".agregBook"
fichier = open(destination, 'w')
fichier.write(self.document.toprettyxml())
fichier.close()
print("Le bouquin à été sauvé dans \"" + str(destination) + "\" voila son contenu")
print(self.document.toprettyxml())
if __name__ == '__main__':
book = Book()
# book.from_file("ici")
book.from_scratch( {"nom":"super book" , "auth": "super autheur" , "isbn": "super isbn" })
book.add_dev("j'aime les maths et les carottes rapées", 76)
book.add_lecon("123")
book.sauve()

5
config.py Normal file
View File

@ -0,0 +1,5 @@
# Fichier configuration
lieu_dev = "../developpement/mes_dev/"
lieu_lecon = "../lecons/"
lieu_bouquin = "../Bouquins/"

44
creationFiches.sh Normal file
View File

@ -0,0 +1,44 @@
#!/bin/sh
IFS="
"
lieu_fiches="lecons_notes"
if [ ! -e $lieu_fiches ]
then
echo "Création du répertoire"
mkdir $lieu_fiches
fi
for lecon in `cat liste_lecon`; do
numero=${lecon:0:3}
nom=${lecon:5} # On extrait le nom de la lecon
nom_mod=${nom//./} # On remplace les "." par rien
nom_mod=${nom_mod// /_} # On remplace les espaces par des _
echo "Création de $lecon"
fichier="$lieu_fiches/$numero"
printf "<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"yes\"?>
<lecon num=\"%s\" nom=\"%s\">
</lecon>
<!-- Syntaxe
Commentaires sur la lecon
<com src=str > </com>
Developpements choisis ou vus ou n'importe quoi
<dev src=str pg=int > </dev>
Bouquins indispensables
<book src=str pg=int > <book>
-->
" $numero $nom > $fichier
done

240
dev.py Executable file
View File

@ -0,0 +1,240 @@
#! /usr/bin/env python
import xml.dom.minidom as md
import os
import optparse
import lecon
import config
# --------------------------------------------------
#
# Classe des développements
#
# --------------------------------------------------
class Dev():
""" Pour les développements
"""
def __init__(self, ):
""" Initialisation du développement
"""
self.nom = None
self.book=[]
self.lecon=[]
def from_file(self, file):
""" Importe les informations depuis un fichier
Arguments:
- `self`:
- `file`: fichier au format xml
"""
try:
self.document=md.parse(file)
except:
print("Le fichier ", file , " est inconnu")
else:
self.file = file
# Extraction du nom du developpement
self.nom = self.document.getElementsByTagName('dev')[0].getAttribute("nom")
# 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")]
# -------------------- Création et ajout d'information sur d'un développement
def from_scratch(self, nom = "???"):
""" Créé le développement depuis rien
Arguments:
- `self`:
- `nom` : nom du developpement
"""
self.nom = nom
self.document=md.Document()
racine = self.document.createElement("dev")
racine.setAttribute("nom", nom)
self.document.appendChild(racine)
# print(self.document.toprettyxml())
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"]
"""
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])
racine = self.document.getElementsByTagName('dev')[0]
racine.appendChild(element)
# print(self.document.toprettyxml())
def add_lecon(self, lecon = 0):
""" Ajoute une lecon où apparait ce developpement
Arguments:
- `self`:
- `lecon`: le numero de la lecon
"""
self.lecon += [lecon]
element = self.document.createElement("lecon")
element.setAttribute("num", str(lecon))
racine = self.document.getElementsByTagName('dev')[0]
racine.appendChild(element)
# print(self.document.toprettyxml())
# -------------------- Concernant le Prompt
def from_prompt(self):
""" Créé le développement depuis le prompt
Arguments:
"""
print("\n ---------- Nouveau développement ---------- ")
# On crée l'objet
d = Dev()
# Nom du developpement
self.prompt_desc_dev()
bo = 1
while bo:
self.prompt_add_book()
print("Un autre bouquin? (vide pour non, n'importe quoi pour oui!)")
bo = input()
self.prompt_add_lecon()
print("\n ---------- Voila fini! ----------\n ")
def prompt_desc_dev(self):
""" Pour demander la description du developpement
"""
print("Nom du developpement?")
nom = input()
self.from_scratch(nom)
def prompt_add_lecon(self):
""" Prompt pour demander la liste des leçons correspondantes
"""
print("\n ---------- Ajout de la liste des developpement ---------- ")
print("Liste des leçons liées? (séparé par un espace)")
list_lecons = input().split(" ")
for l in list_lecons:
self.add_lecon(l)
def prompt_add_book(self):
""" Prompt pour demander les infos sur un bouquin
"""
print("\n ---------- Ajout d'un bouquin ---------- ")
print("Nom du bouquin")
nom = input()
print("Autheur (tous on va pas s'embeter)")
auth = input()
print("Réference")
ref = input()
print("page")
pg = input()
self.add_book([nom , auth , ref , pg])
# -------------------- Affichage
def print_info(self):
""" Affiche les infos sur le dev
Arguments:
- `self`:
"""
print(" \n ---------- Informations sur :{nom} ".format(nom = self.nom))
print(" --- Leçons --- ")
for l in self.lecon:
lec = lecon.Lecon()
lec.from_scratch(l)
lec.print_nom()
# print(" --- Bouquins --- ")
# -------------------- Sauvegarde
def sauve(self, folder = ""):
""" Sauve le developpement à l'endroit indiqué
Arguments:
- `self`:
- `folder`: on veut l'enregistrer (et oui pas le choix du nom!!)
"""
destination = folder + self.nom.replace(" ", "_") + ".agregDev"
fichier = open(destination, 'w')
fichier.write(self.document.toprettyxml())
fichier.close()
print("Le développement à été sauvé dans \"", destination, "\" voila son contenu")
print(self.document.toprettyxml())
if __name__ == '__main__':
# dev = Dev()
# dev.from_file("/media/documents/Cours/Agreg/developpement/mes_dev/Lp_Banach")
# # dev.from_scratch("j'aime les maths et les carottes rappées")
# dev.add_book(("pipo", "popi", "chipo", "pouet"))
# dev.add_book(("pipoi", "popii", "chipoi", "poueti"))
# dev.add_lecon("123")
# dev.add_lecon("128")
# dev.add_lecon("122")
# dev.sauve()
# Pour analyser les options qu'on lui demande
parser = optparse.OptionParser()
# options proposée
parser.add_option("-n","--new",action="store_true",dest="new", help='Pour créer un nouveau développement')
#parser.add_option("-o","--output",action="store",type="string",dest="outputFilename")
# Digestion
(options, args) = parser.parse_args()
if options.new:
dev = Dev()
dev.from_prompt()
dev.sauve(config.lieu_dev)

16
divers.py Normal file
View File

@ -0,0 +1,16 @@
#! /usr/bin/env python
# Ici on met tout ce qui n'a rien à faire ailleurs et qui est trop petit pour avec sa propre place!
# ----------------------------------------
# Pour les chaines de caractères
import unicodedata
def normalise_str(chaine):
""" renvoie un chaine ou ù on a enlevé les majuscules et les accents de la chaine
Arguments:
- `chaine`:
"""
return unicodedata.normalize('NFKD', chaine).encode('ASCII', 'ignore').lower()

187
lecon.py Normal file

File diff suppressed because one or more lines are too long

82
liste_lecon Normal file
View File

@ -0,0 +1,82 @@
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).

37
new_book.sh Normal file
View File

@ -0,0 +1,37 @@
#!/bin/sh
NOM=${*:?"Et le nom?!?!"}
NOM_mod=${NOM// /_}
echo $NOM_mod
while [ -z $AUTH ]; do
echo "Auteurs? (N'importe quoi si la flemme)"
read AUTH
done
while [ -z $ISBN ]; do
echo "ISBN? (N'importe quoi si la flemme)"
read ISBN
done
printf "<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"yes\"?>
<book nom=\"$NOM\" auth=\"$AUTH\" isbn=\"$ISBN\">
</book>
<!-- Syntaxe
Commentaires sur la lecon
<com pg=int > </com>
Developpements choisis ou vus ou n'importe quoi
<dev pg=int lecon=int > </dev>
Lecon correspondante
<lecon num=int />
-->
" > $NOM_mod
echo "$NOM_mod a été créé et voici son contenu"
cat $NOM_mod

63
new_dev.sh Normal file
View File

@ -0,0 +1,63 @@
#!/bin/sh
NOM=${*:?"Et le nom?!?!"}
NOM_mod=${NOM// /_}
echo "Création du developpement $NOM"
while [ -z $SRC ]; do
echo "Nom d'un bouquin? (Commencez par le premier!)"
read SRC
done
while [ -z $AUTH ]; do
echo "Son auteur? (Celui du bouquin que vous venez d'entrer)"
read AUTH
done
while [ -z $PG ]; do
echo "La page où le trouver? (N'importe quoi si la flemme mais c'est pas chouette)"
read PG
done
while [ -z $LECON ]; do
echo "liste des leçons associés? (suite de numero séparés par un espace)"
read LECON
done
# En tête du fichier
printf "<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"yes\"?>
<dev nom=\"$NOM\">
<book nom=\"$SRC\" auth=\"$AUTH\" isbn="???" pg=\"$PG\" > </book>
" >> $NOM_mod
echo $LECON
for lecon in $LECON; do
printf "<lecon num=\"$lecon\" />
" >> $NOM_mod
done
# Bas du fichier
printf "
</dev>
<!-- Syntaxe
Commentaires sur la lecon
<com> </com>
Developpements choisis ou vus ou n'importe quoi
<book nom=tr auth=str isbn=int pg=int > </book>
Lecon correspondante
<lecon num=int />
-->
" >> $NOM_mod
echo "$NOM_mod a été créé et voici son contenu"
echo "----------------------------------------"
cat $NOM_mod

3
notes Normal file
View File

@ -0,0 +1,3 @@
* Dans Gourdon (et certainement Rouvière) regrader extrema lié
* Verifier dans le Toulouse si test du khi2 passe pour Poisson-Binômiale
* Jeter un coup d'oeil à la méthode du gradiant optimal