\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}
  \index[cle]{Calculatrice@\lstinline+\Calculatrice+!Ecran!Impression|mygobble}
  \index[cle]{Calculatrice@\lstinline+\Calculatrice+!Ecran!Math|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.
  \item[La clé \Cle{Impression}]\DefautR{false}\PfCMAJ{0.99-A-a}
    utilise le gris comme couleur de fond de l'écran.\\%\vspace*{0.1em}
  \item[La clé \Cle{Math}]\DefautR{true}\PfCMAJ{0.99-A-a}
    permet de dissocier l'affichage de certaines touches.
  \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\footnote{Le dessin de cette potence peut aussi se faire automatiquement comme l'indique les pages suivantes.} 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}
\clearpage
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran,NbLignes=2]{"2e5"/"200000"}
\end{Codes}
La clé \Cle{Ecran} nécessite un {\em
  vocabulaire} précis au niveau des commandes pour avoir un affichage
correct. Voici les symboles identiques quelle que soit la position de la clé \Cle{Math}.
\begin{Codes}[]{0.4}{}
% Pour ces lettres : la clé Math n'a pas d'impact
\Calculatrice[Ecran,Largeur=240]{%
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"/%
"abcdfghimnoprstuwxyz"}

\Calculatrice[Ecran,Largeur=240,Math=false]{%
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"/%
"abcdfghimnoprstuwxyz"}
\end{Codes}
\begin{Codes}[]{0.4}{}
% Pour les chiffres et ces symboles : la clé Math n'a pas d'impact
\Calculatrice[Ecran,Largeur=240]{%
"1234567890"/%
"!'()+-*.<=>?[]`|"}

\Calculatrice[Ecran,Largeur=240,Math=false]{%
"1234567890"/%
"!'()+-*.<=>?[]`|"}
\end{Codes}
Voici la liste des caractères particuliers ou ayant une signification différente selon que la clé \Cle{Math} soit active (elle l'est par défaut) ou pas.
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"2e5"/"200000"}

\Calculatrice[Ecran,Math=false]{"2e5"/"?"}
\end{Codes}
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"2 5"/"10"}

\Calculatrice[Ecran,Math=false]{"2 5"/"10"}
\end{Codes}
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"2j 5"/"2.5"}

\Calculatrice[Ecran,Math=false]{"2j 5"/"?"}
\end{Codes}
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"2k 5"/"20"}

\Calculatrice[Ecran,Math=false]{"2k 5"/"?"}
\end{Codes}
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"2l 5"/"40"}

\Calculatrice[Ecran,Math=false]{"2l 5"/"?"}
\end{Codes}
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"2$5"/"0.4"}%$

\Calculatrice[Ecran,Math=false]{"2$5"/"0.4"}%$
\end{Codes}
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"2^5"/"32"}

\Calculatrice[Ecran,Math=false]{"2^5"/"32"}
\end{Codes}
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"444"/"2k 5 37"}

\Calculatrice[Ecran,Math=false]{"444"/"2k 5 37"}
\end{Codes}
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"v(16)"/"4"}

\Calculatrice[Ecran,Math=false]{"v(16)"/"?"}
\end{Codes}
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"v(-16)"/"ERREUR:Maths"}

\Calculatrice[Ecran,Math=false]{"v(-16)"/"ERREUR:Maths"}
\end{Codes}
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"10$6&Simp"/"5$3"}

\Calculatrice[Ecran,Math=false]{"10$6&Simp"/"5$3"}
\end{Codes}
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"16;5"/"3.2"}

\Calculatrice[Ecran,Math=false]{"16;5"/"?"}
\end{Codes}
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"q"/"3.141592654"}

\Calculatrice[Ecran,Math=false]{"q"/"?"}
\end{Codes}
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"R@p"/"3.141592654"}

\Calculatrice[Ecran,Math=false]{"R@p"/"3.141592654"}
\end{Codes}
\begin{Codes}[listing side text]{0.375}{}
\Calculatrice[Ecran]{"25~4"/"Q=6:R=1"}

\Calculatrice[Ecran,Math=false]{"25~4"/"Q=6:R=1"}
\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}