Skip to content
This repository was archived by the owner on Jun 26, 2018. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Doc/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
sys.path.insert(0, os.path.abspath('../../src/'))

import gettext
gettext.install('pyromaths', unicode=1)
gettext.install('pyromaths')

from pyromaths.Values import VERSION, COPYRIGHT_YEAR

Expand Down
2 changes: 1 addition & 1 deletion Doc/source/ecrire.rst
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ Connaissances
Créer un exercice pour Pyromaths nécessite de savoir utiliser un minimum :

- :math:`LaTeX` ;
- Python (version 2) ;
- Python (version 3) ;
- git.

Une connaissance de la bibliothèque Python `jinja2 <http://jinja2.pocoo.org>`__ est un plus, mais les bases s'apprennent rapidement et sont décrites plus loins dans ce document.
Expand Down
26 changes: 13 additions & 13 deletions Doc/source/pyromaths.cli.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,26 +21,26 @@ Il y a deux manières d'appeler ce programme, qui sont équivalentes.

.. code-block:: sh

python -m pyromaths.cli
python3 -m pyromaths.cli

* En exécutant un fichier situé dans le répertoire `utils`. Le `PYTHONPATH` est automatiquement géré ; c'est utile si vous n'arrivez pas à le faire vous-même, ou si vous n'avez pas compris la phrase précédente.

.. code-block:: sh

python utils/pyromaths-cli.py
python3 utils/pyromaths-cli.py

Commandes disponibles
=====================

* Compilation d'un exercice (``python -m pyromaths.cli compile``) :
* Compilation d'un exercice (``python3 -m pyromaths.cli compile``) :
Compile un exercice, et crée le PDF correspondant (énoncé et solution) dans le dossier courant. Cette commande est utile pour tester un exercice en cours de rédaction, plutôt que de passer par l'interface graphique.

Il est également possible de fournir des commandes à exécuter sur les fichiers LaTeX avant leur compilation. Ceci est utile pour déceler des erreurs de code LaTeX. Par exemple, la commande ``python -m pyromaths.cli compile -p more EXERCICE`` affiche le code LaTeX dans `more` avant compilation; la commande ``python -m pyromaths.cli compile -p vim EXERCICE`` édite le fichier avec `vim` avant compilation. Ceci peut aussi être utilisé (en attendant une solution plus propre) pour garder une copie du fichier LaTeX en cas d'erreur de compilation, pour pouvoir l'analyser, ainsi que le log : ``python -m pyromaths.cli compile -p 'cp {} exercices.tex' EXERCICE``.
Il est également possible de fournir des commandes à exécuter sur les fichiers LaTeX avant leur compilation. Ceci est utile pour déceler des erreurs de code LaTeX. Par exemple, la commande ``python3 -m pyromaths.cli compile -p more EXERCICE`` affiche le code LaTeX dans `more` avant compilation; la commande ``python3 -m pyromaths.cli compile -p vim EXERCICE`` édite le fichier avec `vim` avant compilation. Ceci peut aussi être utilisé (en attendant une solution plus propre) pour garder une copie du fichier LaTeX en cas d'erreur de compilation, pour pouvoir l'analyser, ainsi que le log : ``python3 -m pyromaths.cli compile -p 'cp {} exercices.tex' EXERCICE``.

* Liste des identifiants des exercices disponibles (``python -m pyromaths.cli ls``) :
* Liste des identifiants des exercices disponibles (``python3 -m pyromaths.cli ls``) :
Affiche la liste des identifiants des exercices, pour retrouver facilement l'exercice en cours de travail. Plus d'informations sont données dans la partie :ref:`id_exos`.

* Test des exercices (``python -m pyromaths.cli test``) :
* Test des exercices (``python3 -m pyromaths.cli test``) :
Voir la partie :ref:`pyrotests`.

.. _id_exos:
Expand All @@ -59,13 +59,13 @@ décrits comme ``exo_pythagore:4,6``, où :
utilisée.

