Commit e023308e authored by Jérôme Ortais's avatar Jérôme Ortais

Réécriture de PoserDesOperations, niveau 6e, en utilisant le template

Jinja2. J'aime beaucoup.
parent ad48fe70
Pipeline #73171 passed with stage
in 47 seconds
\exercice*
\begin{multicols}{2}\noindent
\begin{enumerate}
(* for cas in ordre *)
(* if cas == "somme" *)
\item La somme des termes (( Sna|facteur )) et (( Snb|facteur )).\par
\begin{tabular}[t]{*{(( Sta|length + 1))}{c}}
&
(* for tt in Str *)
(* if loop.last *)
\tiny (( tt )) \\
(* else *)
\tiny (( tt )) &
(* endif *)
(* endfor *)
&
(* for tt in Sta *)
(* if loop.last *)
(( tt )) \\
(* elif ((tt)) == '.' *)
, &
(* else *)
(( tt )) &
(* endif *)
(* endfor *)
$+$ &
(* for tt in Stb *)
(* if loop.last *)
(( tt )) \\
(* elif ((tt)) == '.' *)
, &
(* else *)
(( tt )) &
(* endif *)
(* endfor *)
\hline
&
(* for tt in Stt *)
(* if loop.last *)
(( tt )) \\
(* elif ((tt)) == '.' *)
, &
(* else *)
(( tt )) &
(* endif *)
(* endfor *)
\end{tabular}\par
\[ \boxed{(( Sna|facteur )) + (( Snb|facteur )) = (( "{:.15g}".format(Sna+Snb)|float|facteur ))} \]
(* elif cas == "diff" *)
\item La différence des termes (( Dna|facteur )) et (( Dnb|facteur )).\par
\begin{tabular}[t]{*{(( Dta|length + 1))}{c}}
&
(* for tt in Dta *)
(* if loop.last *)
(* if Dtrh[loop.index0] != " " *)
$^(( Dtrh[loop.index0] ))$
(* endif *)
(( tt )) \\
(* elif ((tt)) == '.' *)
, &
(* else *)
(* if Dtrh[loop.index0] != " " *)
$^(( Dtrh[loop.index0] ))$
(* endif *)
(( tt )) &
(* endif *)
(* endfor *)
$-$ &
(* for tt in Dtb *)
(* if loop.last *)
(( tt ))
(* if Dtrb[loop.index0] != " " *)
$_(( Dtrb[loop.index0] ))$
(* endif *)
\\
(* elif ((tt)) == '.' *)
, &
(* else *)
(( tt ))
(* if Dtrb[loop.index0] != " " *)
$_(( Dtrb[loop.index0] ))$
(* endif *)
&
(* endif *)
(* endfor *)
\hline
&
(* for tt in Dtt *)
(* if loop.last *)
(( tt )) \\
(* elif ((tt)) == '.' *)
, &
(* else *)
(( tt )) &
(* endif *)
(* endfor *)
\end{tabular}\par
\[ \boxed{(( Dna|facteur )) - (( Dnb|facteur )) = (( "{:.14g}".format(Dna-Dnb)|float|facteur ))} \]
(* else *)
\item Le produit des facteurs (( "{:.14g}".format(Pna*10**Ppa)|float|facteur )) et (( "{:.14g}".format(Pnb*10**Ppb)|float|facteur )).
\begin{description}
\item[1\iere{} méthode :]\ \\
\begin{tabular}[t]{*{(( (Pna*Pnb)|string|length ))}{c}}
(* for tt in alignement.format(Pna) *)
(( tt ))
(* if loop.revindex0 == -Ppa *)
,
(* endif *)
(* if loop.last *)
\\
(* else *)
&
(* endif *)
(* endfor *)
$\times$ &
(* for tt in alignement.format(Pnb) *)
(* if not loop.first *)
(( tt ))
(* if loop.revindex0 == -Ppb *)
,
(* endif *)
(* if loop.last *)
\\ \hline
(* else *)
&
(* endif *)
(* endif *)
(* endfor *)
(* for f1 in (Pnb|string)[::-1] *)
(* if f1 != '.' *)
(* for tt in alignement.format(f1|int*Pna*10**loop.index0) *)
(( tt ))
(* if loop.last *)
\\
(* else *)
&
(* endif *)
(* endfor *)
(* endif *)
(* endfor *)
\hline
(* for tt in alignement.format(Pna*Pnb) *)
(( tt ))
(* if loop.revindex0 == -Ppa-Ppb *)
,
(* endif *)
(* if loop.last *)
\\
(* else *)
&
(* endif *)
(* endfor *)
\end{tabular}
\item[2\ieme{} méthode :]\ \\
\begin{tabular}[t]{*{(( (Pna*Pnb)|string|length ))}{c}}
(* for tt in alignement.format(Pnb) *)
(( tt ))
(* if loop.revindex0 == -Ppb *)
,
(* endif *)
(* if loop.last *)
\\
(* else *)
&
(* endif *)
(* endfor *)
$\times$ &
(* for tt in alignement.format(Pna) *)
(* if not loop.first *)
(( tt ))
(* if loop.revindex0 == -Ppa *)
,
(* endif *)
(* if loop.last *)
\\ \hline
(* else *)
&
(* endif *)
(* endif *)
(* endfor *)
(* for f1 in (Pna|string)[::-1] *)
(* if f1 != '.' *)
(* for tt in alignement.format(f1|int*Pnb*10**loop.index0) *)
(( tt ))
(* if loop.last *)
\\
(* else *)
&
(* endif *)
(* endfor *)
(* endif *)
(* endfor *)
\hline
(* for tt in alignement.format(Pna*Pnb) *)
(( tt ))
(* if loop.revindex0 == -Ppa-Ppb *)
,
(* endif *)
(* if loop.last *)
\\
(* else *)
&
(* endif *)
(* endfor *)
\end{tabular}
\end{description}
\[ \boxed{(( "{:.14g}".format(Pna*10**Ppa)|float|facteur )) \times (( "{:.14g}".format(Pnb*10**Ppb)|float|facteur )) = (( "{:.14g}".format(Pna*Pnb*10**(Ppa+Ppb))|float|facteur ))} \]
(* endif *)
(* endfor *)
\end{enumerate}
\end{multicols}
\ No newline at end of file
\exercice
Poser et effectuer les opérations suivantes.
\begin{multicols}{2}\noindent
\begin{enumerate}
(* for cas in ordre *)
(* if cas == "somme" *)
\item La somme des termes (( Sna|facteur )) et (( Snb|facteur )).
(* elif cas == "diff" *)
\item La différence des termes (( Dna|facteur )) et (( Dnb|facteur )).
(* else *)
\item Le produit des facteurs (( "{:.15g}".format(Pna*10**Ppa)|float|facteur )) et (( "{:.15g}".format(Pnb*10**Ppb)|float|facteur )).
(* endif *)
(* endfor *)
\end{enumerate}
\end{multicols}
......@@ -526,6 +526,7 @@ def tex_resolution_thales1(n, v):
donnees = (creer_noms(n, r + 3), creer_noms(n, r + 6), '-',
creer_noms(n, r), decimaux(v[r + 3], 1))
if donnees:
print(donnees)
return '\\vspace{1ex}\\par De plus $%s=%s%s%s=\\unit[%s]{cm}$\n' % donnees
else:
return ''
......
This diff is collapsed.
This diff is collapsed.
......@@ -35,7 +35,7 @@ def suppr0(nombre):
def decimaux(nb, mathenv=0):
"""nb est un float ou une str"""
pattern = re.compile(r"^(-?\d+)\.*(\d*)e?([\+\-]?\d*)$")
entiere, decimale, exposant = pattern.search(format(float(nb), ".15g")).groups() #arrondit les floats
entiere, decimale, exposant = pattern.search(format(float(nb), ".14g")).groups() #arrondit les floats
if exposant:
if int(exposant) > 0:
if int(exposant) < len(decimale):
......@@ -57,16 +57,12 @@ def decimaux(nb, mathenv=0):
((len(entiere) - 1 - (entiere[0] == '-')) // 3) + "$")
partie_entiere = pattern.search(entiere).groups()
if decimale and int(decimale):
"""Vérifie si la partie décimale existe et si elle est différente de
zéro"""
pattern = re.compile(r"^" + "(\d{3})" * ((len(decimale) - 1) // 3) + \
"(\d{1,3})?$")
"""Vérifie si la partie décimale existe et si elle est différente de zéro"""
pattern = re.compile(r"^" + "(\d{3})" * ((len(decimale) - 1) // 3) + "(\d{1,3})?$")
partie_decimale = pattern.search(decimale).groups()
if mathenv:
return "{,}".join(("\,".join(partie_entiere),
"\,".join(partie_decimale)))
return "{,}".join(("\,".join(partie_entiere), "\,".join(partie_decimale)))
else:
return ",".join(("\,".join(partie_entiere),
"\,".join(partie_decimale)))
return ",".join(("\,".join(partie_entiere), "\,".join(partie_decimale)))
else:
return "\,".join(partie_entiere)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment