\clearpage
\section{La distributivité}\label{DocDistri}
\index{Calcul litteral@Calcul littéral}\index[cle]{Distributivite@\lstinline+\Distri+}
La commande \lstinline!\Distri! a pour but de développer des
expressions en utilisant la simple ou la double distributivité. On
l'utilise pour développer des expressions littérales du type $(2x+3)(4x+3)$;
$2(x+3)$ ou $5x(x-2)$ ainsi que pour effectuer des calculs numériques
 du type $8\times12$; $4\times\num{6.5}+4\times\num{3.5}$.
\begin{tcolorbox}[tikzRemarque]
  Cette commande s'utilise dans tous les modes.
\end{tcolorbox}
Elle a la forme suivante :
\begin{lstlisting}[escapechar=!,belowskip=0pt]
  \Distri[!\sffamily\textlangle clés\textrangle!]{a}{b}{c}{d}
\end{lstlisting}
où
\begin{itemize}
\item\textlangle\lstinline!clés!\textrangle{} constituent un ensemble d'options pour paramétrer la commande (paramètres optionnels);
\item\lstinline!a!, \lstinline!b!, \lstinline!c! et \lstinline!d! sont les valeurs des nombres relatifs utilisés (paramètres obligatoires).
\end{itemize}
\begin{Code}
\Distri{2}{3}{4}{5}
\end{Code}
\begin{Code}
$\Distri{-3}{4}{-2}{-3}$
\end{Code}
\begin{Code}
\[\Distri{5}{3}{4}{-1}\]
\end{Code}
\begin{Code}
\[\Distri{2}{0}{4}{5}\]
\end{Code}
\begin{Code}
\[\Distri{2}{4}{0}{5}\]
\end{Code}
Si cette commande ne servait qu'à écrire des expressions telles que
$(2x+1)(3x-2)$, elle serait bien inutile\dots
\\Les {\sffamily\textlangle clés\textrangle} (paramètres optionnels)
vont faire la différence.
\begin{tcolorbox}[tikzcle]
  \index[cle]{Distributivite@\lstinline+\Distri+!Numerique|mygobble}
  \index[cle]{Distributivite@\lstinline+\Distri+!Numerique!Etape|mygobble}
\begin{Key}{Numerique}{false}
  permet de faire un calcul numérique basé sur le développement ou la
  factorisation.
  \begin{tcolorbox}[tikzRemarque]
    Avec cette clé \Cle{Numerique}, le premier paramètre \lstinline!a!
    est toujours nul.
  \end{tcolorbox}
  \begin{SousDescription}
  \item[La clé \Cle{Etape}]\DefautR{1}
    permet de choisir  le type de calcul :
    \begin{itemize}
    \item si la clé \Cle{Etape} vaut 0, alors on obtient un calcul complet du
      type $a(b+c)$;
    \item si la clé \Cle{Etape} vaut $-1$, alors on obtient un calcul complet du
      type $a\times b+a\times c$.
    \end{itemize}
  \end{SousDescription}
\end{Key}
\end{tcolorbox}
\begin{Codes}{}{}
\[\Distri[Etape=0,Numerique]{0}{3}{10}{2}\]
\end{Codes}
\begin{Codes}{}{}
\[\Distri[Etape=-1,Numerique]{0}{3}{8.5}{1.5}\]
\end{Codes}
\clearpage
Passons au c\oe ur de la commande \lstinline!\Distri! : le calcul littéral.
\begin{tcolorbox}[tikzcle]
  \index[cle]{Distributivite@\lstinline+\Distri+!Etape|mygobble}
  \index[cle]{Distributivite@\lstinline+\Distri+!All|mygobble}
  \index[cle]{Distributivite@\lstinline+\Distri+!All!NomExpression|mygobble}
  \index[cle]{Distributivite@\lstinline+\Distri+!All!Fin|mygobble}
  \index[cle]{Distributivite@\lstinline+\Distri+!All!Tableau|mygobble}
  \index[cle]{Distributivite@\lstinline+\Distri+!Lettre|mygobble}
  \index[cle]{Distributivite@\lstinline+\Distri+!Fleches|mygobble}
  \index[cle]{Distributivite@\lstinline+\Distri+!Fleches!CouleurFH|mygobble}
  \index[cle]{Distributivite@\lstinline+\Distri+!Fleches!CouleurFB|mygobble}
  \index[cle]{Distributivite@\lstinline+\Distri+!AideMul|mygobble}
%  \index[cle]{Distributivite@\lstinline+\Distri+!Reduction|mygobble}
%  \index[cle]{Distributivite@\lstinline+\Distri+!Reduction!CouleurReduction|mygobble}
  \index[cle]{Distributivite@\lstinline+\Distri+!CouleurReduction|mygobble}
  \index[cle]{Distributivite@\lstinline+\Distri+!AideAdda|mygobble}
  \index[cle]{Distributivite@\lstinline+\Distri+!AideAddb|mygobble}
  \index[cle]{Distributivite@\lstinline+\Distri+!AideAdda!CouleurAide|mygobble}
  \index[cle]{Distributivite@\lstinline+\Distri+!AideAddb!CouleurAide|mygobble}
  \index[cle]{Distributivite@\lstinline+\Distri+!Cours|mygobble}
\begin{Key}{Etape}{1}
  écrit une des étapes du développement.  La valeur est choisie parmi
  les nombres entiers de 1 à 4.
\end{Key}
\begin{Key}{All}{false}
  écrit l'ensemble du développement d'une expression.
  \begin{SousDescription}
  \item[La clé \Cle{NomExpression}]\DefautR{A}
    modifie le nom utilisé pour repérer l'expression à développer.
  \item[La clé \Cle{Fin}]\DefautR{4}
    indique quelle est la valeur de la clé \Cle{Etape} à utiliser pour
    terminer le calcul.
    \end{SousDescription}
    \begin{tcolorbox}[tikzRemarque]
      Il faut {\em impérativement} que cette clé
      soit utilisée à l'intérieur d'un environnement mathématique type
      \lstinline!align*!. De plus, toutes les autres clés sont
      désactivées.
    \end{tcolorbox}
  \end{Key}
  \begin{Key}{Tableau}{false}
  affiche un tableau de multiplications associées au calcul demandé.\PfCMAJ{0.99-z-b}
\end{Key}
\begin{Key}{Lettre}{x}
  permet de modifier le \og nom\fg{} de la lettre utilisée dans un
  calcul littéral : $h$ pour une hauteur, $n$ pour un nombre\dots
\end{Key}
\begin{KeyD}{Fleches}{false}
  fait apparaître la (ou les) flèche(s) du développement.
  
  \begin{SousDescription}
  \item[La clé \Cle{CouleurFH}]\DefautR{blue}
    modifie la couleur des flèches hautes.
  \item[La clé \Cle{CouleurFB}]\DefautR{red}
    modifie la couleur des flèches basses.
  \end{SousDescription}
\end{KeyD}
\begin{Key}{AideMul}{false}
  fait apparaître le signe multiplicatif entre les deux facteurs.
  \begin{tcolorbox}[tikzRemarque]
  Cette aide n'est pas nécessaire quand le deuxième facteur est un
  nombre seul\dots
%\begin{Codes}[listing side text,colback=Crimson!15,colframe=Crimson!50,]{0.5}{\small}
%\[\Distri[]{-2}{4}{0}{2}\]
%\end{Codes}
\end{tcolorbox}
\end{Key}
%\begin{Key}{Reduction}{false}
%  souligne les termes à regrouper {\em uniquement} dans la double distributivité et à l'étape 3.
%    \begin{SousDescription}
%  \item[La clé \Cle{CouleurReduction}]\DefautR{black}
%    change la couleur {\em du soulignement}.
%  \end{SousDescription}
%\end{Key}
\begin{Key}{CouleurReduction}{-}
  souligne, avec la couleur choisie, les termes à regrouper {\em uniquement} dans la double distributivité et à l'étape 3.