La liste des exercices disponibles peut être obtenue avec la commande
``python -m pyromaths.cli ls``.
``python3 -m pyromaths.cli ls``.


.. _pyrotests:

``python -m pyromaths.cli test``
================================
``python3 -m pyromaths.cli test``
=================================

Cet outil permet de mettre en œuvre des tests de non régression pour les
exercices.
Expand All @@ -82,7 +82,7 @@ exercice peut en valider un énoncé particulier. Plus tard, il sera possible de
vérifier que l'exercice produit toujours exactement la même sortie.

Cet outil est conçu de telle manière à ce que l'appel au module :mod:`unittest`
de Python (par exemple avec ``python -m unittest discover``) effectue tous ces
de Python (par exemple avec ``python3 -m unittest discover``) effectue tous ces
tests.

Commandes
Expand All @@ -94,12 +94,12 @@ Description rapide
Les commandes détaillées sont décrites ci-après. En voici une version
simplifiée.

* Création (``python -m pyromaths.cli test create``), suppression des tests (``python -m pyromaths.cli test remove``)
* Création (``python3 -m pyromaths.cli test create``), suppression des tests (``python3 -m pyromaths.cli test remove``)

* Mise à jour des tests (``python -m pyromaths.cli test update``) :
* Mise à jour des tests (``python3 -m pyromaths.cli test update``) :
Effectue les tests, et propose de mettre à jour les tests qui ont changé. Utile si le code LaTeX généré a changé, mais l'exercice reste valide pour autant.

* Exécution des tests (``python -m pyromaths.cli test check``) :
* Exécution des tests (``python3 -m pyromaths.cli test check``) :
Effectue les tests. Les tests sont aussi exécutés lorsqu'``unittest`` est appelé.


Expand Down
6 changes: 3 additions & 3 deletions Doc/source/pyromaths.exemples.rst
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ Opérations mathématiques
>>> repr(Fraction(2,5) * 4)
Fraction(8, 5)

* Quotient (:func:`Fraction.__div__` et :func:`Fraction.__rdiv__`)
* Quotient (:func:`Fraction.__div__` et :func:`Fraction.__rtruediv__`)

.. doctest:: fraction

Expand Down Expand Up @@ -814,8 +814,8 @@ LaTeX

.. doctest:: polynomedegre2

>>> Poly2(2, 3, 4).print_signe("\leq")
2x^2+3x+4 \leq 0
>>> Poly2(2, 3, 4).print_signe("\leqslant")
2x^2+3x+4 \leqslant 0

Conversion en LaTeX
-------------------
Expand Down
3 changes: 3 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
Version XX.XX
* Passage à Python3

Version 18.06
* Nouvel exercice niveau terminale ES (spécialité) : Déterminer l'état stable d'un graphe probabiliste (en utilisant un système d'équations).
* Nouvel exercice niveau terminale ES (spécialité) : Résoudre un système d'équations en utilisant les matrices.
Expand Down
24 changes: 12 additions & 12 deletions data/ex/tests/ArrondirNombreDecimal.0.answer
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
\exercice*
\begin{enumerate}
\item L'encadrement de 845\,987 à la dizaine est :\par
845\,980 < 845\,987 < 845\,990\par
On en déduit que son arrondi à la dizaine par défaut est : 845\,980.
\item L'encadrement de 4\,263,73 au dixième est :\par
4\,263,7 < 4\,263,73 < 4\,263,8\par
On en déduit que son arrondi au dixième par défaut est : 4\,263,7.
\item L'encadrement de 51,616\,4 au millième est :\par
51,616 < 51,616\,4 < 51,617\par
On en déduit que son arrondi au millième par défaut est : 51,616.
\item L'encadrement de 78,596\,3 au millième est :\par
78,596 < 78,596\,3 < 78,597\par
On en déduit que son arrondi au millième est : 78,596.
\item L'encadrement de 514,947 au centième est :\par
514,94 < 514,947 < 514,95\par
On en déduit que son arrondi au centième est : 514,95.
\item L'encadrement de 6\,306,5 à l'unité est :\par
6\,306 < 6\,306,5 < 6\,307\par
On en déduit que son arrondi à l'unité par défaut est : 6\,306.
\item L'encadrement de 68\,013\,800 au millier est :\par
68\,013\,000 < 68\,013\,800 < 68\,014\,000\par
On en déduit que son arrondi au millier par défaut est : 68\,013\,000.
\item L'encadrement de 5\,407\,550 à la centaine est :\par
5\,407\,500 < 5\,407\,550 < 5\,407\,600\par
On en déduit que son arrondi à la centaine par excès est : 5\,407\,600.
\end{enumerate}
8 changes: 4 additions & 4 deletions data/ex/tests/ArrondirNombreDecimal.0.statement
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
\exercice
\begin{enumerate}
\item Arrondir 845\,987 à la dizaine par défaut.
\item Arrondir 4\,263,73 au dixième par défaut.
\item Arrondir 51,616\,4 au millième par défaut.
\item Arrondir 78,596\,3 au millième.
\item Arrondir 514,947 au centième.
\item Arrondir 6\,306,5 à l'unité par défaut.
\item Arrondir 68\,013\,800 au millier par défaut.
\item Arrondir 5\,407\,550 à la centaine par excès.
\end{enumerate}
72 changes: 36 additions & 36 deletions data/ex/tests/BilanTrinomeSansDiscriminant.0.answer
Original file line number Diff line number Diff line change
@@ -1,43 +1,43 @@
\exercice*

On considère le trinôme du second degré $f: x\mapsto \numprint{2}\,x^2 -\numprint{4}\,x -\numprint{70}$.
On considère le trinôme du second degré $f: x\mapsto \numprint{2}\,x^2 -\numprint{4}\,x -\numprint{96}$.

\begin{enumerate}
\item
\begin{enumerate}
\item Soit $x\in\mathbb{R}$. Alors :
\begin{align*}
\numprint{2} \,\left( x +\numprint{5} \right) \, \left( x -\numprint{7} \right)
&= \numprint{2} \,\left(x\times{} x +\numprint{5}\times{} x -\numprint{7}\times{} x +\numprint{5}\times{} \left(\numprint{-7}\right) \right) \\
&= \numprint{2} \,\left(x^2 -\numprint{2}\,x -\numprint{35}\right) \\
&= \numprint{2}\times{} x^2 +\numprint{2}\times{} \left(\numprint{-2}\,x\right) +\numprint{2}\times{} \left(\numprint{-35}\right) \\
&= \numprint{2}\,x^2 -\numprint{4}\,x -\numprint{70}\\
\numprint{2} \,\left( x +\numprint{6} \right) \, \left( x -\numprint{8} \right)
&= \numprint{2} \,\left(x\times{} x +\numprint{6}\times{} x -\numprint{8}\times{} x +\numprint{6}\times{} \left(\numprint{-8}\right) \right) \\
&= \numprint{2} \,\left(x^2 -\numprint{2}\,x -\numprint{48}\right) \\
&= \numprint{2}\times{} x^2 +\numprint{2}\times{} \left(\numprint{-2}\,x\right) +\numprint{2}\times{} \left(\numprint{-48}\right) \\
&= \numprint{2}\,x^2 -\numprint{4}\,x -\numprint{96}\\
&= f\,(x)
\end{align*}
\item Soit $x\in\mathbb{R}$. Alors :
\begin{align*}
\numprint{2}\,\left( x -\numprint{1} \right)^2 -\numprint{72}
&= \numprint{2}\,\left( x^2 -\numprint{2}\times{} \numprint{1} \times{} x + \numprint{1}^2\right) -\numprint{72}\\
&= \numprint{2}\,\left( x^2 -\numprint{2}\,x + \numprint{1}\right) -\numprint{72}\\
&= \numprint{2}\times{} x^2 +\numprint{2}\times{} \left(\numprint{-2}\,x\right) +\numprint{2}\times{} \numprint{1} -\numprint{72}\\
&= \numprint{2}\,x^2 -\numprint{4}\,x +\numprint{2} -\numprint{72}\\
&= \numprint{2}\,x^2 -\numprint{4}\,x -\numprint{70}\\
\numprint{2}\,\left( x -\numprint{1} \right)^2 -\numprint{98}
&= \numprint{2}\,\left( x^2 -\numprint{2}\times{} \numprint{1} \times{} x + \numprint{1}^2\right) -\numprint{98}\\
&= \numprint{2}\,\left( x^2 -\numprint{2}\,x + \numprint{1}\right) -\numprint{98}\\
&= \numprint{2}\times{} x^2 +\numprint{2}\times{} \left(\numprint{-2}\,x\right) +\numprint{2}\times{} \numprint{1} -\numprint{98}\\
&= \numprint{2}\,x^2 -\numprint{4}\,x +\numprint{2} -\numprint{98}\\
&= \numprint{2}\,x^2 -\numprint{4}\,x -\numprint{96}\\
&= f\,(x)
\end{align*}
\end{enumerate}
\item Résoudre les équations suivantes en choisissant la forme appropriée de $f$.
\begin{enumerate}
\item En prenant la forme factorisée, l'équation $f\,(x)=0$ est équivalente à l'équation produit nul $\numprint{2}\,(x +\numprint{5} )\,(x -\numprint{7} ) = 0$. Donc :
\item En prenant la forme factorisée, l'équation $f\,(x)=0$ est équivalente à l'équation produit nul $\numprint{2}\,(x +\numprint{6} )\,(x -\numprint{8} ) = 0$. Donc :
\begin{align*}
x +\numprint{5}=0 &\text{ ou } x -\numprint{7}=0 \\
x=\numprint{-5} &\text{ ou } x=\numprint{7}
x +\numprint{6}=0 &\text{ ou } x -\numprint{8}=0 \\
x=\numprint{-6} &\text{ ou } x=\numprint{8}
\end{align*}
Il y a donc deux solutions : $\numprint{-5}$ et $\numprint{7}$.
\item $f\,(x)=\numprint{-70}$ On remarque que la forme développée contient la constante $\numprint{-70}$ : celles-ci devraient donc s'annuler, pour simplifier notre résolution.
Il y a donc deux solutions : $\numprint{-6}$ et $\numprint{8}$.
\item $f\,(x)=\numprint{-96}$ On remarque que la forme développée contient la constante $\numprint{-96}$ : celles-ci devraient donc s'annuler, pour simplifier notre résolution.
\begin{align*}
f\,(x) &= \numprint{-70} \\
\numprint{2}\,x^2 -\numprint{4}\,x -\numprint{70} &= \numprint{-70} \\
\numprint{2}\,x^2 -\numprint{4}\,x -\numprint{70} +\numprint{70} &= \numprint{-70} +\numprint{70} \\
f\,(x) &= \numprint{-96} \\
\numprint{2}\,x^2 -\numprint{4}\,x -\numprint{96} &= \numprint{-96} \\
\numprint{2}\,x^2 -\numprint{4}\,x -\numprint{96} +\numprint{96} &= \numprint{-96} +\numprint{96} \\
\numprint{2}\,x^2 -\numprint{4}\,x &= 0 \\
\end{align*}
Nous pouvons maintenant factoriser le membre de gauche par $x$, ce qui nous donnera une équation produit nul.
Expand All @@ -53,11 +53,11 @@ x =0 &\text{ ou } x = \frac{\numprint{4}}{\numprint{2}} \\
x =0 &\text{ ou } x = \numprint{2} \\
\end{align*}
Il y a donc deux solutions : $x=0$ et $x=\numprint{2}$.
\item $f\,(x)=\numprint{-72}$ On remarque que la forme canonique contient la constante $\numprint{-72}$ : en l'utilisant, elles devraient se simplifier.
\item $f\,(x)=\numprint{-98}$ On remarque que la forme canonique contient la constante $\numprint{-98}$ : en l'utilisant, elles devraient se simplifier.
\begin{align*}
f\,(x) &= \numprint{-72} \\
\numprint{2} \,\left( x -\numprint{1} \right)^2 -\numprint{72} &= \numprint{-72}\\
\numprint{2} \,\left( x -\numprint{1} \right)^2 -\numprint{72} +\numprint{72} &= \numprint{-72} +\numprint{72}\\
f\,(x) &= \numprint{-98} \\
\numprint{2} \,\left( x -\numprint{1} \right)^2 -\numprint{98} &= \numprint{-98}\\
\numprint{2} \,\left( x -\numprint{1} \right)^2 -\numprint{98} +\numprint{98} &= \numprint{-98} +\numprint{98}\\
\numprint{2} \,\left( x -\numprint{1} \right)^2 &= 0\\
\left( x -\numprint{1} \right)^2 &= 0\\
\end{align*}
Expand All @@ -75,33 +75,33 @@ Il y a donc une unique solution $x=\numprint{1}$.
donc la fonction est
décroissante puis croissante .
De plus, l'absisse du sommet est $-\frac{\numprint{-4}}{2\times{}\numprint{2}}$, soit $\numprint{1}$, et
$f\,( \numprint{1} )=\numprint{2}\times{}\numprint{1}^2 -\numprint{4}\times{} \numprint{1} -\numprint{70}=\numprint{-72}$.
$f\,( \numprint{1} )=\numprint{2}\times{}\numprint{1}^2 -\numprint{4}\times{} \numprint{1} -\numprint{96}=\numprint{-98}$.
Le tableau de variations est donc :
\begin{center}
\begin{tikzpicture}
\tkzTabInit[espcl=2.5]
{$x$/1, $f\,(x)$/1.5}
{$-\infty$, $\numprint{1}$, $+\infty$}
\tkzTabVar{+/, -/$\numprint{-72}$/, +/}
\tkzTabVar{+/, -/$\numprint{-98}$/, +/}
\end{tikzpicture}
\end{center}
\item \emph{Dresser le tableau de signes de $f$.} Construisons un tableau de signes en utilisant la forme factorisée $f\,(x)=\numprint{2} \,\left(x +\numprint{5}\right) \, \left(x -\numprint{7}\right)$.
\item \emph{Dresser le tableau de signes de $f$.} Construisons un tableau de signes en utilisant la forme factorisée $f\,(x)=\numprint{2} \,\left(x +\numprint{6}\right) \, \left(x -\numprint{8}\right)$.

\begin{itemize}
\item Le premier facteur $x +\numprint{5}$ est une fonction affine, de coefficient directeur $a=1$ positif, et d'ordonnée à l'origine $b=\numprint{5}$. Elle est donc négative, puis positive, et change de signe en $-\frac{b}{a}=-\frac{\numprint{5}}{1}=\numprint{-5}$.
\item Le second facteur $x -\numprint{7}$ est aussi une fonction affine, de coefficient directeur $a=1$ positif, et d'ordonnée à l'origine $b=\numprint{-7}$. Elle est donc négative, puis positive, et change de signe en $-\frac{b}{a}=-\frac{\numprint{-7}}{1}=\numprint{7}$.
\item Le premier facteur $x +\numprint{6}$ est une fonction affine, de coefficient directeur $a=1$ positif, et d'ordonnée à l'origine $b=\numprint{6}$. Elle est donc négative, puis positive, et change de signe en $-\frac{b}{a}=-\frac{\numprint{6}}{1}=\numprint{-6}$.
\item Le second facteur $x -\numprint{8}$ est aussi une fonction affine, de coefficient directeur $a=1$ positif, et d'ordonnée à l'origine $b=\numprint{-8}$. Elle est donc négative, puis positive, et change de signe en $-\frac{b}{a}=-\frac{\numprint{-8}}{1}=\numprint{8}$.
\end{itemize}
\begin{center}
\begin{tikzpicture}
\tkzTabInit[lgt=4, espcl=2.5]
{
$x$/1,
$\numprint{2}$/1,
$x +\numprint{5}$/1,
$x -\numprint{7}$/1,
$f\,(x)=\numprint{2}\,\left( x +\numprint{5} \right)\,\left( x -\numprint{7} \right)$/1.5
$x +\numprint{6}$/1,
$x -\numprint{8}$/1,
$f\,(x)=\numprint{2}\,\left( x +\numprint{6} \right)\,\left( x -\numprint{8} \right)$/1.5
}
{$-\infty$, $\numprint{-5}$, $\numprint{7}$, $+\infty$}
{$-\infty$, $\numprint{-6}$, $\numprint{8}$, $+\infty$}
\tkzTabLine{, +, t, +, t, +}
\tkzTabLine{, -, z, +, t, +}
\tkzTabLine{, -, t, -, z, +}
Expand All @@ -114,9 +114,9 @@ Le tableau de variations est donc :
\item \emph{Résoudre $f\,(x)\geqslant0$.} En regardant la dernière ligne du tableau de signes, on observe que $f$ est positive sur
les premier et dernier intervalles .
Les solutions sont donc :
\[ x\in\interval[open left, scaled]{-\infty}{\numprint{-5}} \cup \interval[open right, scaled]{\numprint{7}}{+\infty} \]
\[ x\in\interval[open left, scaled]{-\infty}{\numprint{-6}} \cup \interval[open right, scaled]{\numprint{8}}{+\infty} \]
\item \emph{Quel est l'extremum de $f$ ? Est-ce un maximum ou un minimum ? Pour quelle valeur de $x$ est-il atteint ?} On lit sur le tableau de variations que la plus
petite valeur prise par $f$ est $\numprint{-72}$. Le
minimum de $f$ est donc $\numprint{-72}$, et il est atteint pour $x=\numprint{1}$.
petite valeur prise par $f$ est $\numprint{-98}$. Le
minimum de $f$ est donc $\numprint{-98}$, et il est atteint pour $x=\numprint{1}$.
\end{enumerate}
\end{enumerate}
10 changes: 5 additions & 5 deletions data/ex/tests/BilanTrinomeSansDiscriminant.0.statement
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
\exercice
On considère le trinôme du second degré $f: x\mapsto \numprint{2}\,x^2 -\numprint{4}\,x -\numprint{70}$.
On considère le trinôme du second degré $f: x\mapsto \numprint{2}\,x^2 -\numprint{4}\,x -\numprint{96}$.

\begin{enumerate}
\item
\begin{enumerate}
\item Montrer que pour tout $x\in\mathbb{R}$, on a : $f\,(x)=\numprint{2} \,\left( x +\numprint{5} \right) \, \left( x -\numprint{7} \right) $.
\item Montrer que pour tout $x\in\mathbb{R}$, on a : $f\,(x)=\numprint{2} \,\left( x -\numprint{1} \right)^2 -\numprint{72}$.
\item Montrer que pour tout $x\in\mathbb{R}$, on a : $f\,(x)=\numprint{2} \,\left( x +\numprint{6} \right) \, \left( x -\numprint{8} \right) $.
\item Montrer que pour tout $x\in\mathbb{R}$, on a : $f\,(x)=\numprint{2} \,\left( x -\numprint{1} \right)^2 -\numprint{98}$.
\end{enumerate}
\item Résoudre les équations suivantes en choisissant la forme appropriée de $f$.
\begin{enumerate}
\item $f\,(x)=0$
\item $f\,(x)=\numprint{-70}$
\item $f\,(x)=\numprint{-72}$
\item $f\,(x)=\numprint{-96}$
\item $f\,(x)=\numprint{-98}$
\end{enumerate}
\item
\begin{enumerate}
Expand Down
Loading