From a261a443347d69ca55e6dcd9176b97dbfc881660 Mon Sep 17 00:00:00 2001 From: Lafrite Date: Tue, 6 Jan 2015 09:22:52 +0100 Subject: [PATCH] ???? --- DS_gene.py | 11 +++- example/1_example.tex | 113 ++++++++++++++++++++++++++++++++++++++++ example/all_example.pdf | Bin 0 -> 49822 bytes example/tpl_example.tex | 44 +++++++++++++--- texenv.py | 2 +- 5 files changed, 159 insertions(+), 11 deletions(-) create mode 100644 example/1_example.tex create mode 100644 example/all_example.pdf diff --git a/DS_gene.py b/DS_gene.py index e061c1d..d4d958e 100755 --- a/DS_gene.py +++ b/DS_gene.py @@ -8,7 +8,14 @@ import csv from path import path from texenv import texenv -from pymath.random_expression import RdExpression +from pymath.expression import Expression +from pymath.polynom import Polynom +from pymath.fraction import Fraction + +pymath_tools = {"Expression":Expression,\ + "Polynom":Polynom,\ + "Fraction":Fraction,\ + } def main(options): #template = report_renderer.get_template(options.template) @@ -45,7 +52,7 @@ def main(options): dest = path(str(infos['num']) + output) tmp_pdf.append(dest.namebase + ".pdf") with open( dest, 'w') as f: - f.write(template.render( RdExpression = RdExpression , infos = infos)) + f.write(template.render( infos = infos, **pymath_tools )) if not options.no_compil: os.system("pdflatex " + dest) diff --git a/example/1_example.tex b/example/1_example.tex new file mode 100644 index 0000000..a48e693 --- /dev/null +++ b/example/1_example.tex @@ -0,0 +1,113 @@ +\documentclass[a4paper,10pt]{/media/documents/Cours/Prof/Enseignements/Archive/2013-2014/tools/style/classDS} +\usepackage{/media/documents/Cours/Prof/Enseignements/Archive/2013-2014/2013_2014} + +% Title Page +\titre{Calcul littéral et statistiques} +% \quatreC \quatreD \troisB \troisPro +\classe{\troisB} +\date{26 septemble 2013} +% DS DSCorr DM DMCorr Corr +\typedoc{DS} +\duree{1 heure} +\sujet{} + + +\begin{document} +\maketitle + +\Calc +Le barème est donné à titre indicatif, il pourra être modifié. + +\begin{Exo}[4.5] + + + + + Développer et réduire les expressions suivantes: + \begin{eqnarray*} + A &=& \frac{ 1 }{ 2 } + 2 \\ + P(x) &=& 6 x - 2 \\ + Q(x) &=& 4 x + 11\\ + R(x) &=& ( 6 x - 2 ) \times ( 4 x + 11 ) + \end{eqnarray*} + + Solutions: + \begin{eqnarray*} +A & = & \frac{ 1 }{ 2 } + 2 \\ +A & = & \frac{ 1 \times 1 }{ 2 \times 1 } + \frac{ 2 \times 2 }{ 1 \times 2 } \\ +A & = & \frac{ 1 + 4 }{ 2 } \\ +A & = & \frac{ 5 }{ 2 } +\end{eqnarray*} + + \begin{eqnarray*} +P(2) & = & 6 \times 2 - 2 \\ +P(2) & = & 12 - 2 \\ +P(2) & = & 10 +\end{eqnarray*} + + \begin{eqnarray*} +Q(2) & = & 4 \times 2 + 11 \\ +Q(2) & = & 8 + 11 \\ +Q(2) & = & 19 +\end{eqnarray*} + + \begin{eqnarray*} +P(x) + Q(X) & = & 6 x + 4 x - 2 + 11 \\ +P(x) + Q(X) & = & ( 6 + 4 ) x + ( -2 ) + 11 \\ +P(x) + Q(X) & = & 10 x + 9 +\end{eqnarray*} + + \begin{eqnarray*} +P(x) + Q(X) & = & 6 x - 2 + 4 x + 11 \\ +P(x) + Q(X) & = & 4 x + 6 x + 11 - 2 \\ +P(x) + Q(X) & = & ( 4 + 6 ) x + 11 + ( -2 ) \\ +P(x) + Q(X) & = & 10 x + 9 +\end{eqnarray*} + + \begin{eqnarray*} +R(x) & = & ( 6 x - 2 ) \times ( 4 x + 11 ) \\ +R(x) & = & 6 \times 4 x^{ 2 } + ( -2 ) \times 4 x + 6 \times 11 x + ( -2 ) \times 11 \\ +R(x) & = & 6 \times 4 x^{ 2 } + ( ( -2 ) \times 4 + 6 \times 11 ) x + ( -2 ) \times 11 \\ +R(x) & = & 24 x^{ 2 } + ( ( -8 ) + 66 ) x - 22 \\ +R(x) & = & 24 x^{ 2 } + 58 x - 22 +\end{eqnarray*} + + +\end{Exo} + +\begin{Exo} + + Résoudre l'équation suivante + \begin{eqnarray*} + 3 x^{ 2 } + x + 10 & = & 0 + \end{eqnarray*} + + Solution: + + On commence par calculer le discriminant + \begin{eqnarray*} + \Delta & = & b^2-4ac + \end{eqnarray*} + + \begin{eqnarray*} +\Delta & = & 1^{ 2 } - 4 \times 3 \times 10 \\ +\Delta & = & 1 - 12 \times 10 \\ +\Delta & = & 1 - 120 \\ +\Delta & = & -119 +\end{eqnarray*} + + + Alors $\Delta = -119$ + + +\end{Exo} + + +\end{document} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "master" +%%% End: + + \ No newline at end of file diff --git a/example/all_example.pdf b/example/all_example.pdf new file mode 100644 index 0000000000000000000000000000000000000000..847f353057b70ccc6e16be6e6ecf66736dc4b5df GIT binary patch literal 49822 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%0ARHoSqs7TT4+hmXH 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 JaYYH3{|A?}4TS&z literal 0 HcmV?d00001 diff --git a/example/tpl_example.tex b/example/tpl_example.tex index f2599b0..f34bb01 100644 --- a/example/tpl_example.tex +++ b/example/tpl_example.tex @@ -19,21 +19,49 @@ Le barème est donné à titre indicatif, il pourra être modifié. \begin{Exo}[4.5] - \Block{do RdExpression.set_form("exp")} - \Block{set A = RdExpression("{a} / 2 + 2")()} - \Block{set B = RdExpression("{a} / 2 + 4")()} + \Block{set A = Expression.random("{a} / 2 + 2")} + \Block{set P = Polynom.random(["{b}","{a}"])} + \Block{set Q = Polynom.random(["{b+2}","{a}"])} + \Block{set R = P('x')*Q('x') } Développer et réduire les expressions suivantes: - \begin{equation*} - A = \Var{ A } \\ - B = \Var{ B } - \end{equation*} + \begin{eqnarray*} + A &=& \Var{ A } \\ + P(x) &=& \Var{ P } \\ + Q(x) &=& \Var{ Q }\\ + R(x) &=& \Var{R} + \end{eqnarray*} Solutions: \Var{A.simplify() | calculus} - \Var{B.simplify() | calculus(name = "B")} + \Var{P(2).simplify() | calculus(name = "P(2)")} + \Var{Q(2).simplify() | calculus(name = "Q(2)")} + \Var{(P+Q) | calculus(name = "P(x) + Q(X)")} + \Var{(P('x')+Q('x')).simplify() | calculus(name = "P(x) + Q(X)")} + \Var{R.simplify() | calculus(name = "R(x)")} \end{Exo} +\begin{Exo} + \Block{set P = Polynom.random(["{a}", "{b}", "{c}"])} + Résoudre l'équation suivante + \begin{eqnarray*} + \Var{P} & = & 0 + \end{eqnarray*} + + Solution: + + On commence par calculer le discriminant + \begin{eqnarray*} + \Delta & = & b^2-4ac + \end{eqnarray*} + \Block{set Delta = Expression("{b}^2 - 4*{a}*{c}".format(a = P._coef[2], b = P._coef[1], c = P._coef[0]))} + \Var{Delta.simplify()|calculus(name="\\Delta")} + \Block{set Delta = Delta.simplified()} + Alors $\Delta = \Var{Delta}$ + + +\end{Exo} + \end{document} diff --git a/texenv.py b/texenv.py index 8b90f3f..e2b3008 100644 --- a/texenv.py +++ b/texenv.py @@ -25,7 +25,7 @@ def do_calculus(steps, name = "A"): """ ans = "\\begin{eqnarray*}\n" - ans += " \\\\ \n".join([name + " & = & " + s for s in steps]) + ans += " \\\\ \n".join([name + " & = & " + str(s) for s in steps]) ans += "\n\\end{eqnarray*}\n" return ans