\clearpage
\section{Calculatrice}\label{DocCalculatrice}
\index{Calculatrice}\index[cle]{Calculatrice@\lstinline+\Calculatrice+}
La commande\footnote{D'après
  \url{https://tex.stackexchange.com/questions/290321/mimicking-a-calculator-inputs-and-screen}.}
\lstinline!\Calculatrice! affiche une suite de touches ou
un écran de calculatrice. Elle a la forme suivante :

\begin{lstlisting}[escapechar=!,aboveskip=1em,belowskip=0.5em]
  \Calculatrice[!\sffamily\textlangle
  clé\textrangle!]{!\sffamily\textlangle Liste \textrangle!}
\end{lstlisting}
où
\begin{itemize}
\item\textlangle\lstinline!clé!\textrangle{} est un paramètre optionnel;
\item\textlangle{\ttfamily Liste}\textrangle{} est une suite de commandes
  de la forme :
  \begin{itemize}
  \item \lstinline!"!Calcul à afficher\lstinline!"/"!Réponse à
    afficher\lstinline!"! dans le cas d'un affichage d'écran;
  \item \lstinline!"!Calcul à afficher\lstinline!"§!Calcul à effectuer dans le cas d'un affichage d'écran avec la réponse à calculer;
\item \lstinline!/b/c! pour une touche de \og fonction\fg{} et \lstinline!b/c!
  pour une touche de \og nombre\fg{}.
  \end{itemize}
\end{itemize}
\begin{Codes}[listing side text]{0.35}{}
\Calculatrice{/Acos/$\cos$,/(,/4,/5,/)}
\end{Codes}
\begin{tcolorbox}[tikzcle]
  \index[cle]{Calculatrice@\lstinline+\Calculatrice+!Ecran|mygobble}
  \index[cle]{Calculatrice@\lstinline+\Calculatrice+!Ecran!NbLignes|mygobble}
  \index[cle]{Calculatrice@\lstinline+\Calculatrice+!Ecran!Largeur|mygobble}
  \index[cle]{Calculatrice@\lstinline+\Calculatrice+!Ecran!Calcul|mygobble}
\begin{KeyS}{Ecran}{false}
  affiche un écran de calculatrice contenant des informations.
  \begin{SousDescription}
  \item[La clé \Cle{NbLignes}]\DefautR{0}
    modifie le nombre de lignes vides entre le calcul et la réponse.
  \item[La clé \Cle{Largeur}]\DefautR{120}\PfCMAJ{0.99-z-e}
    modifie la largeur de l'écran. Elle est donnée en demi-millimètre.
      \item[La clé \Cle{Calcul}]\DefautR{false}\PfCMAJ{0.99-z-p}
        indique que le calcul demandé est à évaluer par \MP.
  \end{SousDescription}
\end{KeyS}
\end{tcolorbox}
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"cos(45)"/"0.7071067812"}
\end{Codes}
\begin{Codes}[]{0.35}{}
\Calculatrice[Ecran,Largeur=180]{"250 0.95 9 (2 0.7+0.565)"/"4200.1875"}
\end{Codes}
Le contenu des touches peut être adapté aux besoins. Par exemple, voici un code permettant d'afficher une potence de division euclidienne.
\begin{Codes}[listing side text]{0.15}{}
% à compiler avec LuaLaTeX.
\setbox1=\hbox{\footnotesize\sffamily6}

\Calculatrice{/1,/6,/
  {\begin{mplibcode}
      drawoptions(withcolor white);
      draw (0,0)--(0,1*\mpdim{\ht1});
      draw (0,0.7*\mpdim{\ht1})--(0.5*\mpdim{\wd1},0.7*\mpdim{\ht1});
    \end{mplibcode}
  },/5}
\end{Codes}
La clé \Cle{Ecran} nécessite un {\em
  vocabulaire} précis au niveau des commandes pour avoir un affichage
correct :
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"2e5"/"200000"}
\end{Codes}
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran,NbLignes=2]{"2e5"/"200000"}
\end{Codes}
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"2 5"/"10"}
\end{Codes}
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"2j 5"/"2.5"}
\end{Codes}
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"2k 5"/"20"}
\end{Codes}
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"2l 5"/"40"}
\end{Codes}
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"2$5"/"0.4"}%$
\end{Codes}
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"2^5"/"32"}
\end{Codes}
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"444"/"2k 5 37"}
\end{Codes}
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"v(16)"/"4"}
\end{Codes}
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"v(-16)"/"ERREUR:Maths"}
\end{Codes}
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"10$6&Simp"/"5$3"}
\end{Codes}
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"16;5"/"3.2"}
\end{Codes}
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"q"/"3.141592654"}
\end{Codes}
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"R@p"/"3.141592654"}
\end{Codes}
\begin{Codes}[]{0.375}{}
\Calculatrice[Ecran,Largeur=180,Calcul]{"7 v(78)"§7*sqrt(78)}
\end{Codes}
\begin{Codes}[]{0.375}{}
\Calculatrice[Ecran,Largeur=180,Calcul]{"7;v(78)"§7/sqrt(78)}
\end{Codes}
\begin{tcolorbox}[tikzRemarque]
  C'est \MP{} qui effectue les calculs : il connaît les opérations de base (\lstinline!+ - * /!), les puissances (\lstinline!**!), la racine carrée (\lstinline!sqrt!). Pour les lignes trigonométriques, il utilise \lstinline!cosd sind tand arccosd arcsind arctand! en degré. Certaines de ces opérations ont été implantées par le package \lstinline!ProfCollege!.
\end{tcolorbox}
\begin{Codes}[]{0.375}{}
\Calculatrice[Ecran,Largeur=180,Calcul]{"v(7^2+8^2)"§sqrt(7**2+8**2)}
\end{Codes}