\end{Key}
\begin{KEYSl}{\Cle{AideAdda} et \Cle{AideAddb}}{false}
  fait apparaître l'écriture du développement considéré sous la forme
  :
  \begin{itemize}
  \item[$\star$] $k(a+b)$ avec la clé \Cle{AideAdda} ou \Cle{AideAddb};
  \item[$\star$] $(a+b)(c+d)$ avec les clés \Cle{AideAdda} et \Cle{AideAddb}.
  \end{itemize}
    \begin{SousDescription}
  \item[La clé \Cle{CouleurAide}]\DefautR{red}
    modifie la couleur de l'aide apportée par les clés \Cle{AideAdda}
    et \Cle{AideAddb}.
  \end{SousDescription}
\end{KEYSl}
\begin{Key}{Cours}{false}
  affiche les formules du cours.
  \begin{SousDescription}
    \item[Les clés \Cle{AideMul}, \Cle{Fleches}, \Cle{AideAdda} et \Cle{AideAddb}] sont aussi disponibles.
  \end{SousDescription}
\end{Key}
\end{tcolorbox}
\begin{Codes}[listing side text]{0.4}{\small}
Développer l'expression $A=\Distri{2}{3}{4}{-1}$.
\begin{align*}
  A & = \Distri{2}{3}{4}{-1}\\
  A & = \Distri[Etape=2]{2}{3}{4}{-1}\\
  A & = \Distri[Etape=3]{2}{3}{4}{-1}\\
  A & = \Distri[Etape=4]{2}{3}{4}{-1}
\end{align*}
\end{Codes}
\begin{Codes}[listing side text]{0.4}{\small}
Développer l'expression $B=\Distri{-3}{0}{4}{2}$.
\begin{align*}
  B & = \Distri{-3}{0}{4}{2}\\
  B & = \Distri[Etape=2]{-3}{0}{4}{2}\\
  B & = \Distri[Etape=3]{-3}{0}{4}{2}\\
  B & = \Distri[Etape=4]{-3}{0}{4}{2}
\end{align*}
\end{Codes}
\begin{Exemple}[]{\small}
Développer l'expression
\[C=\Distri{1.5}{3}{4}{-0.5}\]
\begin{align*}
  C & = \Distri{1.5}{3}{4}{-0.5}\\
  C & = \Distri[Etape=2]{1.5}{3}{4}{-0.5}\\
  C & = \Distri[Etape=3]{1.5}{3}{4}{-0.5}\\
  C & = \Distri[Etape=4]{1.5}{3}{4}{-0.5}
\end{align*}

\begin{align*}
  \Distri[All]{2}{4}{3}{7}
\end{align*}

\begin{align*}
  \Distri[All,NomExpression=E]{3}{-5}{7}{1}
\end{align*}

\begin{align*}
  \Distri[All,Fin=3]{3}{1}{3}{0} 
\end{align*}
    \end{Exemple}
Néanmoins, il faut veiller à \og la bonne\fg{} écriture des calculs
obtenus grâce à la clé \Cle{All}.
\begin{multicols}{2}
  \begin{Codes}{}{}
\begin{align*}
  \Distri[All,NomExpression=Z,Fin=3]{0}{-1}{5}{-2}
\end{align*}
\end{Codes}
\begin{Codes}{}{}
\begin{align*}
  Z&=\Distri{0}{-1}{5}{-2}\\
  Z&=\Distri[Etape=2]{0}{-1}{5}{-2}\\
  Z&=\Distri[Etape=4]{0}{-1}{5}{-2}
\end{align*}
\end{Codes}
\end{multicols}
%On peut opter pour présenter les calculs sous la forme d'un tableau.

\begin{Codes}[listing side text]{0.5}{\small}
\Distri[Tableau]{2}{-7}{4}{-2}
\end{Codes}
  \begin{Codes}[listing side text]{0.5}{\small}
\Distri[Tableau]{0}{-7}{4}{-2}
\end{Codes}
  \begin{Codes}[listing side text]{0.5}{\small}
\Distri[Tableau]{2}{0}{4}{-2}
\end{Codes}
Il n'y a pas de clé prévue pour un développement direct {\em en ligne}. Deux raisons à cela :
  \begin{itemize}
  \item pédagogiquement, l'intérêt est très limité car cela engendre davantage d'erreurs de calculs;
  \item un \lstinline!\multido!\footnote{En utilisant le package {\color{DodgerBlue}\ttfamily multido}.} fait le travail.
  \end{itemize}
  \begin{Codes}{}{}
$A\multido{\i=1+1}{4}{=\Distri[Etape=\i]{2}{4}{7}{8}}$ 
\end{Codes}

\begin{Exemple}[]{}
\Distri[Lettre=n]{5}{-2}{-3}{7}

\Distri[Lettre=a]{1}{-1}{-1}{1}
\end{Exemple}
Des lettres moins {\em conventionnelles}\footnote{Ici, un élément du
  package {\color{DodgerBlue}\ttfamily fontawesome5}.} peuvent être utilisées mais il
faut être prudent pour les protéger du mode mathématique\footnote{La
  commande \lstinline!\\text\{\}! provient du recommandé package
  \lstinline!mathtools!. Il est chargé par le package \lstinline!ProfCollege!.} :
\begin{Codes}[listing side text]{0.275}{}
\Distri[Lettre=\text{\faRocket},Etape=3]{2}{3}{5}{6}
\end{Codes}
\begin{tcolorbox}[tikzRemarque]
  Les clés ne se transmettent pas !
  \begin{Codes}[listing side text,colback=Crimson!15,colframe=Crimson!50,]{0.355}{\small}
\small
\begin{align*}
  D & =\Distri[Lettre=\text{\faRocket}]{2}{3}{5}{6}\\
  D & =\Distri[Etape=2]{2}{3}{5}{6}
\end{align*}
\end{Codes}
\end{tcolorbox}

\begin{Code}
\[\Distri[Fleches]{2}{0}{3}{-7}\]
\end{Code}
\begin{Code}
\[\Distri[Fleches]{-2}{3}{4}{0}\]
\end{Code}
\begin{Code}
\[\Distri[Fleches]{-2}{3}{-4}{2}\]
\end{Code}
\begin{Code}
\[\Distri[Fleches,CouleurFH=purple,%
  CouleurFB=cyan]{-2}{3}{-4}{2}\]
\end{Code}

\begin{Code}
% Multiplication entre facteurs.
\[\Distri[AideMul]{-2}{3}{-4}{2}\]
  
\[\Distri[AideMul]{-2}{0}{-4}{2}\]
\end{Code}
%\clearpage
\begin{Codes}[listing side text]{0.25}{\small}
\[\Distri[Etape=3,CouleurReduction=blue]{-2}{3}{-4}{2}\]
\end{Codes}

\begin{multicols}{2}
\begin{Exemple}[]{}
\Distri[AideAddb]{2}{0}{4}{-1}

\Distri[AideAdda]{-3}{-5}{0}{2}
\end{Exemple}
\begin{Exemple}[]{}
\Distri[AideAdda]{-5}{-2}{3}{-1}

\Distri[AideAddb]{-5}{-2}{3}{-1}
\end{Exemple}
\end{multicols}
%\begin{Code}
%\Distri[AideAdda,AideAddb]{-5}{-2}{3}{-1}
%\end{Code}
  \begin{Codes}[listing side text]{0.235}{}
\Distri[AideAdda,AideAddb,CouleurAide=purple]{-5}{-2}{3}{-1}      
\end{Codes}
\begin{Codes}[listing side text]{0.4}{}
\Distri[Cours]{2}{3}{4}{5}
\end{Codes}

\begin{Codes}[listing side text]{0.55}{}
\Distri[Cours,Fleches,AideMul,
  AideAddb]{2}{3}{4}{-5}
\end{Codes}
\begin{Codes}[listing side text]{0.35}{\small}
% Noter le 0 comme premier argument.
\Distri[Cours,Fleches,AideMul,AideAddb]{0}{3}{4}{-5}

\vspace{1cm}

