Commit 5d5717cc authored by Louis's avatar Louis
Browse files

Nouvel exercice : Bilan des trinômes.

La fonction pyromaths.outils.jinja2.facteur a été enrichie.
La documentation a été modifiée en conséquence.
parent c76800de
This diff is collapsed.
......@@ -11,7 +11,7 @@
(* else *)
\approx
(* endif *)
\numprint{(( ((d-b)/(a-c)) | round(2) | suppr0 ))}
\numprint{(( ((d-b)/(a-c)) | round(2) ))}
\end{align*}
L'unique solution est
......@@ -21,4 +21,4 @@ $x
(* else *)
\approx
(* endif *)
\numprint{(( ((d-b)/(a-c)) | round(2) | suppr0 ))}$.
\numprint{(( ((d-b)/(a-c)) | round(2) ))}$.
......@@ -27,7 +27,6 @@
import random
from pyromaths.ex import Jinja2Exercice
from pyromaths.outils.decimaux import suppr0
class EquationPremierDegre4(Jinja2Exercice):
......@@ -43,11 +42,3 @@ class EquationPremierDegre4(Jinja2Exercice):
"c": random.choice([1, -1]) * random.randint(2, 9),
"d": random.choice([1, -1]) * random.randint(2, 9),
}
@property
def environment(self):
environment = super(EquationPremierDegre4, self).environment
environment.filters.update({
'suppr0': suppr0,
})
return environment
......@@ -11,7 +11,7 @@
(* else *)
\approx
(* endif *)
\numprint{(( ((d-b)/(a-c)) | round(2) | suppr0 ))}
(( ((d-b)/(a-c))|facteur("2") ))
\end{align*}
L'unique solution est
......@@ -21,4 +21,4 @@ $x
(* else *)
\approx
(* endif *)
\numprint{(( ((d-b)/(a-c)) | round(2) | suppr0 ))}$.
(( ((d-b)/(a-c))|facteur("2") ))$.
# -*- coding: utf-8 -*-
#
# Pyromaths
#
# Un programme en Python qui permet de créer des fiches d'exercices types de
# mathématiques niveau collège ainsi que leur corrigé en LaTeX.
#
# Copyright (C) 2018 -- Louis Paternault (spalax+python@gresille.org)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
"""Équations du premier degré"""
import random
from pyromaths.ex import Jinja2Exercice
from pyromaths.outils.jinja2 import facteur
class EquationPremierDegre5(Jinja2Exercice):
description = u"Résolution d'équations du premier degré à coefficients entiers."
level = u'3.Troisième'
def __init__(self):
super(EquationPremierDegre5, self).__init__()
self.context = {
"a": random.choice([1, -1]) * random.randint(2, 9),
"b": random.choice([1, -1]) * random.randint(2, 9),
"c": random.choice([1, -1]) * random.randint(2, 9),
"d": random.choice([1, -1]) * random.randint(2, 9),
}
@property
def environment(self):
environment = super(EquationPremierDegre5, self).environment
environment.filters.update({
'facteur': facteur,
})
return environment
......@@ -27,15 +27,15 @@
import random
from pyromaths.ex import Jinja2Exercice
from pyromaths.outils.decimaux import suppr0
from pyromaths.outils.jinja2 import facteur
class EquationPremierDegre51(Jinja2Exercice):
class EquationPremierDegre61(Jinja2Exercice):
description = u"Résolution d'équations du premier degré à coefficients entiers."
level = u'3.Troisième'
def __init__(self):
super(EquationPremierDegre51, self).__init__()
super(EquationPremierDegre61, self).__init__()
a = random.choice([1, -1]) * random.randint(2, 9)
b = random.choice([1, -1]) * random.randint(2, 9)
......@@ -63,13 +63,13 @@ class EquationPremierDegre51(Jinja2Exercice):
else:
calculs.append(r"{}x &= {}\\".format(a-c, d-b))
calculs.append(r"x&=\frac{{ {} }}{{ {} }}\\".format(d-b, a-c))
solution = suppr0(round(float(d-b)/float(a-c), 2))
solution = facteur(float(d-b)/float(a-c), "2")
if 100*(float(d-b)/float(a-c)) == int(100 * float(d-b)/float(a-c)):
calculs.append(r"x&=\numprint{{{}}}\\".format(solution))
conclusion = r"L'unique solution est $x = \numprint{{{}}}$.".format(solution)
calculs.append(r"x&={}\\".format(solution))
conclusion = r"L'unique solution est $x = {}$.".format(solution)
else:
calculs.append(r"x&\approx\numprint{{{}}}\\".format(solution))
conclusion = r"L'unique solution est $x \approx \numprint{{{}}}$.".format(solution)
calculs.append(r"x&\approx{}\\".format(solution))
conclusion = r"L'unique solution est $x \approx {}$.".format(solution)
self.context = {
"a": a,
"b": b,
......
......@@ -21,7 +21,7 @@
(* else *)
\approx
(* endif *)
\numprint{(( ((d-b)/(a-c)) | round(2) | suppr0 ))}
(( ((d-b)/(a-c)) | facteur("2") ))
(* endif *)
\end{align*}
......@@ -37,5 +37,5 @@
(* else *)
\approx
(* endif *)
\numprint{(( ((d-b)/(a-c)) | round(2) | suppr0 ))}$.
(( ((d-b)/(a-c)) | facteur("2") ))$.
(* endif *)
......@@ -27,15 +27,15 @@
import random
from pyromaths.ex import Jinja2Exercice
from pyromaths.outils.decimaux import suppr0
from pyromaths.outils.jinja2 import facteur
class EquationPremierDegre52(Jinja2Exercice):
class EquationPremierDegre62(Jinja2Exercice):
description = u"Résolution d'équations du premier degré à coefficients entiers."
level = u'3.Troisième'
def __init__(self):
super(EquationPremierDegre52, self).__init__()
super(EquationPremierDegre62, self).__init__()
self.context = {
"a": random.choice([1, -1]) * random.randint(2, 9),
......@@ -46,8 +46,8 @@ class EquationPremierDegre52(Jinja2Exercice):
@property
def environment(self):
environment = super(EquationPremierDegre52, self).environment
environment = super(EquationPremierDegre62, self).environment
environment.filters.update({
'suppr0': suppr0,
'facteur': facteur,
})
return environment
\exercice*
\begin{align*}
(( a )) x (( "%+d"|format(b) )) &= (( c )) x (( "%+d"|format(d) )) \\
(( a )) x (( "%+d"|format(-c) ))x &= (( d )) (( "%+d"|format(-b) )) \\
(( a - c )) x &= (( d - b )) \\
x &= \frac{(( d - b ))}{(( a - c ))} \\
x &
(* if 100*(d-b)/(a-c) == (100*(d-b)/(a-c))|int *)
=
(* else *)
\approx
(* endif *)
(( ((d-b)/(a-c)) | facteur("2") ))
\end{align*}
L'unique solution est
$x
(* if 100*(d-b)/(a-c) == (100*(d-b)/(a-c))|int *)
=
(* else *)
\approx
(* endif *)
(( ((d-b)/(a-c)) | facteur("2") ))$.
\exercice
Déterminer les solutions de l'équation $(( a )) x (( "%+d"|format(b) ))= (( c )) x (( "%+d"|format(d) ))$.
Si nécessaire, les solutions seront arrondies au centième.
......@@ -27,15 +27,15 @@
import random
from pyromaths.ex import Jinja2Exercice
from pyromaths.outils.decimaux import suppr0
from pyromaths.outils.jinja2 import facteur
class EquationPremierDegre53(Jinja2Exercice):
class EquationPremierDegre63(Jinja2Exercice):
description = u"Résolution d'équations du premier degré à coefficients entiers."
level = u'3.Troisième'
def __init__(self):
super(EquationPremierDegre53, self).__init__()
super(EquationPremierDegre63, self).__init__()
while True:
a = random.choice([1, -1]) * random.randint(2, 9)
......@@ -60,8 +60,8 @@ class EquationPremierDegre53(Jinja2Exercice):
@property
def environment(self):
environment = super(EquationPremierDegre53, self).environment
environment = super(EquationPremierDegre63, self).environment
environment.filters.update({
'suppr0': suppr0,
'facteur': facteur,
})
return environment
#!/bin/bash
# Installe les exercices de tests pour qu'ils puissent être compilés
DOCDIR=$(pwd)/$(dirname $0)
ROOT=$DOCDIR/../../..
TEMPLATEDIR=$ROOT/data/ex/templates
EXERCICEDIR=$ROOT/src/pyromaths/ex/troisiemes
cd $TEMPLATEDIR
for template in $DOCDIR/*/*tex
do
ln $template
done
cd $EXERCICEDIR
for exercice in $DOCDIR/*/*py
do
ln $exercice
done
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