\Distri[Cours,Fleches,AideMul,AideAddb]{3}{0}{4}{-5}
\end{Codes}
%\clearpage
Un résumé des clés présentées est fourni par l'exemple ci-dessous.
\begin{Codes}[]{0.5}{\footnotesize}
\begin{align*}
  A&=\Distri{-5}{-2}{3}{-1}\\
  A&=\Distri[AideMul,AideAdda,AideAddb]{-5}{-2}{3}{-1}\\[5mm]
  A&=\Distri[Fleches,CouleurFH=orange,CouleurFB=black,AideMul,AideAdda,AideAddb]{-5}{-2}{3}{-1}\\[5mm]
  A&=\Distri[Etape=2]{-5}{-2}{3}{-1}\\
  A&=\Distri[Etape=3,CouleurReduction=purple]{-5}{-2}{3}{-1}\\
  A&=\Distri[Etape=4]{-5}{-2}{3}{-1}
\end{align*}
\end{Codes}
\clearpage
\subsection*{Les tuiles algébriques}
Pour introduire la distributivité, on peut utiliser des tuiles algébriques. On utilisera alors la clé suivante.
\begin{tcolorbox}[tikzcle]
  \index[cle]{Distributivite@\lstinline+\Distri+!Tuile|mygobble}
  \index[cle]{Distributivite@\lstinline+\Distri+!Tuile!Vide|mygobble}
  \index[cle]{Distributivite@\lstinline+\Distri+!Tuile!Vide!Reperes|mygobble}
  \index[cle]{Distributivite@\lstinline+\Distri+!Tuile!Impression|mygobble}
\begin{KeyS}{Tuile}{false}
  affiche le calcul de distributivité en utilisant des tuiles algébriques.
  \begin{SousDescription}
  \item[La clé \Cle{Vide}]\Defaut{false}
    n'affiche pas le calcul de distributivité mais uniquement les tuiles correspondantes au produit demandé.
    \begin{SSDescription}
    \item[La clé \Cle{Reperes}]\Defaut{false}
      affiche des repères de positionnement des tuiles.\PfCMAJ{0.99-z-f}
    \end{SSDescription}
  \item[La clé \Cle{Impression}]\Defaut{false}
    utilise des tuiles non colorées pour l'impression.
  \end{SousDescription}
\end{KeyS}
\end{tcolorbox}
\begin{multicols}{2}
  \begin{Codes}[]{0.4}{\small}
\Distri[Tuile,Vide]{2}{3}{1}{-2}
\end{Codes}
  \begin{Codes}[]{0.4}{\small}
\Distri[Tuile,Vide,Reperes]{2}{3}{1}{-2}
\end{Codes}
\end{multicols}
\begin{multicols}{2}
\begin{Codes}[]{0.4}{\small}
\Distri[Tuile]{2}{3}{1}{-2}
\end{Codes}
\begin{Codes}[]{0.4}{\small}
\Distri[Tuile]{-2}{3}{1}{-2}
\end{Codes}
\end{multicols}
\clearpage
\subsection*{Somme et différence de développements}
Qu'en est-il de la somme ou la différence de deux développements ? On
peut procéder comme sur l'exemple ci-dessous où le calcul final est à faire à la main\dots
{\setlength{\abovedisplayskip}{0pt}%
\begin{Codes}{}{}
\begin{align*}
  A&=\Distri[Etape=1]{4}{5}{6}{7}+\Distri[Etape=1]{2}{-3}{5}{-1}\\
  A&=\Distri[Etape=2]{4}{5}{6}{7}+\Distri[Etape=2]{2}{-3}{5}{-1}\\
  A&=\Distri[Etape=3]{4}{5}{6}{7}+\Distri[Etape=3]{2}{-3}{5}{-1}\\
  A&=\Distri[Etape=4]{4}{5}{6}{7}+\Distri[Etape=4]{2}{-3}{5}{-1}\\
  A&=34x^2+41x+38
\end{align*}
\end{Codes}
}

\bigskip

Ce serait un peu bête, non ? Pour l'automatiser, nous disposons de
trois clés et d'une {\em commande}.
\begin{tcolorbox}[tikzcle]
  \index[cle]{Distributivite@\lstinline+\Distri+!RAZ|mygobble}
  \index[cle]{Distributivite@\lstinline+\Distri+!Somme|mygobble}
  \index[cle]{Distributivite@\lstinline+\Distri+!Difference|mygobble}
  \index[cle]{Distributivite@\lstinline+\Distri+!Difference!Oppose|mygobble}
  \begin{Key}{RAZ}{false}
    réinitialise tous les calculs liés à une somme (ou à une différence)
    de développements.
  \end{Key}
  \begin{Commande}{\lstinline!\\Resultat!}{}{}
    affiche le résultat final en se basant sur les clés \Cle{Somme} et \Cle{Difference}.
  \end{Commande}
  \begin{Key}{Somme}{false}
    effectue la somme des divers coefficients d'un développement. Il
    faut positionner la clé {\em uniquement} à la dernière étape et sur
    tous les développements nécessitant une somme.
  \end{Key}
  \begin{Key}{Difference}{false}
    effectue la différence des divers coefficients d'un développement. Il
    faut positionner la clé {\em uniquement} à la dernière étape et sur
    tous les développements nécessitant une différence.
    \begin{SousDescription}
    \item[La clé \Cle{Oppose}]\DefautR{false}
      fait apparaître une ligne de calcul supplémentaire pour permettre
      l'utilisation de la propriété \og soustraire un nombre, c'est ajouter
      son opposé\fg.
    \end{SousDescription}
  \end{Key}
\end{tcolorbox}
{\setlength{\abovedisplayskip}{0pt}%
\begin{Codes}{}{}
\begin{align*}
  A&=\Distri[RAZ,Etape=1]{4}{5}{6}{7}+\Distri[Etape=1]{2}{-3}{5}{-1}\\
  A&=\Distri[Etape=2]{4}{5}{6}{7}+\Distri[Etape=2]{2}{-3}{5}{-1}\\
  A&=\Distri[Etape=3]{4}{5}{6}{7}+\Distri[Etape=3]{2}{-3}{5}{-1}\\
  A&=\Distri[Somme,Etape=4]{4}{5}{6}{7}+\Distri[Somme,Etape=4]{2}{-3}{5}{-1}\\
  A&=\Resultat
\end{align*}
\end{Codes}
}

{\setlength{\abovedisplayskip}{0pt}%
\begin{Codes}{}{}
\begin{align}
  A&=\Distri[RAZ,Etape=1]{4}{5}{6}{7}-\Distri[Etape=1]{2}{0}{5}{-1}\\
  A&=\Distri[Etape=2]{4}{5}{6}{7}-(\Distri[Etape=2]{2}{0}{5}{-1})\\
  A&=\Distri[Etape=3]{4}{5}{6}{7}-(\Distri[Etape=3]{2}{0}{5}{-1})\\
  A&=\Distri[Somme,Etape=4]{4}{5}{6}{7}-(\Distri[Difference,Etape=4]{2}{0}{5}{-1})\\
  A&=\Resultat
\end{align}
\end{Codes}
}
{\setlength{\abovedisplayskip}{0pt}%
  \setcounter{equation}{0}
\begin{Codes}{}{}
\begin{align}
  A&=\Distri[RAZ,Etape=1]{4}{5}{6}{7}-\Distri[Etape=1]{2}{0}{5}{-1}\\
  A&=\Distri[Etape=2]{4}{5}{6}{7}-(\Distri[Etape=2]{2}{0}{5}{-1})\\
  A&=\Distri[Etape=3]{4}{5}{6}{7}-(\Distri[Etape=3]{2}{0}{5}{-1})\\
  A&=\Distri[Etape=4]{4}{5}{6}{7}-(\Distri[Etape=4]{2}{0}{5}{-1})\\
  A&=\Distri[Somme,Etape=4]{4}{5}{6}{7}+\Distri[Oppose,Difference,Etape=4]{2}{0}{5}{-1}\nonumber\\
  A&=\Resultat
\end{align}
\end{Codes}
}
\clearpage
Basée sur une idée de Laurent {\sc Lassalle Carrere}, on peut proposer
la commande suivante :
\begin{Codes}[listing only]{}{}
\newcommand\DoubleFlecheDifference[9][]{%
  % #1 : option
  % #2 à #9 : les valeurs intervenant dans les deux distributivités.
\setKV[ClesDistributivite]{#1}%
\begin{align*}
  \useKV[ClesDistributivite]{NomExpression}&=\Distri[#1,RAZ,Etape=1]{#2}{#3}{#4}{#5}-\Distri[#1,Etape=1]{#6}{#7}{#8}{#9}\\
  \useKV[ClesDistributivite]{NomExpression}&=\Distri[Etape=2]{#2}{#3}{#4}{#5}-(\Distri[Etape=2]{#6}{#7}{#8}{#9})\\
  \useKV[ClesDistributivite]{NomExpression}&=\Distri[Etape=3]{#2}{#3}{#4}{#5}-(\Distri[Etape=3]{#6}{#7}{#8}{#9})\\
  \useKV[ClesDistributivite]{NomExpression}&=\ifboolKV[ClesDistributivite]{Oppose}{\Distri[Etape=4]{#2}{#3}{#4}{#5}-(\Distri[Etape=4]{#6}{#7}{#8}{#9})\\}{\Distri[Somme,Etape=4]{#2}{#3}{#4}{#5}-(\Distri[Difference,Etape=4]{#6}{#7}{#8}{#9})\\}%
  \ifboolKV[ClesDistributivite]{Oppose}{\useKV[ClesDistributivite]{NomExpression}&=\Distri[RAZ,Somme,Etape=4]{#2}{#3}{#4}{#5}+\Distri[Oppose,Difference,Etape=4]{#6}{#7}{#8}{#9}\\}{}
  \useKV[ClesDistributivite]{NomExpression}&=\Resultat
\end{align*}
}
\end{Codes}
\begin{Codes}{}{}
\DoubleFlecheDifference[AideAdda,AideAddb]{4}{5}{6}{7}{2}{-3}{5}{-1}

\DoubleFlecheDifference[Oppose]{4}{5}{6}{7}{2}{-3}{5}{-1}
\end{Codes}
\clearpage
\subsection*{Cas des égalités remarquables}
\begin{tcolorbox}[tikzcle]
  \index[cle]{Distributivite@\lstinline+\Distri+!Remarquable|mygobble}
\begin{Key}{Remarquable}{false}
  développe les expressions en utilisant les égalités remarquables.
  \begin{SousDescription}
    \item[La clé \Cle{Numerique}] est également disponible.
  \end{SousDescription}
\end{Key}
\end{tcolorbox}
\begin{Code}
\Distri[Remarquable]{2}{3}{}{}
\end{Code}
\begin{Code}
\Distri[Remarquable]{2}{-3}{}{}
\end{Code}
\begin{Code}
\Distri[Remarquable]{2}{3}{2}{-3}
\end{Code}
\begin{Codes}{}{}
\begin{align*}
  D&=\Distri[Remarquable]{2}{3}{}{}&E&=\Distri[Remarquable]{1}{-4}{}{}&F&=\Distri[Lettre=t,Remarquable]{3}{2}{3}{-2}\\
  D&=\Distri[Remarquable,Etape=2]{2}{3}{}{}&E&=\Distri[Remarquable,Etape=2]{1}{-4}{}{}&F&=\Distri[Lettre=t,Remarquable,Etape=2]{3}{2}{3}{-2}\\
  D&=\Distri[Remarquable,Etape=3]{2}{3}{}{}&E&=\Distri[Remarquable,Etape=3]{1}{-4}{}{}&F&=\Distri[Lettre=t,Remarquable,Etape=3]{3}{2}{3}{-2}    
\end{align*}
\end{Codes}
\begin{Codes}{}{}
\begin{align*}
  D&=\Distri[RAZ,Remarquable]{2}{3}{}{}-\Distri[Remarquable]{4}{-5}{}{}\\
  D&=\Distri[Remarquable,Etape=2]{2}{3}{}{}-(\Distri[Remarquable,Etape=2]{4}{-5}{}{})\\
  D&=\Distri[Remarquable,Etape=3]{2}{3}{}{}-(\Distri[Remarquable,Etape=3]{4}{-5}{}{})\\
  D&=\Distri[Remarquable,Somme,Etape=3]{2}{3}{}{}+\Distri[Difference,Oppose,Remarquable,Etape=3]{4}{-5}{}{}\\
  D&=\Resultat
\end{align*}
\end{Codes}
\begin{Codes}[listing side text]{0.5}{\footnotesize}
\Distri[Remarquable,Numerique]{30}{1}{}{}

\Distri[Remarquable,Numerique]{30}{-1}{}{}

\Distri[Remarquable,Numerique]{30}{1}{30}{-1}
\end{Codes}
\clearpage
\subsection*{Cas des écritures de la forme $(a+bx)(c+dx)$}
Parfois, il
faut développer des expressions telles que $(2+3x)(4-2x)$. On peut
alors écrire :
\begin{Codes}[listing side text]{0.5}{}
\begin{align*}
  C&=(2+3x)(4-2x)\\
  C&=\Distri{3}{2}{-2}{4}\\
  C&=\Distri[Etape=2]{3}{2}{-2}{4}\\
  C&=\Distri[Etape=3]{3}{2}{-2}{4}\\
  C&=\Distri[Etape=4]{3}{2}{-2}{4}\\
\end{align*}
\end{Codes}
Le calcul littéral étant déjà assez compliqué comme cela, la \og
transformation\fg{} des deux premières lignes est délicate pour
beaucoup d'élèves. Il vaut mieux développer
directement\footnote{Depuis la version 0.85}\dots
\begin{tcolorbox}[tikzcle]
  \index[cle]{Distributivite@\lstinline+\Distri+!Echange|mygobble}
\begin{Key}{Echange}{0}
  permet de faire les développements directement pour des expressions
  du type $(a+bx)(c+dx)$.
  Elle prend :
  \begin{itemize}
  \item la valeur 1 si le premier facteur est du type $a+bx$;
  \item la valeur 2 si le deuxième facteur est du type $a+bx$;
  \item la valeur 3 si les deux facteurs sont du type $a+bx$.
  \end{itemize}
\end{Key}
\end{tcolorbox}
\begin{Code}
% Seul le premier facteur est du type a+bx.
\begin{align*}
  A&=\Distri[Echange=1]{2}{3}{4}{5}\\
  A&=\Distri[Etape=2,Echange=1]{2}{3}{4}{5}\\
  A&=\Distri[Etape=3,Echange=1]{2}{3}{4}{5}\\
  A&=\Distri[Etape=4,Echange=1]{2}{3}{4}{5}
\end{align*}
\end{Code}
\begin{Code}
% Seul le deuxième facteur est du type a+bx.
\begin{align*}
  B&=\Distri[Echange=2]{2}{3}{4}{5}\\
  B&=\Distri[Etape=2,Echange=2]{2}{3}{4}{5}\\
  B&=\Distri[Etape=3,Echange=2]{2}{3}{4}{5}\\
  B&=\Distri[Etape=4,Echange=2]{2}{3}{4}{5}
\end{align*}
\end{Code}
\begin{Code}
% Les deux facteurs sont du type a+bx.
\begin{align*}
  C&=\Distri[Echange=3]{2}{3}{4}{5}\\
  C&=\Distri[Etape=2,Echange=3]{2}{3}{4}{5}\\
  C&=\Distri[Etape=3,Echange=3]{2}{3}{4}{5}\\
  C&=\Distri[Etape=4,Echange=3]{2}{3}{4}{5}
\end{align*}
\end{Code}
\begin{Codes}{}{}
\begin{align*}
  A&=\Distri[RAZ,Echange=3,Etape=1]{2}{3}{4}{2}-\Distri[Echange=3,Etape=1]{1}{2}{-4}{1}\\
  A&=\Distri[Echange=3,Etape=2]{2}{3}{4}{2}-(\Distri[Echange=3,Etape=2]{1}{2}{-4}{1})\\
  A&=\Distri[Echange=3,Etape=3]{2}{3}{4}{2}-(\Distri[Echange=3,Etape=3]{1}{2}{-4}{1})\\
  A&=\Distri[Echange=3,Etape=4]{2}{3}{4}{2}-(\Distri[Echange=3,Etape=4]{1}{2}{-4}{1})\\
  A&=\Distri[Echange=3,Etape=4,Somme]{2}{3}{4}{2}+\Distri[Oppose,Echange=3,Etape=4,Difference]{1}{2}{-4}{1}\\
  A&=\Resultat
\end{align*}
\end{Codes}