texlive[58973] Master/texmf-dist: profcollege (23apr21)
commits+karl at tug.org
commits+karl at tug.org
Fri Apr 23 22:37:20 CEST 2021
Revision: 58973
http://tug.org/svn/texlive?view=revision&revision=58973
Author: karl
Date: 2021-04-23 22:37:20 +0200 (Fri, 23 Apr 2021)
Log Message:
-----------
profcollege (23apr21)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/profcollege/ProfCollege-doc.pdf
trunk/Master/texmf-dist/doc/latex/profcollege/ProfCollege-doc.zip
trunk/Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty
Added Paths:
-----------
trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationComposition2.tex
trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationLaurent1.tex
trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationPose1.tex
trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationSoustraction2.tex
trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationSymbole1.tex
trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationTerme1.tex
trunk/Master/texmf-dist/metapost/profcollege/PfCAfficheur.mp
trunk/Master/texmf-dist/metapost/profcollege/PfCCalculatrice.mp
trunk/Master/texmf-dist/metapost/profcollege/PfCConstantes.mp
trunk/Master/texmf-dist/metapost/profcollege/PfCGeometrie.mp
trunk/Master/texmf-dist/metapost/profcollege/PfCLaTeX.mp
trunk/Master/texmf-dist/metapost/profcollege/PfCScratch.mp
trunk/Master/texmf-dist/metapost/profcollege/PfCScratchpdf.mp
trunk/Master/texmf-dist/metapost/profcollege/PfCSvgnames.mp
Removed Paths:
-------------
trunk/Master/texmf-dist/metapost/profcollege/PfC-Afficheur.mp
trunk/Master/texmf-dist/metapost/profcollege/PfC-Calculatrice.mp
trunk/Master/texmf-dist/metapost/profcollege/PfC-Calculatriceold.mp
trunk/Master/texmf-dist/metapost/profcollege/PfC-Constantes.mp
trunk/Master/texmf-dist/metapost/profcollege/PfC-Geometrie.mp
trunk/Master/texmf-dist/metapost/profcollege/PfC-LaTeX.mp
trunk/Master/texmf-dist/metapost/profcollege/PfC-Scratch-pdf.mp
trunk/Master/texmf-dist/metapost/profcollege/PfC-Scratch.mp
trunk/Master/texmf-dist/metapost/profcollege/PfC-Svgnames.mp
trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationComposition2.tex
trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationLaurent1.tex
trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationPose1.tex
trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationSoustraction2.tex
trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationSymbole1.tex
trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationTerme1.tex
Added: trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationComposition2.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationComposition2.tex (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationComposition2.tex 2021-04-23 20:37:20 UTC (rev 58973)
@@ -0,0 +1,275 @@
+% Licence : Released under the LaTeX Project Public License v1.3c
+% or later, see http://www.latex-project.org/lppl.txtf
+\newcommand{\EquaDeuxComposition}[5][]{%type ax+b=d ou b=cx+d$
+ \useKVdefault[ClesEquation]%
+ \setKV[ClesEquation]{#1}%
+ \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide
+ \EquaDeuxComposition[#1]{#4}{#5}{#2}{#3}
+ \else%cas ax+b=d
+ \xintifboolexpr{#2=0}{%
+ \xintifboolexpr{#3=#5}{%b=d
+ L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
+ {%b<>d
+ L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
+ }%
+ }{%ELSE
+ \xintifboolexpr{#3=0}{%ax+b=d
+ \EquaBase[#1]{#2}{}{}{#5}%
+ }{%ax+b=d$ Ici
+ \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Ccompo}{\useKV[ClesEquation]{CouleurCompo}}}{}
+ \begin{align*}
+ \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{#5}}\tikzmark{E-\theNbequa}\\
+ \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{#5-#3}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}\\
+ \tikzmark{C-\theNbequa}\xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
+ \xintifboolexpr{\Coeffa=1}{}{\\}
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{A-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+ \rightcomment{E-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+ }{}
+ \xintifboolexpr{\Coeffa=1}{%
+ }{%\ifnum\cmtd>1
+ \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{%ICI ?
+ \ifboolKV[ClesEquation]{FlecheDiv}{%
+ \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{}
+ }
+ }
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+ }{}
+ }{}
+ \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+ \end{align*}
+ \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.
+ }{}
+ }
+ }
+ \fi
+}
+
+\newcommand{\EquaTroisComposition}[5][]{%ax+b=cx ou ax=cx+d
+ \useKVdefault[ClesEquation]%
+ \setKV[ClesEquation]{#1}%
+ \ifx\bla#3\bla%on inverse en faisant attention à la boucle #3<->#5
+ \ifx\bla#5\bla%
+ %% paramètre oublié
+ \else
+ \EquaTroisComposition[#1]{#4}{#5}{#2}{}%
+ \fi
+ \else
+ \xintifboolexpr{#2=0}{%b=cx
+ \EquaBase[#1]{#4}{}{}{#3}
+ }{%
+ \xintifboolexpr{#4=0}{%ax+b=0
+ \EquaDeuxComposition[#1]{#2}{#3}{}{0}
+ }{%ax+b=cx
+ \xintifboolexpr{#2=#4}{%
+ \xintifboolexpr{#3=0}{%ax=ax
+ L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solutions.}%
+ {%ax+b=ax
+ L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.%
+ }%
+ }{%% Cas délicat
+ \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c
+ \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Ccompo}{\useKV[ClesEquation]{CouleurCompo}}}{}
+ \begin{align*}
+ \tikzmark{A-\theNbequa}\mathcolor{Ccompo}{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\
+ \mathcolor{Ccompo}{\num{\fpeval{#2-#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{+\num{#4}\useKV[ClesEquation]{Lettre}}{-\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\\
+ \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{0}\tikzmark{F-\theNbequa}\\
+ \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{0-#3}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}\tikzmark{F-\theNbequa}\\
+ \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
+ \xintifboolexpr{\Coeffa=1}{}{\\}
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
+ \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
+ \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+ \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+ }{}
+ \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+ \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{
+ \ifboolKV[ClesEquation]{FlecheDiv}{%
+ \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{}
+ }
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+ }{}
+ }{}
+ }
+ \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+ \end{align*}
+ \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}
+ }{%ax+b=cx+d avec a<c % Autre cas délicat
+ \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Ccompo}{\useKV[ClesEquation]{CouleurCompo}}}{}
+ \begin{align*}%
+ \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\tikzmark{E-\theNbequa}\\
+ \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{#4-#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#2>0}{+\num{#2}\useKV[ClesEquation]{Lettre}}{-\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\\
+ \tikzmark{B-\theNbequa}\xdef\Coeffb{#3}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{F-\theNbequa}
+ \xintifboolexpr{\Coeffa=1}{}{\\}
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
+ \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
+ }{}
+ \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+ \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{B-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{
+ \ifboolKV[ClesEquation]{FlecheDiv}{%
+ \leftcomment{B-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{}
+ }
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
+ }{}
+ }{}
+ }
+ \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+ \end{align*}
+ \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}%
+ }%
+ }%
+ }%
+ }%
+ \fi
+}%
+
+
+\newcommand{\ResolEquationComposition}[5][]{%
+ \useKVdefault[ClesEquation]%
+ \setKV[ClesEquation]{#1}%
+ \xintifboolexpr{#2=0}{%
+ \xintifboolexpr{#4=0}{%
+ \xintifboolexpr{#3=#5}{%b=d
+ L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
+ {%b<>d
+ L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
+ }%
+ }%
+ {%0x+b=cx+d$
+ \EquaDeuxComposition[#1]{#4}{#5}{#2}{#3}%
+ }%
+ }{%
+ \xintifboolexpr{#4=0}{%ax+b=0x+d
+ \EquaDeuxComposition[#1]{#2}{#3}{}{#5}%
+ }
+ {%ax+b=cx+d$
+ \xintifboolexpr{#3=0}{%
+ \xintifboolexpr{#5=0}{%ax=cx
+ \EquaTroisComposition[#1]{#2}{0}{#4}{}%
+ }%
+ {%ax=cx+d
+ \EquaTroisComposition[#1]{#4}{#5}{#2}{}%
+ }%
+ }%
+ {\xintifboolexpr{#5=0}{%ax+b=cx
+ \EquaTroisComposition[#1]{#2}{#3}{#4}{}%
+ }%
+ {%ax+b=cx+d -- ici
+ \xintifboolexpr{#2=#4}{%
+ \xintifboolexpr{#3=#5}{%b=d
+ L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solutions.}%
+ {%b<>d
+ L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.%
+ }%
+ }{
+ %% Cas délicat
+ \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c
+ \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Ccompo}{\useKV[ClesEquation]{CouleurCompo}}}{}
+ \begin{align*}
+ \tikzmark{A-\theNbequa}\mathcolor{Ccompo}{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\
+ \mathcolor{Ccompo}{\num{\fpeval{#2-#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{+\num{#4}\useKV[ClesEquation]{Lettre}}{-\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+ \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{#5}}\tikzmark{F-\theNbequa}\\
+ \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{#5-#3}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}\\
+ \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
+ \xintifboolexpr{\Coeffa=1}{}{\\}
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
+ \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
+ \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+ \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+ }{}
+ \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+ \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{
+ \ifboolKV[ClesEquation]{FlecheDiv}{%
+ \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{}
+ }
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+ }{}
+ }{}
+ }
+ \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+ \end{align*}
+ \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
+ }{}
+ }{%ax+b=cx+d avec a<c % Autre cas délicat
+ \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Ccompo}{\useKV[ClesEquation]{CouleurCompo}}}{}%
+ \begin{align*}%
+ \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\
+ \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{#4-#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#2>0}{+\num{#2}\useKV[ClesEquation]{Lettre}}{-\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+ \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{F-\theNbequa}\\
+ \mathcolor{Ccompo}{\num{\fpeval{#3-#5}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+ \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#3-#5}}\num{\Coeffb}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{G-\theNbequa}%\\
+ \xintifboolexpr{\Coeffa=1}{}{\\}
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
+ \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
+ \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}%
+ \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}%
+ }{}
+ \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+ \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{
+ \ifboolKV[ClesEquation]{FlecheDiv}{%
+ \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{}
+ }
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
+ }{}
+ }{}
+ }
+ \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+ \end{align*}
+ \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
+ }{}%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+}%
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationComposition2.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationLaurent1.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationLaurent1.tex (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationLaurent1.tex 2021-04-23 20:37:20 UTC (rev 58973)
@@ -0,0 +1,226 @@
+% Licence : Released under the LaTeX Project Public License v1.3c
+% or later, see http://www.latex-project.org/lppl.txtf
+\newcommand{\EquaBaseLaurent}[5][]{%type ax=d ou b=cx
+ \useKVdefault[ClesEquation]%
+ \setKV[ClesEquation]{#1}%
+ \ifx\bla#2\bla%on teste si le paramètre #2 est vide:
+ % si oui, on est dans le cas b=cx. Eh bien on échange :)
+ % Mais attention si les deux paramètres a et c sont vides...
+ \EquaBase[#1]{#4}{}{}{#3}
+ \else
+ % si non, on est dans le cas ax=d
+ \xintifboolexpr{#2=0}{%
+ \xintifboolexpr{#5=0}{%
+ L'équation $0\useKV[ClesEquation]{ELettre}=0$ a une infinité de solutions.}{L'équation $0\useKV[ClesEquation]{Lettre}=\num{#5}$ n'a aucune solution.}%
+ }{%\else
+ \xintifboolexpr{#5=0}{L'équation $\num{#2}\useKV[ClesEquation]{Lettre}=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.}{%\else
+ \begin{align*}%
+ \xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{#2}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{#2}}}}&=\xintifboolexpr{#2=1}{\num{#5}}{\color{Cdecomp}\frac{\color{black}\num{#5}}{\num{#2}}}
+ \xintifboolexpr{#2=1}{}{\\\useKV[ClesEquation]{Lettre}&=\frac{\num{#5}}{\num{#2}}}%\\
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{#5}{#2}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{#5}{#2}}{}%\\
+ }{}
+ }{}
+ \end{align*}
+ \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}=\num{#5}}{\num{#2}\useKV[ClesEquation]{Lettre}=\num{#5}}$ a une unique solution : $\displaystyle\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\opdiv*{#5}{#2}{numequa}{resteequa}\opcmp{resteequa}{0}\ifopeq\opexport{numequa}{\numequa}\num{\numequa}\else\ifboolKV[ClesEquation]{Simplification}{\SSimplifie{#5}{#2}}{\frac{\num{#5}}{\num{#2}}}\fi$.%
+ }{}
+ }
+ }
+ \fi
+}
+
+\newcommand{\EquaDeuxLaurent}[5][]{%type ax+b=d ou b=cx+d$
+ \useKVdefault[ClesEquation]%
+ \setKV[ClesEquation]{#1}%
+ \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide
+ \EquaDeuxLaurent[#1]{#4}{#5}{#2}{#3}
+ \else%cas ax+b=d
+ \xintifboolexpr{#2=0}{%
+ \xintifboolexpr{#3=#5}{%b=d
+ L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
+ {%b<>d
+ L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
+ }%
+ }{%ELSE
+ \xintifboolexpr{#3=0}{%ax+b=d
+ \EquaBaseLaurent[#1]{#2}{}{}{#5}%
+ }{%ax+b=d$ Ici
+ \begin{align*}
+ \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{-\num{\fpeval{0-#3}}\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}&=\num{#5}\xintifboolexpr{#3>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}\\
+ \xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}%\\
+ \xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa=1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\
+ \xintifboolexpr{\Coeffa=1}{}{\\}
+ \xintifboolexpr{\Coeffa=1}{%
+ }{%\ifnum\cmtd>1
+ \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+ }{}
+ }{}
+ }
+ \end{align*}
+ \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.
+ }{}
+ }
+ }
+}
+
+\newcommand{\EquaTroisLaurent}[5][]{%ax+b=cx ou ax=cx+d
+ \useKVdefault[ClesEquation]%
+ \setKV[ClesEquation]{#1}%
+ \ifx\bla#3\bla%on inverse en faisant attention à la boucle #3<->#5
+ \ifx\bla#5\bla%
+ %% paramètre oublié
+ \else
+ \EquaTroisLaurent[#1]{#4}{#5}{#2}{}%
+ \fi
+ \else
+ \xintifboolexpr{#2=0}{%b=cx
+ \EquaBaseLaurent[#1]{#4}{}{}{#3}
+ }{%
+ \xintifboolexpr{#4=0}{%ax+b=0
+ \EquaDeuxLaurent[#1]{#2}{#3}{}{0}
+ }{%ax+b=cx
+ \xintifboolexpr{#2=#4}{%
+ \xintifboolexpr{#3=0}{%ax=ax
+ L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solutions.}%
+ {%ax+b=ax
+ L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.%
+ }%
+ }{%% Cas délicat
+ \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c
+ \begin{align*}
+ \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{-\num{\fpeval{0-#3}}\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}\\
+ \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}\\
+ \xdef\Coeffa{\fpeval{#2-#4}}\xdef\Coeffb{\fpeval{0-#3}}%\\
+ \xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa=1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\
+ \xintifboolexpr{\Coeffa=1}{}{\\}
+ \xintifboolexpr{\Coeffa=1}{%
+ }{%\ifnum\cmtd>1
+ \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+ }{}
+ }{}
+ }
+ \end{align*}
+ \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}
+ }{%ax+b=cx avec a<c % Autre cas délicat
+ \begin{align*}%
+ \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\\
+ \xdef\Coeffa{\fpeval{#2-#4}}\xdef\Coeffb{\fpeval{0-#3}}%\\
+ \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{-\num{\fpeval{0-#3}}\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}&=0\xintifboolexpr{#3>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}\\
+ \xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa=1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\
+ \xintifboolexpr{\Coeffa=1}{}{\\}
+ \xintifboolexpr{\Coeffa=1}{%
+ }{%\ifnum\cmtd>1
+ \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+ }{}
+ }{}
+ }
+ \end{align*}
+ \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}%
+ }%
+ }%
+ }%
+ }%
+ \fi
+}%
+
+\newcommand{\ResolEquationLaurent}[5][]{%
+ \useKVdefault[ClesEquation]%
+ \setKV[ClesEquation]{#1}%
+ \xintifboolexpr{#2=0}{%
+ \xintifboolexpr{#4=0}{%
+ \xintifboolexpr{#3=#5}{%b=d
+ L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
+ {%b<>d
+ L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
+ }%
+ }%
+ {%0x+b=cx+d
+ \EquaDeuxLaurent[#1]{#4}{#5}{}{#3}%
+ }%
+ }{%
+ \xintifboolexpr{#4=0}{%ax+b=0x+d
+ \EquaDeuxLaurent[#1]{#2}{#3}{}{#5}%
+ }
+ {%ax+b=cx+d
+ \xintifboolexpr{#3=0}{%
+ \xintifboolexpr{#5=0}{%ax=cx
+ \EquaTroisLaurent[#1]{#2}{0}{#4}{}%
+ }%
+ {%ax=cx+d
+ \EquaTroisLaurent[#1]{#4}{#5}{#2}{}%
+ }%
+ }%
+ {\xintifboolexpr{#5=0}{%ax+b=cx
+ \EquaTroisLaurent[#1]{#2}{#3}{#4}{}%
+ }%
+ {%ax+b=cx+d -- ici
+ \xintifboolexpr{#2=#4}{%
+ \xintifboolexpr{#3=#5}{%b=d
+ L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solutions.}%
+ {%b<>d
+ L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.%
+ }%
+ }{%% Cas délicat
+ \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c
+ \begin{align*}
+ \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{-\num{\fpeval{0-#3}}\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\xintifboolexpr{#3>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}\\
+ \xdef\Coeffa{\fpeval{#2-#4}}\xdef\Coeffb{\fpeval{#5-#3}}%\\
+ \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\xintifboolexpr{\Coeffb>0}{+\num{\Coeffb}}{-\num{\fpeval{0-\Coeffb}}}\\
+ \xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa=1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\
+ \xintifboolexpr{\Coeffa=1}{}{\\}
+ \xintifboolexpr{\Coeffa=1}{%
+ }{%\ifnum\cmtd>1
+ \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+ }{}
+ }{}
+ }
+ \end{align*}
+ \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
+ }{}
+ }{%ax+b=cx+d avec a<c % Autre cas délicat
+ \begin{align*}%
+ \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}\xintifboolexpr{#3>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}} {}}\stackText}%
+ &=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\xintifboolexpr{#3>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}} {}}\stackText}
+ \\
+ \xdef\Coeffa{\fpeval{#2-#4}}\xdef\Coeffb{\fpeval{#5-#3}}%\\
+ \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\xintifboolexpr{\Coeffb>0}{+\num{\Coeffb}}{-\num{\fpeval{0-\Coeffb}}}\\
+ \xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa=1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\
+ \xintifboolexpr{\Coeffa=1}{}{\\}
+ \xintifboolexpr{\Coeffa=1}{%
+ }{%\ifnum\cmtd>1
+ \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+ }{}
+ }{}
+ }
+ \end{align*}
+ \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
+ }{}%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+}%
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationLaurent1.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationPose1.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationPose1.tex (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationPose1.tex 2021-04-23 20:37:20 UTC (rev 58973)
@@ -0,0 +1,246 @@
+% Licence : Released under the LaTeX Project Public License v1.3c
+% or later, see http://www.latex-project.org/lppl.txtf
+\newcommand{\EquaBaseL}[5][]{%type ax=d ou b=cx
+ \useKVdefault[ClesEquation]%
+ \setKV[ClesEquation]{#1}%
+ \ifx\bla#2\bla%on teste si le paramètre #2 est vide:
+ % si oui, on est dans le cas b=cx. Eh bien on échange :)
+ % Mais attention si les deux paramètres a et c sont vides...
+ \EquaBaseL[#1]{#4}{}{}{#3}
+ \else
+ % si non, on est dans le cas ax=d
+ \xintifboolexpr{#2=0}{%
+ \xintifboolexpr{#5=0}{%
+ L'équation $0\useKV[ClesEquation]{Lettre}=0$ a une infinité de solutions.}{L'équation $0\useKV[ClesEquation]{Lettre}=\num{#5}$ n'a aucune solution.}%
+ }{%\else
+ \xintifboolexpr{#5=0}{L'équation $\num{#2}\useKV[ClesEquation]{Lettre}=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.}{%\else
+ \begin{align*}%
+ \xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\num{#2}\useKV[ClesEquation]{Lettre}}&=\num{#5}\\
+ \xintifboolexpr{#2=1}{}{%
+ \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}}\phantom{\useKV[ClesEquation]{Lettre}}&\phantom{=}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}}\\}
+ \useKV[ClesEquation]{Lettre}&=\frac{\num{#5}}{\num{#2}}%\\
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{#5}{#2}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{#5}{#2}}{}%\\
+ }{}
+ }{}
+ %\ifboolKV[ClesEquation]{Fleches}{%
+ %\stepcounter{Nbequa}}%
+ %{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}
+ %}
+ \end{align*}
+ \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}=\num{#5}}{\num{#2}\useKV[ClesEquation]{Lettre}=\num{#5}}$ a une unique solution : $\displaystyle\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\opdiv*{#5}{#2}{numequa}{resteequa}\opcmp{resteequa}{0}\ifopeq\opexport{numequa}{\numequa}\num{\numequa}\else\ifboolKV[ClesEquation]{Simplification}{\SSimplifie{#5}{#2}}{\frac{\num{#5}}{\num{#2}}}\fi$.%
+ }{}
+ }
+ }
+ \fi
+}
+
+\newcommand{\EquaDeuxL}[5][]{%type ax+b=d ou b=cx+d$
+ \useKVdefault[ClesEquation]%
+ \setKV[ClesEquation]{#1}%
+ \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide
+ \EquaDeuxL[#1]{#4}{#5}{#2}{#3}
+ \else%cas ax+b=d
+ \xintifboolexpr{#2=0}{%
+ \xintifboolexpr{#3=#5}{%b=d
+ L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
+ {%b<>d
+ L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
+ }%
+ }{%ELSE
+ \xintifboolexpr{#3=0}{%ax+b=d
+ \EquaBaseL[#1]{#2}{}{}{#5}%
+ }{%ax+b=d$ Ici
+ \begin{align*}
+ \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\\
+ \phantom{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}&\phantom{\mathrel{=}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\
+ \xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\num{\Coeffb}%\\
+ \xintifboolexpr{\Coeffa=1}{}{\\}
+ \xintifboolexpr{\Coeffa=1}{%
+ }{%\ifnum\cmtd>1
+ \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}}\phantom{\useKV[ClesEquation]{Lettre}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\phantom{=}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}}\\
+ \useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
+ }
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{%
+ \\\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\SSimplifie{\Coeffb}{\Coeffa}%
+ }{}%\\
+ }{}
+ }{}
+ \end{align*}
+ \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.
+ }{}
+ }
+ }
+ \fi
+}
+
+\newcommand{\EquaTroisL}[5][]{%ax+b=cx ou ax=cx+d
+ \useKVdefault[ClesEquation]%
+ \setKV[ClesEquation]{#1}%
+ \ifx\bla#3\bla%on inverse en faisant attention à la boucle #3<->#5
+ \ifx\bla#5\bla%
+ %% paramètre oublié
+ \else
+ \EquaTroisL[#1]{#4}{#5}{#2}{}%
+ \fi
+ \else
+ \xintifboolexpr{#2=0}{%b=cx
+ \EquaBaseL[#1]{#4}{}{}{#3}
+ }{%
+ \xintifboolexpr{#4=0}{%ax+b=0
+ \EquaDeuxL[#1]{#2}{#3}{}{0}
+ }{%ax+b=cx
+ \xintifboolexpr{#2=#4}{%
+ \xintifboolexpr{#3=0}{%ax=ax
+ L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solutions.}%
+ {%ax+b=ax
+ L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.%
+ }%
+ }{%% Cas délicat
+ \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c
+ \begin{align*}
+ \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\\
+ \mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{{}-{}\num{#4}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\phantom{{}={}}\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\\
+ \xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\\
+ \phantom{\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{{}-{}\num{#3}}{{}+{}\num{\fpeval{0-#3}}}}&\phantom{\mathrel{=}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{{}-{}\num{#3}}{{}+{}\num{\fpeval{0-#3}}}}\\
+ \xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\num{\Coeffb}%\\
+ \xintifboolexpr{\Coeffa=1}{}{\\}
+ \xintifboolexpr{\Coeffa=1}{%
+ }{%\ifnum\cmtd>1
+ \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\phantom{\useKV[ClesEquation]{Lettre}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\phantom{=}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\\
+ \useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
+ }
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\%
+ \useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\SSimplifie{\Coeffb}{\Coeffa}%\\
+ }{}
+ }{}
+ }{}
+ \end{align*}
+ \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}
+ }{%ax+b=cx+d avec a<c % Autre cas délicat
+ \begin{align*}%
+ \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\\
+ \mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{{}-{}\num{#2}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\phantom{{}={}}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{{}-{}\num{#2}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\\
+ \xdef\Coeffb{#3}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}%\\
+ \xintifboolexpr{\Coeffa=1}{}{\\}
+ \xintifboolexpr{\Coeffa=1}{%
+ }{%\ifnum\cmtd>1
+ \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}&\phantom{=}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\\
+ \frac{\num{\Coeffb}}{\num{\Coeffa}}&=\phantom{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}%\\
+ }
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\%
+ \SSimplifie{\Coeffb}{\Coeffa}&=\phantom{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}%\\
+ }{}
+ }{}
+ }{}
+ \end{align*}
+ \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}%
+ }%
+ }%
+ }%
+ }%
+ \fi
+ }%\\
+ % \\
+
+\newcommand{\ResolEquationL}[5][]{%
+ \useKVdefault[ClesEquation]%
+ \setKV[ClesEquation]{#1}%
+ \xintifboolexpr{#2=0}{%
+ \xintifboolexpr{#4=0}{%
+ \xintifboolexpr{#3=#5}{%b=d
+ L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
+ {%b<>d
+ L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
+ }%
+ }%
+ {%0x+b=cx+d$
+ \EquaDeuxL[#1]{#4}{#5}{}{#3}%
+ }%
+ }{%
+ \xintifboolexpr{#4=0}{%ax+b=0x+d
+ \EquaDeuxL[#1]{#2}{#3}{}{#5}%
+ }
+ {%ax+b=cx+d$
+ \xintifboolexpr{#3=0}{%
+ \xintifboolexpr{#5=0}{%ax=cx
+ \EquaTroisL[#1]{#2}{0}{#4}{}%
+ }%
+ {%ax=cx+d
+ \EquaTroisL[#1]{#4}{#5}{#2}{}%
+ }%
+ }%
+ {\xintifboolexpr{#5=0}{%ax+b=cx
+ \EquaTroisL[#1]{#2}{#3}{#4}{}%
+ }%
+ {%ax+b=cx+d -- ici
+ \xintifboolexpr{#2=#4}{%
+ \xintifboolexpr{#3=#5}{%b=d
+ L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solutions.}%
+ {%b<>d
+ L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.%
+ }%
+ }{
+ %% Cas délicat
+ \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c
+ \begin{align*}
+ \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+ \mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{{}-{}\num{#4}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{{}-{}\num{#4}\useKV[ClesEquation]{Lettre}}{\phantom{{}={}}+{}\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\\
+ \xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\phantom{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#5>0}{\phantom{{}+{}}\num{#5}}{-\num{\fpeval{0-#5}}}\\
+ \mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{{}-{}\num{#3}}{{}+{}\num{\fpeval{0-#3}}}}&\phantom{{}={}\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{{}-{}\num{#3}}{{}+{}\num{\fpeval{0-#3}}}}\\
+ \xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\phantom{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{\Coeffb>0}{\phantom{{}+{}}\num{\Coeffb}}{{}-{}\num{\fpeval{0-\Coeffb}}}%\\
+ \xintifboolexpr{\Coeffa=1}{}{\\}
+ \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+ \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\phantom{\useKV[ClesEquation]{Lettre}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\phantom{{}={}}\phantom{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\\
+ \phantom{\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\phantom{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{\Coeffb>0}{{}+{}}{}}\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
+ }
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\%
+ \useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\phantom{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{\Coeffb>0}{{}+{}}{}}\SSimplifie{\Coeffb}{\Coeffa}%\\
+ }{}
+ }{}
+ }{}
+ \end{align*}
+ \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
+ }{}
+ }{%ax+b=cx+d avec a<c % Autre cas délicat
+ \begin{align*}%
+ \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+ \mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{{}-{}\num{#2}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\xintifboolexpr{#4<0}{\phantom{={}}}{}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{{}-{}\num{#2}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\\
+ \xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+ \mathcolor{Cdecomp}{\xintifboolexpr{#5>0}{{}-{}\num{#5}}{{}+{}\num{\fpeval{0-#5}}}}&\phantom{{}={}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}}\\
+ \xdef\Coeffb{\fpeval{#3-#5}}\num{\Coeffb}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}%\\
+ \xintifboolexpr{\Coeffa=1}{}{\\}
+ \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+ \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}&\xintifboolexpr{\Coeffa<0}{\phantom{{}={}}}{\phantom{=}}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\\
+ \frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}%\\
+ }
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
+ }{}
+ }{}
+ \end{align*}
+ \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
+ }{}%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+}%
Property changes on: trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationPose1.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationSoustraction2.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationSoustraction2.tex (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationSoustraction2.tex 2021-04-23 20:37:20 UTC (rev 58973)
@@ -0,0 +1,345 @@
+% Licence : Released under the LaTeX Project Public License v1.3c
+% or later, see http://www.latex-project.org/lppl.txtf
+\newcommand{\EquaBase}[5][]{%type ax=d ou b=cx
+ \useKVdefault[ClesEquation]%
+ \setKV[ClesEquation]{#1}%
+ \ifx\bla#2\bla%on teste si le paramètre #2 est vide:
+ % si oui, on est dans le cas b=cx. Eh bien on échange :)
+ % Mais attention si les deux paramètres a et c sont vides...
+ \EquaBase[#1]{#4}{}{}{#3}
+ \else
+ % si non, on est dans le cas ax=d
+ \xintifboolexpr{#2=0}{%
+ \xintifboolexpr{#5=0}{%
+ L'équation $0\useKV[ClesEquation]{ELettre}=0$ a une infinité de solutions.}{L'équation $0\useKV[ClesEquation]{Lettre}=\num{#5}$ n'a aucune solution.}%
+ }{%\else
+ \xintifboolexpr{#5=0}{L'équation $\num{#2}\useKV[ClesEquation]{Lettre}=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.}{%\else
+ \begin{align*}%
+ \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\num{#2}\useKV[ClesEquation]{Lettre}}&=\num{#5}\tikzmark{C-\theNbequa}\\
+ \tikzmark{B-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{#5}}{\num{#2}}\tikzmark{D-\theNbequa}%\\
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}$}%
+ \rightcomment{C-\theNbequa}{D-\theNbequa}{D-\theNbequa}{$\div\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}$}%
+ }{%
+ \ifboolKV[ClesEquation]{FlecheDiv}{%
+ \Leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}$}%
+ \Rightcomment{C-\theNbequa}{D-\theNbequa}{D-\theNbequa}{$\div\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}$}%
+ }{}%
+ }%%
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{#5}{#2}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{#5}{#2}}{}%\\
+ }{}
+ }{}
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \stepcounter{Nbequa}}%
+ {\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}
+ }
+ \end{align*}
+ \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}=\num{#5}}{\num{#2}\useKV[ClesEquation]{Lettre}=\num{#5}}$ a une unique solution : $\displaystyle\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\opdiv*{#5}{#2}{numequa}{resteequa}\opcmp{resteequa}{0}\ifopeq\opexport{numequa}{\numequa}\num{\numequa}\else\ifboolKV[ClesEquation]{Simplification}{\SSimplifie{#5}{#2}}{\frac{\num{#5}}{\num{#2}}}\fi$.%
+ }{}
+ }
+ }
+ \fi
+}
+
+\newcommand{\EquaDeuxSoustraction}[5][]{%type ax+b=d ou b=cx+d$
+ \useKVdefault[ClesEquation]%
+ \setKV[ClesEquation]{#1}%
+ \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide
+ \EquaDeuxSoustraction[#1]{#4}{#5}{#2}{#3}
+ \else%cas ax+b=d
+ \xintifboolexpr{#2=0}{%
+ \xintifboolexpr{#3=#5}{%b=d
+ L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
+ {%b<>d
+ L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
+ }%
+ }{%ELSE
+ \xintifboolexpr{#3=0}{%ax+b=d
+ \EquaBase[#1]{#2}{}{}{#5}%
+ }{%ax+b=d$ Ici
+ \begin{align*}
+ \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\tikzmark{E-\theNbequa}\\
+ \ifboolKV[ClesEquation]{Decomposition}{%
+ \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}&=\num{#5}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\
+ }{}%
+ \tikzmark{C-\theNbequa}\xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}
+ \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa=1}{}{\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}}}{}
+ \xintifboolexpr{\Coeffa=1}{}{\\}
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{A-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+ \rightcomment{E-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+ }{}
+ \xintifboolexpr{\Coeffa=1}{%
+ }{%\ifnum\cmtd>1
+ \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{%ICI ?
+ \ifboolKV[ClesEquation]{FlecheDiv}{%
+ \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{}
+ }
+ }
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+ }{}
+ }{}
+ \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+ \end{align*}
+ \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.
+ }{}
+ }
+ }
+ \fi
+}
+
+\newcommand{\EquaTroisSoustraction}[5][]{%ax+b=cx ou ax=cx+d
+ \useKVdefault[ClesEquation]%
+ \setKV[ClesEquation]{#1}%
+ \ifx\bla#3\bla%on inverse en faisant attention à la boucle #3<->#5
+ \ifx\bla#5\bla%
+ %% paramètre oublié
+ \else
+ \EquaTroisSoustraction[#1]{#4}{#5}{#2}{}%
+ \fi
+ \else
+ \xintifboolexpr{#2=0}{%b=cx
+ \EquaBase[#1]{#4}{}{}{#3}
+ }{%
+ \xintifboolexpr{#4=0}{%ax+b=0
+ \EquaDeuxSoustraction[#1]{#2}{#3}{}{0}
+ }{%ax+b=cx
+ \xintifboolexpr{#2=#4}{%
+ \xintifboolexpr{#3=0}{%ax=ax
+ L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solutions.}%
+ {%ax+b=ax
+ L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.%
+ }%
+ }{%% Cas délicat
+ \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c
+ \begin{align*}
+ \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\
+ \ifboolKV[ClesEquation]{Decomposition}{%
+ \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\\
+ }{}
+ \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\tikzmark{F-\theNbequa}\\
+ \ifboolKV[ClesEquation]{Decomposition}{%
+ \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}&=0\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\tikzmark{F-\theNbequa}\\
+ }{}%
+ \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
+ %eric
+ \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa=1}{}{\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}}}{}
+ % eric
+ \xintifboolexpr{\Coeffa=1}{}{\\}
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
+ \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
+ \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+ \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+ }{}
+ \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+ \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{
+ \ifboolKV[ClesEquation]{FlecheDiv}{%
+ \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{}
+ }
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+ }{}
+ }{}
+ }
+ \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+ \end{align*}
+ \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}
+ }{%ax+b=cx+d avec a<c % Autre cas délicat
+ \begin{align*}%
+ \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\
+ \ifboolKV[ClesEquation]{Decomposition}{%
+ \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\\
+ }{}
+ \tikzmark{B-\theNbequa}\xdef\Coeffb{#3}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{F-\theNbequa}
+ \xintifboolexpr{\Coeffa=1}{}{\\}
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
+ \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
+ }{}
+ % eric
+ \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa=1}{}{\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}&=\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}}}{}
+ % eric
+ \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+ \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{B-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{
+ \ifboolKV[ClesEquation]{FlecheDiv}{%
+ \leftcomment{B-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{}
+ }
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
+ }{}
+ }{}
+ }
+ \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+ \end{align*}
+ \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}%
+ }%
+ }%
+ }%
+ }%
+ \fi
+ }%
+
+
+\newcommand{\ResolEquationSoustraction}[5][]{%
+ \useKVdefault[ClesEquation]%
+ \setKV[ClesEquation]{#1}%
+ \xintifboolexpr{#2=0}{%
+ \xintifboolexpr{#4=0}{%
+ \xintifboolexpr{#3=#5}{%b=d
+ L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
+ {%b<>d
+ L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
+ }%
+ }%
+ {%0x+b=cx+d$
+ \EquaDeuxSoustraction[#1]{#4}{#5}{}{#3}%
+ }%
+ }{%
+ \xintifboolexpr{#4=0}{%ax+b=0x+d
+ \EquaDeuxSoustraction[#1]{#2}{#3}{}{#5}%
+ }
+ {%ax+b=cx+d$
+ \xintifboolexpr{#3=0}{%
+ \xintifboolexpr{#5=0}{%ax=cx
+ \EquaTroisSoustraction[#1]{#2}{0}{#4}{}%
+ }%
+ {%ax=cx+d
+ \EquaTroisSoustraction[#1]{#4}{#5}{#2}{}%
+ }%
+ }%
+ {\xintifboolexpr{#5=0}{%ax+b=cx
+ \EquaTroisSoustraction[#1]{#2}{#3}{#4}{}%
+ }%
+ {%ax+b=cx+d -- ici
+ \xintifboolexpr{#2=#4}{%
+ \xintifboolexpr{#3=#5}{%b=d
+ L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solutions.}%
+ {%b<>d
+ L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.%
+ }%
+ }{
+ %% Cas délicat
+ \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c
+ \begin{align*}
+ \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\
+ \ifboolKV[ClesEquation]{Decomposition}{%
+ \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+ }{}
+ \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\tikzmark{F-\theNbequa}\\
+ \ifboolKV[ClesEquation]{Decomposition}{%
+ \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}&=\num{#5}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\
+ }{}%
+ \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
+ % eric
+ \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa=1}{}{\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}}}{}
+ % eric
+ \xintifboolexpr{\Coeffa=1}{}{\\}
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
+ \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
+ \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+ \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+ }{}
+ \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+ \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{
+ \ifboolKV[ClesEquation]{FlecheDiv}{%
+ \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{}
+ }
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+ }{}
+ }{}
+ }
+ \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+ \end{align*}
+ \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
+ }{}
+ }{%ax+b=cx+d avec a<c % Autre cas délicat
+ \begin{align*}%
+ \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\
+ \ifboolKV[ClesEquation]{Decomposition}{%
+ \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+ }{}
+ \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{F-\theNbequa}\\
+ \ifboolKV[ClesEquation]{Decomposition}{%
+ \num{#3}\mathcolor{Cdecomp}{\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\mathcolor{Cdecomp}{\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}}\\
+ }{}%
+ \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#3-#5}}\num{\Coeffb}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{G-\theNbequa}%\\
+ % eric
+ \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa=1}{}{\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}&=\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}}}{}
+ % eric
+ \xintifboolexpr{\Coeffa=1}{}{\\}
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
+ \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
+ \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}%
+ \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}%
+ }{}
+ \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+ \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{
+ \ifboolKV[ClesEquation]{FlecheDiv}{%
+ \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{}
+ }
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
+ }{}
+ }{}
+ }
+ \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+ \end{align*}
+ \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
+ }{}%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+}%
+
+
Property changes on: trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationSoustraction2.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationSymbole1.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationSymbole1.tex (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationSymbole1.tex 2021-04-23 20:37:20 UTC (rev 58973)
@@ -0,0 +1,225 @@
+% Licence : Released under the LaTeX Project Public License v1.3c
+% or later, see http://www.latex-project.org/lppl.txtf
+\newcommand{\EquaBaseSymbole}[5][]{%type ax=d ou b=cx
+ \useKVdefault[ClesEquation]%
+ \setKV[ClesEquation]{#1}%
+ \setKV[ClesEquation]{Fleches=false,FlecheDiv=false,Terme=false,Decomposition=false}
+ \ifx\bla#2\bla%on teste si le paramètre #2 est vide:
+ % si oui, on est dans le cas b=cx. Eh bien on échange :)
+ % Mais attention si les deux paramètres a et c sont vides...
+ \ifx\bla#4\bla
+ %% il manque un paramètre
+ \else
+ \EquaBaseSymbole[#1]{#4}{}{}{#3}
+ \fi
+ \else
+ % si non, on est dans le cas ax=d
+ \xintifboolexpr{#2=0}{%
+ \xintifboolexpr{#5=0}{%
+ L'équation $0\times\useKV[ClesEquation]{Lettre}=0$ a une infinité de solutions.}{L'équation $0\times\useKV[ClesEquation]{Lettre}=\num{#5}$ n'a aucune solution.}%
+ }{%\else
+ \xintifboolexpr{#5=0}{L'équation $\num{#2}\times\useKV[ClesEquation]{Lettre}=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.}{%\else
+ \begin{align*}%
+ \xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}&=\num{#5}\\
+ \useKV[ClesEquation]{Lettre}&=\frac{\num{#5}}{\num{#2}}%\\
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{#5}{#2}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{#5}{#2}}{}%\\
+ }{}
+ }{}
+ \end{align*}
+ }
+ }
+ \fi
+}
+
+\newcommand{\EquaDeuxSymbole}[5][]{%type ax+b=d ou b=cx+d$
+ \useKVdefault[ClesEquation]%
+ \setKV[ClesEquation]{#1}%
+ \setKV[ClesEquation]{Fleches=false,FlecheDiv=false,Terme=false,Decomposition=false}
+ \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide
+ \EquaDeuxSymbole[#1]{#4}{#5}{#2}{#3}
+ \else%cas ax+b=d
+ \xintifboolexpr{#2=0}{%
+ \xintifboolexpr{#3=#5}{%b=d
+ L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
+ {%b<>d
+ L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
+ }%
+ }{%ELSE
+ \xintifboolexpr{#3=0}{%ax+b=d
+ \EquaBaseSymbole[#1]{#2}{}{}{#5}%
+ }{%ax+b=d$ Ici
+ \begin{align*}
+ \xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\\
+ \ifboolKV[ClesEquation]{Bloc}{\Fdash{$\xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}$}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\\}{}%
+ \xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}&=\num{\Coeffb}%\\
+ \xintifboolexpr{\Coeffa=1}{%
+ }{%\ifnum\cmtd>1
+ \\
+ \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+ }{}
+ }{}
+ }
+ \end{align*}
+ }
+ }
+ \fi
+}
+
+\newcommand{\EquaTroisSymbole}[5][]{%ax+b=cx ou ax=cx+d
+ \useKVdefault[ClesEquation]%
+ \setKV[ClesEquation]{#1}%
+ \setKV[ClesEquation]{Fleches=false,FlecheDiv=false,Terme=false,Decomposition=false}
+ \ifx\bla#3\bla%on inverse en faisant attention à la boucle #3<->#5
+ \ifx\bla#5\bla%
+ %% paramètre oublié
+ \else
+ \EquaTroisSymbole[#1]{#4}{#5}{#2}{}%
+ \fi
+ \else
+ \xintifboolexpr{#2=0}{%b=cx
+ \EquaBaseSymbole[#1]{#4}{}{}{#3}
+ }{%
+ \xintifboolexpr{#4=0}{%ax+b=0
+ \EquaDeuxSymbole[#1]{#2}{#3}{}{0}
+ }{%ax+b=cx
+ \xintifboolexpr{#2=#4}{%
+ \xintifboolexpr{#3=0}{%ax=ax
+ L'équation $\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}=\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}$ a une infinité de solutions.}%
+ {%ax+b=ax
+ L'équation $\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.%
+ }%
+ }{%% Cas délicat
+ \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c
+ \begin{align*}
+ \multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\\
+ \mathcolor{Csymbole}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{#4-1}}{+\useKV[ClesEquation]{Lettre}}}\multido{\i=1+1}{\fpeval{#2-#4}}{+\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Csymbole}{\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}\\
+ \xdef\Coeffa{\fpeval{#2-#4}}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\\
+ \ifboolKV[ClesEquation]{Bloc}{\Fdash{\mathcolor{Csymbole}{$\multido{\i=1+1}{\fpeval{\Coeffa-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}$}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\\}{}
+ \xdef\Coeffb{\fpeval{0-#3}}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}%\\
+ \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+ \\\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+ }{}
+ }{}
+ }
+ \end{align*}
+ }{%ax+b=cx+d avec a<c % Autre cas délicat
+ \begin{align*}%
+ \multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\\
+ \mathcolor{Csymbole}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{#2-1}}{+\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Csymbole}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{#2-1}}{+\useKV[ClesEquation]{Lettre}}}\multido{\i=1+1}{\fpeval{#4-#2}}{+\useKV[ClesEquation]{Lettre}}\\
+ \xdef\Coeffb{#3}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\multido{\i=1+1}{\fpeval{\Coeffa-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}% \\
+ \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+ \\\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}%\\
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
+ }{}
+ }{}
+ }
+ \end{align*}
+ }%
+ }%
+ }%
+ }%
+ \fi
+ }%
+
+
+\newcommand{\ResolEquationSymbole}[5][]{%
+ \useKVdefault[ClesEquation]%
+ \setKV[ClesEquation]{#1}%
+ \setKV[ClesEquation]{Fleches=false,FlecheDiv=false,Terme=false,Decomposition=false}
+ \xintifboolexpr{#2=0}{%
+ \xintifboolexpr{#4=0}{%
+ \xintifboolexpr{#3=#5}{%b=d
+ L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
+ {%b<>d
+ L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
+ }%
+ }%
+ {%0x+b=cx+d$
+ \EquaDeuxSymbole[#1]{#4}{#5}{#2}{#3}%
+ }%
+ }{%
+ \xintifboolexpr{#4=0}{%ax+b=0x+d
+ \EquaDeuxSymbole[#1]{#2}{#3}{}{#5}%
+ }
+ {%ax+b=cx+d$
+ \xintifboolexpr{#3=0}{%
+ \xintifboolexpr{#5=0}{%ax=cx
+ \EquaTroisSymbole[#1]{#2}{0}{#4}{}%
+ }%
+ {%ax=cx+d
+ \EquaTroisSymbole[#1]{#4}{#5}{#2}{}%
+ }%
+ }%
+ {\xintifboolexpr{#5=0}{%ax+b=cx
+ \EquaTroisSymbole[#1]{#2}{#3}{#4}{}%
+ }%
+ {%ax+b=cx+d -- ici
+ \xintifboolexpr{#2=#4}{%
+ \xintifboolexpr{#3=#5}{%b=d
+ L'équation $\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solutions.}%
+ {%b<>d
+ L'équation $\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.%
+ }%
+ }{
+ %% Cas délicat
+ \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c
+ \begin{align*}
+ \multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+ \mathcolor{Csymbole}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{#4-1}}{+\useKV[ClesEquation]{Lettre}}}\multido{\i=1+1}{\fpeval{#2-#4}}{+\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Csymbole}{\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+ \xdef\Coeffa{\fpeval{#2-#4}}\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{+\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\\
+ \ifboolKV[ClesEquation]{Bloc}{%
+ \Fdash{$\mathcolor{Csymbole}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{+\useKV[ClesEquation]{Lettre}}}$}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\\
+ }{}%
+ \xdef\Coeffb{\fpeval{#5-#3}}\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{+\useKV[ClesEquation]{Lettre}}&=\num{\Coeffb}%\\
+ \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+ \\\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+ }{}
+ }{}
+ }
+ \end{align*}
+ }{%ax+b=cx+d avec a<c % Autre cas délicat
+ \begin{align*}%
+ \multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+ \mathcolor{Csymbole}{\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Csymbole}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{#2-1}}{+\useKV[ClesEquation]{Lettre}}}\multido{\i=1+1}{\fpeval{#4-#2}}{+\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+ \xdef\Coeffa{\fpeval{#4-#2}}\num{#3}&=\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{+\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+ \ifboolKV[ClesEquation]{Bloc}{%
+ \num{#3}&=\Fdash{$\mathcolor{Csymbole}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{+\useKV[ClesEquation]{Lettre}}}$}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+ }{}%
+ \xdef\Coeffb{\fpeval{#3-#5}}\num{\Coeffb}&=\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{+\useKV[ClesEquation]{Lettre}}%\\
+ \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+ \\\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}%\\
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
+ }{}
+ }{}
+ }
+ \end{align*}
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+}%
+
+
Property changes on: trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationSymbole1.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationTerme1.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationTerme1.tex (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationTerme1.tex 2021-04-23 20:37:20 UTC (rev 58973)
@@ -0,0 +1,276 @@
+% Licence : Released under the LaTeX Project Public License v1.3c
+% or later, see http://www.latex-project.org/lppl.txtf
+\newcommand{\EquaDeuxTerme}[5][]{%type ax+b=d ou b=cx+d$
+ \useKVdefault[ClesEquation]%
+ \setKV[ClesEquation]{#1}%
+ \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide
+ \EquaDeuxTerme[#1]{#4}{#5}{#2}{#3}
+ \else%cas ax+b=d
+ \xintifboolexpr{#2=0}{%
+ \xintifboolexpr{#3=#5}{%b=d
+ L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
+ {%b<>d
+ L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
+ }%
+ }{%ELSE
+ \xintifboolexpr{#3=0}{%ax+b=d
+ \EquaBase[#1]{#2}{}{}{#5}%
+ }{%ax+b=d$ Ici
+ \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Cterme}{\useKV[ClesEquation]{CouleurTerme}}}{}
+ \begin{align*}
+ \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\tikzmark{E-\theNbequa}\\
+ \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}&=\num{#5}\mathcolor{Cterme}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\
+ \tikzmark{C-\theNbequa}\xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
+ \xintifboolexpr{\Coeffa=1}{}{\\}
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{A-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+ \rightcomment{E-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+ }{}
+ \xintifboolexpr{\Coeffa=1}{%
+ }{%\ifnum\cmtd>1
+ \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{%ICI ?
+ \ifboolKV[ClesEquation]{FlecheDiv}{%
+ \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{}
+ }
+ }
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+ }{}
+ }{}
+ \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+ \end{align*}
+ \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.
+ }{}
+ }
+ }
+ \fi
+}
+
+\newcommand{\EquaTroisTerme}[5][]{%ax+b=cx ou ax=cx+d
+ \useKVdefault[ClesEquation]%
+ \setKV[ClesEquation]{#1}%
+ \ifx\bla#3\bla%on inverse en faisant attention à la boucle #3<->#5
+ \ifx\bla#5\bla%
+ %% paramètre oublié
+ \else
+ \EquaTroisTerme[#1]{#4}{#5}{#2}{}%
+ \fi
+ \else
+ \xintifboolexpr{#2=0}{%b=cx
+ \EquaBase[#1]{#4}{}{}{#3}
+ }{%
+ \xintifboolexpr{#4=0}{%ax+b=0
+ \EquaDeuxTerme[#1]{#2}{#3}{}{0}
+ }{%ax+b=cx
+ \xintifboolexpr{#2=#4}{%
+ \xintifboolexpr{#3=0}{%ax=ax
+ L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solutions.}%
+ {%ax+b=ax
+ L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.%
+ }%
+ }{%% Cas délicat
+ \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c
+ \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Cterme}{\useKV[ClesEquation]{CouleurTerme}}}{}
+ \begin{align*}
+ \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\
+ \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cterme}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\\
+ \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\tikzmark{F-\theNbequa}\\
+ \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=0\mathcolor{Cterme}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\
+ \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
+ \xintifboolexpr{\Coeffa=1}{}{\\}
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
+ \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
+ \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+ \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+ }{}
+ \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+ \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{
+ \ifboolKV[ClesEquation]{FlecheDiv}{%
+ \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{}
+ }
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+ }{}
+ }{}
+ }
+ \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+ \end{align*}
+ \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}
+ }{%ax+b=cx+d avec a<c % Autre cas délicat
+ \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Cterme}{\useKV[ClesEquation]{CouleurTerme}}}{}
+ \begin{align*}%
+ \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\
+ \xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cterme}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\\
+ \tikzmark{B-\theNbequa}\xdef\Coeffb{#3}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{F-\theNbequa}
+ \xintifboolexpr{\Coeffa=1}{}{\\}
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
+ \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
+ }{}
+ \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+ \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{B-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{
+ \ifboolKV[ClesEquation]{FlecheDiv}{%
+ \leftcomment{B-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{}
+ }
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
+ }{}
+ }{}
+ }
+ \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+ \end{align*}
+ \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}%
+ }%
+ }%
+ }%
+ }%
+ \fi
+ }%
+
+\newcommand{\ResolEquationTerme}[5][]{%
+ \useKVdefault[ClesEquation]%
+ \setKV[ClesEquation]{#1}%
+ \xintifboolexpr{#2=0}{%
+ \xintifboolexpr{#4=0}{%
+ \xintifboolexpr{#3=#5}{%b=d
+ L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
+ {%b<>d
+ L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
+ }%
+ }%
+ {%0x+b=cx+d$
+ \EquaDeuxTerme[#1]{#4}{#5}{#2}{#3}%
+ }%
+ }{%
+ \xintifboolexpr{#4=0}{%ax+b=0x+d
+ \EquaDeuxTerme[#1]{#2}{#3}{}{#5}%
+ }
+ {%ax+b=cx+d$
+ \xintifboolexpr{#3=0}{%
+ \xintifboolexpr{#5=0}{%ax=cx
+ \EquaTroisTerme[#1]{#2}{0}{#4}{}%
+ }%
+ {%ax=cx+d
+ \EquaTroisTerme[#1]{#4}{#5}{#2}{}%
+ }%
+ }%
+ {\xintifboolexpr{#5=0}{%ax+b=cx
+ \EquaTroisTerme[#1]{#2}{#3}{#4}{}%
+ }%
+ {%ax+b=cx+d -- ici
+ \xintifboolexpr{#2=#4}{%
+ \xintifboolexpr{#3=#5}{%b=d
+ L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solutions.}%
+ {%b<>d
+ L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.%
+ }%
+ }{
+ %% Cas délicat
+ \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c
+ \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Cterme}{\useKV[ClesEquation]{CouleurTerme}}}{}
+ \begin{align*}
+ \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\
+ \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cterme}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#5>0}{\num{#5}}{-\num{\fpeval{0-#5}}}\\
+ \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\tikzmark{F-\theNbequa}\tikzmark{F-\theNbequa}\\
+ \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{#5}\mathcolor{Cterme}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\
+ \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
+ \xintifboolexpr{\Coeffa=1}{}{\\}
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
+ \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
+ \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+ \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+ }{}
+ \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+ \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{
+ \ifboolKV[ClesEquation]{FlecheDiv}{%
+ \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{}
+ }
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+ }{}
+ }{}
+ }
+ \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+ \end{align*}
+ \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
+ }{}
+ }{%ax+b=cx+d avec a<c % Autre cas délicat
+ \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Cterme}{\useKV[ClesEquation]{CouleurTerme}}}{}
+ \begin{align*}%
+ \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\
+ \xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cterme}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+ \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{F-\theNbequa}\\
+ \num{#3}\mathcolor{Cterme}{\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\\
+ \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#3-#5}}\num{\Coeffb}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{G-\theNbequa}%\\
+ \xintifboolexpr{\Coeffa=1}{}{\\}
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
+ \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
+ \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}%
+ \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}%
+ }{}
+ \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+ \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\
+ \ifboolKV[ClesEquation]{Fleches}{%
+ \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{
+ \ifboolKV[ClesEquation]{FlecheDiv}{%
+ \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+ }{}
+ }
+ \ifboolKV[ClesEquation]{Entier}{%
+ \SSimpliTest{\Coeffb}{\Coeffa}%
+ \ifboolKV[ClesEquation]{Simplification}{%
+ \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
+ }{}
+ }{}
+ }
+ \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+ \end{align*}
+ \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
+ }{}%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+}%
+
+
Property changes on: trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationTerme1.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/profcollege/ProfCollege-doc.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/profcollege/ProfCollege-doc.zip
===================================================================
(Binary files differ)
Deleted: trunk/Master/texmf-dist/metapost/profcollege/PfC-Afficheur.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfC-Afficheur.mp 2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfC-Afficheur.mp 2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,182 +0,0 @@
-u:=1cm;
-
-vardef Afficheur(expr nb,creux)=
- pair Aa[];
- Aa1=u*(-0.5,-1);
- Aa2-Aa1=u*(1,0);
- Aa4-Aa2=u*(0,2);
- Aa3=1/2[Aa2,Aa4];
- Aa5-Aa4=Aa1-Aa2;
- Aa6-Aa3=Aa1-Aa2;
- pair Bb[];
- Bb1=Aa1 xscaled0.7 yscaled 0.85;
- Bb2=Aa2 xscaled0.7 yscaled 0.85;
- Bb4=Aa4 xscaled0.7 yscaled 0.85;
- Bb5=Aa5 xscaled0.7 yscaled 0.85;
- Bb3=1/2[Bb2,Bb4];
- Bb6=1/2[Bb1,Bb5];
- Bb7=1/2[Bb6,Bb3]+(0,4);
- Bb8=1/2[Bb6,Bb3]-(0,6);
- pair Cc[];
- Cc1=u*(0.4,-0.85)+(0,-1);
- ecarth:=1.5;
- ecartv:=0.05;
- path ASegment[];
- ASegment[1]=1/10[Bb1,Bb2]--9/10[Bb1,Bb2];
- ASegment[2]=1/10[Bb2,Bb3]--9/10[Bb2,Bb3];
- ASegment[3]=1/10[Bb3,Bb4]--9/10[Bb3,Bb4];
- ASegment[4]=1/10[Bb4,Bb5]--9/10[Bb4,Bb5];
- ASegment[5]=1/10[Bb5,Bb6]--9/10[Bb5,Bb6];
- ASegment[6]=1/10[Bb6,Bb1]--9/10[Bb6,Bb1];
- ASegment[7]=1/10[Bb6,Bb3]--9/10[Bb6,Bb3];
- color fondsegment;
- fondsegment=0.2[LightSteelBlue,white];
- save $;
- picture $;
- $=image(
- fill Aa1--Aa2--Aa4--Aa5--cycle withcolor LightSteelBlue;
- draw Aa1--Aa2--Aa4--Aa5--cycle withcolor LightSteelBlue;
- if creux=0:
- fill (unitsquare scaled 2) shifted Cc1 withcolor fondsegment;
- else:
- fill (unitsquare scaled 2) shifted Cc1 withcolor Crimson;
- fi;
- if nb=1:
- drawoptions(withpen pensquare scaled2 withcolor Crimson);
- draw ASegment[2];
- draw ASegment[3];
- drawoptions(withpen pensquare scaled2 withcolor fondsegment);
- draw ASegment[1];
- draw ASegment[4];
- draw ASegment[5];
- draw ASegment[6];
- draw ASegment[7];
- drawoptions();
- fi;
- if nb=2:
- drawoptions(withpen pensquare scaled2 withcolor Crimson);
- draw ASegment[1];
- draw ASegment[3];
- draw ASegment[4];
- draw ASegment[6];
- draw ASegment[7];
- drawoptions(withpen pensquare scaled2 withcolor fondsegment);
- draw ASegment[2];
- draw ASegment[5];
- drawoptions();
- fi;
- if nb=3:
- drawoptions(withpen pensquare scaled2 withcolor Crimson);
- draw ASegment[1];
- draw ASegment[2];
- draw ASegment[3];
- draw ASegment[4];
- draw ASegment[7];
- drawoptions(withpen pensquare scaled2 withcolor fondsegment);
- draw ASegment[5];
- draw ASegment[6];
- drawoptions();
- fi;
- if nb=4:
- drawoptions(withpen pensquare scaled2 withcolor Crimson);
- draw ASegment[2];
- draw ASegment[3];
- draw ASegment[5];
- draw ASegment[7];
- drawoptions(withpen pensquare scaled2 withcolor fondsegment);
- draw ASegment[1];
- draw ASegment[4];
- draw ASegment[6];
- drawoptions();
- fi;
- if nb=5:
- drawoptions(withpen pensquare scaled2 withcolor Crimson);
- draw ASegment[1];
- draw ASegment[2];
- draw ASegment[4];
- draw ASegment[5];
- draw ASegment[7];
- drawoptions(withpen pensquare scaled2 withcolor fondsegment);
- draw ASegment[3];
- draw ASegment[6];
- drawoptions();
- fi;
- if nb=6:
- drawoptions(withpen pensquare scaled2 withcolor Crimson);
- draw ASegment[1];
- draw ASegment[2];
- draw ASegment[4];
- draw ASegment[5];
- draw ASegment[6];
- draw ASegment[7];
- drawoptions(withpen pensquare scaled2 withcolor fondsegment);
- draw ASegment[3];
- drawoptions();
- fi;
- if nb=7:
- drawoptions(withpen pensquare scaled2 withcolor Crimson);
- draw ASegment[2];
- draw ASegment[3];
- draw ASegment[4];
- drawoptions(withpen pensquare scaled2 withcolor fondsegment);
- draw ASegment[1];
- draw ASegment[5];
- draw ASegment[6];
- draw ASegment[7];
- drawoptions();
- fi;
- if nb=8:
- drawoptions(withpen pensquare scaled2 withcolor Crimson);
- draw ASegment[1];
- draw ASegment[2];
- draw ASegment[3];
- draw ASegment[4];
- draw ASegment[5];
- draw ASegment[6];
- draw ASegment[7];
- drawoptions();
- fi;
- if nb=9:
- drawoptions(withpen pensquare scaled2 withcolor Crimson);
- draw ASegment[1];
- draw ASegment[2];
- draw ASegment[3];
- draw ASegment[4];
- draw ASegment[5];
- draw ASegment[7];
- drawoptions(withpen pensquare scaled2 withcolor fondsegment);
- draw ASegment[6];
- drawoptions();
- fi;
- if nb=0:
- drawoptions(withpen pensquare scaled2 withcolor Crimson);
- draw ASegment[1];
- draw ASegment[2];
- draw ASegment[3];
- draw ASegment[4];
- draw ASegment[5];
- draw ASegment[6];
- drawoptions(withpen pensquare scaled2 withcolor fondsegment);
- draw ASegment[7];
- drawoptions();
- fi;
- if nb=10:
- drawoptions(withpen pensquare scaled2 withcolor Crimson);
- fill (unitsquare scaled 2) shifted Bb7 withcolor Crimson;
- fill (unitsquare scaled 2) shifted Bb8 withcolor Crimson;
- drawoptions(withpen pensquare scaled2 withcolor fondsegment);
- draw ASegment[1];
- draw ASegment[2];
- draw ASegment[3];
- draw ASegment[4];
- draw ASegment[5];
- draw ASegment[6];
- draw ASegment[7];
- drawoptions();
- fi;
- );
- $
-enddef;
-
-endinput;
-
Deleted: trunk/Master/texmf-dist/metapost/profcollege/PfC-Calculatrice.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfC-Calculatrice.mp 2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfC-Calculatrice.mp 2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,201 +0,0 @@
-prologues:=3;
-
-path carre[];
-
-u:=0.5mm;
-
-vardef BlocAffichage=
- for k=0 upto 34:
- carre[k]:=(unitsquare scaled u) shifted(u*(k mod 5,5-(k div 5)));
- endfor;
-enddef;
-
-vardef Affichage(expr decomp)=
- save $;
- picture $;
- drawoptions(withpen pensquare scaled0.1);
- $=image(%
- for k=0 upto 34:
- if (substring(k,k+1) of decomp)="1":
- fill carre[k];
- fi;
- endfor;
- );
- drawoptions();
- $
-enddef;
-
-nblignes:=0;
-
-boolean print;
-print:=false;
-
-color CouleurEcran;
-CouleurEcran=(107/255,148/255,107/255);
-
-boolean Math;
-Math=true;
-
-decahoriz:=0;
-
-vardef Test(expr cptk,cptnt)=
- pair decalage;
- if nblignes mod 2=0:
- decalage:=u*((20-length(cptnt)+cptk)*6,-8*(nblignes-1));
- else:
- decalage:=u*(decahoriz,-8*(nblignes-1));
- decahoriz:=decahoriz+6;
- fi;
- if substring(cptk,cptk+1) of cptnt="A":draw Affichage("01110100011000110001111111000110001") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="B":draw Affichage("11110100011000111110100011000111110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="C":draw Affichage("01110100011000010000100001000101110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="D":draw Affichage("11100100101000110001100011001011100") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="E":draw Affichage("11111100001000011111100001000011111") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="F":draw Affichage("11111100001000011111100001000010000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="G":draw Affichage("01110100011000010111100011000101110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="H":draw Affichage("10001100011000111111100011000110001") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="I":draw Affichage("01110001000010000100001000010001110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="J":draw Affichage("00111000100001000010000101001001100") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="K":draw Affichage("10001100101010011000101001001010001") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="L":draw Affichage("10000100001000010000100001000011111") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="M":draw Affichage("10001110111010110101100011000110001") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="N":draw Affichage("10001100011100110101100111000110001") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="O":draw Affichage("01110100011000110001100011000101110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="P":draw Affichage("11110100011000111110100001000010000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="Q":draw Affichage("01110100011000110001101011001001101") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="R":draw Affichage("11110100011000111110101001001010001") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="S":draw Affichage("01111100001000001110000010000111110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="T":draw Affichage("11111001000010000100001000010000100") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="U":draw Affichage("10001100011000110001100011000101110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="V":draw Affichage("10001100011000110001100010101000100") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="W":draw Affichage("10101101011010110101101011010101010") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="X":draw Affichage("10001100010101000100010101000110001") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="Y":draw Affichage("10001100011000101010001000010000100") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="Z":draw Affichage("11111000010001000100010001000011111") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="a":draw Affichage("00000000000111100001011111000101111") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="b":draw Affichage("10000100001011011001100011000111110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="c":draw Affichage("00000000000111010000100001000101110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="d":draw Affichage("00001000010110110011100011000101111") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="e":if Math:
- draw Affichage("00000000000000000001101000100010100") shifted(decalage);
- decalage:=u*(decahoriz-1,-8*(nblignes-1));
- draw Affichage("00000000001001010101101011010110010") shifted(decalage);
- decahoriz:=decahoriz+6;
- else:
- draw Affichage("00000000000111010001111111000001110") shifted(decalage);
- fi;
- elseif substring(cptk,cptk+1) of cptnt="@":draw Affichage("00010001000111010001111111000001110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="f":draw Affichage("00110010010100011100010000100001000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="g":draw Affichage("00000011111000110001011110000101110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="h":draw Affichage("10000100001011011001100011000110001") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="i":draw Affichage("00100000000110000100001000010001110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="j":if Math=true:
- draw Affichage("00011000011110100001000000000000000") shifted(decalage);
- else:
- draw Affichage("00010000000011000010000101001001100") shifted(decalage);
- fi;
- elseif substring(cptk,cptk+1) of cptnt="k":if Math=true:
- draw Affichage("11100001000100011100000000000000000") shifted(decalage);
- else:
- draw Affichage("10000100001001010100110001010010010") shifted(decalage);
- fi;
- elseif substring(cptk,cptk+1) of cptnt="l":if Math=true:
- draw Affichage("11100010000010011100000000000000000") shifted(decalage);
- else:
- draw Affichage("01100001000010000100001000010001110") shifted(decalage);
- fi;
- elseif substring(cptk,cptk+1) of cptnt="m":draw Affichage("00000000001101010101101011000110001") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="n":draw Affichage("00000000001011011001100011000110001") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="o":draw Affichage("00000000000111010001100011000101110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="p":draw Affichage("00000000001111010001111101000010000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="q":if Math=true:
- draw Affichage("00000000001111101010010100101010001") shifted(decalage);
- else:
- draw Affichage("00000000000110110011011110000100001") shifted(decalage);
- fi;
- elseif substring(cptk,cptk+1) of cptnt="r":draw Affichage("00000000001011011001100001000010000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="s":draw Affichage("00000000000111010000011100000111110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="t":draw Affichage("01000010001110001000010000100100110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="u":draw Affichage("00000000001000110001100011001101101") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="v":if Math=true:
- draw Affichage("00111001000010000100101000110000100") shifted(decalage);
- else:
- draw Affichage("00000000001000110001100010111000100") shifted(decalage);
- fi;
- elseif substring(cptk,cptk+1) of cptnt="w":draw Affichage("00000000001010110101101011010101110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="x":draw Affichage("00000000001000101010001000101010001") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="y":draw Affichage("00000000001000110001011110000101110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="z":draw Affichage("00000000001111100010001000100011111") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="0":draw Affichage("01110100011001110101110011000101110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="1":draw Affichage("00100011000010000100001000010001110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="2":draw Affichage("01110100010000100010001000100011111") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="3":draw Affichage("11111000100010000010000011000101110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="4":draw Affichage("00010001100101010010111110001000010") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="5":draw Affichage("11111100001111000001000011000101110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="6":draw Affichage("00110010001000011110100011000101110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="7":draw Affichage("11111000010001000100010000100001000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="8":draw Affichage("01110100011000101110100011000101110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="9":draw Affichage("01110100011000101111000010001001100") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="!":draw Affichage("00100001000010000100000000000000100") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="'":draw Affichage("01100001000100000000000000000000000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="(":draw Affichage("00010001000100001000010000010000010") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt=")":draw Affichage("01000001000001000010000100010001000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="*":draw Affichage("00000001001010101110101010010000000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="+":draw Affichage("00000001000010011111001000010000000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt=",":draw Affichage("00000000000000000000011000010001000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="-":draw Affichage("00000000000000011111000000000000000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt=".":draw Affichage("00000000000000000000000000110001100") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="/":draw Affichage("00000000010001000100010001000000000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt=":":if Math=true:
- draw Affichage("00000000000000000000000000000000000") shifted(decalage);
- else:
- draw Affichage("00000011000110000000011000110000000") shifted(decalage);
- fi;
- elseif substring(cptk,cptk+1) of cptnt=";":if Math=true:
- draw Affichage("00000001000000011111000000010000000") shifted(decalage);
- else:
- draw Affichage("00000011000110000000011000010001000") shifted(decalage);
- fi;
- elseif substring(cptk,cptk+1) of cptnt="<":draw Affichage("00010001000100010000010000010000010") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="=":draw Affichage("00000000001111100000111110000000000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt=">":draw Affichage("10000010000010000010001000100010000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="?":draw Affichage("01110100010000100010001000000000100") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="[":draw Affichage("01110010000100001000010000100001110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="]":draw Affichage("01110000100001000010000100001001110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="`":draw Affichage("01000001000001000000000000000000000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="|":draw Affichage("00100001000010000100001000010000100") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt=" ":draw Affichage("00000100010101000100010101000100000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="&":draw Affichage("00000100001100011100110001000000000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="$":draw Affichage("00000000000000100001000010000111111") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="^":draw Affichage("00100010101000100000000000000000000") shifted(decalage);
- fi;
-enddef;
-
-vardef LCD(text nt)(text rep)(expr NB)=
- decahoriz:=0;
- nblignes:=nblignes+1;
- path Ecran;
- Ecran:=(u*(0,-1)--u*(120,-1)--u*(120,7)--u*(0,7)--cycle) shifted(u*(0,-8*(nblignes-1)));
- fill Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
- draw Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
- for k=0 upto length(nt)-1:
- BlocAffichage;
- Test(k,nt);
- endfor;
- for k=1 upto NB:
- nblignes:=nblignes+1;
- Ecran:=(u*(0,-1)--u*(120,-1)--u*(120,7)--u*(0,7)--cycle) shifted(u*(0,-8*(nblignes-1)));
- fill Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
- draw Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
- endfor;
- nblignes:=nblignes+1;
- Ecran:=(u*(0,-1)--u*(120,-1)--u*(120,7)--u*(0,7)--cycle) shifted(u*(0,-8*(nblignes-1)));
- fill Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
- draw Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
- for k=0 upto length(rep)-1:
- BlocAffichage;
- Test(k,rep);
- endfor;
-enddef;
-
-endinput;
Deleted: trunk/Master/texmf-dist/metapost/profcollege/PfC-Calculatriceold.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfC-Calculatriceold.mp 2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfC-Calculatriceold.mp 2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,195 +0,0 @@
-prologues:=3;
-
-path carre[];
-
-u:=0.5mm;
-
-vardef BlocAffichage=
- for k=0 upto 34:
- carre[k]:=(unitsquare scaled u) shifted(u*(k mod 5,5-(k div 5)));
- endfor;
-enddef;
-
-vardef Affichage(expr decomp)=
- save $;
- picture $;
- drawoptions(withpen pensquare scaled0.1);
- $=image(%
- for k=0 upto 34:
- if (substring(k,k+1) of decomp)="1":
- fill carre[k];
- fi;
- endfor;
- );
- drawoptions();
- $
-enddef;
-
-nblignes:=0;
-
-boolean print;
-print:=false;
-
-color CouleurEcran;
-CouleurEcran=(107/255,148/255,107/255);
-
-boolean Math;
-Math=true;
-
-decahoriz:=0;
-
-vardef Test(expr cptk,cptnt)=
- pair decalage;
- if nblignes mod 2=0:
- decalage:=u*((20-length(cptnt)+cptk)*6,-8*(nblignes-1));
- else:
- decalage:=u*(decahoriz,-8*(nblignes-1));
- decahoriz:=decahoriz+6;
- fi;
- if substring(cptk,cptk+1) of cptnt="A":draw Affichage("01110100011000110001111111000110001") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="B":draw Affichage("11110100011000111110100011000111110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="C":draw Affichage("01110100011000010000100001000101110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="D":draw Affichage("11100100101000110001100011001011100") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="E":draw Affichage("11111100001000011111100001000011111") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="F":draw Affichage("11111100001000011111100001000010000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="G":draw Affichage("01110100011000010111100011000101110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="H":draw Affichage("10001100011000111111100011000110001") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="I":draw Affichage("01110001000010000100001000010001110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="J":draw Affichage("00111000100001000010000101001001100") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="K":draw Affichage("10001100101010011000101001001010001") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="L":draw Affichage("10000100001000010000100001000011111") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="M":draw Affichage("10001110111010110101100011000110001") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="N":draw Affichage("10001100011100110101100111000110001") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="O":draw Affichage("01110100011000110001100011000101110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="P":draw Affichage("11110100011000111110100001000010000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="Q":draw Affichage("01110100011000110001101011001001101") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="R":draw Affichage("11110100011000111110101001001010001") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="S":draw Affichage("01111100001000001110000010000111110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="T":draw Affichage("11111001000010000100001000010000100") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="U":draw Affichage("10001100011000110001100011000101110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="V":draw Affichage("10001100011000110001100010101000100") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="W":draw Affichage("10101101011010110101101011010101010") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="X":draw Affichage("10001100010101000100010101000110001") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="Y":draw Affichage("10001100011000101010001000010000100") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="Z":draw Affichage("11111000010001000100010001000011111") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="a":draw Affichage("00000000000111100001011111000101111") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="b":draw Affichage("10000100001011011001100011000111110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="c":draw Affichage("00000000000111010000100001000101110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="d":draw Affichage("00001000010110110011100011000101111") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="e":if Math:
- draw Affichage("00000000000000000001101000100010100") shifted(decalage);
- decalage:=u*(decahoriz-1,-8*(nblignes-1));
- draw Affichage("00000000001001010101101011010110010") shifted(decalage);
- decahoriz:=decahoriz+6;
- else:
- draw Affichage("00000000000111010001111111000001110") shifted(decalage);
- fi;
- elseif substring(cptk,cptk+1) of cptnt="@":draw Affichage("00010001000111010001111111000001110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="f":draw Affichage("00110010010100011100010000100001000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="g":draw Affichage("00000011111000110001011110000101110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="h":draw Affichage("10000100001011011001100011000110001") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="i":draw Affichage("00100000000110000100001000010001110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="j":if Math=true:
- draw Affichage("00011000011110100001000000000000000") shifted(decalage);
- else:
- draw Affichage("00010000000011000010000101001001100") shifted(decalage);
- fi;
- elseif substring(cptk,cptk+1) of cptnt="k":if Math=true:
- draw Affichage("11100001000100011100000000000000000") shifted(decalage);
- else:
- draw Affichage("10000100001001010100110001010010010") shifted(decalage);
- fi;
- elseif substring(cptk,cptk+1) of cptnt="l":if Math=true:
- draw Affichage("11100010000010011100000000000000000") shifted(decalage);
- else:
- draw Affichage("01100001000010000100001000010001110") shifted(decalage);
- fi;
- elseif substring(cptk,cptk+1) of cptnt="m":draw Affichage("00000000001101010101101011000110001") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="n":draw Affichage("00000000001011011001100011000110001") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="o":draw Affichage("00000000000111010001100011000101110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="p":draw Affichage("00000000001111010001111101000010000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="q":if Math=true:
- draw Affichage("00000000001111101010010100101010001") shifted(decalage);
- else:
- draw Affichage("00000000000110110011011110000100001") shifted(decalage);
- fi;
- elseif substring(cptk,cptk+1) of cptnt="r":draw Affichage("00000000001011011001100001000010000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="s":draw Affichage("00000000000111010000011100000111110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="t":draw Affichage("01000010001110001000010000100100110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="u":draw Affichage("00000000001000110001100011001101101") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="v":if Math=true:
- draw Affichage("00111001000010000100101000110000100") shifted(decalage);
- else:
- draw Affichage("00000000001000110001100010111000100") shifted(decalage);
- fi;
- elseif substring(cptk,cptk+1) of cptnt="w":draw Affichage("00000000001010110101101011010101110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="x":draw Affichage("00000000001000101010001000101010001") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="y":draw Affichage("00000000001000110001011110000101110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="z":draw Affichage("00000000001111100010001000100011111") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="0":draw Affichage("01110100011001110101110011000101110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="1":draw Affichage("00100011000010000100001000010001110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="2":draw Affichage("01110100010000100010001000100011111") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="3":draw Affichage("11111000100010000010000011000101110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="4":draw Affichage("00010001100101010010111110001000010") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="5":draw Affichage("11111100001111000001000011000101110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="6":draw Affichage("00110010001000011110100011000101110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="7":draw Affichage("11111000010001000100010000100001000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="8":draw Affichage("01110100011000101110100011000101110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="9":draw Affichage("01110100011000101111000010001001100") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="!":draw Affichage("00100001000010000100000000000000100") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="'":draw Affichage("01100001000100000000000000000000000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="(":draw Affichage("00010001000100001000010000010000010") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt=")":draw Affichage("01000001000001000010000100010001000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="*":draw Affichage("00000001001010101110101010010000000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="+":draw Affichage("00000001000010011111001000010000000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt=",":draw Affichage("00000000000000000000011000010001000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="-":draw Affichage("00000000000000011111000000000000000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt=".":draw Affichage("00000000000000000000000000110001100") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="/":draw Affichage("00000000010001000100010001000000000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt=":":if Math=true:
- draw Affichage("00000000000000000000000000000000000") shifted(decalage);
- else:
- draw Affichage("00000011000110000000011000110000000") shifted(decalage);
- fi;
- elseif substring(cptk,cptk+1) of cptnt=";":if Math=true:
- draw Affichage("00000001000000011111000000010000000") shifted(decalage);
- else:
- draw Affichage("00000011000110000000011000010001000") shifted(decalage);
- fi;
- elseif substring(cptk,cptk+1) of cptnt="<":draw Affichage("00010001000100010000010000010000010") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="=":draw Affichage("00000000001111100000111110000000000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt=">":draw Affichage("10000010000010000010001000100010000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="?":draw Affichage("01110100010000100010001000000000100") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="[":draw Affichage("01110010000100001000010000100001110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="]":draw Affichage("01110000100001000010000100001001110") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="`":draw Affichage("01000001000001000000000000000000000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="|":draw Affichage("00100001000010000100001000010000100") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt=" ":draw Affichage("00000100010101000100010101000100000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="&":draw Affichage("00000100001100011100110001000000000") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="$":draw Affichage("00000000000000100001000010000111111") shifted(decalage);
- elseif substring(cptk,cptk+1) of cptnt="^":draw Affichage("00100010101000100000000000000000000") shifted(decalage);
- fi;
-enddef;
-
-vardef LCD(text nt)(text rep)=
- decahoriz:=0;
- nblignes:=nblignes+1;
- path Ecran;
- Ecran:=(u*(0,-1)--u*(120,-1)--u*(120,7)--u*(0,7)--cycle) shifted(u*(0,-8*(nblignes-1)));
- fill Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
- draw Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
- for k=0 upto length(nt)-1:
- BlocAffichage;
- Test(k,nt);
- endfor;
- nblignes:=nblignes+1;
- Ecran:=(u*(0,-1)--u*(120,-1)--u*(120,7)--u*(0,7)--cycle) shifted(u*(0,-8*(nblignes-1)));
- fill Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
- draw Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
- for k=0 upto length(rep)-1:
- BlocAffichage;
- Test(k,rep);
- endfor;
-enddef;
-
-endinput;
Deleted: trunk/Master/texmf-dist/metapost/profcollege/PfC-Constantes.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfC-Constantes.mp 2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfC-Constantes.mp 2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,20 +0,0 @@
-%Constantes
-u:=1cm;
-v:=(sqrt3)/2;
-pi:=3.141592654;
-e:=2.718281828;
-c:=57.29578; % conversion d'un radian en degres
-color rouge,vert,bleu,jaune,noir,blanc,orange,rose,violet,ciel,cielfonce,orangevif,gris;
-rouge=(1,0,0);
-bleu=(0,0,1);
-noir=(0,0,0);
-blanc=(1,1,1);
-orange=(1,0.5,0);
-violet=blanc-vert;
-rose=(1,0.7,0.7);
-cielfonce=0.9*(0.25,1,1);
-ciel=bleu+vert;
-orangevif=(1,0.25,0.1);
-vert=(0,1,0);
-jaune=rouge+vert;
-gris=0.8*white;
Deleted: trunk/Master/texmf-dist/metapost/profcollege/PfC-Geometrie.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfC-Geometrie.mp 2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfC-Geometrie.mp 2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,1206 +0,0 @@
-%===============================================
-%% PfC-Geometrie
-%% christophe.poulain at melusine.eu.org
-%%===============================================
-%------------------------------------------------
-% Appel fichier
-%------------------------------------------------
-%input PfC-Constantes;
-%------------------------------------------------
-% La figure (debut et fin) JMS/CP
-%------------------------------------------------
-path feuillet;
-numeric _tfig,_nfig;
-_tfig:=5cm;
-_nfig:=0;
-pair coinbg,coinbd,coinhd,coinhg;
-
-string typetrace;
-typetrace="normal";
-
-def feuille(expr xa,ya,xb,yb) =
- feuillet := (xa,ya)--(xa,yb)--(xb,yb)--(xb,ya)--cycle;
- coinbg := (xa,ya);
- coinbd := (xb,ya);
- coinhd := (xb,yb);
- coinhg := (xa,yb);
- %modifie le 29.09.04
- z.so=(xpart(coinbg/1cm),ypart(coinbg/1cm));
- z.ne=(xpart(coinhd/1cm),ypart(coinhd/1cm));
- %fin modification
- extra_endfig := "clip currentpicture to feuillet;" & extra_endfig;
-enddef;
-
-def Figure(expr xa,ya,xb,yb) =
- feuille(xa,ya,xb,yb);
- _tfig:= if (xb-xa)>(yb-ya): xb-xa else: yb-ya fi;
- _tfig:=2*_tfig;
-enddef;
-
-%%-----------------------------------------------
-%% Les marques (JMS)
-%%-----------------------------------------------
-string marque_p;
-marque_p := "non";
-marque_r := 20;
-marque_a := 20;
-marque_s := 5;
-marque_ang := 10;
-m_c := 10 ;%Pour la croix du marquage des points
-
-%------------------------------------------------
-% Les tables
-%------------------------------------------------
-numeric _tn;
-_tn:=0;
-pair _t[];
-color _T[];
-
-%%-----------------------------------------------
-%% Procedures d'affichage
-%%-----------------------------------------------
-def MarquePoint(expr p)=
- if typetrace="3D":
- %JMS
- if marque_p = "plein":
- fill fullcircle scaled (marque_r/5) shifted Projette(p);
- elseif marque_p = "creux":
- fill fullcircle scaled (marque_r/5) shifted (Projette(p)) withcolor white;
- draw fullcircle scaled (marque_r/5) shifted (Projette(p));
- %fin JMS
- elseif marque_p = "croix":
- draw (Projette(p) shifted (-u/10,u/10))--(Projette(p) shifted (u/10,-u/10));
- draw (Projette(p) shifted (-u/10,-u/10))--(Projette(p) shifted (u/10,u/10));
- elseif marque_p = "tiretv":
- draw (Projette(p) shifted (0,u/10))--(Projette(p) shifted(0,-u/10));
- elseif marque_p = "tireth":
- draw (Projette(p) shifted (u/10,0))--(Projette(p) shifted(-u/10,0));
- fi;
- else:
- if marque_p = "plein":
- fill fullcircle scaled (marque_r/5) shifted p;
- elseif marque_p = "creux":
- fill fullcircle scaled (marque_r/5) shifted p withcolor white;
- draw fullcircle scaled (marque_r/5) shifted p;
- elseif marque_p = "croix":
- draw (p shifted (-u/m_c,u/m_c))--(p shifted (u/m_c,-u/m_c));
- draw (p shifted (-u/m_c,-u/m_c))--(p shifted (u/m_c,u/m_c));
- elseif marque_p = "tiretv":
- draw (p shifted (0,u/10))--(p shifted(0,-u/10));
- elseif marque_p = "tireth":
- draw (p shifted (u/10,0))--(p shifted(-u/10,0));
- fi;
- fi;
-enddef;
-
-vardef pointe(text t) =
- for p_ = t: if (pair p_) or (color p_): MarquePoint(p_); fi endfor;
-enddef;
-
-%------------------------------------------------
-% Points
-%------------------------------------------------
-%JMS
-vardef iso(text t) =
- save s,n; numeric n;
- if typetrace="3D":
- color s; s := (0,0,0) ; n := 0;
- for p_ = t: s := s + p_; n := n + 1 ; endfor;
- else:
- pair s; s := (0,0) ; n := 0;
- for p_ = t: s := s + p_; n := n + 1 ; endfor;
- fi;
- if n>0: (1/n)*s fi
-enddef;
-
-vardef milieu(expr AA,BB)=
- save $;
- pair $;
- if typetrace="mainlevee":
- $=point((length segment(AA,BB))*(1/2+(-1+uniformdeviate(2))/10)) of segment(AA,BB)
- else:
- $=iso(AA,BB)
- fi;
- $
-enddef;
-
-vardef CentreCercleI(expr aa,bb,cc)=
- save $,a,c;
- pair $;
- numeric a,c;
- a=(angle(aa-cc)-angle(bb-cc))/2;
- c=(angle(cc-bb)-angle(aa-bb))/2;
- ($-cc) rotated a shifted cc=whatever[aa,cc];
- ($-bb) rotated c shifted bb=whatever[bb,cc];
- $
-enddef;
-
-%------------------------------------------------
-% Cercles
-%------------------------------------------------
-%Cercle connaissant le centre A et le rayon q
-vardef cercle(expr aa, q)=fullcircle scaled (2*q) shifted aa
-enddef;
-%Cercle de centre A et passant par B
-vardef cerclepoint(expr aa,bb)=fullcircle scaled (2*abs(aa-bb)) shifted aa
-enddef;
-%Cercle connaissant le diametre [AB]
-vardef cercledia(expr aa,bb)=cercles(iso(aa,bb),bb)
- %fullcircle scaled (2*abs(1/2[aa,bb]-bb)) shifted (1/2[aa,bb])
-enddef;
-%Cercles complets
-vardef cercles(text t)=
- save Cer;
- save n;
- n:=0;
- for p_=t:
- if pair p_:
- n:=n+1;
- _t[n]:=p_;
- fi
- if numeric p_:
- rayon:=p_;
- fi;
- if color p_:
- n:=n+1;
- _T[n]:=p_;
- fi;
- endfor;
- if typetrace="3D":%centre aa passant par bb dans le plan (ccddee) généralement aa=cc
- path Cer;
- color ptcer[];
- for k=0 step 5 until 360 :
- ptcer[k div 5]-_T[1]=Distance(_T[1],_T[2])*((_T[4]-_T[3])*cosd(k)/Distance(_T[3],_T[4])+(_T[5]-_T[3])*sind(k)/Distance(_T[3],_T[5]));
- endfor;
- Cer=Projette(ptcer0)
- for k=0 step 5 until 360 :
- ..Projette(ptcer[k div 5])
- endfor
- ..cycle;
- else:
- path Cer;
- if n=1 : Cer=fullcircle scaled (2*rayon) shifted _t[1];
- elseif n=2 : Cer=fullcircle scaled (2*abs(_t[1]-_t[2])) shifted _t[1];
- elseif n=3 : Cer=cercles(CentreCercleC(_t[1],_t[2],_t[3]),_t[1]);
- fi
- fi
- Cer
-enddef;
-
-%Point particulier sur le cercle
-vardef pointarc(expr cercla,angle)=
- point(arctime((angle/360)*arclength cercla) of cercla) of cercla
-enddef;
-
-%Arc de cercle AB de centre 0(dans le sens direct) : les points A et B doivent etre sur le cercle.
-vardef arccercle(expr aa,bb,oo)=
- path tempo;
- path arc;
- tempo=fullcircle scaled (2*abs(aa-oo)) shifted oo;
- if (angle(aa-oo)=0) or (angle(aa-oo)>0) :
- if (angle(bb-oo)=0) or (angle(bb-oo)>0):
- if (angle(aa-oo)<angle(bb-oo)):
- arc=subpath(angle(aa-oo)*(length tempo)/360,angle(bb-oo)*(length tempo)/360) of tempo;
- else:
- arc=subpath(angle(aa-oo)*(length tempo)/360,(length tempo)+angle(bb-oo)*(length tempo)/360) of tempo;
- fi;
- elseif (angle(bb-oo)<0):
- arc=subpath(angle(aa-oo)*(length tempo)/360,(length tempo)+angle(bb-oo)*(length tempo)/360) of tempo;
- fi;
- elseif (angle(aa-oo)<0):
- if (angle(bb-oo)=0) or (angle(bb-oo)>0):
- arc=subpath(length tempo+angle(aa-oo)*(length tempo)/360,length tempo+angle(bb-oo)*(length tempo)/360) of tempo;
- elseif (angle(bb-oo)<0):
- if (angle(aa-oo)=angle(bb-oo)) or (angle(aa-oo)<angle(bb-oo)):
- arc=subpath((length tempo)+angle(aa-oo)*(length tempo)/360,(length tempo)+angle(bb-oo)*(length tempo)/360) of tempo;
- else:
- arc=subpath((length tempo)+angle(aa-oo)*(length tempo)/360,2*(length tempo)+angle(bb-oo)*(length tempo)/360) of tempo;
- fi;
- fi;
- fi;
- arc
-enddef;
-
-vardef coupdecompas(expr ab,ac,ad)=arccercle(pointarc(cercles(ab,ac),angle(ac-ab)-ad),pointarc(cercles(ab,ac),angle(ac-ab)+ad),ab)
-enddef;
-
-%------------------------------------------------
-% Procedures de codage
-%------------------------------------------------
-%Codage de l'angle droit de sommet B
-vardef codeperp(expr aa,bb,cc,m)=%normalement m=5
- save codep;
- path codep;
- if typetrace="3D":
- codep=(Projette(bb)+m*unitvector(Projette(aa)-Projette(bb)))--(Projette(bb)+m*unitvector(Projette(aa)-Projette(bb))+m*unitvector(Projette(cc)-Projette(bb)))--(Projette(bb)+m*unitvector(Projette(cc)-Projette(bb)));
- else:
- codep=(bb+m*unitvector(aa-bb))--(bb+m*unitvector(aa-bb)+m*unitvector(cc-bb))--(bb+m*unitvector(cc-bb));
- fi;
- codep
-enddef;
-
-%Codage d'un milieu
-vardef codemil(expr AA,BB, n) =%extremites-angle de codage
- save $,a,b,c,d;
- path $;
- pair a,b,c,d;
- a=1/2[AA,BB];
- b=(a+marque_s*unitvector(BB-AA))-(a-marque_s*unitvector(BB-AA));
- c=b rotated n shifted a;
- d=2[c,a];
- $=c--d;
- $
-enddef;
-%Codage de deux segments egaux
-vardef codesegments(expr aa,bb,cc,dd,n)=%extremites des segments(4)-type de codage
- save $,v,w;
- picture $;
- pair AA,BB,CC,DD;
- $=image(
- if typetrace="3D":
- AA=Projette(aa); BB=Projette(bb); CC=Projette(cc); DD=Projette(dd);
- else:
- AA=aa;BB=bb;CC=cc;DD=dd;
- fi;
- if n=5 :
- draw fullcircle scaled 0.1cm shifted (1/2[AA,BB]);
- draw fullcircle scaled 0.1cm shifted (1/2[CC,DD]);
- elseif n=4 :
- pair v,w;
- v=1/2[AA,BB];
- w=1/2[CC,DD];
- draw codemil(AA,BB,60);
- draw codemil(AA,BB,120);
- draw codemil(CC,DD,60);
- draw codemil(CC,DD,120);
- elseif n=3 :
- draw codemil(AA,BB,60);
- draw codemil(AA,BB,60) shifted (2*unitvector(AA-BB));
- draw codemil(AA,BB,60) shifted (2*unitvector(BB-AA));
- draw codemil(CC,DD,60);
- draw codemil(CC,DD,60) shifted (2*unitvector(CC-DD));
- draw codemil(CC,DD,60) shifted (2*unitvector(DD-CC));
- elseif n=2 :
- draw codemil(AA,BB,60) shifted unitvector(AA-BB);
- draw codemil(AA,BB,60) shifted unitvector(BB-AA);
- draw codemil(CC,DD,60) shifted unitvector(CC-DD);
- draw codemil(CC,DD,60) shifted unitvector(DD-CC);
- elseif n=1 :
- draw codemil(AA,BB,60);
- draw codemil(CC,DD,60);
- fi;
- );
- $
- enddef;
-
-%Codage de plusieurs segments de meme longueur
- vardef Codelongueur(text t)=
- save result;
- picture result;
- pair tt[];
- k:=0;
- for p_=t:
- if pair p_:
- k:=k+1;
- tt[k]=p_;
- elseif color p_:
- k:=k+1;
- tt[k]=Projette(p_);
- elseif numeric p_:
- co:=p_;
- fi;
- endfor;
- result=image(
- if co=5:
- for j=1 upto (k div 2):
- draw fullcircle scaled 0.1cm shifted (1/2[tt[2*j-1],tt[2*j]]);
- endfor;
- elseif co=4:
- for j=1 upto (k div 2):
- draw codemil(tt[2*j-1],tt[2*j],60);
- draw codemil(tt[2*j-1],tt[2*j],120);
- endfor;
- elseif co=3:
- for j=1 upto (k div 2):
- draw codemil(tt[2*j-1],tt[2*j],60);
- draw codemil(tt[2*j-1],tt[2*j],60) shifted (2*unitvector(tt[2*j-1]-tt[2*j]));
- draw codemil(tt[2*j-1],tt[2*j],60) shifted (2*unitvector(tt[2*j]-tt[2*j-1]));
- endfor;
- elseif co=2:
- for j=1 upto (k div 2):
- draw codemil(tt[2*j-1],tt[2*j],60) shifted unitvector(tt[2*j-1]-tt[2*j]);
- draw codemil(tt[2*j-1],tt[2*j],60) shifted unitvector(tt[2*j]-tt[2*j-1]);
- endfor;
- elseif co=1:
- for j=1 upto (k div 2):
- draw codemil(tt[2*j-1],tt[2*j],60);
- endfor;
- fi;
- );
- result
-enddef;
-
-%Codage de l'angle abc non oriente (mais donne dans le sens direct) n fois avec des mesures differentes
-vardef codeangle@#(expr aa,bb,cc,nb,nom)=
- save s,p,$;
- path p;
- picture $;
- $=image(
- trace marqueangle(aa,bb,cc,nb);
- label.@#(nom,w);
- );
- $
-enddef;
-
-vardef Marqueangle(expr aa,bb,mark)=%codage d'un angle forme par les demi-droites aa et bb dans le sens direct avec la marque mark
- save $;
- picture $;
- path conf,rr;
- pair w,tangent;
- numeric t,tt;
- conf=fullcircle scaled (2*marque_a) shifted (aa intersectionpoint bb);
- numeric te;
- te=angle((conf intersectionpoint aa)-(aa intersectionpoint bb));
- rr=(conf intersectionpoint aa){dir(90+angle((conf intersectionpoint aa)-(aa intersectionpoint bb)))}..(conf intersectionpoint bb);
- t=length rr/2;
- w=point(t) of rr;
- tangent=unitvector(direction t of rr);
- $=image(
- trace rr;
- if mark=1:
- trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,90);
- elseif mark=2:
- trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,90) shifted tangent;
- trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,90) shifted(-tangent);
- elseif mark=3:
- trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,90);
- trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,90) shifted(1.5*tangent);
- trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,90) shifted(-1.5*tangent);
- elseif mark=4:
- trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,45);
- trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,-45);
- fi;
- );
- $
-enddef;
-
-vardef marqueangle(expr aa,bb,cc,mark)=%codage d'un angle de sommet bb dans le sens direct par la marque mark.
- save $;
- picture $;
- path conf,rr;
- pair w,tangent;
- numeric t;
- if typetrace="mainlevee":
- conf=fullcircle scaled (2*marque_a) shifted bb;
- rr=(conf intersectionpoint demidroite(bb,aa)){dir(90+angle(aa-bb))}..(conf intersectionpoint demidroite(bb,cc));
- w=rr intersectionpoint droite(bb,CentreCercleI(aa,bb,cc));
- t=length rr/2;
- tangent=unitvector(direction t of rr);
- $=image(
- trace rr;
- if mark=1:
- trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90);
- elseif mark=2:
- trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted tangent;
- trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted(-tangent);
- elseif mark=3:
- trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90);
- trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted(1.marque_s*tangent);
- trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted(-1.marque_s*tangent);
- elseif mark=4:
- trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,45);
- trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,-45);
- fi;
- );
- else:
- rr=arccercle(bb+marque_a*unitvector(aa-bb),bb+marque_a*unitvector(cc-bb),bb);
- w=rr intersectionpoint droite(bb,CentreCercleI(aa,bb,cc));
- t=length rr/2;
- tangent=unitvector(direction t of rr);
- $=image(
- if mark=5:
- drawarrow rr;
- else:
- trace rr;
- fi;
- if mark=1:
- trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90);
- elseif mark=2:
- trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted tangent;
- trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted(-tangent);
- elseif mark=3:
- trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90);
- trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted(1.marque_s*tangent);
- trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted(-1.marque_s*tangent);
- elseif mark=4:
- trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,45);
- trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,-45);
- fi;
- );
- fi;
- $
-enddef;
-
-vardef coloreangle(expr aa,bb,cc)=arccercle(bb+marque_a*unitvector(aa-bb),bb+marque_a*unitvector(cc-bb),bb)--bb--cycle
-enddef;
-
-vardef Codeangle(expr aa,bb,cc,nb,nom)=
- save s,p,$;
- path p;
- picture $;
- $=image(
- trace marqueangle(aa,bb,cc,nb);
- label(nom,w shifted(marque_ang*unitvector(w-bb)));
- );
- $
-enddef;
-
-vardef marquesegment(expr aa,bb)=
- save tr;
- picture tr;
- if typetrace="3D":
- tr=image(%
- typetrace:="normal";
- trace rotation(segment(Projette(aa)-marque_s*unitvector(Projette(bb)-Projette(aa)),Projette(aa)+marque_s*unitvector(Projette(bb)-Projette(aa))),Projette(aa),90);
- trace rotation(segment(Projette(bb)-marque_s*unitvector(Projette(bb)-Projette(aa)),Projette(bb)+marque_s*unitvector(Projette(bb)-Projette(aa))),Projette(bb),90);
- typetrace:="3D";
- );
- else:
- tr=image(%
- trace rotation(segment(aa-marque_s*unitvector(bb-aa),aa+marque_s*unitvector(bb-aa)),aa,90);
- trace rotation(segment(bb-marque_s*unitvector(bb-aa),bb+marque_s*unitvector(bb-aa)),bb,90);
- );
- fi;
- tr
-enddef;
-
-vardef marquedemidroite(expr aa,bb)=
- save tr;
- picture tr;
- tr=image(
- trace rotation(segment(aa-marque_s*unitvector(bb-aa),aa+marque_s*unitvector(bb-aa)),aa,90);
- );
- tr
-enddef;
-
-%------------------------------------------------
-% Transformations
-%------------------------------------------------
-vardef projection(expr m,a,b) =
- save h; pair h;
- h - m = whatever * (b-a) rotated 90;
- h = whatever [a,b];
- if typetrace="mainlevee":
- h:=h shifted((-2+uniformdeviate(4))*unitvector(a-b))
- fi;
- h
-enddef;
-
-vardef homothetie(expr objet,CTR,rapport)=
- ((objet shifted (-CTR)) scaled rapport) shifted CTR
-enddef;
-
-vardef rotation(expr p,c,a)=
- p rotatedaround(c,a)
-enddef;
-
-vardef symetrie(expr x)(text t)=
- save n;
- n:=0;
- for p_=t: if pair p_:
- n:=n+1;
- _t[n]:=p_;
- elseif color p_:
- n:=n+1;
- _T[n]:=p_;
- fi;
- endfor;
- if n=1:
- if typetrace="3D":
- 2[x,_T[1]]
- else:
- rotation(x,_t[1],180)
- fi
- elseif n=2:
- x reflectedabout(_t[1],_t[2])
- elseif n=3:%Par rapport a un plan
- 2[x,ProjectionsurPlan(x,_T[1],_T[2],_T[3])]
- fi
-enddef;
-
-%------------------------------------------------
-% Droites
-%------------------------------------------------
-vardef segment(expr aa,bb)=
- save Seg;
- path Seg;
- if typetrace="mainlevee":
- Seg=aa{dir(angle(bb-aa)+5)}..bb{dir(angle(bb-aa)+5)}
- elseif typetrace="3D":
- Seg=Projette(aa)--Projette(bb)
- else:
- Seg=aa--bb
- fi;
- Seg
-enddef;
-
-vardef droite(expr AA,BB)=
- save Dro;
- path Dro;
- if typetrace="mainlevee":
- Dro=(_tfig/abs(AA-BB))[BB,AA]{dir(angle(BB-AA)+10)}..segment(AA,BB)..(_tfig/abs(AA-BB))[AA,BB]{dir(angle(BB-AA)+10)}
- elseif typetrace="3D":
- Dro=(_tfig/abs(Projette(AA)-Projette(BB)))[Projette(BB),Projette(AA)]--(_tfig/abs(Projette(AA)-Projette(BB)))[Projette(AA),Projette(BB)]
- else:
- Dro=(_tfig/abs(AA-BB))[BB,AA]--(_tfig/abs(AA-BB))[AA,BB]
- fi;
- Dro
-enddef;
-vardef demidroite(expr AA,BB)=
- save Dem;
- path Dem;
- if typetrace="mainlevee":
- Dem=segment(AA,BB)..(_tfig/abs(AA-BB))[AA,BB]{dir(angle(BB-AA)+10)}
- elseif typetrace="3D":
- Dem=Projette(AA)--(_tfig/abs(Projette(AA)-Projette(BB)))[Projette(AA),Projette(BB)]
- else:
- Dem=AA--(_tfig/abs(AA-BB))[AA,BB]
- fi;
- Dem
-enddef;
-
-vardef bissectrice(expr AA,BB,CC)=
- save $;
- path $;
- if typetrace="mainlevee":
- $=rotation(demidroite(BB,CentreCercleI(AA,BB,CC)),BB,-5+uniformdeviate(10))
- else:
- $=demidroite(BB,CentreCercleI(AA,BB,CC))
- fi;
- $
-enddef;
-
-vardef mediatrice(expr AA,BB)=droite(iso(AA,BB),rotation(BB,iso(AA,BB),90))
-enddef;
-%main levee : passer par la perpendiculaire passant par le milieu.
-
-vardef perpendiculaire(expr AA,BB,II)=droite(iso(AA,BB),rotation(BB,iso(AA,BB),90)) shifted (II-iso(AA,BB))
-enddef;
-
-vardef parallele(expr AA,BB,II)=droite(AA,BB) shifted (II-(projection(II,AA,BB)))
-enddef;
-
-%%%%%%%%%%
-%Polygone/Ligne brisée
-%%%%%%%%%
-vardef polygone(text t)=
- pair aaa[];
- j:=0;
- for p_=t: if pair p_:
- j:=j+1;
- aaa[j]=p_;
- elseif color p_:
- j:=j+1;
- aaa[j]=Projette(p_);
- fi;
- endfor;
- aaa[j+1]:=aaa[1];
- save $;
- path $;
- $=aaa1--
- for k=2 upto j:
- aaa[k]--
- endfor
- cycle;
- $
-enddef;
-
-vardef chemin(text t)=
- pair aaa[];
- j:=0;
- for p_=t: if pair p_:
- j:=j+1;
- aaa[j]=p_;
- elseif color p_:
- j:=j+1;
- aaa[j]=Projette(p_);
- fi;
- endfor;
- if typetrace="mainlevee":
- save $;
- picture $;
- $=image(
- for k=1 upto (j-1):
- trace segment(aaa[k],aaa[k+1]);
- endfor;
- );
- else:
- save $;
- path $;
- $=aaa1
- for k=2 upto j:
- --aaa[k]
- endfor;
- fi;
- $
-enddef;
-
-%------------------------------------------------
-%Sucres
-%------------------------------------------------
-vardef hachurage(expr chemin, angle, ecart, trace)=
- save $;
- picture $;
- path support;
- support=((u*(-37,0))--(u*(37,0))) rotated angle;
- if trace=1:
- drawoptions(dashed evenly);
- elseif trace=2:
- drawoptions(dashed dashpattern(on12bp off6bp on3bp off6bp));
- elseif trace=3:
- drawoptions(dashed withdots);
- fi;
- $ = image(
- for j=-200 upto 200:
- if ((support shifted (ecart*j*(u,0))) intersectiontimes chemin)<>(-1,-1):
- draw support shifted (ecart*j*(u,0));
- fi
- endfor;
- );
- clip $ to chemin;
- drawoptions();
- $
-enddef;
-%fleche pour coter un segment [AB] (Jacques Marot)
-vardef cotation(expr aa,bb,ecart,decalage,cote)=
- pair m[] ;
- save $;
- picture $;
- m3=unitvector(bb-aa) rotated 90;
- m1=aa+ecart*m3;
- m2=bb+ecart*m3;
- $=image(
- pickup pencircle scaled 0.2bp;
- drawdblarrow m1--m2 ;
- draw aa--m1 dashed evenly;
- draw bb--m2 dashed evenly;
- label(cote rotated angle(m2-m1),(m1+m2)/2+decalage*m3);
- );
- $
-enddef;
-
-vardef appelation(expr aa,bb,decalage,cote)=
- save $;
- pair m[],AA,BB;
- if color aa:
- AA=Projette(aa);
- else:
- AA=aa;
- fi;
- if color bb:
- BB=Projette(bb);
- else:
- BB=bb;
- fi;
- m3=unitvector(BB-AA) rotated 90;
- picture $;
- $=image(
- label(cote rotated angle(BB-AA),(BB+AA)/2+decalage*m3);
- );
- $
-enddef;
-
-vardef cotationmil(expr aa,bb,ecart,decalage,cote)= %Christophe
- pair m[],AA,BB;
- save $;
- picture cot;
- if color aa:
- AA=Projette(aa)
- else:
- AA=aa
- fi;
- if color bb:
- BB=Projette(bb)
- else:
- BB=bb
- fi;
- m3=unitvector(BB-AA) rotated 90;
- m1=AA+ecart*m3;
- m2=BB+ecart*m3;
- cot=image(
- pickup pencircle scaled 0.2bp;
- drawarrow (1/2[m1,m2]+decalage*unitvector(m1-m2))--m1;
- drawarrow (1/2[m1,m2]-decalage*unitvector(m1-m2))--m2;
- draw AA--m1 dashed evenly;
- draw BB--m2 dashed evenly;
- label(cote rotated angle(m2-m1),(m1+m2)/2);
- );
- cot
-enddef;
-
-%%%%%%%%%%
-%francisation
-%%%%%%%%%
-def trace expr o =
- if path o: draw o else: draw o fi
-enddef;
-def remplis expr o =
- if path o: fill o else: fill o fi
-enddef;
-
-%3D - basé sur donymodule
-color Sommet[];
-
-color Co[];
-Co0=jaune;
-Co1=violet;
-Co2=orange;
-Co3=ciel;
-Co4=vert;
-Co5=bleu;
-Co6=rouge;
-
-string pointilles;
-
-string typerepre;
-typerepre:="proj";
-
-%generalite
-vardef Projette(expr X)=
- pair $;
- Xobs := -redpart(X)*Aux1 + greenpart(X)*Aux3;
- Yobs := -redpart(X)*Aux5 - greenpart(X)*Aux6 + bluepart(X)*Aux4;
- if typerepre="proj":
- Zobs := -redpart(X)*Aux7 - greenpart(X)*Aux8 - bluepart(X)*Aux2 + Rho;
- XProj := DE*Xobs/Zobs;
- YProj := DE*Yobs/Zobs;
- elseif typerepre="persp":
- XProj := DE*Xobs;
- YProj := DE*Yobs;
- fi;
- $=(XProj,YProj);
- $
-enddef;
-
-vardef Initialisation(expr r,t,p,d)=
- Rho:=r;
- Theta:=t;
- Phi:=p;
- DE:=d;
- Aux1:=sind(Theta);
- Aux2:=sind(Phi);
- Aux3:=cosd(Theta);
- Aux4:=cosd(Phi);
- Aux5:=Aux3*Aux2;
- Aux6:=Aux1*Aux2;
- Aux7:=Aux3*Aux4;
- Aux8:=Aux1*Aux4;
- pointilles:="oui";
-enddef;
-
-%vues cachees
-
-vardef Face(text t)=
- j:=0;
- for p_=t :
- if numeric p_:
- a[j]:=p_;
- j:=j+1;
- fi;
- endfor;
- for k=1 upto (j-1):
- Fc[a0*100+(k-1)]:=a[k];
- endfor;
-enddef;
-
-vardef Oeil=(Rho*Aux7,Rho*Aux8,Rho*Aux2)
-enddef;
-
-vardef Vision(expr num)=
- save bb;
- color bb;
- bb=(redpart(Oeil-Sommet[num]),greenpart(Oeil-Sommet[num]),bluepart(Oeil-Sommet[num]));
- bb
-enddef;
-
-vardef Normal(expr vecun,vecde,vectr)=
- save aa;
- color aa;
- P1:=redpart(vecde-vecun);
- P2:=greenpart(vecde-vecun);
- P3:=bluepart(vecde-vecun);
- Q1:=redpart(vectr-vecun);
- Q2:=greenpart(vectr-vecun);
- Q3:=bluepart(vectr-vecun);
- aa=(P2*Q3-Q2*P3,P3*Q1-Q3*P1,P1*Q2-Q1*P2);
- aa
-enddef;
-
-vardef ProduitScalaire(expr wec,mor)=
- redpart(wec)*redpart(mor)+greenpart(wec)*greenpart(mor)+bluepart(wec)*bluepart(mor)
-enddef;
-
-vardef Distance(expr aa,bb)=%Entre deux points
- sqrt((redpart(bb)-redpart(aa))*(redpart(bb)-redpart(aa))+(greenpart(bb)-greenpart(aa))*(greenpart(bb)-greenpart(aa))+(bluepart(bb)-bluepart(aa))*(bluepart(bb)-bluepart(aa)))
-enddef;
-
-vardef Module(expr aa)=%module d'un vecteur
-sqrt((redpart(aa))**2+(greenpart(aa))**2+(bluepart(aa)**2))
-enddef;
-
-color CoulTrace;
-CoulTrace=black;
-
-vardef DessineObjet=
- for l=1 upto NF:
- color cc,dd;
- dd=Vision(Fc[l*100+1]);
- cc=Normal(Sommet[Fc[l*100+1]],Sommet[Fc[l*100+2]],Sommet[Fc[l*100+3]]);
- if (ProduitScalaire(dd,cc)<0):
- if pointilles="oui":
- drawoptions(dashed dashpattern(on3pt off6pt) withcolor CoulTrace);
- trace for k=1 upto Fc[100*l]:
- Projette(Sommet[Fc[100*l+k]])--
- endfor
- cycle;
- fi;
- else:
- trace for k=1 upto Fc[100*l]:
- Projette(Sommet[Fc[100*l+k]])--
- endfor
- cycle withcolor CoulTrace;
- fi;
- drawoptions();
- endfor;
-enddef;
-
-%%Transformations
-
-%Translations
-
-vardef TranslateSommets(expr v)=
- for k=1 upto NbS:
- Sommet[k]:=Sommet[k]+v;
- endfor;
-enddef;
-
-vardef SymetriePlanZ(expr vv)=
- for k=1 upto NbS:
- w:=vv-bluepart(Sommet[k]);
- Sommet[k]:=(redpart(Sommet[k]),greenpart(Sommet[k]),w);
- endfor;
-enddef;
-
-vardef IntersectionDroite(expr aa,bb,cc,dd)=
- save tt;
- color tt;
- tt=whatever[aa,bb];
- tt=whatever[cc,dd];
- tt
-enddef;
-
-%%denis Roegel----------
-vardef Intersectionplandroite(expr aa,bb,cc,dd,ee)=
- save int;
- boolean int;
- color gg,caaa[];
- caaa3=Normal(aa,bb,cc)/Module(Normal(aa,bb,cc));
- caaa1=aa-dd;
- caaa2=ee-dd;
- if ProduitScalaire(caaa2,caaa3)<>0:
- caaa4=caaa2*(ProduitScalaire(caaa1,caaa3)/ProduitScalaire(caaa2,caaa3));
- int:=true;
- else: % the line is parallel to the plane
- int:=false;
- fi;
- int
-enddef;
-
-vardef IntersectionPlanDroite(expr aa,bb,cc,dd,ee)=%plan (aa,bb,cc) droite(dd,ee)
- if Intersectionplandroite(aa,bb,cc,dd,ee):
- gg=dd+caaa4;
- fi;
- gg
-enddef;
-
-vardef ProjectionsurPlan(expr aa,bb,cc,dd)=%Projection du point aa sur le plan (bbccdd)
- save di,vc;
- color va,vb,vc;
- va=Normal(bb,cc,dd)/Module(Normal(bb,cc,dd));
- vb=aa-bb;
- di=-ProduitScalaire(vb,va);
- va:=di*va;
- vb:=vb+va;
- vc=bb+vb;
- vc
-enddef;
-
-vardef Intersectionplanplan(expr AA,BB,CC,DD,EE,FF)=%besoin pour la suite
- color trial[];
- path INTer;
- if Intersectionplandroite(DD,EE,FF,AA,BB):
- trial1=IntersectionPlanDroite(DD,EE,FF,AA,BB);
- else:% there is no intersection or the intersection is the line
- trial1=IntersectionPlanDroite(DD,EE,FF,AA,1/2[BB,CC]);
- fi;
- if Intersectionplandroite(DD,EE,FF,AA,CC):
- trial2=IntersectionPlanDroite(DD,EE,FF,AA,CC);
- else:% there is no intersection or the intersection is the line
- trial2=IntersectionPlanDroite(DD,EE,FF,CC,1/2[BB,AA]);%modif de cp
- fi;
- %INTer=segment(10[trial1,trial2],10[trial2,trial1]);
- INTer=droite(trial1,trial2);
- INTer
-enddef;
-
-vardef IntersectionPlanPlan(expr aa,bb,cc,dd,ee,ff)=
- %a verifier
- save da,db,dc,int,INTER;
- boolean int;
- path INTER;
- da=Module(aa-ProjectionsurPlan(aa,dd,ee,ff));
- %show da;
- db=Module(bb-ProjectionsurPlan(bb,dd,ee,ff));
- %show db;
- dc=Module(cc-ProjectionsurPlan(cc,dd,ee,ff));
- %show dc;
- if (da=db) and (db=dc): % the two planes are parallel
- int:=false;
- else:
- int:=true;
- if (da=db):
- INTER=droite(aa,bb);
- elseif (db=dc):
- INTER=droite(bb,cc);
- elseif (dc=da):
- INTER=droite(cc,aa);
- elseif (da>=db) and (da>=dc):
- INTER=Intersectionplanplan(aa,bb,cc,dd,ee,ff);
- elseif (db>=da) and (db>=dc):
- INTER=Intersectionplanplan(bb,cc,aa,dd,ee,ff);
- elseif (dc>=da) and (dc>=db):
- INTER=Intersectionplanplan(cc,aa,bb,dd,ee,ff);
- fi;
- fi;
- INTER
-enddef;
-%%---------------------
-
-%Cube
-numeric arete;
-arete=1;
-
-vardef Cube(text t)=
- picture cub;
- cub=image(
- NbS:=8;
- Sommet1:=(arete,0,0);
- Sommet2:=(arete,arete,0);
- Sommet3:=(0,arete,0);
- Sommet4:=(0,0,0);
- Sommet5:=(0,0,arete);
- Sommet6:=(arete,0,arete);
- Sommet7:=(arete,arete,arete);
- Sommet8:=(0,arete,arete);
-%%Faces
- NF:=6;
- Fc[100]:=4;Fc[101]:=1;Fc[102]:=4;Fc[103]:=3;Fc[104]:=2;
- Fc[200]:=4;Fc[201]:=4;Fc[202]:=5;Fc[203]:=8;Fc[204]:=3;
- Fc[300]:=4;Fc[301]:=1;Fc[302]:=6;Fc[303]:=5;Fc[304]:=4;
- Fc[400]:=4;Fc[401]:=5;Fc[402]:=6;Fc[403]:=7;Fc[404]:=8;
- Fc[500]:=4;Fc[501]:=2;Fc[502]:=3;Fc[503]:=8;Fc[504]:=7;
- Fc[600]:=4;Fc[601]:=1;Fc[602]:=2;Fc[603]:=7;Fc[604]:=6;
- DessineObjet;
- k:=1;
- for p_=t:
- if color p_:
- p_=Sommet[k];
- k:=k+1;
- fi
- endfor;
- );
-cub
-enddef;
-
-vardef cube=
- typetrace:="3D";
- typerepre:="persp";
- Initialisation(1500,30,20,100);
- picture cub;
- cub=image(
- NbS:=8;
- Sommet1:=(arete,0,0);
- Sommet2:=(arete,arete,0);
- Sommet3:=(0,arete,0);
- Sommet4:=(0,0,0);
- Sommet5:=(0,0,arete);
- Sommet6:=(arete,0,arete);
- Sommet7:=(arete,arete,arete);
- Sommet8:=(0,arete,arete);
-%%Faces
- NF:=6;
- Fc[100]:=4;Fc[101]:=1;Fc[102]:=4;Fc[103]:=3;Fc[104]:=2;
- Fc[200]:=4;Fc[201]:=4;Fc[202]:=5;Fc[203]:=8;Fc[204]:=3;
- Fc[300]:=4;Fc[301]:=1;Fc[302]:=6;Fc[303]:=5;Fc[304]:=4;
- Fc[400]:=4;Fc[401]:=5;Fc[402]:=6;Fc[403]:=7;Fc[404]:=8;
- Fc[500]:=4;Fc[501]:=2;Fc[502]:=3;Fc[503]:=8;Fc[504]:=7;
- Fc[600]:=4;Fc[601]:=1;Fc[602]:=2;Fc[603]:=7;Fc[604]:=6;
- DessineObjet;
- );
- cub
-enddef;
-
-%Cube
-vardef Paveh(text t)=
- picture paveh;
- paveh=image(
- NbS:=8;
- Sommet1:=(0.75,0,0);
- Sommet2:=(0.75,1.5,0);
- Sommet3:=(0,1.5,0);
- Sommet4:=(0,0,0);
- Sommet5:=(0,0,1);
- Sommet6:=(0.75,0,1);
- Sommet7:=(0.75,1.5,1);
- Sommet8:=(0,1.5,1);
-%%Faces
- NF:=6;
- Fc[100]:=4;Fc[101]:=1;Fc[102]:=4;Fc[103]:=3;Fc[104]:=2;
- Fc[200]:=4;Fc[201]:=4;Fc[202]:=5;Fc[203]:=8;Fc[204]:=3;
- Fc[300]:=4;Fc[301]:=1;Fc[302]:=6;Fc[303]:=5;Fc[304]:=4;
- Fc[400]:=4;Fc[401]:=5;Fc[402]:=6;Fc[403]:=7;Fc[404]:=8;
- Fc[500]:=4;Fc[501]:=2;Fc[502]:=3;Fc[503]:=8;Fc[504]:=7;
- Fc[600]:=4;Fc[601]:=1;Fc[602]:=2;Fc[603]:=7;Fc[604]:=6;
- DessineObjet;
- k:=1;
- for p_=t:
- if color p_:
- p_=Sommet[k];
- k:=k+1;
- fi
- endfor;
- );
-paveh
-enddef;
-
-%Cube
-vardef Pavev(text t)=
- picture pavev;
- pavev=image(
- NbS:=8;
- Sommet1:=(1,0,0);
- Sommet2:=(1,0.75,0);
- Sommet3:=(0,0.75,0);
- Sommet4:=(0,0,0);
- Sommet5:=(0,0,1.5);
- Sommet6:=(1,0,1.5);
- Sommet7:=(1,0.75,1.5);
- Sommet8:=(0,0.75,1.5);
-%%Faces
- NF:=6;
- Fc[100]:=4;Fc[101]:=1;Fc[102]:=4;Fc[103]:=3;Fc[104]:=2;
- Fc[200]:=4;Fc[201]:=4;Fc[202]:=5;Fc[203]:=8;Fc[204]:=3;
- Fc[300]:=4;Fc[301]:=1;Fc[302]:=6;Fc[303]:=5;Fc[304]:=4;
- Fc[400]:=4;Fc[401]:=5;Fc[402]:=6;Fc[403]:=7;Fc[404]:=8;
- Fc[500]:=4;Fc[501]:=2;Fc[502]:=3;Fc[503]:=8;Fc[504]:=7;
- Fc[600]:=4;Fc[601]:=1;Fc[602]:=2;Fc[603]:=7;Fc[604]:=6;
- DessineObjet;
- k:=1;
- for p_=t:
- if color p_:
- p_=Sommet[k];
- k:=k+1;
- fi
- endfor;
- );
-pavev
-enddef;
-
-vardef Pave(text t)(expr aa,bb,cc)=
- picture pave;
- pave=image(
- NbS:=8;
- Sommet1:=(aa,0,0);
- Sommet2:=(aa,bb,0);
- Sommet3:=(0,bb,0);
- Sommet4:=(0,0,0);
- Sommet5:=(0,0,cc);
- Sommet6:=(aa,0,cc);
- Sommet7:=(aa,bb,cc);
- Sommet8:=(0,bb,cc);
-%%Faces
- NF:=6;
- Fc[100]:=4;Fc[101]:=4;Fc[102]:=3;Fc[103]:=2;Fc[104]:=1;
- Fc[200]:=4;Fc[201]:=4;Fc[202]:=5;Fc[203]:=8;Fc[204]:=3;
- Fc[300]:=4;Fc[301]:=4;Fc[302]:=1;Fc[303]:=6;Fc[304]:=5;
- Fc[400]:=4;Fc[401]:=5;Fc[402]:=6;Fc[403]:=7;Fc[404]:=8;
- Fc[500]:=4;Fc[501]:=2;Fc[502]:=3;Fc[503]:=8;Fc[504]:=7;
- Fc[600]:=4;Fc[601]:=1;Fc[602]:=2;Fc[603]:=7;Fc[604]:=6;
- DessineObjet;
- k:=1;
- for p_=t:
- if color p_:
- p_=Sommet[k];
- k:=k+1;
- fi
- endfor;
- );
-pave
-enddef;
-
-vardef pave(expr aa,bb,cc)=
- typetrace:="3D";
- typerepre:="persp";
- Initialisation(1500,30,20,100);
- picture PAVE;
- PAVE=image(
- NbS:=8;
- Sommet1:=(aa,0,0);
- Sommet2:=(aa,bb,0);
- Sommet3:=(0,bb,0);
- Sommet4:=(0,0,0);
- Sommet5:=(0,0,cc);
- Sommet6:=(aa,0,cc);
- Sommet7:=(aa,bb,cc);
- Sommet8:=(0,bb,cc);
-%%Faces
- NF:=6;
- Fc[100]:=4;Fc[101]:=4;Fc[102]:=3;Fc[103]:=2;Fc[104]:=1;
- Fc[200]:=4;Fc[201]:=4;Fc[202]:=5;Fc[203]:=8;Fc[204]:=3;
- Fc[300]:=4;Fc[301]:=4;Fc[302]:=1;Fc[303]:=6;Fc[304]:=5;
- Fc[400]:=4;Fc[401]:=5;Fc[402]:=6;Fc[403]:=7;Fc[404]:=8;
- Fc[500]:=4;Fc[501]:=2;Fc[502]:=3;Fc[503]:=8;Fc[504]:=7;
- Fc[600]:=4;Fc[601]:=1;Fc[602]:=2;Fc[603]:=7;Fc[604]:=6;
- DessineObjet;
- );
- PAVE
-enddef;
-
-vardef Tetraedrer(text t)=
- picture tetrar;
- tetrar=image(
- %Sommets
- NbS:=4;
- Sommet1:=(0,0,1);
- Sommet2:=(-0.4714045,-0.8164965,-1/3);
- Sommet3:=(0.942809,0,-1/3);
- Sommet4:=(-0.4714045,0.8164965,-1/3);
- %Faces
- NF:=4;
- Fc[100]:=3;Fc[101]:=1;Fc[102]:=2;Fc[103]:=3;
- Fc[200]:=3;Fc[201]:=1;Fc[202]:=3;Fc[203]:=4;
- Fc[300]:=3;Fc[301]:=1;Fc[302]:=4;Fc[303]:=2;
- Fc[400]:=3;Fc[401]:=2;Fc[402]:=4;Fc[403]:=3;
- DessineObjet;
- k:=1;
- for p_=t:
- if color p_:
- p_=Sommet[k];
- k:=k+1;
- fi
- endfor;
- );
- tetrar
-enddef;
-
-endinput;
Deleted: trunk/Master/texmf-dist/metapost/profcollege/PfC-LaTeX.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfC-LaTeX.mp 2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfC-LaTeX.mp 2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,15 +0,0 @@
-vardef LATEX primary s =
- write "verbatimtex" to "mptextmp.mp";
- write "%&latex" to "mptextmp.mp";
- write "\documentclass[]{article}" to "mptextmp.mp";
- write "\usepackage{ProfCollege}" to "mptextmp.mp";
- write "\usepackage[utf8]{inputenc}" to "mptextmp.mp";
- write "\usepackage[T1]{fontenc}" to "mptextmp.mp";
- write "\usepackage{fourier}" to "mptextmp.mp";
- write "\usepackage[french]{babel}" to "mptextmp.mp";
- write "\begin{document}" to "mptextmp.mp";
- write "etex" to "mptextmp.mp";
- write "btex "&s&" etex" to "mptextmp.mp";
- write EOF to "mptextmp.mp";
- scantokens "input mptextmp"
-enddef;
Deleted: trunk/Master/texmf-dist/metapost/profcollege/PfC-Scratch-pdf.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfC-Scratch-pdf.mp 2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfC-Scratch-pdf.mp 2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,3378 +0,0 @@
-%%%%% epaisseur de tracés %%%%%%%%
-numeric eppen;
-eppen=0.25;
-
-pickup pencircle scaled eppen;
-defaultpen := savepen;
-
-%points pour placer les différents éléments
-pair _coinprec;%coinbasgauche de la boite précédente
-pair _coincom;%coinbasdroite de la boite afin d'y mettre des commentaires
-pair _coinnum;%milieu côté gauche pour placer la numérotation des lignes
-
-%paramètres
-numeric Nblignes; Nblignes:=1;
-pair DebutListe; DebutListe=(0,0);
-boolean NumeroteLignes; NumeroteLignes=false;
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% couleurs
-color CoulLignes; CoulLignes:=black;
-color ColBloc; % alias des couleurs de bloc
-
-vardef LATEXSCRATCH primary s =
- write "verbatimtex" to "mptextmp.mp";
- write "%&latex" to "mptextmp.mp";
- write "\documentclass[12pt]{article}" to "mptextmp.mp";
- write "\usepackage{ProfCollege}" to "mptextmp.mp";
- write "\usepackage[utf8]{inputenc}" to "mptextmp.mp";
- write "\usepackage[T1]{fontenc}" to "mptextmp.mp";
- write "\usepackage[sfdefault,lf]{carlito}" to "mptextmp.mp";
- write "\usepackage{pifont}" to "mptextmp.mp";
-% write "\usepackage[french]{babel}" to "mptextmp.mp";
-% write "\usepackage[autolanguage]{numprint}" to "mptextmp.mp";
-% write "\usepackage{amssymb}" to "mptextmp.mp";
-% write "\usepackage{amsmath}" to "mptextmp.mp";
-% write "\usepackage{mathrsfs}" to "mptextmp.mp";
-% write "\usepackage{xcolor}" to "mptextmp.mp";
-% write "\usepackage{calc}" to "mptextmp.mp";
-% write "\newlength{\longbarreheight}" to "mptextmp.mp";
-% write "\setlength{\longbarreheight}{2.1ex+3pt}" to "mptextmp.mp";
-% write "\newlength{\longbarredepth}" to "mptextmp.mp";
-% write "\setlength{\longbarredepth}{0.9ex+3pt}" to "mptextmp.mp";
-% write "\def\longbarre{\vrule height\longbarreheight depth\longbarredepth width0pt}" to "mptextmp.mp";
-% write "\usepackage{graphicx}" to "mptextmp.mp";
-% write "\def\barre{\vrule height2.1ex depth.9ex width0pt}" to "mptextmp.mp";
-% write "\def\demibarre{\vrule height1.4ex depth.6ex width0pt}" to "mptextmp.mp";
- write "\begin{document}" to "mptextmp.mp";
- write "etex" to "mptextmp.mp";
- write "btex "&s&" etex" to "mptextmp.mp";
- write EOF to "mptextmp.mp";
- scantokens "input mptextmp"
-enddef;
-
-
-%Version3
-color BleuMouvTrois,dBleuMouvTrois,VioletAppTrois,dVioletAppTrois,OrangeConTrois,OrangeTrois,OrangeListTrois,SonTrois,DSonTrois,EvenementTrois,CapteurTrois,StyloTrois,BlocTrois,BlocDefTrois,BlocDefLigneTrois,MessageTrois,ControleTrois,CapFonceTrois,CloneTrois,FondSonTrois,OvalStyloTrois,FondOvalOp;
-BleuMouvTrois=(76/255,151/255,255/255);
-dBleuMouvTrois=(66/255,128/255,215/255);
-VioletAppTrois=(153/255,102/255,255/255);
-dVioletAppTrois=(133/255,92/255,214/255);
-OrangeConTrois=(255/255,171/255,25/255);
-OrangeTrois=(255/255,140/255,26/255);
-OrangeListTrois=(255/255,102/255,26/255);
-SonTrois=(207/255,99/255,207/255);
-DSonTrois=(201/255,79/255,201/255);
-FondSonTrois=(15/255,189/255,140/255);
-EvenementTrois=(255/255,191/255,0);
-MessageTrois=(230/255,172/255,0);
-CapteurTrois=(92/255,177/255,214/255);
-CapFonceTrois=(71/255,168/255,209/255);
-StyloTrois=(15/255,189/255,140/255);
-OvalStyloTrois=(13/255,165/255,122/255);
-BlocTrois=(255/255,102/255,128/255);
-BlocDefTrois=(255/255,77/255,106/255);
-BlocDefLigneTrois=(255/255,51/255,85/255);
-ControleTrois=(255/255,171/255,25/255);
-CloneTrois=(236/255,156/255,19/255);
-FondOvalOp=(89/255,192/255,89/255);
-
-vardef FondOvalAppMenu=
- save $; color $;
- $=dVioletAppTrois;
- $
-enddef;
-
-%%%%Alias
-def Place expr o =
- if path o: draw o else: draw o fi
-enddef;
-
-%impression
-boolean print;
-print=false;
-
-numeric coefprint;
-coefprint:=0.95;
-
-%texte ou symbole droite gauche
-boolean symbole;
-symbole=true;
-
-%divers
-numeric eb;%ecart boite-texte
-eb:=3pt;
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Création des boites
-ecrt:=eb/2;%largeur de la bordure de départ des boites Box, OValBox...
-
-vardef Box(text t)=
- save $; path $;
- picture ox;
- ox=image(
- if string t:
- string demitt;
- demitt=t&"\barre";
- label(LATEXSCRATCH(demitt),(0,0));
- else:
- draw t;
- fi;
- );
- $=(llcorner ox+(0,-ecrt))--(lrcorner ox+(0,-ecrt))--(urcorner ox+(0,ecrt))--(ulcorner ox+(0,ecrt))--cycle;
- $
-enddef;
-
-vardef RecBox(text t)=
- save $; path $; path xo;
- if string t:
- string demit;
- demit=t&"\demibarre";
- xo=Box(demit);%on crée la boite contenant le texte
- else:
- xo=Box(t);
- fi;
- $=(llcorner xo+(-eb,eb)){dir-90}..{dir0}(llcorner xo)--(lrcorner xo){dir0}..{dir90}(lrcorner xo+(eb,eb))--(urcorner xo+(eb,-eb)){dir90}..{dir180}(urcorner xo)--(ulcorner xo){dir180}..{dir-90}(ulcorner xo+(-eb,-eb))--cycle;
- $
-enddef;
-
-%%%%%%%%%%%%%%
-
-%%%%%%% Boites Ovales %%%%%%%%
-vardef OvalBox(text t)=
- save $; path $; path xo;
- if string t:
- string demit;
- demit=t&"\barre";
- xo=Box(demit);%on crée la boite contenant le texte
- else:
- xo=Box(t);
- fi;
- $=(llcorner xo+(eb,0))--(lrcorner xo-(eb,0)){dir0}..{dir180}(urcorner xo+(-eb,0))--(ulcorner xo+(eb,0)){dir180}..{dir0}cycle;%on "arrondit" la boite
- $
-enddef;
-
-vardef OvalVar(expr ar)=
- save Ovar; picture Ovar;
- save TAvar; path TAvar;
- string TTv;
- TTv=ar&"\barre";
- TAvar=OvalBox(TTv);
- Ovar=image(
- fill TAvar if print=false : withcolor OrangeTrois else : withcolor white fi;
- draw TAvar if print=false : withcolor coefprint*white fi;
- label(LATEXSCRATCH("\barre\bfseries "&ar),(0,0)) if print=false : withcolor white fi;
- );
- Ovar:=Ovar shifted(-center Ovar);
- Ovar
-enddef;
-
-vardef OvalList(text listelist)=
- save CList; picture CList;
- path TAlist; picture LOCMt;
- LOCMt=ColleBoxNew(listelist);
- TAlist=OvalBox(LOCMt);
- CList=image(
- fill TAlist if print=false : withcolor OrangeListTrois else : withcolor white fi;
- draw LOCMt;
- draw TAlist if print=false : withcolor coefprint*white fi;
- );
- CList:=CList shifted(-center CList);
- CList
-enddef;
-
-vardef OvalBloc(expr ar)=
- save $; picture $;
- path tabloc;
- tabloc=OvalBox(ar);
- $=image(
- fill tabloc if print=false : withcolor BlocTrois else: withcolor white fi;
- draw tabloc if print=true : withcolor black else: withcolor BlocDefLigneTrois fi;
- label(LATEXSCRATCH("\bfseries\barre "&ar),(0,0)) if print=false : withcolor blanc fi;
- );
- $
-enddef;
-
-vardef OvalMiniBox(text t)=
- save $; path $; path xo;
- if string t:
- string demit;
- demit=t&"\demibarre";
- xo=Box(demit);%on crée la boite contenant le texte
- else:
- xo=Box(t);
- fi;
- $=(llcorner xo+(eb/2,0))--(lrcorner xo-(eb/2,0)){dir0}..{dir180}(urcorner xo+(-eb/2,0))--(ulcorner xo+(eb/2,0)){dir180}..{dir0}cycle;%on "arrondit" la boite
- $
-enddef;
-
-vardef DiamondBox(text t)=
- save $; path $; path xo;
- xo=Box(t);%on crée la boite contenant le texte
- $=(llcorner xo-(eb,0))--(lrcorner xo+(eb,0))--(1/2[lrcorner xo,urcorner xo]+(4eb,0))--(urcorner xo+(eb,0))--(ulcorner xo-(eb,0))--(1/2[llcorner xo,ulcorner xo]+(-4eb,0))--cycle;
- $
-enddef;
-
-vardef OvalNb(expr ar)=
- save Onb; picture Onb;
- path tanb;
- tanb=OvalBox(ar);
- Onb=image(
- fill tanb withcolor white;
- draw tanb if print=false : withcolor coefprint*white fi;
- label(LATEXSCRATCH("\barre "&ar),(0,0));
- );
- Onb
-enddef;
-
-vardef OvalText(expr ar)=
- save $; save TA;
- picture $;
- path TA;
- TA=OvalBox(ar);
- $=image(%
- fill TA withcolor white;
- draw TA if print=false : withcolor coefprint*white fi;
- label(LATEXSCRATCH("\barre "&ar),(0,0));
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef OvalOp(text listeop)=
- save Oop; picture Oop;
- save TAao; path TAao;
- save LOPop; picture LOPop;
- LOPop=ColleBoxNew(listeop);
- TAao=OvalBox(LOPop);
- Oop=image(
- fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LOPop;
- draw TAao if print=false : withcolor coefprint*white fi;
- );
- Oop:=Oop shifted(-center Oop);
- Oop
-enddef;
-
-vardef OvalApp(text listop)=
- save $; picture $;
- save ta; path ta;
- save TTap; picture TTap;
- TTap=ColleBoxNew(listop);
- ta=OvalBox(TTap);
- $=image(
- fill ta if print=false : withcolor VioletAppTrois else: withcolor white fi;
- draw ta if print=false : withcolor coefprint*white fi;
- draw TTap;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef OvalSon(text listop)=
- save $; picture $;
- save ta; path ta;
- save TTap; picture TTap;
- TTap=ColleBoxNew(listop);
- ta=OvalBox(TTap);
- $=image(
- fill ta if print=false : withcolor SonTrois else: withcolor white fi;
- draw ta if print=false : withcolor coefprint*white fi;
- draw TTap;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef OvalMusique(expr ar)=
- save $; save TA;
- picture $;
- if string ar:
- picture TT;
- TT=ColleBoxNew(DoubleNote,"tempo");
- path TA;
- TA=OvalBox(TT);
- $=image(
- fill TA if print : withcolor white else : withcolor StyloTrois fi;
- draw TT if print=true : withcolor coefprint*white fi;
- );
- else:
- message("La commande --OvalStylo-- n'accepte qu'un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef OvalMouv(expr ar)=
- save $; picture $;
- path ta; string TTm;
- TTm=ar&"\longbarre";
- ta=OvalBox(TTm);
- $=image(
- fill ta if print=false : withcolor BleuMouvTrois else: withcolor white fi;
- draw ta if print=false : withcolor coefprint*white fi;
- label(LATEXSCRATCH("\longbarre "&ar),center ta) if print=false : withcolor blanc fi;
- );
- $
-enddef;
-
-vardef OvalMenuCap(expr art)=OvalCapMenu(art) enddef;
-
-vardef OvalCapMenu(expr ar)=
- save $; picture $;
- string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
- fi;
- path TAMC;
- TAMC=OvalBox(TTm);
- $=image(
- fill TAMC if print : withcolor white else : withcolor CapFonceTrois fi;
- draw TAMC if print=false : withcolor coefprint*white fi;
- label(LATEXSCRATCH(TTm),center TAMC);
- );
- $
-enddef;
-
-vardef OvalCap(text listecap)=
- save Cap; picture Cap;
- save TAcap; path TAcap;
- save LOCMcap; picture LOCMcap;
- LOCMcap=ColleBoxNew(listecap);
- TAcap=OvalBox(LOCMcap);
- Cap=image(
- fill TAcap if print=false : withcolor CapteurTrois else : withcolor white fi;
- draw LOCMcap;
- draw TAcap if print=false : withcolor coefprint*white fi;
- );
- Cap:=Cap shifted(-center Cap);
- Cap
-enddef;
-
-vardef OvalMouvMenu(expr ar)=
- save $; picture $;
- path ta; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else:
- "\color{white}"&ar&"\hbox to1em{\barre}\color{black}\blacktriangledown"
- fi;
- ta=OvalBox(TTm);
- $=image(
- fill ta if print=false : withcolor dBleuMouvTrois else: withcolor white fi;
- draw ta if print=false : withcolor coefprint*white fi;
- label(LATEXSCRATCH(TTm),center ta);
- );
- $
-enddef;
-
-vardef OvalAppMenu(expr ar)=
- save $; picture $;
- path ta; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
- fi;
- ta=OvalBox(TTm);
- $=image(
- fill ta if print=false : withcolor FondOvalAppMenu else: withcolor white fi;
- draw ta if print=false : withcolor coefprint*white fi;
- label(LATEXSCRATCH(TTm),center ta);
- );
- $
-enddef;
-
-vardef OvalSonMenu(expr art)=OvalMenuSon(art) enddef;
-
-vardef OvalMenuSon(expr ar)=
- save $; save TA;
- picture $;
- string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
- fi;
- path TA;
- TA=OvalBox(TTm);
- $=image(%
- fill TA if print : withcolor white else : withcolor DSonTrois fi;
- draw TA if print=false : withcolor coefprint*white fi;
- label(LATEXSCRATCH(TTm),center TA);
- );
- $
-enddef;
-
-vardef OvalMenuControle(expr ar)=
- save $; save TA;
- picture $;
- string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
- fi;
- path TA;
- TA=OvalBox(TTm);
- $=image(
- fill TA if print : withcolor white else : withcolor CloneTrois fi;
- draw TA if print=false : withcolor coefprint*white fi;
- label(LATEXSCRATCH(TTm), center TA);
- );
- $
-enddef;
-
-vardef OvalStylo(expr ar)=
- save $; save TA;
- picture $;
- string TT,TTI;
- if string ar:
- if print:
- TT=ar&"\hbox to1em{\barre}\blacktriangledown"
- else:
- TT=ar&"\hbox to1em{\barre}\color{white}\blacktriangledown"
- fi;
- TTI=ar&"\hbox to1em{\barre}\phantom{\blacktriangledown}";
- path TA;
- TA=OvalBox(TT);
- $=image(
- fill TA if print : withcolor white else : withcolor OvalStyloTrois fi;
- draw TA if print=false : withcolor coefprint*white fi;
- label(LATEXSCRATCH(TT),(0,0)) if print=false : withcolor white fi;
- );
- else:
- message("La commande --OvalStylo-- n'accepte qu'un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef OvalCouleur(expr redcc,greencc,bluecc)=
- save $; picture $;
- string TTv;
- path tacol;
- TTv="\phantom{10}\barre";
- tacol=OvalBox(TTv);
- $=image(
- fill tacol withcolor (redcc,greencc,bluecc);
- draw tacol;
- );
- $:=$ shifted(-center tacol);
- $
-enddef;
-
-vardef OvalMenuEvenement(expr ar)=
- save $; save TA;
- picture $;
- string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
- fi;
- path TA;
- TA=OvalBox(TTm);
- $=image(
- fill TA if print : withcolor white else : withcolor MessageTrois fi;
- draw TA if print=false : withcolor coefprint*white fi;
- label(LATEXSCRATCH(TTm), center TA);
- );
- $
-enddef;
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Rectangles
-vardef RecMouvMenu(expr ar)=
- save $; picture $;
- path ta; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown"
- fi;
- ta=RecBox(TTm);
- $=image(
- fill ta if print=false : withcolor BleuMouvTrois else: withcolor white fi;
- draw ta if print=false : withcolor coefprint*white fi;
- label(LATEXSCRATCH(TTm),center ta);
- );
- $
-enddef;
-
-vardef RecMenuApp(expr ar)=
- save $; picture $;
- save ta; path ta; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
- fi;
- ta=RecBox(TTm);
- $=image(
- fill ta if print=false : withcolor VioletAppTrois else: withcolor white fi;
- draw ta if print=false : withcolor coefprint*white fi;
- label(LATEXSCRATCH(TTm),center ta);
- );
- $
-enddef;
-
-vardef RecMenuOp(expr ar)=
- save $; save TA;
- picture $; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
- fi;
- path TA;
- TA=RecBox(TTm);
- $=image(
- fill TA if print : withcolor white else : withcolor FondOvalOp fi;
- draw TA if print=false : withcolor coefprint*white fi;
- label(LATEXSCRATCH(TTm), center TA);
- );
- $
-enddef;
-
-vardef RecMenuSon(expr ar)=
- save $; save TA;
- picture $; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown" fi;
- path TA;
- TA=RecBox(TTm);
- $=image(
- fill TA if print : withcolor white else : withcolor SonTrois fi;
- draw TA if print=false : withcolor coefprint*white fi;
- label(LATEXSCRATCH(TTm), center TA);
- );
- $
-enddef;
-
-vardef RecEvenementMenu(expr ar)=
- save $; picture $;
- path ta; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
- fi;
- ta=RecBox(TTm);
- $=image(
- fill ta if print=false : withcolor EvenementTrois else: withcolor white fi;
- draw ta if print=false : withcolor coefprint*white fi;
- label(LATEXSCRATCH(TTm),center ta);
- );
- $
-enddef;
-
-vardef RecMenuCap(expr ar)=
- save $; picture $;
- path ta; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
- fi;
- ta=RecBox(TTm);
- $=image(
- fill ta if print=false : withcolor CapteurTrois else: withcolor white fi;
- draw ta if print=false : withcolor coefprint*white fi;
- label(LATEXSCRATCH(TTm),center ta);
- );
- $
-enddef;
-
-vardef RecMenuVar(expr ar)=
- save $; save TA;
- picture $; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
- fi;
- path TA;
- TA=RecBox(TTm);
- $=image(
- fill TA if print : withcolor white else : withcolor OrangeTrois fi;
- draw TA if print=false : withcolor coefprint*white fi;
- label(LATEXSCRATCH(TTm), center TA);
- );
- $
-enddef;
-
-vardef RecMenuList(expr ar)=
- save $; save TA;
- picture $; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
- fi;
- path TA;
- TA=RecBox(TTm);
- $=image(
- fill TA if print : withcolor white else : withcolor OrangeListTrois fi;
- draw TA if print=false : withcolor coefprint*white fi;
- label(LATEXSCRATCH(TTm), center TA);
- );
- $
-enddef;
-
-%%%%%%% Affichage Complet %%%%%%%%%%%%%
-vardef PuzzleBox(text t)=
- save $; path $; path xo;
- xo=Box(t);%on crée la boite contenant le texte
- $=(llcorner xo+(-eb,0)){dir-90}..{dir0}(llcorner xo+(0,-eb))--
- (llcorner xo+(0.375cm,0)+(-eb,-eb)){dir0}..
- {dir0}(llcorner xo+(0.375cm,0)+(0,-2eb))--
- (llcorner xo+(0.625cm,0)+(0,-2eb)){dir0}..
- {dir0}(llcorner xo+(0.625cm,0)+(eb,-eb))--
- (lrcorner xo+(0,-eb)){dir0}..{dir90}(lrcorner xo+(eb,0))--(urcorner xo+(eb,0)){dir90}..{dir-180}(urcorner xo+(0,eb))--
- (ulcorner xo+(0.625cm,0)+(eb,eb)){dir180}..
- {dir180}(ulcorner xo+(0.625cm,0))--
- (ulcorner xo+(0.375cm,0)){dir180}..
- {dir180}(ulcorner xo+(0.375cm,0)+(-eb,eb))--
- (ulcorner xo+(0,eb)){dir-180}..{dir-90}(ulcorner xo+(-eb,0))--cycle;
- $
-enddef;
-
-vardef BlocPuzzle(text nombloc)=
- save Bpuzzle; picture Bpuzzle;
- path TABp; picture LOCMp;
- LOCMp=ColleBoxNew(nombloc);
- TABp=PuzzleBox(LOCMp);
- Bpuzzle=image(
- fill TABp if print=false : withcolor BlocDefTrois else : withcolor white fi;
- draw LOCMp;
- draw TABp if print=true : withcolor black else: withcolor BlocDefLigneTrois fi;
- );
- Bpuzzle:=Bpuzzle shifted(-center Bpuzzle+(0,-eb/2));
- Bpuzzle
-enddef;
-
-vardef ColleBoxNew(text t)=%Pour coller plusieurs boites
- save Colle; picture Colle;
- Colle=nullpicture;
- numeric nbcolle; nbcolle:=0;
- save NBCOLLE; path NBCOLLE;
- for p_ = t:
- nbcolle:=nbcolle+1;
- endfor;
- picture HOLD; HOLD:=nullpicture;
- if unknown LONG: LONG:=0 fi;
- if nbcolle=1:%On dessine
- for p_ = t:
- if string p_:
- NBCOLLE:=Box(p_);
- HOLD:=image(
- label(LATEXSCRATCH("\sffamily\bfseries\longbarre "&p_),(0,0)) if print=false : withcolor white fi;%->ok
- );
- HOLD:=(HOLD shifted ((xpart((center HOLD)-(llcorner HOLD))+LONG,0)));
- else:
- HOLD:=(p_ shifted ((xpart((center p_)-(llcorner p_))+LONG,0)));
- fi;
- endfor;
- addto Colle also HOLD;
- LONG:=LONG+abs(lrcorner Colle - llcorner Colle)+eb;
- else:%il faut coller les boites une à une
- for p_ = t:
- addto Colle also (ColleBoxNew(p_));
- endfor;
- fi;
- Colle
-enddef;
-
-vardef CADRE(expr texti)=
- save $; path $;
- $=(llcorner texti+(-eb,0)){dir-90}..{dir0}(llcorner texti+(0,-eb))--
- (llcorner texti+(0.375cm,0)+(-eb,-eb)){dir0}..
- {dir0}(llcorner texti+(0.375cm,0)+(0,-2eb))--
- (llcorner texti+(0.625cm,0)+(0,-2eb)){dir0}..
- {dir0}(llcorner texti+(0.625cm,0)+(eb,-eb))--
- (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir-180}(urcorner texti+(0,eb))--
- (ulcorner texti+(0.625cm,0)+(eb,eb)){dir180}..
- {dir180}(ulcorner texti+(0.625cm,0))--
- (ulcorner texti+(0.375cm,0)){dir180}..
- {dir180}(ulcorner texti+(0.375cm,0)+(-eb,eb))--
- (ulcorner texti+(0,eb)){dir-180}..{dir-90}(ulcorner texti+(-eb,0))--cycle;
- $
-enddef;
-
-vardef AFFI(expr texta)=
- path cadre;
- cadre=CADRE(texta);
- picture TEXT;
- TEXT=image(%
- fill cadre withcolor if print=true :coefprint*white else: if unknown ColBloc : white else : ColBloc fi; fi;
- draw texta;
- draw cadre withcolor CoulLignes;
- );
- TEXT
-enddef;
-
-vardef Affichage(expr textu)=
- save $;
- picture $;
- $=AFFI(textu);
- $:=$ shifted (if unknown _coinprec:(0,0) else :_coinprec fi - (ulcorner $));
-_coinprec:=(llcorner $)+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
- label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
- Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-
-%Pour les blocs de type contrôle
-vardef CADRECONTROLE(expr texti)=
- save $; path $;
- path tracecadre;
- $=(llcorner texti+(-eb,-eb))--%(llcorner texti+(0,-eb))--
- (llcorner texti+(0.875cm,0)+(-eb,-eb)){dir0}..
- {dir0}(llcorner texti+(0.875cm,0)+(0,-2eb))--
- (llcorner texti+(1.125cm,0)+(0,-2eb)){dir0}..
- {dir0}(llcorner texti+(1.125cm,0)+(eb,-eb))--
- (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir180}(urcorner texti+(0,eb))--
- (ulcorner texti+(0.625cm,0)+(eb,eb)){dir180}..
- {dir180}(ulcorner texti+(0.625cm,0))--
- (ulcorner texti+(0.375cm,0)){dir180}..
- {dir180}(ulcorner texti+(0.375cm,0)+(-eb,eb))--
- (ulcorner texti+(0,eb)){dir180}..{dir-90}(ulcorner texti+(-eb,0))--cycle;
- tracecadre=(llcorner texti+(0.5cm,0)+(0,-eb))--(llcorner texti+(0.875cm,0)+(-eb,-eb)){dir0}..
- {dir0}(llcorner texti+(0.875cm,0)+(0,-2eb))--
- (llcorner texti+(1.125cm,0)+(0,-2eb)){dir0}..
- {dir0}(llcorner texti+(1.125cm,0)+(eb,-eb))--
- (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir180}(urcorner texti+(0,eb))--
- (ulcorner texti+(0.625cm,0)+(eb,eb)){dir180}..
- {dir180}(ulcorner texti+(0.625cm,0))--
- (ulcorner texti+(0.375cm,0)){dir180}..
- {dir180}(ulcorner texti+(0.375cm,0)+(-eb,eb))--
- (ulcorner texti+(0,eb)){dir180}..{dir-90}(ulcorner texti+(-eb,0))--
- (llcorner texti+(-eb,-eb));
- $
-enddef;
-
-vardef AFFICONTROLE(expr texta)=
- path cadre;
- cadre=CADRECONTROLE(texta);
- picture TEXT;
- TEXT=image(
- fill cadre withcolor if print=true :coefprint*white else: if unknown ColBloc : white else : ColBloc fi; fi;
- draw texta;
- draw tracecadre withcolor CoulLignes;
- );
- TEXT
-enddef;
-
-vardef AffichageControle(expr textu)=
- save $;
- picture $;
- $=AFFICONTROLE(textu);
- $:=$ shifted (if unknown _coinprec:(0,0) else :_coinprec fi - (ulcorner $));
-_coinprec:=llcorner $+(0.5cm,0);
-_coinprec:=_coinprec+(0,eb);
-coindebutbloc[numblocrep]:=(llcorner $)+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
- label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
- Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-
-vardef CADREED(expr texti)=
- save $; path $;
- $=(llcorner texti+(-eb,0)){dir-90}..{dir0}(llcorner texti+(0,-eb))--
- (llcorner texti+(0.375cm,0)+(-eb,-eb)){dir0}..
- {dir0}(llcorner texti+(0.375cm,0)+(0,-2eb))--
- (llcorner texti+(0.625cm,0)+(0,-2eb)){dir0}..
- {dir0}(llcorner texti+(0.625cm,0)+(eb,-eb))--
- (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir-180}(urcorner texti+(0,eb))--
- 1/2[ulcorner texti+(-eb,eb),urcorner texti+(eb,eb)]{dir150}..{dir-150}(ulcorner texti+(-eb,eb))--cycle;
- $
-enddef;
-
-vardef AFFIED(expr texta)=
- path cadre;
- cadre=CADREED(texta);
- picture TEXT;
- TEXT=image(
- fill cadre withcolor if print=true :coefprint*white else: if unknown ColBloc : white else : ColBloc fi; fi;
- draw texta;
- draw cadre withcolor CoulLignes;
- );
- TEXT
-enddef;
-
-vardef AffichageED(expr textu)=
- save $;
- picture $;
- $=AFFIED(textu);
- $:=$ shifted (if unknown _coinprec:(0,0) else :_coinprec fi - (ulcorner $));
-_coinprec:=llcorner $;
-_coinprec:=_coinprec+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
- label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
- Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-
-%%% section Mouvement %%%%%%%%%%
-vardef Avancer(expr nbpas)=
- LONG:=0;
- save $;
- picture $, texto;
- if string nbpas:
- texto=ColleBoxNew("avancer de",OvalNb(nbpas),"pas");
- else:
- texto=ColleBoxNew("avancer de",nbpas,"pas");
- fi;
- ColBloc:=BleuMouvTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef Arcdroite=
- save $;
- picture $;
- $=image(
- path cc;
- cc=fullcircle scaled 10pt;
- drawarrow reverse(subpath(0,0.75*length cc) of cc) withpen pencircle scaled 2bp if print=false: withcolor white fi;
- );
- $
-enddef;
-
-vardef Arcgauche=
- save $;
- picture $;
- $=image(
- path cc;
- cc=fullcircle scaled 10pt;
- drawarrow (subpath(0.75*length cc,1.5*length cc) of cc) withpen pencircle scaled 2bp if print=false: withcolor white fi;
- );
- $
-enddef;
-
-vardef Tournerd(expr nbpas)=
- LONG:=0;
- save $;
- picture $, texto;
- if string nbpas:
- if symbole=true:
- texto=ColleBoxNew("tourner",Arcdroite,"de",OvalNb(nbpas),"degré(s)");
- else:
- texto=ColleBoxNew("tourner à droite de",OvalNb(nbpas),"degré(s)");
- fi;
- else:
- if symbole=true:
- texto=ColleBoxNew("tourner",Arcdroite,"de",nbpas,"degré(s)");
- else:
- texto=ColleBoxNew("tourner à droite de",nbpas,"degré(s)");
- fi;
- fi;
- ColBloc:=BleuMouvTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef Tournerg(expr nbpas)=
- LONG:=0;
- save $;
- picture $, texto;
- if string nbpas:
- if symbole=true:
- texto=ColleBoxNew("tourner",Arcgauche,"de",OvalNb(nbpas),"degré(s)");
- else:
- texto=ColleBoxNew("tourner à gauche de",OvalNb(nbpas),"degré(s)");
- fi;
- else:
- if symbole=true:
- texto=ColleBoxNew("tourner",Arcgauche,"de",nbpas,"degré(s)");
- else:
- texto=ColleBoxNew("tourner à gauche de",nbpas,"degré(s)");
- fi;
- fi;
- ColBloc:=BleuMouvTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef Orienter(expr nbpas)=
- LONG:=0;
- save $;
- picture $, texto;
- if string nbpas:
- texto=ColleBoxNew("s'orienter à",OvalNb(nbpas));
- else:
- texto=ColleBoxNew("s'orienter à",nbpas);
- fi;
- ColBloc:=BleuMouvTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef Orienterdirection(expr nbpas)=
- LONG:=0;
- save $;
- picture $, texto;
- if string nbpas:
- texto=ColleBoxNew("s'orienter vers",OvalMouvMenu(nbpas));
- else:
- texto=ColleBoxNew("s'orienter vers",nbpas);
- fi;
- ColBloc:=BleuMouvTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef OrienterVers(expr nbpass)=Orienterdirection(nbpass) enddef;
-
-vardef Aller(expr xa,ya)=
- LONG:=0;
- save $;
- picture $, texto;
- texto=ColleBoxNew("aller à x:",if string xa:OvalNb(xa) else: xa fi,"y:",if string ya:OvalNb(ya) else: ya fi);
- ColBloc:=BleuMouvTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef Glisser(expr na,xa,ya)=
- LONG:=0;
- save $;
- picture $, texto;
- texto=ColleBoxNew("glisser en",if string na:OvalNb(na) else: na fi,"seconde(s) à x :",if string xa:OvalNb(xa) else: xa fi,"y:",if string ya:OvalNb(ya) else: ya fi);
- ColBloc:=BleuMouvTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef Allera(expr nbpas)=
- LONG:=0;
- save $;
- picture $, texto;
- if string nbpas:
- texto=ColleBoxNew("aller à",OvalMouvMenu(nbpas));
- ColBloc:=BleuMouvTrois;
- $=Affichage(texto);
- else:
- message("");
- message("La commande -- Allera -- n'accepte qu'un type string comme argument.");
- message("");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef Glissera(expr na,xa)=
- LONG:=0;
- save $;
- picture $, texto;
- if string xa:
- texto=ColleBoxNew("glisser en",if string na:OvalNb(na) else: na fi,"seconde(s) à",OvalMouvMenu(xa));
- ColBloc:=BleuMouvTrois;
- $=Affichage(texto);
-else:
- message("");
- message("La commande -- Glissera -- n'accepte qu'un type string comme deuxième argument.");
- message("");
- $=nullpicture;
-fi;
- $
-enddef;
-
-vardef Ajouter(expr nba,xa)=
- LONG:=0;
- save $;
- picture $, texto;
- if string xa:
- texto=ColleBoxNew("ajouter",if string nba:OvalNb(nba) else: nba fi,"à",xa);
- ColBloc:=BleuMouvTrois;
- $=Affichage(texto);
-else:
- message("");
- message("La commande -- Ajouter -- n'accepte qu'un type string comme deuxième argument.");
- message("");
- $=nullpicture;
-fi;
-$
-enddef;
-
-vardef Mettre(expr xa,nba)=
- LONG:=0;
- save $;
- picture $, texto;
- if string xa:
- texto=ColleBoxNew("mettre",xa,"à",if string nba:OvalNb(nba) else: nba fi);
- ColBloc:=BleuMouvTrois;
- $=Affichage(texto);
- else:
- message("");
- message("La commande -- Mettre -- n'accepte qu'un type string comme premier argument.");
- message("");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef Rebondir=
- LONG:=0;
- save $;
- picture $, texto;
- texto=ColleBoxNew("rebondir si le bord est atteint");
- ColBloc:=BleuMouvTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef FixerSensRotation(expr nbpas)=
- LONG:=0;
- save $;
- picture $, texto;
- if string nbpas:
- texto=ColleBoxNew("fixer le sens de rotation",RecMouvMenu(nbpas));%RecMouvMenu(nbpas));
- ColBloc:=BleuMouvTrois;
- $=Affichage(texto);
- else:
- message("La commande --FixerSensRotation-- admet un seul argument de type string");
- $=nullpicture;
- fi;
- $
-enddef;
-
-%%%% fin section Mouvement %%%%%%
-
-%%%%% Section Apparence %%%%%%%%%
-vardef DireT(expr na,xa)=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("dire",if string na:OvalText(na) else: na fi,"pendant",if string xa : OvalNb(xa) else: xa fi,"seconde(s)");
-ColBloc:=VioletAppTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef Dire(expr na)=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("dire",if string na:OvalText(na) else: na fi);
-ColBloc:=VioletAppTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef PenserT(expr na,xa)=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("penser à",if string na:OvalText(na) else: na fi,"pendant",if string xa : OvalNb(xa) else: xa fi,"seconde(s)");
-ColBloc:=VioletAppTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef Penser(expr na)=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("penser à",if string na:OvalText(na) else: na fi);
-ColBloc:=VioletAppTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef Montrer=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("montrer");
- ColBloc:=VioletAppTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef Cacher=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("cacher");
- ColBloc:=VioletAppTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef Basculer(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew("basculer sur le costume",OvalAppMenu(nbpas));
- ColBloc:=VioletAppTrois;
- $=Affichage(texto);
- else:
- message("La commande --Basculer-- n'accepte qu'un argument string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef BasculerCostume(expr nbpass)=Basculer(nbpass) enddef;
-
-vardef CostumeSuivant=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("costume suivant");
- ColBloc:=VioletAppTrois;
- $=Affichage(texto);
-$
-enddef;
-
-vardef ARSuivant=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("arrière-plan suivant");
- ColBloc:=VioletAppTrois;
- $=Affichage(texto);
-$
-enddef;
-
-vardef BasculerAR(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew("basculer sur l'arrière-plan",OvalAppMenu(nbpas));
- ColBloc:=VioletAppTrois;
- $=Affichage(texto);
- else:
- message("La commande --BasculerAR-- n'accepte qu'un argument string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef BasculerARA(expr nbpas)=%quand la scène est sélectionnée...
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew("basculer sur l'arrière-plan",OvalAppMenu(nbpas)," et attendre");
- ColBloc:=VioletAppTrois;
- $=Affichage(texto);
- else:
- message("La commande --BasculerARA-- n'accepte qu'un argument string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef AjouterEffet(expr nbpas,xa)=
- LONG:=0;
- save $;
- picture $,texto;
- if string xa:
- texto=ColleBoxNew("ajouter",if string nbpas: OvalNb(nbpas) else: nbpas fi," à l'effet",RecMenuApp(xa));
- ColBloc:=VioletAppTrois;
- $=Affichage(texto);
-else:
- message("La commande --AjouterEffet-- n'accepte qu'un deuxième argument de type string.");
- $=nullpicture;
-fi;
-$
-enddef;
-
-vardef MettreEffet(expr xa,nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string xa:
- texto=ColleBoxNew("mettre l'effet",RecMenuApp(xa),"à",if string nbpas:OvalNb(nbpas) else: nbpas fi);
- ColBloc:=VioletAppTrois;
- $=Affichage(texto);
-else:
- message("La commande --MettreEffet-- n'accepte qu'un premier argument de type string.");
- $=nullpicture;
-fi;
-$
-enddef;
-
-vardef AnnulerEffet=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("annuler les effets graphiques");
- ColBloc:=VioletAppTrois;
- $=Affichage(texto);
-$
-enddef;
-
-vardef AnnulerEffets=AnnulerEffet enddef;
-
-vardef AjouterTaille(expr na)=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("ajouter",if string na:OvalNb(na) else: na fi,"à la taille");
-ColBloc:=VioletAppTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef MettreA(expr na)=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("mettre la taille à",if string na:OvalNb(na) else: na fi,"\% de la taille initiale");
-ColBloc:=VioletAppTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef MettreTaille(expr art)=MettreA(art) enddef;
-
-vardef AllerPlan(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew("aller à l'",RecMenuApp(nbpas),"plan");
- ColBloc:=VioletAppTrois;
- $=Affichage(texto);
- else:
- message("La commande --AllerPlan-- n'accepte qu'un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef DeplacerPlan(expr nbpas,xa)=
- LONG:=0;
- save $;
- picture $,texto;
- if string xa:
- texto=ColleBoxNew("déplacer de",if string nbpas:OvalNb(nbpas) else: nbpas fi,"plan(s) vers l'",RecMenuApp(xa));
- ColBloc:=VioletAppTrois;
- $=Affichage(texto);
-else:
- message("La commande --DeplacerPlan-- n'accepte qu'un deuxième argument de type string.");
- $=nullpicture;
-fi;
-$
-enddef;
-%%%%fin Section Apparance%%%%%%%%%%%%
-
-%%%%%% Section Son%%%%%%%%%%%%
-vardef Jouer(expr nbpas)=
- LONG:=0;
- save $;
- picture $, texto;
- if string nbpas :
- texto=ColleBoxNew("jouer le son",OvalMenuSon(nbpas));
- ColBloc:=SonTrois;
- $=Affichage(texto);
- else:
- message("La commande --Jouer-- n'accepte qu'un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef JouerT(expr nbpas)=
- LONG:=0;
- save $;
- picture $, texto;
- if string nbpas:
- texto=ColleBoxNew("jouer le son",OvalMenuSon(nbpas)," jusqu'au bout");
- ColBloc:=SonTrois;
- $=Affichage(texto);
- else:
- message("La commande --Jouer-- n'accepte qu'un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef ArreterSon=
- LONG:=0;
- save $;
- picture $, texto;
- texto=ColleBoxNew("arrêter tous les sons");
- ColBloc:=SonTrois;;
- $=Affichage(texto);
- $
-enddef;
-
-vardef ArreterSons=ArreterSon enddef;
-
-vardef AjouterVol(expr xa)=
- LONG:=0;
- save $;
- picture $, texto;
- texto=ColleBoxNew("ajouter",if string xa:OvalNb(xa) else: xa fi," au volume");
- ColBloc:=SonTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef MettreVol(expr xa)=
- LONG:=0;
- save $;
- picture $, texto;
- texto=ColleBoxNew("mettre le volume à",if string xa: OvalNb(xa) else: xa fi,"~\%");
- ColBloc:=SonTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef AjouterEffetSon(expr nombre, effet)=
- LONG:=0;
- save $;
- picture $, texto;
- if string effet:
- texto=ColleBoxNew("ajouter",if string nombre : OvalNb(nombre) else: nombre fi," à l'effet",RecMenuSon(effet));
- ColBloc:=SonTrois;
- $=Affichage(texto);
-else:
- message("La commande -- AjouterEffet -- n'accepte qu'un deuxième argument de type string.");
- $=nullpicture;
-fi;
-$
-enddef;
-
-vardef MettreEffetSon(expr effet,nombre)=
- LONG:=0;
- save $;
- picture $, texto;
- if string effet:
- texto=ColleBoxNew("mettre l'effet",RecMenuSon(effet),"à",if string nombre:OvalNb(nombre) else: nombre fi);
- ColBloc:=SonTrois;
- $=Affichage(texto);
-else:
- message("La commande -- MettreEffet -- n'accepte qu'un argument de type string.");
- $=nullpicture;
-fi;
-$
-enddef;
-
-vardef AnnulerEffetSon=
- LONG:=0;
- save $;
- picture $, texto;
- texto=ColleBoxNew("annuler tous les effets sonores");
- ColBloc:=SonTrois;
- $=Affichage(texto);
- $
-enddef;
-
-%Musique
-vardef Tambour(expr na,xa)=
- LONG:=0;
- save $;
- picture $, texto;
- if string na:
- texto=ColleBoxNew(DoubleNote,"jouer du tambour",OvalStylo(na),"pendant",if string xa:OvalNb(xa) else: xa fi,"temps");
- ColBloc:=StyloTrois;
- $=Affichage(texto);
-else:
- message("La commande --Tambour-- n'accepte qu'un premier argument de type string.");
- $=nullpicture;
-fi;
-$
-enddef;
-
-vardef Pause(expr na)=
- LONG:=0;
- save $;
- picture $, texto;
- texto=ColleBoxNew(DoubleNote,"faire une pause pendant",if string na: OvalNb(na) else: na fi," temps");
- ColBloc:=StyloTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef JouerNote(expr na,xa)=
- LONG:=0;
- save $;
- picture $, texto;
- texto=ColleBoxNew(DoubleNote,"jouer la note",if string na:OvalNb(na) else: na fi," pendant",if string xa:OvalNb(xa) else: xa fi," temps");
-ColBloc:=StyloTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef ChoisirInstrument(expr na)=
- LONG:=0;
- save $;
- picture $, texto;
- if string na:
- texto=ColleBoxNew(DoubleNote,"choisir l'instrument \no{}",OvalStylo(na));
- ColBloc:=StyloTrois;
- $=Affichage(texto);
- else:
- message("La commande -- ChoisirInstrument -- n'accepte qu'un argument de type string");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef MettreTempo(expr xa)=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew(DoubleNote,"mettre le tempo à",if string xa:OvalNb(xa) else: xa fi);
- ColBloc:=FondSonTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef AjouterTempo(expr xa)=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew(DoubleNote,"ajouter",if string xa:OvalNb(xa) else: xa fi," au tempo");
-ColBloc:=FondSonTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef DoubleNote=
- save $;
- picture $;
- $=image(
- draw (((0,0)--(0,18pt)) shifted(-12,-9pt)) withpen pencircle scaled 1bp withcolor if print: coefprint*white else: StyloTrois fi;
- draw NoteImage shifted((-5,-2));
- draw NoteImage shifted((3.5,2));
- draw (((0,0)--(0,18pt)) shifted(12,-9pt)) withpen pencircle scaled 1bp withcolor if print: 0.5*coefprint*white else: (69/255,168/255,140/255) fi;%Trop clair->(14/255,187/255,139/255);
-);
- $:=$ shifted(-3,0);
- $
-enddef;
-
-vardef NoteImage=
- save $;
- picture $;
- $=image(
- linecap := butt;
- linejoin := mitered;
- fill (80.695297,716.262024)..controls (80.574203,716.257996) and (80.476601,716.171997)..(80.480499,716.062988)
- --(80.687500,704.125000)..controls (79.941399,704.570007) and (78.644501,704.637024)..(77.312500,704.223022)
- ..controls (75.503899,703.659973) and (74.339798,702.429993)..(74.710899,701.473022)
- ..controls (75.082001,700.512024) and (76.851601,700.187988)..(78.656303,700.750000)
- ..controls (80.425797,701.301025) and (81.574203,702.504028)..(81.273399,703.453003)
- --(81.125000,711.987976)..controls (82.910202,711.909973) and (86.910202,711.625000)..(84.917999,706.456970)
- ..controls (85.992203,707.906006) and (86.839798,709.598022)..(85.273399,711.629028)
- ..controls (84.378899,712.789001) and (81.617203,713.348022)..(81.062500,715.398010)
- --(81.054703,716.065979)..controls (81.050797,716.176025) and (80.953102,716.262024)..(80.832001,716.262024)
- --cycle if print=false: withcolor white fi;
- pickup pencircle scaled 0.797011bp;
- draw (80.695297,716.262024)..controls (80.574203,716.257996) and (80.476601,716.171997)..(80.480499,716.062988)
- --(80.687500,704.125000)..controls (79.941399,704.570007) and (78.644501,704.637024)..(77.312500,704.223022)
- ..controls (75.503899,703.659973) and (74.339798,702.429993)..(74.710899,701.473022)
- ..controls (75.082001,700.512024) and (76.851601,700.187988)..(78.656303,700.750000)
- ..controls (80.425797,701.301025) and (81.574203,702.504028)..(81.273399,703.453003)
- --(81.125000,711.987976)..controls (82.910202,711.909973) and (86.910202,711.625000)..(84.917999,706.456970)
- ..controls (85.992203,707.906006) and (86.839798,709.598022)..(85.273399,711.629028)
- ..controls (84.378899,712.789001) and (81.617203,713.348022)..(81.062500,715.398010)
- --(81.054703,716.065979)..controls (81.050797,716.176025) and (80.953102,716.262024)..(80.832001,716.262024)
- --cycle if print=false: withcolor white fi;
- pickup pencircle scaled eppen;
- );
- $:=($ rotatedabout((72.000000,699),15)) scaled 0.8;
- $:=$ shifted(-center $);
- $
-enddef;
-
-%%%%%% fin Section Son %%%%%%%%%
-
-%%%%%% Section Stylo %%%%%%%%%
-vardef ImageCrayon=
- save titi;
- picture titi;
- titi=image(%
- draw CrayonImage shifted(-12,0);
- draw (((0,0)--(0,18pt)) shifted(9,-9)) withpen pencircle scaled 1bp withcolor if print: 0.5*coefprint*white else: (69/255,168/255,140/255) fi;%Trop clair->(14/255,187/255,139/255);
- );
- titi
-enddef;
-
-vardef Effacer=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew(ImageCrayon,"effacer tout");
- ColBloc:=StyloTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef Estampiller=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew(ImageCrayon,"estampiller");
- ColBloc:=StyloTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef PoserStylo=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew(ImageCrayon," stylo en position d'écriture");
- ColBloc:=StyloTrois;
- $=Affichage(texto);
-$
-enddef;
-
-vardef ReleverStylo=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew(ImageCrayon,"relever le stylo");
- ColBloc:=StyloTrois;
- $=Affichage(texto);
-$
-enddef;
-
-vardef MettreCouleur(expr redc,greenc,bluec)=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew(ImageCrayon," mettre la couleur du stylo à",OvalCouleur(redc,greenc,bluec));
- ColBloc:=StyloTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef AjouterCS(text t)=
- LONG:=0;
- save $;
- picture $,texto;
- numeric k; k=0;
- for p_=t:
- if k=1:string effet; effet=p_ fi;
- if k=0: if string p_:string nombre; nombre=p_ else: if picture p_: picture nombre; nombre=p_; fi fi fi;
- k:=k+1;
- endfor;
- texto=ColleBoxNew(ImageCrayon,"ajouter",if string nombre:OvalNb(nombre) else: nombre fi,"à la",OvalStylo(effet),"du stylo");
-ColBloc:=StyloTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef MettreCS(text t)=
- LONG:=0;
- save $;
- picture $,texto;
- numeric k; k=0;
- for p_=t:
- if k=0:string effet; effet=p_ fi;
- if k=1: if string p_:string nombre; nombre=p_ else: if picture p_: picture nombre; nombre=p_; fi fi fi;
- k:=k+1;
- endfor;
- texto=ColleBoxNew(ImageCrayon,"mettre la",OvalStylo(effet),"du stylo à",if string nombre:OvalNb(nombre) else: nombre fi);
-ColBloc:=StyloTrois;
-$=Affichage(texto);
-$
-enddef;
-
-%taille du stylo
-vardef AjouterTS(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew(ImageCrayon,"ajouter",if string nbpas:OvalNb(nbpas) else: nbpas fi,"à la taille du stylo");
-ColBloc:=StyloTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef MettreTS(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew(ImageCrayon,"mettre la taille du stylo à",if string nbpas:OvalNb(nbpas) else: nbpas fi);
-ColBloc:=StyloTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef CrayonImage=
- picture cray;
- cray=image(%
- drawoptions (if print=false:withcolor (0.298050,0.556850,0.917650) fi);
- linecap := butt;
- linejoin := mitered;
- fill (0.960938,1.390630)--(1.644530,2.996090)..controls (1.730470,3.199220) and (1.917970,3.500000)..(2.062500,3.664060)..controls (2.324220,3.968750) and (3.539060,2.753910)..(3.234380,2.488280)..controls (3.070310,2.343750) and (2.769530,2.160160)..(2.566410,2.074220)--cycle;
- drawoptions (withcolor (0.349030,0.368640,0.450970));
- pickup pencircle scaled 0.498140bp;
- draw (0.960938,1.390630)--(1.644530,2.996090)..controls (1.730470,3.199220) and (1.917970,3.500000)..(2.062500,3.664060)..controls (2.324220,3.968750) and (3.539060,2.753910)..(3.234380,2.488280)..controls (3.070310,2.343750) and (2.769530,2.160160)..(2.566410,2.074220)--cycle;
- drawoptions (withcolor (1.000000,1.000000,1.000000));
- %pickup pencircle scaled 0.000000bp;
- fill (1.800780,3.363280)--(2.558590,5.156250)..controls (2.601560,5.257810) and (2.699220,5.402340)..(2.777340,5.480470)--(8.281250,10.984400)..controls (8.300780,11.003900) and (8.339840,11.023400)..(8.367190,11.031300)..controls (9.757810,11.398400) and (10.968800,10.187500)..(10.601600,8.792970)..controls (10.593800,8.769530) and (10.574200,8.730470)..(10.554700,8.710940)--(6.316410,4.476560)..controls (5.539060,3.695310) and (4.089840,2.718750)..(3.074220,2.289060)--(2.980470,2.246090)..controls (2.957030,2.238280) and (2.953130,2.242190)..(2.972660,2.261720)..controls (3.539060,2.753910) and (2.324220,3.968750)..(1.800780,3.363280)--cycle;
- drawoptions (if print=false:withcolor (0.349030,0.368640,0.450970) fi);
- pickup pencircle scaled 0.498140bp;
- draw (1.800780,3.363280)--(2.558590,5.156250)..controls (2.601560,5.257810) and (2.699220,5.402340)..(2.777340,5.480470)--(8.281250,10.984400)..controls (8.300780,11.003900) and (8.339840,11.023400)..(8.367190,11.031300)..controls (9.757810,11.398400) and (10.968800,10.187500)..(10.601600,8.792970)..controls (10.593800,8.769530) and (10.574200,8.730470)..(10.554700,8.710940)--(6.316410,4.476560)..controls (5.539060,3.695310) and (4.089840,2.718750)..(3.074220,2.289060)--(2.980470,2.246090)..controls (2.957030,2.238280) and (2.953130,2.242190)..(2.972660,2.261720)..controls (3.539060,2.753910) and (2.324220,3.968750)..(1.800780,3.363280);
- drawoptions (if print=false:withcolor (0.298050,0.556850,0.917650) fi);
- %pickup pencircle scaled 0.000000bp;
- fill (8.316410,11.019500)--(13.031300,15.730500)..controls (13.109400,15.808600) and (13.257800,15.878900)..(13.371100,15.886700)..controls (14.308600,15.949200) and (15.519500,14.734400)..(15.457000,13.796900)..controls (15.449200,13.687500) and (15.378900,13.535200)..(15.300800,13.457000)--(10.589800,8.746090)..controls (10.968800,10.187500) and (9.757810,11.398400)..(8.316410,11.019500)--cycle;
- drawoptions (if print=false:withcolor (0.349030,0.368640,0.450970) fi);
- pickup pencircle scaled 0.498140bp;
- draw (8.316410,11.019500)--(13.031300,15.730500)..controls (13.109400,15.808600) and (13.257800,15.878900)..(13.371100,15.886700)..controls (14.308600,15.949200) and (15.519500,14.734400)..(15.457000,13.796900)..controls (15.449200,13.687500) and (15.378900,13.535200)..(15.300800,13.457000)--(10.589800,8.746090)..controls (10.968800,10.187500) and (9.757810,11.398400)..(8.316410,11.019500)--cycle;
- draw (12.562500,15.265600)..controls (7.937500,15.644500) and (9.453130,10.488300)..(6.117190,11.398400);
- %pickup pencircle scaled 0.000000bp;
- fill (7.199220,12.785200)..controls (6.812500,13.175800) and (6.179690,13.175800)..(5.792970,12.785200)..controls (5.402340,12.398400) and (5.402340,11.765600)..(5.792970,11.378900)..controls (6.179690,10.988300) and (6.812500,10.988300)..(7.199220,11.378900)..controls (7.589840,11.765600) and (7.589840,12.398400)..(7.199220,12.785200)--cycle;
- fill (6.496090,12.082000)--cycle;
- pickup pencircle scaled 0.498140bp;
- draw (7.199220,12.785200)..controls (6.812500,13.175800) and (6.179690,13.175800)..(5.792970,12.785200)..controls (5.402340,12.398400) and (5.402340,11.765600)..(5.792970,11.378900)..controls (6.179690,10.988300) and (6.812500,10.988300)..(7.199220,11.378900)..controls (7.589840,11.765600) and (7.589840,12.398400)..(7.199220,12.785200)--cycle;
- draw (6.496090,12.082000);
- drawoptions();
- pickup pencircle scaled 0bp;
- draw (-3,0)--(-3,18) withcolor if print : coefprint*white else: StyloTrois fi;
- pickup pencircle scaled eppen;
- );
- cray:=cray shifted((0,-9pt));
- cray
-enddef;
-
-%%%%%% Fin Section Stylo %%%%%%%%
-
-%%%%%% Section Contrôle %%%%%%%%%
-color colControle;
-colControle:=OrangeConTrois;
-
-vardef AffichageStop=
- path cadre;
- cadre=(llcorner texto+(-eb,0)){dir-90}..{dir0}(llcorner texto+(0,-eb))--
- (lrcorner texto+(0,-eb)){dir0}..{dir90}(lrcorner texto+(eb,0))--(urcorner texto+(eb,0)){dir90}..{dir180}(urcorner texto+(0,eb))--
- (ulcorner texto+(0.625cm,0)+(eb,eb)){dir180}..
- {dir180}(ulcorner texto+(0.625cm,0))--
- (ulcorner texto+(0.375cm,0)){dir180}..
- {dir180}(ulcorner texto+(0.375cm,0)+(-eb,eb))--
- (ulcorner texto+(0,eb)){dir180}..{dir-90}(ulcorner texto+(-eb,0))--cycle;
- picture TEXT;
- TEXT=image(
- fill cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
- draw texto;
- draw cadre withcolor CoulLignes;
- );
- TEXT
-enddef;
-
-pair coindebutbloc[];
-numeric numblocrep;
-numblocrep:=0;
-
-vardef Repeter(expr xa)=
- LONG:=0;
- save $;
- numblocrep:=numblocrep+1;
- picture $,texto;
- texto=ColleBoxNew("répéter", if string xa : OvalNb(xa) else: xa fi,"fois");
-LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
-ColBloc:=OrangeConTrois;
-$=AffichageControle(texto);
-$
-enddef;
-
-vardef RepeterI=
- LONG:=0;
- save $;
- numblocrep:=numblocrep+1;
- picture $,texto;
- texto=ColleBoxNew("répéter indéfiniment");
- LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
- ColBloc:=OrangeConTrois;
- $=AffichageControle(texto);
- $
-enddef;
-
-vardef RepeterJ(expr xa)=
- LONG:=0;
- save $;
- numblocrep:=numblocrep+1;
- picture $,texto;
- if picture xa:
- texto=ColleBoxNew("répéter jusqu'à ce que",xa);
- LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
- ColBloc:=OrangeConTrois;
- $=AffichageControle(texto);
- else:
- message("La commande -- RepeterJ -- n'admet qu'un argument de type picture.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef FinBlocRepeter=
- LONG:=0;
- save $;
- picture $,texto;
- _coinprec:=_coinprec-(0.5cm,0);
- drawoptions();
- texto=image(
- labeloffset:=0;
- label.lrt(LATEXSCRATCH("\hbox to"&decimal(LongRep[numblocrep])&"pt{\phantom{\barre fin du bloc}}"),if unknown _coinprec: (0,0) else:_coinprec fi);
- labeloffset:=3;
- );
-path cadre;
-cadre=(coindebutbloc[numblocrep]+(0.125,0.125))--
- (coindebutbloc[numblocrep]+(0.0625+0.5cm+eb,0.125)){dir180}..
- {dir-90}(coindebutbloc[numblocrep]+(0.5cm,-eb))--
- (ulcorner texto+(0.5cm,eb)){dir-90}..
- {dir0}(ulcorner texto+(0.5cm+eb,0))--
- (ulcorner texto+(0.5cm+0.375cm,0)){dir0}..%
- {dir0}(ulcorner texto+(0.5cm+0.375cm,0)+(eb,-eb))--%
- (ulcorner texto+(0.5cm+0.625cm,0)+(eb,-eb)){dir0}..%
- {dir0}(ulcorner texto+(0.5cm+0.625cm,0)+(2eb,0))--%
- (urcorner texto+(-eb,0)){dir0}..
- {dir-90}(urcorner texto+(0,-eb))--
- (lrcorner texto+(0,eb)){dir-90}..
- {dir180}(lrcorner texto+(-eb,0))--
- (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
- {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
- (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
- {dir180}(llcorner texto+(0.125+0.375cm,0))--
- (llcorner texto+(0.125,0)+(eb,0)){dir180}..
- {dir90}(llcorner texto+(0.125,0)+(0,eb))--
- cycle;
-$=image(
- fill cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
- draw cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
- AA:=ahangle;
- ahangle:=90;
- drawarrow (lrcorner texto+(-0.625cm,0.15cm)){dir-15}..{dir90}(urcorner texto+(-0.25cm,-0.1cm)) withpen pencircle scaled2bp if print=false : withcolor white fi;
- ahangle:=AA;
- draw (coindebutbloc[numblocrep]+(0.0625+0.5cm+eb,0.125)){dir180}..
- {dir-90}(coindebutbloc[numblocrep]+(0.5cm,-eb))--
- (ulcorner texto+(0.5cm,eb)){dir-90}..
- {dir0}(ulcorner texto+(0.5cm+eb,0))--
- (ulcorner texto+(0.5cm+0.375cm,0)){dir0}..%
- {dir0}(ulcorner texto+(0.5cm+0.375cm,0)+(eb,-eb))--%
- (ulcorner texto+(0.5cm+0.625cm,0)+(eb,-eb)){dir0}..%
- {dir0}(ulcorner texto+(0.5cm+0.625cm,0)+(2eb,0))--%
- (urcorner texto+(-eb,0)){dir0}..
- {dir-90}(urcorner texto+(0,-eb))--
- (lrcorner texto+(0,eb)){dir-90}..
- {dir180}(lrcorner texto+(-eb,0))--
- (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
- {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
- (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
- {dir180}(llcorner texto+(0.125+0.375cm,0))--
- (llcorner texto+(0.125,0)+(eb,0)){dir180}..
- {dir90}(llcorner texto+(0.125,0)+(0,eb))--(coindebutbloc[numblocrep]+(0.125,0.125)) withcolor CoulLignes;
- );
-_coinprec:=(llcorner $);
-_coinprec:=_coinprec+(0,eb);
-numblocrep:=numblocrep-1;
-$
-enddef;
-
-vardef FinBlocRepeterI=FinBlocRepeter enddef;
-
-vardef Si(expr xa)=
- LONG:=0;
- save $;
- numblocrep:=numblocrep+1;
- picture $,texto;
- if picture xa:
- texto=ColleBoxNew("si\hbox to1em{}",xa,"alors");
- LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
- ColBloc:=OrangeConTrois;
- $=AffichageControle(texto);
- else:
- message("La commande -- Si -- n'admet qu'un argument de type picture.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef FinBlocSi=
- LONG:=0;
- save $;
- picture $,texto;
- _coinprec:=_coinprec-(0.5cm,0);
- drawoptions();
- texto=image(
- labeloffset:=0;
- label.lrt(LATEXSCRATCH("\hbox to"&decimal(LongRep[numblocrep])&"pt{\phantom{\barre fin du bloc}}"),if unknown _coinprec: (0,0) else:_coinprec fi);
- labeloffset:=3;
- );
-path cadre;
-if BlocStopAvant=false:
- cadre=(coindebutbloc[numblocrep]+(0.125,0.125))--
- (coindebutbloc[numblocrep]+(0.0625+0.5cm+eb,0.125)){dir180}..
- {dir-90}(coindebutbloc[numblocrep]+(0.5cm,-eb))--
- (ulcorner texto+(0.5cm,eb)){dir-90}..
- {dir0}(ulcorner texto+(0.5cm+eb,0))--
- (ulcorner texto+(0.5cm+0.375cm,0)){dir0}..%
- {dir0}(ulcorner texto+(0.5cm+0.375cm,0)+(eb,-eb))--%
- (ulcorner texto+(0.5cm+0.625cm,0)+(eb,-eb)){dir0}..%
- {dir0}(ulcorner texto+(0.5cm+0.625cm,0)+(2eb,0))--%
- (urcorner texto+(-eb,0)){dir0}..
- {dir-90}(urcorner texto+(0,-eb))--
- (lrcorner texto+(0,eb)){dir-90}..
- {dir180}(lrcorner texto+(-eb,0))--
- (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
- {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
- (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
- {dir180}(llcorner texto+(0.125+0.375cm,0))--
- (llcorner texto+(0.125,0)+(eb,0)){dir180}..
- {dir90}(llcorner texto+(0.125,0)+(0,eb))--
- cycle;
-else:
- cadre=(coindebutbloc[numblocrep]+(0.125,0.125))--
- (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
- {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
- (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
- {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
-% (ulcorner texto+(0.125+0.875cm,0)){dir0}..
-% {dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
-% (ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
-% {dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%
- (urcorner texto+(-eb,0)){dir0}..
- {dir-90}(urcorner texto+(0,-eb))--
- (lrcorner texto+(0,eb)){dir-90}..
- {dir180}(lrcorner texto+(-eb,0))--
- (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
- {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
- (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
- {dir180}(llcorner texto+(0.125+0.375cm,0))--
- (llcorner texto+(0.125,0)+(eb,0)){dir180}..
- {dir90}(llcorner texto+(0.125,0)+(0,eb))--
- cycle;
-fi;
-$=image(
- fill cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
- draw cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
- if BlocStopAvant=false:
- draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0)){dir180}..
- {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
- (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
- {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
- (ulcorner texto+(0.125+0.875cm,0)){dir0}..
- {dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
- (ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
- {dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%
- (urcorner texto+(-eb,0)){dir0}..
- {dir-90}(urcorner texto+(0,-eb))--
- (lrcorner texto+(0,eb)){dir-90}..
- {dir180}(lrcorner texto+(-eb,0))--
- (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
- {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
- (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
- {dir180}(llcorner texto+(0.125+0.375cm,0))--
- (llcorner texto+(0.125,0)+(eb,0)){dir180}..
- {dir90}(llcorner texto+(0.125,0)+(0,eb))--
- (coindebutbloc[numblocrep]+(0.125,0.125))
- withcolor CoulLignes;
- else:
- draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
- {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
- (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
- {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
- %(ulcorner texto+(0.125+0.875cm,0)){dir0}..
- %{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
- %(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
- %{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%
- (urcorner texto+(-eb,0)){dir0}..
- {dir-90}(urcorner texto+(0,-eb))--
- (lrcorner texto+(0,eb)){dir-90}..
- {dir180}(lrcorner texto+(-eb,0))--
- (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
- {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
- (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
- {dir180}(llcorner texto+(0.125+0.375cm,0))--
- (llcorner texto+(0.125,0)+(eb,0)){dir180}..
- {dir90}(llcorner texto+(0.125,0)+(0,eb))--
- (coindebutbloc[numblocrep]+(0.125,0.125))
- withcolor CoulLignes;
- fi;
- );
-_coinprec:=(llcorner $);
-_coinprec:=_coinprec+(0,eb);
-numblocrep:=numblocrep-1;
-$
-enddef;
-
-boolean BlocStopAvant;
-BlocStopAvant=false;
-
-vardef Sinon=
- LONG:=0;
- save $;
- picture $,texto;
- _coinprec:=_coinprec-(0.5cm,0);
- drawoptions();
- texto=image(
- labeloffset:=0;
- label.lrt(LATEXSCRATCH("\, \hbox to"&decimal(LongRep[numblocrep])&"pt{\bfseries\barre sinon}"),if unknown _coinprec: (0,0) else:_coinprec fi) if print=false : withcolor blanc fi;
- labeloffset:=3;
- );
- path cadre;
- if BlocStopAvant=false:
- cadre=(llcorner texto+(0.125,0))--
- (coindebutbloc[numblocrep]+(0.125,0.125))--
- (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
- {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
- (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
- {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
- (ulcorner texto+(0.125+0.875cm,0)){dir0}..
- {dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
- (ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
- {dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%
- (urcorner texto+(-eb,0)){dir0}..
- {dir-90}(urcorner texto+(0,-eb))--
- (lrcorner texto+(0,eb)){dir-90}..
- {dir180}(lrcorner texto+(-eb,0))--
- (llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
- {dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
- (llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
- {dir180}(llcorner texto+(0.125+0.875cm,0))--
- cycle;
- else:
- cadre=(llcorner texto+(0.125,0))--
- (coindebutbloc[numblocrep]+(0.125,0.125))--
- (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
- {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
- (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
- {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
-% (ulcorner texto+(0.125+0.875cm,0)){dir0}..
-% {dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
-% (ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
-% {dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%
- (urcorner texto+(-eb,0)){dir0}..
- {dir-90}(urcorner texto+(0,-eb))--
- (lrcorner texto+(0,eb)){dir-90}..
- {dir180}(lrcorner texto+(-eb,0))--
- (llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
- {dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
- (llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
- {dir180}(llcorner texto+(0.125+0.875cm,0))--
- cycle;
- fi;
-$=image(
- fill cadre withcolor if print=true : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
- draw cadre withcolor if print=true : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
- draw texto;
- if BlocStopAvant=false:
- draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
- {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
- (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
- {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
- (ulcorner texto+(0.125+0.875cm,0)){dir0}..
- {dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
- (ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
- {dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%
- (urcorner texto+(-eb,0)){dir0}..
- {dir-90}(urcorner texto+(0,-eb))--
- (lrcorner texto+(0,eb)){dir-90}..
- {dir180}(lrcorner texto+(-eb,0))--
- (llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
- {dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
- (llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
- {dir180}(llcorner texto+(0.125+0.875cm,0))--
- (llcorner texto+(0.125+0.5cm+eb,0))
- withcolor CoulLignes;
- else:
- draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
- {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
- (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
- {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
- %(ulcorner texto+(0.125+0.875cm,0)){dir0}..
- %{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
- %(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
- %{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%
- (urcorner texto+(-eb,0)){dir0}..
- {dir-90}(urcorner texto+(0,-eb))--
- (lrcorner texto+(0,eb)){dir-90}..
- {dir180}(lrcorner texto+(-eb,0))--
- (llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
- {dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
- (llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
- {dir180}(llcorner texto+(0.125+0.875cm,0))
- withcolor CoulLignes;
- fi;
- draw (llcorner texto+(0.125,0))--(coindebutbloc[numblocrep]+(0.125,0.125)) withcolor CoulLignes;
- );
- _coinprec:=(llcorner $)+(0.5cm,0);
- _coinprec:=_coinprec+(0,eb);
- coindebutbloc[numblocrep]:=(llcorner $)+(0,eb+0.125);
- $
-enddef;
-
-vardef Attendre(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("attendre",if string nbpas:OvalNb(nbpas) else: nbpas fi,"seconde(s)");
-ColBloc:=OrangeConTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef AttendreJ(expr xa)=
- LONG:=0;
- save $;
- picture $,texto;
- if picture xa:
- texto=ColleBoxNew("attendre jusqu'à ce que",xa);
- ColBloc:=OrangeConTrois;
- $=Affichage(texto);
- else:
- message("La commande -- AttendreJ -- n'admet qu'un argument de type picture.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef Stop(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- string TTm;%Pour sauvegarder le nbpas car en l'utilisant dans les if, il ne permet pas la concaténation...
- TTm=if print:nbpas&"\hbox to1em{\barre}\blacktriangledown" else:"\color{white}"&nbpas&"\hbox to1em{\barre}\blacktriangledown";
- fi;
- texto=image(
- path ti;
- ti=Box("stop");
- label(LATEXSCRATCH("\bfseries\barre stop"),center ti) if print=false : withcolor white fi;%_>ok
- if picture nbpas:
- picture ta;
- ta=nbpas;
- drawoptions(shifted (xpart((lrcorner ti)-(llcorner ta)+(eb,0)),ypart(center ti-center ta)));
- draw ta;
- drawoptions();
- else:
- path ta;
- ta=RecBox(TTm);%
- drawoptions(shifted (xpart((lrcorner ti)-(llcorner ta)+(eb,0)),ypart(center ti-center ta)));
- if print=false : fill ta withcolor ControleTrois fi;
- draw ta withcolor 0.95white;
- label(LATEXSCRATCH(TTm),center ta);
- drawoptions();
- fi;
- );
-$=AffichageStop shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageStop);
-_coinprec:=llcorner $;
-_coinprec:=_coinprec;%+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
- label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
- Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-
-vardef CommencerClone=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("quand je commence comme un clone");
- ColBloc:=ControleTrois;
- $=AffichageED(texto);
- $
-enddef;
-
-vardef CreerClone(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew("créer un clone de",OvalMenuControle(nbpas));
- ColBloc:=ControleTrois;
- $=Affichage(texto);
- else:
- message("La commande -- CreerClone -- accepte un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef SupprimerClone=
- LONG:=0;
- save $;
- picture $,texto;
- texto=image(
- path ti;
- ti=Box("supprimer ce clone");
- label(LATEXSCRATCH("\bfseries\barre supprimer ce clone"),center ti) if print=false : withcolor white fi;%_>ok
- );
- $=AffichageStop shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageStop);
-_coinprec:=llcorner $;
-_coinprec:=_coinprec+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
- label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
- Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-%%fin Section Contrôle%%%
-
-%%%%%%%% Section Evenements %%%%%
-vardef Drapeau=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("quand",DrapeauImage shifted(-(80,707)),"est cliqué");
- ColBloc:=EvenementTrois;
- $=AffichageED(texto);
- $
-enddef;
-
-vardef QPresse(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew("quand la touche",RecEvenementMenu(nbpas),"est pressée");
- ColBloc:=EvenementTrois;
- $=AffichageED(texto);
- else:
- message("La commande -- QPresse -- accepte un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef QLutinPresse=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("quand ce sprite est cliqué");
- ColBloc:=EvenementTrois;
- $=AffichageED(texto);
- $
-enddef;
-
-vardef QSpritePresse=QLutinPresse enddef;
-
-vardef QScenePressee=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("quand la scène est cliquée");
- ColBloc:=EvenementTrois;
- $=AffichageED(texto);
- $
-enddef;
-
-vardef QBasculeAR(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew("quand l'arrière-plan bascule sur",RecEvenementMenu(nbpas));
- ColBloc:=EvenementTrois;
- $=AffichageED(texto);
- else:
- message("La commande -- QBasculeAR -- accepte un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef QVolumeSup(expr nbpas,xa)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew("quand le",RecEvenementMenu(nbpas),"$>$",if string xa:OvalNb(xa) else: xa fi);
- ColBloc:=EvenementTrois;
- $=AffichageED(texto);
-else:
- message("La commande -- QVolumeSup -- accepte un premier argument de type string.");
- $=nullpicture;
-fi;
-$
-enddef;
-
-vardef QRecevoirMessage(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew("quand je reçois",RecEvenementMenu(nbpas));
- ColBloc:=EvenementTrois;
- $=AffichageED(texto);
- else:
- message("La commande -- QRecevoirMessage -- accepte un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef EnvoyerMessage(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew("envoyer à tous",OvalMenuEvenement(nbpas));
- ColBloc:=EvenementTrois;
- $=Affichage(texto);
- else:
- message("La commande -- EnvoyerMessage -- accepte un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef EnvoyerMessageA(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew("envoyer à tous",OvalMenuEvenement(nbpas),"et attendre");
- ColBloc:=EvenementTrois;
- $=Affichage(texto);
- else:
- message("La commande -- EnvoyerMessageA -- accepte un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef DrapeauImage=
- save $; picture $;
- $=image(
- linecap := butt;
- linejoin := rounded;
- if print = false: drawoptions(withcolor(76/255,191/255,86/255)) fi;
- fill (72.000000,713.254028)--(72.000000,718.918030)--(72.507797,718.979980)
- --(72.984398,719.026978)--(73.437500,719.054993)--(73.867203,719.070007)
- --(74.273399,719.073975)--(74.660202,719.062988)--(75.023399,719.043030)
- --(75.367203,719.012024)--(75.695297,718.968994)--(76.003899,718.918030)
- --(76.300797,718.859009)--(76.578102,718.793030)--(76.847702,718.723022)
- --(77.105499,718.648010)--(77.351601,718.570007)--(77.589798,718.484009)
- --(77.820297,718.401978)--(78.042999,718.312988)--(78.234398,718.237976)
- --(78.234398,706.906006)--(78.042999,706.979980)--(77.820297,707.065979)
- --(77.589798,707.151978)--(77.351601,707.237976)--(77.105499,707.315979)
- --(76.847702,707.390991)--(76.578102,707.460999)--(76.300797,707.526978)
- --(76.003899,707.585999)--(75.695297,707.637024)--(75.367203,707.676025)
- --(75.023399,707.710999)--(74.660202,707.729980)--(74.273399,707.742004)
- --(73.867203,707.737976)--(73.437500,707.723022)--(72.984398,707.690979)
- --(72.507797,707.648010)--(72.000000,707.585999)--cycle;
-% drawoptions (withcolor (0,0.625,0));
- fill (78.246101,712.565979)--(78.261703,718.226990)--(78.476601,718.140991)
- --(78.691399,718.059021)--(78.902298,717.976990)--(79.113297,717.895020)
- --(79.328102,717.820007)--(79.546898,717.754028)--(79.765602,717.687988)
- --(79.992203,717.632996)--(80.226601,717.585999)--(80.468803,717.543030)
- --(80.718803,717.515991)--(80.980499,717.495972)--(81.253899,717.492004)
- --(81.542999,717.495972)--(81.843803,717.515991)--(82.160202,717.546997)
- --(82.492203,717.598022)--(82.847702,717.664001)--(83.218803,717.745972)
- --(83.332001,717.773010)--(83.332001,706.440979)--(83.218803,706.414001)
- --(82.847702,706.328003)--(82.492203,706.265991)--(82.160202,706.215027)
- --(81.843803,706.179993)--(81.542999,706.164001)--(81.253899,706.156006)
- --(80.980499,706.164001)--(80.718803,706.184021)--(80.468803,706.210999)
- --(80.226601,706.250000)--(79.992203,706.301025)--(79.765602,706.354980)
- --(79.546898,706.418030)--(79.328102,706.487976)--(79.113297,706.562988)
- --(78.902298,706.645020)--(78.691399,706.723022)--(78.476601,706.809021)
- --(78.234398,706.906006)--cycle;
-% drawoptions (withcolor (0,0.625,0));
- fill (83.332001,712.109009)--(83.332001,717.773010)--(83.613297,717.843994)
- --(84.031303,717.965027)--(84.468803,718.104980)--(84.933601,718.265991)
- --(85.425797,718.448975)--(85.945297,718.651978)--(86.492203,718.882996)
- --(87.070297,719.137024)--(87.679703,719.414001)--(88.324203,719.718994)
- --(89.000000,720.054993)--(89.000000,708.718994)--(88.324203,708.387024)
- --(87.679703,708.081970)--(87.070297,707.801025)--(86.492203,707.551025)
- --(85.945297,707.320007)--(85.425797,707.117004)--(84.933601,706.934021)
- --(84.468803,706.773010)--(84.031303,706.632996)--(83.613297,706.512024)
- --(83.332001,706.440979)--cycle;
-% drawoptions (withcolor (0,0.625,0));
-%pickup pencircle scaled 0.199253bp;
- draw (72.000000,713.254028)--(72.000000,718.918030)--(72.507797,718.979980)
- --(72.984398,719.026978)--(73.437500,719.054993)--(73.867203,719.070007)
- --(74.273399,719.073975)--(74.660202,719.062988)--(75.023399,719.043030)
- --(75.367203,719.012024)--(75.695297,718.968994)--(76.003899,718.918030)
- --(76.300797,718.859009)--(76.578102,718.793030)--(76.847702,718.723022)
- --(77.105499,718.648010)--(77.351601,718.570007)--(77.589798,718.484009)
- --(77.820297,718.401978)--(78.042999,718.312988)--(78.261703,718.226990)
- --(78.476601,718.140991)--(78.691399,718.059021)--(78.902298,717.976990)
- --(79.113297,717.895020)--(79.328102,717.820007)--(79.546898,717.754028)
- --(79.765602,717.687988)--(79.992203,717.632996)--(80.226601,717.585999)
- --(80.468803,717.543030)--(80.718803,717.515991)--(80.980499,717.495972)
- --(81.253899,717.492004)--(81.542999,717.495972)--(81.843803,717.515991)
- --(82.160202,717.546997)--(82.492203,717.598022)--(82.847702,717.664001)
- --(83.218803,717.745972)--(83.613297,717.843994)--(84.031303,717.965027)
- --(84.468803,718.104980)--(84.933601,718.265991)--(85.425797,718.448975)
- --(85.945297,718.651978)--(86.492203,718.882996)--(87.070297,719.137024)
- --(87.679703,719.414001)--(88.324203,719.718994)--(89.000000,720.054993)
- --(89.000000,708.718994)--(88.324203,708.387024)--(87.679703,708.081970)
- --(87.070297,707.801025)--(86.492203,707.551025)--(85.945297,707.320007)
- --(85.425797,707.117004)--(84.933601,706.934021)--(84.468803,706.773010)
- --(84.031303,706.632996)--(83.613297,706.512024)--(83.218803,706.414001)
- --(82.847702,706.328003)--(82.492203,706.265991)--(82.160202,706.215027)
- --(81.843803,706.179993)--(81.542999,706.164001)--(81.253899,706.156006)
- --(80.980499,706.164001)--(80.718803,706.184021)--(80.468803,706.210999)
- --(80.226601,706.250000)--(79.992203,706.301025)--(79.765602,706.354980)
- --(79.546898,706.418030)--(79.328102,706.487976)--(79.113297,706.562988)
- --(78.902298,706.645020)--(78.691399,706.723022)--(78.476601,706.809021)
- --(78.261703,706.895020)--(78.042999,706.979980)--(77.820297,707.065979)
- --(77.589798,707.151978)--(77.351601,707.237976)--(77.105499,707.315979)
- --(76.847702,707.390991)--(76.578102,707.460999)--(76.300797,707.526978)
- --(76.003899,707.585999)--(75.695297,707.637024)--(75.367203,707.676025)
- --(75.023399,707.710999)--(74.660202,707.729980)--(74.273399,707.742004)
- --(73.867203,707.737976)--(73.437500,707.723022)--(72.984398,707.690979)
- --(72.507797,707.648010)--(72.000000,707.585999)--cycle if print=false : withcolor (0,0.625,0) fi;
- %pickup pencircle scaled 0.8bp;
- draw (72.000000,699)--(72.000000,720);
- drawoptions();
- );
- $:=$ rotatedabout((72.000000,699),-15);
- $
-enddef;
-%%Fin section Evenement%%%
-
-%%%% Section Bloc %%%%
-vardef AffichageBlocDef=
- path cadre;
- cadre=(llcorner texto+(-eb,0)){dir-90}..{dir0}(llcorner texto+(0,-eb))--
- (llcorner texto+(0.375cm,0)+(-eb,-eb)){dir0}..
- {dir0}(llcorner texto+(0.375cm,0)+(0,-2eb))--
- (llcorner texto+(0.625cm,0)+(0,-2eb)){dir0}..
- {dir0}(llcorner texto+(0.625cm,0)+(eb,-eb))--
- (lrcorner texto+(0,-eb)){dir0}..{dir90}(lrcorner texto+(eb,0))--
- (urcorner texto+(eb,eb)){dir90}..{dir180}(urcorner texto+(0,2eb))--
- (ulcorner texto+(0,2eb)){dir180}..
- {dir-90}(ulcorner texto+(-eb,eb))--
- cycle;
- picture TEXT;
- TEXT=image(
- fill cadre withcolor if print : coefprint*white else : BlocTrois fi;%if unknown colBloc : DarkPurple else: colBloc fi fi;
- draw texto;
- draw cadre withcolor CoulLignes;
- );
- TEXT
-enddef;
-
-vardef Bloc(text nomblocbloc)=
- LONG:=0;
- save $;
- picture $,texto;
- texto=image(
- picture CBbloc;
- CBbloc=ColleBoxNew(nomblocbloc);
- draw CBbloc;
- );
- ColBloc:=BlocTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef NouveauBloc(text nbpasbloc)=
- LONG:=0;
- save $;
- picture $,texto;
- texto=image(
- picture CB;
- CB=ColleBoxNew("définir",BlocPuzzle(nbpasbloc));
- draw CB;
- );
-$=AffichageBlocDef shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageBlocDef);
-_coinprec:=llcorner $;
-_coinprec:=_coinprec+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
- label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
- Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-%%%% Fin Section Bloc%%%%
-
-%%% Section Divers%%%
-vardef CommandeVide(expr commande)=
- LONG:=0;
- save $;
- picture $,texto,TEXT;
- if string commande :
- texto=image(
- label.lrt(LATEXSCRATCH("\barre \hbox to"&commande&"cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
- );
-else:
- texto=commande;
-fi;
-ColBloc:=white;
-$=Affichage(texto);
-$
-enddef;
-
-vardef LigneVide=
- LONG:=0;
- save $;
- picture $,texto,TEXT;
- texto=image(
- label.lrt(LATEXSCRATCH("\barre \hbox to2cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
- );
-TEXT=image(
- path cadre;
- cadre=CADRE(texto);
- unfill cadre;
- %draw (urcorner texto+(0,eb))--
- % (ulcorner texto+(0.625cm,0)+(eb,eb)){dir180}..
- % {dir180}(ulcorner texto+(0.625cm,0))--
- % (ulcorner texto+(0.375cm,0)){dir180}..
- % {dir180}(ulcorner texto+(0.375cm,0)+(-eb,eb))--
- % (ulcorner texto+(0,eb)) withpen pencircle scaled 0;
- );
-$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
-_coinprec:=llcorner $;
-_coinprec:=_coinprec+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
- label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
- Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-
-vardef LigneVideVar(expr commande)=
- LONG:=0;
- save $;
- picture $,texto,TEXT;
- if string texto:
- texto=image(
- label.lrt(LATEXSCRATCH("\barre \hbox to2cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
- );
-else:
- texto=commande;
-fi;
-TEXT=image(
- path cadre;
- cadre=(llcorner texto+(-eb,0))--(llcorner texto+(0,-eb))--
- (llcorner texto+(0.375cm,0)+(-eb,-eb))--
- (llcorner texto+(0.375cm,0)+(0,-2eb))--
- (llcorner texto+(0.625cm,0)+(0,-2eb))--
- (llcorner texto+(0.625cm,0)+(eb,-eb))--
- (lrcorner texto+(0,-eb))--(lrcorner texto+(eb,0))--(urcorner texto+(eb,0))--(urcorner texto+(0,eb))--
- (ulcorner texto+(0.625cm,0)+(eb,eb))--
- (ulcorner texto+(0.625cm,0))--
- (ulcorner texto+(0.375cm,0))--
- (ulcorner texto+(0.375cm,0)+(-eb,eb))--
- (ulcorner texto+(0,eb))--(ulcorner texto+(-eb,0))--cycle;
- fill cadre withcolor white;
-% draw (urcorner texto+(0,eb))--
-% (ulcorner texto+(0.625cm,0)+(eb,eb))--
-% (ulcorner texto+(0.625cm,0))--
-% (ulcorner texto+(0.375cm,0))--
-% (ulcorner texto+(0.375cm,0)+(-eb,eb))--
-% (ulcorner texto+(0,eb)) withpen pencircle scaled 0.05bp;
- );
-$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
-_coinprec:=llcorner $;
-_coinprec:=_coinprec+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
- label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
- Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-
-vardef LignePointilles=
- LONG:=0;
- save $;
- picture $,texto,TEXT;
- texto=image(
- label.lrt(LATEXSCRATCH("\barre\Large \strut\ldots\hbox to1em{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
- );
-TEXT=image(
- path cadre;
- cadre=CADRE(texto);
- fill cadre withcolor white;
- draw %(urcorner texto+(0,eb))--
- (ulcorner texto+(0.625cm,0)+(eb,eb)){dir180}..
- {dir180}(ulcorner texto+(0.625cm,0))--
- (ulcorner texto+(0.375cm,0)){dir180}..
- {dir180}(ulcorner texto+(0.375cm,0)+(-eb,eb))
- %--(ulcorner texto+(0,eb))
- withpen pencircle scaled 0.01;
- draw texto;
- );
-$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
-_coinprec:=llcorner $;
-_coinprec:=_coinprec+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
- label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
- Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-
-vardef Commentaires(expr commande)=
- LONG:=0;
- save $;
- picture $,texto,TEXT;
- texto=image(
- label.lrt(LATEXSCRATCH("\barre "& commande &""),if unknown _coinprec: (0,0) else:_coinprec fi) withcolor 0.5*white;
- );
-TEXT=image(
- path cadre;
- cadre=CADRE(texto);
- fill cadre withcolor white;
- draw texto;
- );
-$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
-_coinprec:=llcorner $;
-_coinprec:=_coinprec+(0,eb);
-$
-enddef;
-
-color colcom;
-colcom=0.5white;
-
-vardef CommentairesLigne(expr commande)=
- LONG:=0;
- save $;
- picture $,texto,TEXT;
- TEXT=image(
- label.rt(LATEXSCRATCH(commande), _coincom) withcolor colcom;
- );
-$=TEXT shifted (_coincom - 1/2[llcorner TEXT,ulcorner TEXT]);
-$
-enddef;
-
-vardef BlocGris(expr ar)=
- LONG:=0;
- save $; picture $;
- path ta; string TTm;
- TTm=ar&"\barre";
- ta=OvalMiniBox(TTm);
- $=image(
- fill ta withcolor 0.975white;
- draw ta withcolor 0.85white;
- label(LATEXSCRATCH(TTm),center ta) if print=false : withcolor blanc fi;
- );
-$
-enddef;
-
-vardef BlocGrisMulti(text argris)=
- LONG:=0;
- save $; picture $;
- path ta; picture TTm;
- TTm=ColleBox(argris);
- ta=OvalMiniBox(TTm);
- $=image(
- fill ta withcolor grisBloc;
- draw TTm;
-% label(LALATEXSCRATCH(TTm),center ta) if print=false : withcolor blanc fi;
- );
-$
-enddef;
-
-boolean BlocE;
-BlocE:=false;
-
-vardef BlocUser(expr colblocuser)(text textbloc)=
- LONG:=0;
- save $;
- picture $;
- save TA; path TA; picture BUTB; picture texto; picture TEXT;
- BUTB=ColleBoxNew(textbloc);
- TA=Box(BUTB);
- texto=image(
- draw BUTB;
- );
- ColBloc:=colblocuser;
- if BlocE=false:
- $=Affichage(texto);
- else:
- $=AffichageED(texto);
- fi;
- $
-enddef;
-
-vardef BlocCouleur(expr colblocuser)=
- LONG:=0;
- save $;
- picture $,texto;
- texto=image(
- label.lrt(LATEXSCRATCH("\barre \hbox to4cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
- );
-ColBloc:=colblocuser;
-$=Affichage(texto);
-$
-enddef;
-%% fin Section Divers %%%
-
-%% Section Capteur %%%%
-vardef Demander(expr nbpas)=
- LONG:=0;
- save Dem;
- picture Dem,texto;
- if string nbpas:
- texto=ColleBoxNew("demander",OvalNb(nbpas),"et attendre");
- ColBloc:=CapteurTrois;
- Dem=Affichage(texto);
- else:
- message("La commande -- Demander -- admet un argument de type string.");
- Dem=nullpicture;
- fi;
- Dem
-enddef;
-
-vardef ReinitChrono=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("réinitialiser le chronomètre");
- ColBloc:=CapteurTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef MettreGlissement(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew("mettre mode de glissement à",RecMenuCap(nbpas));
- ColBloc:=CapteurTrois;
- $=Affichage(texto);
- else:
- message("La commande -- MettreGlissement -- admet un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-%video
-
-vardef CameraImage=
- LONG:=0;
- save $;
- picture $;
- $=image(
- pair A,B,C,D,E,F;
- A=(0,0);
- B-A=(10,0);
- C-B=(0,10);
- D-C=A-B;
- E-B=(4,1.5);
- F-C=(4,-1.5);
- numeric EB;
- EB=2pt;
- path camera;
- camera=(A+(EB,0))--(B+(-EB,0)){dir0}..{dir90}(B+(0,EB))--2/5[B,C]--E--F--3/5[B,C]--(C+(0,-EB)){dir90}..{dir-180}(C+(-EB,0))--(D+(EB,0)){dir180}..{dir-90}(D+(0,-EB))--(A+(0,EB)){dir-90}..{dir0}cycle;
- fill camera withcolor (77,77,77)/255;
- draw camera withcolor (77,77,77)*0.95/255;
- path cc;
- cc=fullcircle scaled 6;
- color coul[];
- if print:
- coul0:=0.9white;
- coul1:=0.933white;
- coul2:=0.966white;
- coul3:=white;
- else:
- coul0=(75,205,169)/255;
- coul1=(16,230,212)/255;
- coul2=(224,247,241)/255;
- coul3=(1,1,1);
- fi;
- for k=0 upto 3:
- fill (cc shifted(B+(10,3*k))) withcolor coul[k];
- draw (cc shifted(B+(10,3*k))) withcolor 0.95*coul[k];
- endfor;
- draw ((-3,0)--(-3,18)) withcolor if print : coefprint*white else: StyloTrois fi;
- pickup pencircle scaled eppen;
- );
- $:=$ scaled 0.8;
- $
-enddef;
-
-vardef ImageCamera=
- save titi;
- picture titi;
- titi=image(
- draw CameraImage shifted(-12,-5);
- draw (((0,0)--(0,18pt)) shifted(9,-9)) withpen pencircle scaled 1bp withcolor if print: 0.5*coefprint*white else: (69/255,168/255,140/255) fi;
- );
- titi
-enddef;
-
-vardef ActiverVideo(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew(ImageCamera,"vidéo",OvalStylo(nbpas));
- ColBloc:=StyloTrois;
- $=Affichage(texto);
- else:
- message("La commande -- ActiverVideo -- admet un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef TransparenceVideo(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew(ImageCamera,"mettre la transparence vidéo sur",OvalNb(nbpas));
- ColBloc:=StyloTrois;
- $=Affichage(texto);
- else:
- message("La commande -- TransparenceVideo -- admet un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef QuandMV(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew(ImageCamera,"quand mouvement vidéo $>$",OvalNb(nbpas));
- ColBloc:=StyloTrois;
- $=AffichageED(texto);
- else:
- message("La commande -- QuandMV -- admet un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef VideoSur(expr nbpas,xa)=
- LONG:=0;
- save $;
- picture $,texto;
- if (string nbpas) and (string xa):
- texto=ColleBoxNew(ImageCamera,"vidéo",OvalStylo(nbpas),"sur",OvalStylo(xa));
- %ColBloc:=StyloTrois;
- path ta;
- ta=OvalBox(texto);
- $=image(
- fill ta withcolor if print: coefprint*white else: StyloTrois fi;
- draw ta withcolor CoulLignes;
- %label(LATEXSCRATCH(TTm),center ta) if print=false : withcolor blanc fi;
- draw texto;
- );
- else:
- message("La commande -- VideoSur -- admet deux arguments de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-%% fin Section Capteur %%%
-
-%%% Section Variables %%%
-vardef MettreVar(expr nbpas,xa)=
- LONG:=0;
- save MV;
- picture MV,texto;
- if string nbpas :
- texto=ColleBoxNew("mettre",RecMenuVar(nbpas),"à",if string xa:OvalNb(xa) else: xa fi);
- ColBloc:=OrangeTrois;
- MV=Affichage(texto);
- else:
- message("La commande -- MettreVar -- admet un premier paramètre de type string.");
- MV=nullpicture;
- fi;
- MV
-enddef;
-
-vardef AjouterVar(expr nbpas,xa)=
- LONG:=0;
- save $;
- picture $,texto;
- if string xa :
- texto=ColleBoxNew("ajouter",if string nbpas:OvalNb(nbpas) else: nbpas fi,"à",RecMenuVar(xa));
- ColBloc:=OrangeTrois;
- $=Affichage(texto);
-else:
- message("La commande -- AjouterVar -- admet un deuxième paramètre de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef MontrerVar(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas :
- texto=ColleBoxNew("montrer la variable",RecMenuVar(nbpas));
- ColBloc:=OrangeTrois;
- $=Affichage(texto);
- else:
- message("La commande -- MontrerVar -- admet un premier paramètre de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef CacherVar(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas :
- texto=ColleBoxNew("cacher la variable",RecMenuVar(nbpas));
- ColBloc:=OrangeTrois;
- $=Affichage(texto);
- else:
- message("La commande -- CacherVar -- admet un premier paramètre de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-%Liste
-vardef AjouterListe(expr nbpas,xa)=
- LONG:=0;
- save $;
- picture $,texto;
- if string xa :
- texto=ColleBoxNew("ajouter",if string nbpas:OvalNb(nbpas) else: nbpas fi,"à",RecMenuList(xa));
- ColBloc:=OrangeListTrois;
- $=Affichage(texto);
-else:
- message("La commande -- AjouterListe -- admet un deuxième paramètre de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef SupprimerListe(expr nbpas,xa)=
- LONG:=0;
- save $;
- picture $,texto;
- if string xa :
- texto=ColleBoxNew("supprimer l'élément",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(xa));
- ColBloc:=OrangeListTrois;
- $=Affichage(texto);
-else:
- message("La commande -- SupprimerListe -- admet un deuxième paramètre de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef SupprimerListeAll(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas :
- texto=ColleBoxNew("supprimer tous les éléments de la liste",RecMenuList(nbpas));
- ColBloc:=OrangeListTrois;
- $=Affichage(texto);
-else:
- message("La commande -- SupprimerListe -- admet un deuxième paramètre de type string.");
- $=nullpicture;
-fi;
-$
-enddef;
-
-vardef InsererListe(expr xa,nbpas,ya)=
- LONG:=0;
- save $;
- picture $,texto;
- if string ya :
- texto=ColleBoxNew("insérer",if string xa:OvalNb(xa) else: xa fi,"en position",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(ya));
- ColBloc:=OrangeListTrois;
- $=Affichage(texto);
- else:
- message("La commande -- InsererListe -- admet un troisième paramètre de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef RemplacerListe(expr xa,nbpas,ya)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas :
- texto=ColleBoxNew("remplacer l'élément",if string xa:OvalNb(xa) else: xa fi,"de la liste",RecMenuList(nbpas),"par",if string ya:OvalNb(ya) else: ya fi);
- ColBloc:=OrangeListTrois;
- $=Affichage(texto);
-else:
- message("La commande -- RemplacerListe -- admet un deuxième paramètre de type string.");
- $=nullpicture;
-fi;
-$
-enddef;
-
-vardef MontrerListe(expr xa)=
- LONG:=0;
- save $;
- picture $,texto;
- if string xa :
- texto=ColleBoxNew("montrer la liste",RecMenuList(xa));
- ColBloc:=OrangeListTrois;
- $=Affichage(texto);
- else:
- message("La commande -- MontrerListe -- admet un paramètre de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef CacherListe(expr xa)=
- LONG:=0;
- save $;
- picture $,texto;
- if string xa :
- texto=ColleBoxNew("cacher la liste",RecMenuList(xa));
- ColBloc:=OrangeListTrois;
- $=Affichage(texto);
- else:
- message("La commande -- CacherListe -- admet un paramètre de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-%%% Section Operateur %%%
-
-vardef OpAdd(expr pasun,pasdeux)=
- save Oop; picture Oop;
- save TAao; path TAao;
- save LOPop; picture LOPop;
- LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$+$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
- TAao=OvalBox(LOPop);
- Oop=image(
- fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LOPop;
- draw TAao if print=false : withcolor coefprint*white fi;
- );
- Oop:=Oop shifted(-center Oop);
- Oop
-enddef;
-
-vardef OpSous(expr pasun,pasdeux)=
- save Oop; picture Oop;
- save TAao; path TAao;
- save LOPop; picture LOPop;
- LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$-$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
- TAao=OvalBox(LOPop);
- Oop=image(
- fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LOPop;
- draw TAao if print=false : withcolor coefprint*white fi;
- );
- Oop:=Oop shifted(-center Oop);
- Oop
-enddef;
-
-vardef OpMul(expr pasun,pasdeux)=
- save Oop; picture Oop;
- save TAao; path TAao;
- save LOPop; picture LOPop;
- LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$\times$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
- TAao=OvalBox(LOPop);
- Oop=image(
- fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LOPop;
- draw TAao if print=false : withcolor coefprint*white fi;
- );
- Oop:=Oop shifted(-center Oop);
- Oop
-enddef;
-
-vardef OpDiv(expr pasun,pasdeux)=
- save Oop; picture Oop;
- save TAao; path TAao;
- save LOPop; picture LOPop;
- LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$\div$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
- TAao=OvalBox(LOPop);
- Oop=image(
- fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LOPop;
- draw TAao if print=false : withcolor coefprint*white fi;
- );
- Oop:=Oop shifted(-center Oop);
- Oop
-enddef;
-
-vardef OpAlea(expr pasun,pasdeux)=
- save Oop; picture Oop;
- save TAao; path TAao;
- save LOPop; picture LOPop;
- LOPop=ColleBoxNew("nombre aléatoire entre",if string pasun : OvalNb(pasun) else: pasun fi,"et",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
- TAao=OvalBox(LOPop);
- Oop=image(
- fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LOPop;
- draw TAao if print=false : withcolor coefprint*white fi;
- );
- Oop:=Oop shifted(-center Oop);
- Oop
-enddef;
-
-vardef OpRegrouper(expr pasun,pasdeux)=
- save Oop; picture Oop;
- save TAao; path TAao;
- save LOPop; picture LOPop;
- LOPop=ColleBoxNew("regrouper",if string pasun : OvalNb(pasun) else: pasun fi,"et",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
- TAao=OvalBox(LOPop);
- Oop=image(
- fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LOPop;
- draw TAao if print=false : withcolor coefprint*white fi;
- );
- Oop:=Oop shifted(-center Oop);
- Oop
-enddef;
-
-vardef OpLettre(expr pasun,pasdeux)=
- save Oop; picture Oop;
- save TAao; path TAao;
- save LOPop; picture LOPop;
- LOPop=ColleBoxNew("lettre",if string pasun : OvalNb(pasun) else: pasun fi,"de",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
- TAao=OvalBox(LOPop);
- Oop=image(
- fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LOPop;
- draw TAao if print=false : withcolor coefprint*white fi;
- );
- Oop:=Oop shifted(-center Oop);
- Oop
-enddef;
-
-vardef OpLongueur(expr pasun)=
- save Oop; picture Oop;
- save TAao; path TAao;
- save LOPop; picture LOPop;
- LOPop=ColleBoxNew("longueur de",if string pasun : OvalNb(pasun) else: pasun fi);
- TAao=OvalBox(LOPop);
- Oop=image(
- fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LOPop;
- draw TAao if print=false : withcolor coefprint*white fi;
- );
- Oop:=Oop shifted(-center Oop);
- Oop
-enddef;
-
-vardef OpArrondi(expr pasun)=
- save Oop; picture Oop;
- save TAao; path TAao;
- save LOPop; picture LOPop;
- LOPop=ColleBoxNew("arrondi de",if string pasun : OvalNb(pasun) else: pasun fi);
- TAao=OvalBox(LOPop);
- Oop=image(
- fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LOPop;
- draw TAao if print=false : withcolor coefprint*white fi;
- );
- Oop:=Oop shifted(-center Oop);
- Oop
-enddef;
-
-vardef OpFonction(expr pasun,pasdeux)=
- save Oop; picture Oop;
- save TAao; path TAao;
- save LOPop; picture LOPop;
- LOPop=ColleBoxNew(RecMenuOp(pasun),"de",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
- TAao=OvalBox(LOPop);
- Oop=image(
- fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LOPop;
- draw TAao if print=false : withcolor coefprint*white fi;
- );
- Oop:=Oop shifted(-center Oop);
- Oop
-enddef;
-
-vardef TestOpSup(expr pasun, pasdeux)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$>$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
- TAa=DiamondBox(LTa);
- $=image(
- fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef TestOpInf(expr pasun, pasdeux)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$<$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
- TAa=DiamondBox(LTa);
- $=image(
- fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef TestOpEgal(expr pasun, pasdeux)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$=$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
- TAa=DiamondBox(LTa);
- $=image(
- fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef TestOpEt(expr pasun, pasdeux)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"et",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
- TAa=DiamondBox(LTa);
- $=image(
- fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef TestOpOu(expr pasun, pasdeux)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"ou",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
- TAa=DiamondBox(LTa);
- $=image(
- fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef TestOpNon(expr pasun)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew("non",if string pasun : OvalNb(pasun) else: pasun fi);
- TAa=DiamondBox(LTa);
- $=image(
- fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef TestOpContient(expr pasun,pasdeux)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"contient",if string pasun : OvalNb(pasdeux) else: pasun fi,"?");
- TAa=DiamondBox(LTa);
- $=image(
- fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef AppCostume(expr pasun)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew(RecMenuApp(pasun),"du costume");
- TAa=OvalBox(LTa);
- $=image(
- fill TAa if print=false : withcolor VioletAppTrois else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef AppAP(expr pasun)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew(RecMenuApp(pasun),"de l'arrière-plan");
- TAa=OvalBox(LTa);
- $=image(
- fill TAa if print=false : withcolor VioletAppTrois else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef CapDistance(expr pasun)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew("distance de",OvalCapMenu(pasun));
- TAa=OvalBox(LTa);
- $=image(
- fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef CapTemps(expr pasun)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew(RecMenuCap(pasun),"actuelle");
- TAa=OvalBox(LTa);
- $=image(
- fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef CapNumero(expr pasun,pasdeux)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew(RecMenuCap(pasun),"de",OvalCapMenu(pasdeux));
- TAa=OvalBox(LTa);
- $=image(
- fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef TestCapToucheObjet(expr pasun)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew("touche le",OvalCapMenu(pasun),"?");
- TAa=DiamondBox(LTa);
- $=image(
- fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef TestCapCouleur(expr pasun)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew("couleur",OvalCouleur(redpart(pasun),greenpart(pasun),bluepart(pasun)),"touchée ?");
- TAa=DiamondBox(LTa);
- $=image(
- fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef TestCapCouleurs(expr pasun,pasdeux)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew("couleur",OvalCouleur(redpart(pasun),greenpart(pasun),bluepart(pasun)),"touché",OvalCouleur(redpart(pasdeux),greenpart(pasdeux),bluepart(pasdeux)),"?");
- TAa=DiamondBox(LTa);
- $=image(
- fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef TestCapTouche(expr pasun)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew("touche",OvalMenuCap(pasun),"pressée ?");
- TAa=DiamondBox(LTa);
- $=image(
- fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef TestCapSouris=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew("souris pressée ?");
- TAa=DiamondBox(LTa);
- $=image(
- fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef TestListeContient(expr nbpas,nbbas)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew(RecMenuList(nbpas),"contient",if string nbbas:OvalNb(nbbas) else: nbbas fi);
- TAa=DiamondBox(LTa);
- $=image(
- fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef ListeElement(expr nbpas,nbbas)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew("élément",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(nbbas));
- TAa=OvalBox(LTa);
- $=image(
- fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef ListePosition(expr nbpas,nbbas)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew("position de",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(nbbas));
- TAa=OvalBox(LTa);
- $=image(
- fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef ListeLongueur(expr nbpas)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew("longueur de",RecMenuList(nbpas));
- TAa=OvalBox(LTa);
- $=image(
- fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
Deleted: trunk/Master/texmf-dist/metapost/profcollege/PfC-Scratch.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfC-Scratch.mp 2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfC-Scratch.mp 2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,3346 +0,0 @@
-%%%%% epaisseur de tracés %%%%%%%%
-numeric eppen;
-eppen=0.25;
-
-pickup pencircle scaled eppen;
-defaultpen := savepen;
-
-%points pour placer les différents éléments
-pair _coinprec;%coinbasgauche de la boite précédente
-pair _coincom;%coinbasdroite de la boite afin d'y mettre des commentaires
-pair _coinnum;%milieu côté gauche pour placer la numérotation des lignes
-
-%paramètres
-numeric Nblignes; Nblignes:=1;
-pair DebutListe; DebutListe=(0,0);
-boolean NumeroteLignes; NumeroteLignes=false;
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% couleurs
-color CoulLignes; CoulLignes:=black;
-color ColBloc; % alias des couleurs de bloc
-
-%Version3
-color BleuMouvTrois,dBleuMouvTrois,VioletAppTrois,dVioletAppTrois,OrangeConTrois,OrangeTrois,OrangeListTrois,SonTrois,DSonTrois,EvenementTrois,CapteurTrois,StyloTrois,BlocTrois,BlocDefTrois,BlocDefLigneTrois,MessageTrois,ControleTrois,CapFonceTrois,CloneTrois,FondSonTrois,OvalStyloTrois,FondOvalOp;
-BleuMouvTrois=(76/255,151/255,255/255);
-dBleuMouvTrois=(66/255,128/255,215/255);
-VioletAppTrois=(153/255,102/255,255/255);
-dVioletAppTrois=(133/255,92/255,214/255);
-OrangeConTrois=(255/255,171/255,25/255);
-OrangeTrois=(255/255,140/255,26/255);
-OrangeListTrois=(255/255,102/255,26/255);
-SonTrois=(207/255,99/255,207/255);
-DSonTrois=(201/255,79/255,201/255);
-FondSonTrois=(15/255,189/255,140/255);
-EvenementTrois=(255/255,191/255,0);
-MessageTrois=(230/255,172/255,0);
-CapteurTrois=(92/255,177/255,214/255);
-CapFonceTrois=(71/255,168/255,209/255);
-StyloTrois=(15/255,189/255,140/255);
-OvalStyloTrois=(13/255,165/255,122/255);
-BlocTrois=(255/255,102/255,128/255);
-BlocDefTrois=(255/255,77/255,106/255);
-BlocDefLigneTrois=(255/255,51/255,85/255);
-ControleTrois=(255/255,171/255,25/255);
-CloneTrois=(236/255,156/255,19/255);
-FondOvalOp=(89/255,192/255,89/255);
-
-vardef FondOvalAppMenu=
- save $; color $;
- $=dVioletAppTrois;
- $
-enddef;
-
-%%%%Alias
-def Place expr o =
- if path o: draw o else: draw o fi
-enddef;
-
-%impression
-boolean print;
-print=false;
-
-numeric coefprint;
-coefprint:=0.95;
-
-%texte ou symbole droite gauche
-boolean symbole;
-symbole=true;
-
-%divers
-numeric eb;%ecart boite-texte
-eb:=3pt;
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Création des boites
-ecrt:=eb/2;%largeur de la bordure de départ des boites Box, OValBox...
-
-vardef Box(text t)=
- save $; path $;
- picture ox;
- ox=image(
- if string t:
- string demitt;
- demitt=t&"\barre";
- label(TEX(demitt),(0,0));
- else:
- draw t;
- fi;
- );
- $=(llcorner ox+(0,-ecrt))--(lrcorner ox+(0,-ecrt))--(urcorner ox+(0,ecrt))--(ulcorner ox+(0,ecrt))--cycle;
- $
-enddef;
-
-vardef RecBox(text t)=
- save $; path $; path xo;
- if string t:
- string demit;
- demit=t&"\demibarre";
- xo=Box(demit);%on crée la boite contenant le texte
- else:
- xo=Box(t);
- fi;
- $=(llcorner xo+(-eb,eb)){dir-90}..{dir0}(llcorner xo)--(lrcorner xo){dir0}..{dir90}(lrcorner xo+(eb,eb))--(urcorner xo+(eb,-eb)){dir90}..{dir180}(urcorner xo)--(ulcorner xo){dir180}..{dir-90}(ulcorner xo+(-eb,-eb))--cycle;
- $
-enddef;
-
-%%%%%%%%%%%%%%
-
-%%%%%%% Boites Ovales %%%%%%%%
-vardef OvalBox(text t)=
- save $; path $; path xo;
- if string t:
- string demit;
- demit=t&"\barre";
- xo=Box(demit);%on crée la boite contenant le texte
- else:
- xo=Box(t);
- fi;
- $=(llcorner xo+(eb,0))--(lrcorner xo-(eb,0)){dir0}..{dir180}(urcorner xo+(-eb,0))--(ulcorner xo+(eb,0)){dir180}..{dir0}cycle;%on "arrondit" la boite
- $
-enddef;
-
-vardef OvalVar(expr ar)=
- save Ovar; picture Ovar;
- save TAvar; path TAvar;
- string TTv;
- TTv=ar&"\barre";
- TAvar=OvalBox(TTv);
- Ovar=image(
- fill TAvar if print=false : withcolor OrangeTrois else : withcolor white fi;
- draw TAvar if print=false : withcolor coefprint*white fi;
- label(TEX("\barre\bfseries "&ar),(0,0)) if print=false : withcolor white fi;
- );
- Ovar:=Ovar shifted(-center Ovar);
- Ovar
-enddef;
-
-vardef OvalList(text listelist)=
- save CList; picture CList;
- path TAlist; picture LOCMt;
- LOCMt=ColleBoxNew(listelist);
- TAlist=OvalBox(LOCMt);
- CList=image(
- fill TAlist if print=false : withcolor OrangeListTrois else : withcolor white fi;
- draw LOCMt;
- draw TAlist if print=false : withcolor coefprint*white fi;
- );
- CList:=CList shifted(-center CList);
- CList
-enddef;
-
-vardef OvalBloc(expr ar)=
- save $; picture $;
- path tabloc;
- tabloc=OvalBox(ar);
- $=image(
- fill tabloc if print=false : withcolor BlocTrois else: withcolor white fi;
- draw tabloc if print=true : withcolor black else: withcolor BlocDefLigneTrois fi;
- label(TEX("\bfseries\barre "&ar),(0,0)) if print=false : withcolor blanc fi;
- );
- $
-enddef;
-
-vardef OvalMiniBox(text t)=
- save $; path $; path xo;
- if string t:
- string demit;
- demit=t&"\barre";
- xo=Box(demit);%on crée la boite contenant le texte
- else:
- xo=Box(t);
- fi;
- $=(llcorner xo+(eb/2,0))--(lrcorner xo-(eb/2,0)){dir0}..{dir180}(urcorner xo+(-eb/2,0))--(ulcorner xo+(eb/2,0)){dir180}..{dir0}cycle;%on "arrondit" la boite
- $
-enddef;
-
-vardef DiamondBox(text t)=
- save $; path $; path xo;
- xo=Box(t);%on crée la boite contenant le texte
- $=(llcorner xo-(eb,0))--(lrcorner xo+(eb,0))--(1/2[lrcorner xo,urcorner xo]+(4eb,0))--(urcorner xo+(eb,0))--(ulcorner xo-(eb,0))--(1/2[llcorner xo,ulcorner xo]+(-4eb,0))--cycle;
- $
-enddef;
-
-vardef OvalNb(expr ar)=
- save Onb; picture Onb;
- path tanb;
- tanb=OvalBox(ar);
- Onb=image(
- fill tanb withcolor white;
- draw tanb if print=false : withcolor coefprint*white fi;
- label(TEX("\barre "&ar),(0,0));
- );
- Onb
-enddef;
-
-vardef OvalText(expr ar)=
- save $; save TA;
- picture $;
- path TA;
- TA=OvalBox(ar);
- $=image(%
- fill TA withcolor white;
- draw TA if print=false : withcolor coefprint*white fi;
- label(TEX("\barre "&ar),(0,0));
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef OvalOp(text listeop)=
- save Oop; picture Oop;
- save TAao; path TAao;
- save LOPop; picture LOPop;
- LOPop=ColleBoxNew(listeop);
- TAao=OvalBox(LOPop);
- Oop=image(
- fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LOPop;
- draw TAao if print=false : withcolor coefprint*white fi;
- );
- Oop:=Oop shifted(-center Oop);
- Oop
-enddef;
-
-vardef OvalApp(text listop)=
- save $; picture $;
- save ta; path ta;
- save TTap; picture TTap;
- TTap=ColleBoxNew(listop);
- ta=OvalBox(TTap);
- $=image(
- fill ta if print=false : withcolor VioletAppTrois else: withcolor white fi;
- draw ta if print=false : withcolor coefprint*white fi;
- draw TTap;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef OvalSon(text listop)=
- save $; picture $;
- save ta; path ta;
- save TTap; picture TTap;
- TTap=ColleBoxNew(listop);
- ta=OvalBox(TTap);
- $=image(
- fill ta if print=false : withcolor SonTrois else: withcolor white fi;
- draw ta if print=false : withcolor coefprint*white fi;
- draw TTap;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef OvalMusique(expr ar)=
- save $; save TA;
- picture $;
- if string ar:
- picture TT;
- TT=ColleBoxNew(DoubleNote,"tempo");
- path TA;
- TA=OvalBox(TT);
- $=image(
- fill TA if print : withcolor white else : withcolor StyloTrois fi;
- draw TT if print=true : withcolor coefprint*white fi;
- );
- else:
- message("La commande --OvalStylo-- n'accepte qu'un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef OvalMouv(expr ar)=
- save $; picture $;
- path ta; string TTm;
- TTm=ar&"\longbarre";
- ta=OvalBox(TTm);
- $=image(
- fill ta if print=false : withcolor BleuMouvTrois else: withcolor white fi;
- draw ta if print=false : withcolor coefprint*white fi;
- label(TEX("\longbarre "&ar),center ta) if print=false : withcolor blanc fi;
- );
- $
-enddef;
-
-vardef OvalMenuCap(expr art)=OvalCapMenu(art) enddef;
-
-vardef OvalCapMenu(expr ar)=
- save $; picture $;
- string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
- fi;
- path TAMC;
- TAMC=OvalBox(TTm);
- $=image(
- fill TAMC if print : withcolor white else : withcolor CapFonceTrois fi;
- draw TAMC if print=false : withcolor coefprint*white fi;
- label(TEX(TTm),center TAMC);
- );
- $
-enddef;
-
-vardef OvalCap(text listecap)=
- save Cap; picture Cap;
- save TAcap; path TAcap;
- save LOCMcap; picture LOCMcap;
- LOCMcap=ColleBoxNew(listecap);
- TAcap=OvalBox(LOCMcap);
- Cap=image(
- fill TAcap if print=false : withcolor CapteurTrois else : withcolor white fi;
- draw LOCMcap;
- draw TAcap if print=false : withcolor coefprint*white fi;
- );
- Cap:=Cap shifted(-center Cap);
- Cap
-enddef;
-
-vardef OvalMouvMenu(expr ar)=
- save $; picture $;
- path ta; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else:
- "\color{white}"&ar&"\hbox to1em{\barre}\color{black}\blacktriangledown"
- fi;
- ta=OvalBox(TTm);
- $=image(
- fill ta if print=false : withcolor dBleuMouvTrois else: withcolor white fi;
- draw ta if print=false : withcolor coefprint*white fi;
- label(TEX(TTm),center ta);
- );
- $
-enddef;
-
-vardef OvalAppMenu(expr ar)=
- save $; picture $;
- path ta; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
- fi;
- ta=OvalBox(TTm);
- $=image(
- fill ta if print=false : withcolor FondOvalAppMenu else: withcolor white fi;
- draw ta if print=false : withcolor coefprint*white fi;
- label(TEX(TTm),center ta);
- );
- $
-enddef;
-
-vardef OvalSonMenu(expr art)=OvalMenuSon(art) enddef;
-
-vardef OvalMenuSon(expr ar)=
- save $; save TA;
- picture $;
- string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
- fi;
- path TA;
- TA=OvalBox(TTm);
- $=image(%
- fill TA if print : withcolor white else : withcolor DSonTrois fi;
- draw TA if print=false : withcolor coefprint*white fi;
- label(TEX(TTm),center TA);
- );
- $
-enddef;
-
-vardef OvalMenuControle(expr ar)=
- save $; save TA;
- picture $;
- string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
- fi;
- path TA;
- TA=OvalBox(TTm);
- $=image(
- fill TA if print : withcolor white else : withcolor CloneTrois fi;
- draw TA if print=false : withcolor coefprint*white fi;
- label(TEX(TTm), center TA);
- );
- $
-enddef;
-
-vardef OvalStylo(expr ar)=
- save $; save TA;
- picture $;
- string TT,TTI;
- if string ar:
- if print:
- TT=ar&"\hbox to1em{\barre}\blacktriangledown"
- else:
- TT=ar&"\hbox to1em{\barre}\color{white}\blacktriangledown"
- fi;
- TTI=ar&"\hbox to1em{\barre}\phantom{\blacktriangledown}";
- path TA;
- TA=OvalBox(TT);
- $=image(
- fill TA if print : withcolor white else : withcolor OvalStyloTrois fi;
- draw TA if print=false : withcolor coefprint*white fi;
- label(TEX(TT),(0,0)) if print=false : withcolor white fi;
- );
- else:
- message("La commande --OvalStylo-- n'accepte qu'un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef OvalCouleur(expr redcc,greencc,bluecc)=
- save $; picture $;
- string TTv;
- path tacol;
- TTv="\phantom{10}\barre";
- tacol=OvalBox(TTv);
- $=image(
- fill tacol withcolor (redcc,greencc,bluecc);
- draw tacol;
- );
- $:=$ shifted(-center tacol);
- $
-enddef;
-
-vardef OvalMenuEvenement(expr ar)=
- save $; save TA;
- picture $;
- string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
- fi;
- path TA;
- TA=OvalBox(TTm);
- $=image(
- fill TA if print : withcolor white else : withcolor MessageTrois fi;
- draw TA if print=false : withcolor coefprint*white fi;
- label(TEX(TTm), center TA);
- );
- $
-enddef;
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Rectangles
-vardef RecMouvMenu(expr ar)=
- save $; picture $;
- path ta; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown"
- fi;
- ta=RecBox(TTm);
- $=image(
- fill ta if print=false : withcolor BleuMouvTrois else: withcolor white fi;
- draw ta if print=false : withcolor coefprint*white fi;
- label(TEX(TTm),center ta);
- );
- $
-enddef;
-
-vardef RecMenuApp(expr ar)=
- save $; picture $;
- save ta; path ta; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
- fi;
- ta=RecBox(TTm);
- $=image(
- fill ta if print=false : withcolor VioletAppTrois else: withcolor white fi;
- draw ta if print=false : withcolor coefprint*white fi;
- label(TEX(TTm),center ta);
- );
- $
-enddef;
-
-vardef RecMenuOp(expr ar)=
- save $; save TA;
- picture $; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
- fi;
- path TA;
- TA=RecBox(TTm);
- $=image(
- fill TA if print : withcolor white else : withcolor FondOvalOp fi;
- draw TA if print=false : withcolor coefprint*white fi;
- label(TEX(TTm), center TA);
- );
- $
-enddef;
-
-vardef RecMenuSon(expr ar)=
- save $; save TA;
- picture $; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown" fi;
- path TA;
- TA=RecBox(TTm);
- $=image(
- fill TA if print : withcolor white else : withcolor SonTrois fi;
- draw TA if print=false : withcolor coefprint*white fi;
- label(TEX(TTm), center TA);
- );
- $
-enddef;
-
-vardef RecEvenementMenu(expr ar)=
- save $; picture $;
- path ta; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
- fi;
- ta=RecBox(TTm);
- $=image(
- fill ta if print=false : withcolor EvenementTrois else: withcolor white fi;
- draw ta if print=false : withcolor coefprint*white fi;
- label(TEX(TTm),center ta);
- );
- $
-enddef;
-
-vardef RecMenuCap(expr ar)=
- save $; picture $;
- path ta; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
- fi;
- ta=RecBox(TTm);
- $=image(
- fill ta if print=false : withcolor CapteurTrois else: withcolor white fi;
- draw ta if print=false : withcolor coefprint*white fi;
- label(TEX(TTm),center ta);
- );
- $
-enddef;
-
-vardef RecMenuVar(expr ar)=
- save $; save TA;
- picture $; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
- fi;
- path TA;
- TA=RecBox(TTm);
- $=image(
- fill TA if print : withcolor white else : withcolor OrangeTrois fi;
- draw TA if print=false : withcolor coefprint*white fi;
- label(TEX(TTm), center TA);
- );
- $
-enddef;
-
-vardef RecMenuList(expr ar)=
- save $; save TA;
- picture $; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
- fi;
- path TA;
- TA=RecBox(TTm);
- $=image(
- fill TA if print : withcolor white else : withcolor OrangeListTrois fi;
- draw TA if print=false : withcolor coefprint*white fi;
- label(TEX(TTm), center TA);
- );
- $
-enddef;
-
-%%%%%%% Affichage Complet %%%%%%%%%%%%%
-vardef PuzzleBox(text t)=
- save $; path $; path xo;
- xo=Box(t);%on crée la boite contenant le texte
- $=(llcorner xo+(-eb,0)){dir-90}..{dir0}(llcorner xo+(0,-eb))--
- (llcorner xo+(0.375cm,0)+(-eb,-eb)){dir0}..
- {dir0}(llcorner xo+(0.375cm,0)+(0,-2eb))--
- (llcorner xo+(0.625cm,0)+(0,-2eb)){dir0}..
- {dir0}(llcorner xo+(0.625cm,0)+(eb,-eb))--
- (lrcorner xo+(0,-eb)){dir0}..{dir90}(lrcorner xo+(eb,0))--(urcorner xo+(eb,0)){dir90}..{dir-180}(urcorner xo+(0,eb))--
- (ulcorner xo+(0.625cm,0)+(eb,eb)){dir180}..
- {dir180}(ulcorner xo+(0.625cm,0))--
- (ulcorner xo+(0.375cm,0)){dir180}..
- {dir180}(ulcorner xo+(0.375cm,0)+(-eb,eb))--
- (ulcorner xo+(0,eb)){dir-180}..{dir-90}(ulcorner xo+(-eb,0))--cycle;
- $
-enddef;
-
-vardef BlocPuzzle(text nombloc)=
- save Bpuzzle; picture Bpuzzle;
- path TABp; picture LOCMp;
- LOCMp=ColleBoxNew(nombloc);
- TABp=PuzzleBox(LOCMp);
- Bpuzzle=image(
- fill TABp if print=false : withcolor BlocDefTrois else : withcolor white fi;
- draw LOCMp;
- draw TABp if print=true : withcolor black else: withcolor BlocDefLigneTrois fi;
- );
- Bpuzzle:=Bpuzzle shifted(-center Bpuzzle+(0,-eb/2));
- Bpuzzle
-enddef;
-
-vardef ColleBoxNew(text t)=%Pour coller plusieurs boites
- save Colle; picture Colle;
- Colle=nullpicture;
- numeric nbcolle; nbcolle:=0;
- save NBCOLLE; path NBCOLLE;
- for p_ = t:
- nbcolle:=nbcolle+1;
- endfor;
- picture HOLD; HOLD:=nullpicture;
- if unknown LONG: LONG:=0 fi;
- if nbcolle=1:%On dessine
- for p_ = t:
- if string p_:
- NBCOLLE:=Box(p_);
- HOLD:=image(
- label(TEX("\sffamily\bfseries\longbarre "&p_),(0,0)) if print=false : withcolor white fi;%->ok
- );
- HOLD:=(HOLD shifted ((xpart((center HOLD)-(llcorner HOLD))+LONG,0)));
- else:
- HOLD:=(p_ shifted ((xpart((center p_)-(llcorner p_))+LONG,0)));
- fi;
- endfor;
- addto Colle also HOLD;
- LONG:=LONG+abs(lrcorner Colle - llcorner Colle)+eb;
- else:%il faut coller les boites une à une
- for p_ = t:
- addto Colle also (ColleBoxNew(p_));
- endfor;
- fi;
- Colle
-enddef;
-
-vardef CADRE(expr texti)=
- save $; path $;
- $=(llcorner texti+(-eb,0)){dir-90}..{dir0}(llcorner texti+(0,-eb))--
- (llcorner texti+(0.375cm,0)+(-eb,-eb)){dir0}..
- {dir0}(llcorner texti+(0.375cm,0)+(0,-2eb))--
- (llcorner texti+(0.625cm,0)+(0,-2eb)){dir0}..
- {dir0}(llcorner texti+(0.625cm,0)+(eb,-eb))--
- (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir-180}(urcorner texti+(0,eb))--
- (ulcorner texti+(0.625cm,0)+(eb,eb)){dir180}..
- {dir180}(ulcorner texti+(0.625cm,0))--
- (ulcorner texti+(0.375cm,0)){dir180}..
- {dir180}(ulcorner texti+(0.375cm,0)+(-eb,eb))--
- (ulcorner texti+(0,eb)){dir-180}..{dir-90}(ulcorner texti+(-eb,0))--cycle;
- $
-enddef;
-
-vardef AFFI(expr texta)=
- path cadre;
- cadre=CADRE(texta);
- picture TEXT;
- TEXT=image(%
- fill cadre withcolor if print=true :coefprint*white else: if unknown ColBloc : white else : ColBloc fi; fi;
- draw texta;
- draw cadre withcolor CoulLignes;
- );
- TEXT
-enddef;
-
-vardef Affichage(expr textu)=
- save $;
- picture $;
- $=AFFI(textu);
- $:=$ shifted (if unknown _coinprec:(0,0) else :_coinprec fi - (ulcorner $));
-_coinprec:=(llcorner $)+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
- label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
- Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-
-%Pour les blocs de type contrôle
-vardef CADRECONTROLE(expr texti)=
- save $; path $;
- path tracecadre;
- $=(llcorner texti+(-eb,-eb))--%(llcorner texti+(0,-eb))--
- (llcorner texti+(0.875cm,0)+(-eb,-eb)){dir0}..
- {dir0}(llcorner texti+(0.875cm,0)+(0,-2eb))--
- (llcorner texti+(1.125cm,0)+(0,-2eb)){dir0}..
- {dir0}(llcorner texti+(1.125cm,0)+(eb,-eb))--
- (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir180}(urcorner texti+(0,eb))--
- (ulcorner texti+(0.625cm,0)+(eb,eb)){dir180}..
- {dir180}(ulcorner texti+(0.625cm,0))--
- (ulcorner texti+(0.375cm,0)){dir180}..
- {dir180}(ulcorner texti+(0.375cm,0)+(-eb,eb))--
- (ulcorner texti+(0,eb)){dir180}..{dir-90}(ulcorner texti+(-eb,0))--cycle;
- tracecadre=(llcorner texti+(0.5cm,0)+(0,-eb))--(llcorner texti+(0.875cm,0)+(-eb,-eb)){dir0}..
- {dir0}(llcorner texti+(0.875cm,0)+(0,-2eb))--
- (llcorner texti+(1.125cm,0)+(0,-2eb)){dir0}..
- {dir0}(llcorner texti+(1.125cm,0)+(eb,-eb))--
- (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir180}(urcorner texti+(0,eb))--
- (ulcorner texti+(0.625cm,0)+(eb,eb)){dir180}..
- {dir180}(ulcorner texti+(0.625cm,0))--
- (ulcorner texti+(0.375cm,0)){dir180}..
- {dir180}(ulcorner texti+(0.375cm,0)+(-eb,eb))--
- (ulcorner texti+(0,eb)){dir180}..{dir-90}(ulcorner texti+(-eb,0))--
- (llcorner texti+(-eb,-eb));
- $
-enddef;
-
-vardef AFFICONTROLE(expr texta)=
- path cadre;
- cadre=CADRECONTROLE(texta);
- picture TEXT;
- TEXT=image(
- fill cadre withcolor if print=true :coefprint*white else: if unknown ColBloc : white else : ColBloc fi; fi;
- draw texta;
- draw tracecadre withcolor CoulLignes;
- );
- TEXT
-enddef;
-
-vardef AffichageControle(expr textu)=
- save $;
- picture $;
- $=AFFICONTROLE(textu);
- $:=$ shifted (if unknown _coinprec:(0,0) else :_coinprec fi - (ulcorner $));
-_coinprec:=llcorner $+(0.5cm,0);
-_coinprec:=_coinprec+(0,eb);
-coindebutbloc[numblocrep]:=(llcorner $)+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
- label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
- Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-
-vardef CADREED(expr texti)=
- save $; path $;
- $=(llcorner texti+(-eb,0)){dir-90}..{dir0}(llcorner texti+(0,-eb))--
- (llcorner texti+(0.375cm,0)+(-eb,-eb)){dir0}..
- {dir0}(llcorner texti+(0.375cm,0)+(0,-2eb))--
- (llcorner texti+(0.625cm,0)+(0,-2eb)){dir0}..
- {dir0}(llcorner texti+(0.625cm,0)+(eb,-eb))--
- (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir-180}(urcorner texti+(0,eb))--
- 1/2[ulcorner texti+(-eb,eb),urcorner texti+(eb,eb)]{dir150}..{dir-150}(ulcorner texti+(-eb,eb))--cycle;
- $
-enddef;
-
-vardef AFFIED(expr texta)=
- path cadre;
- cadre=CADREED(texta);
- picture TEXT;
- TEXT=image(
- fill cadre withcolor if print=true :coefprint*white else: if unknown ColBloc : white else : ColBloc fi; fi;
- draw texta;
- draw cadre withcolor CoulLignes;
- );
- TEXT
-enddef;
-
-vardef AffichageED(expr textu)=
- save $;
- picture $;
- $=AFFIED(textu);
- $:=$ shifted (if unknown _coinprec:(0,0) else :_coinprec fi - (ulcorner $));
-_coinprec:=llcorner $;
-_coinprec:=_coinprec+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
- label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
- Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-
-%%% section Mouvement %%%%%%%%%%
-vardef Avancer(expr nbpas)=
- LONG:=0;
- save $;
- picture $, texto;
- if string nbpas:
- texto=ColleBoxNew("avancer de",OvalNb(nbpas),"pas");
- else:
- texto=ColleBoxNew("avancer de",nbpas,"pas");
- fi;
- ColBloc:=BleuMouvTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef Arcdroite=
- save $;
- picture $;
- $=image(
- path cc;
- cc=fullcircle scaled 10pt;
- drawarrow reverse(subpath(0,0.75*length cc) of cc) withpen pencircle scaled 2bp if print=false: withcolor white fi;
- );
- $
-enddef;
-
-vardef Arcgauche=
- save $;
- picture $;
- $=image(
- path cc;
- cc=fullcircle scaled 10pt;
- drawarrow (subpath(0.75*length cc,1.5*length cc) of cc) withpen pencircle scaled 2bp if print=false: withcolor white fi;
- );
- $
-enddef;
-
-vardef Tournerd(expr nbpas)=
- LONG:=0;
- save $;
- picture $, texto;
- if string nbpas:
- if symbole=true:
- texto=ColleBoxNew("tourner",Arcdroite,"de",OvalNb(nbpas),"degré(s)");
- else:
- texto=ColleBoxNew("tourner à droite de",OvalNb(nbpas),"degré(s)");
- fi;
- else:
- if symbole=true:
- texto=ColleBoxNew("tourner",Arcdroite,"de",nbpas,"degré(s)");
- else:
- texto=ColleBoxNew("tourner à droite de",nbpas,"degré(s)");
- fi;
- fi;
- ColBloc:=BleuMouvTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef Tournerg(expr nbpas)=
- LONG:=0;
- save $;
- picture $, texto;
- if string nbpas:
- if symbole=true:
- texto=ColleBoxNew("tourner",Arcgauche,"de",OvalNb(nbpas),"degré(s)");
- else:
- texto=ColleBoxNew("tourner à gauche de",OvalNb(nbpas),"degré(s)");
- fi;
- else:
- if symbole=true:
- texto=ColleBoxNew("tourner",Arcgauche,"de",nbpas,"degré(s)");
- else:
- texto=ColleBoxNew("tourner à gauche de",nbpas,"degré(s)");
- fi;
- fi;
- ColBloc:=BleuMouvTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef Orienter(expr nbpas)=
- LONG:=0;
- save $;
- picture $, texto;
- if string nbpas:
- texto=ColleBoxNew("s'orienter à",OvalNb(nbpas));
- else:
- texto=ColleBoxNew("s'orienter à",nbpas);
- fi;
- ColBloc:=BleuMouvTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef Orienterdirection(expr nbpas)=
- LONG:=0;
- save $;
- picture $, texto;
- if string nbpas:
- texto=ColleBoxNew("s'orienter vers",OvalMouvMenu(nbpas));
- else:
- texto=ColleBoxNew("s'orienter vers",nbpas);
- fi;
- ColBloc:=BleuMouvTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef OrienterVers(expr nbpass)=Orienterdirection(nbpass) enddef;
-
-vardef Aller(expr xa,ya)=
- LONG:=0;
- save $;
- picture $, texto;
- texto=ColleBoxNew("aller à x:",if string xa:OvalNb(xa) else: xa fi,"y:",if string ya:OvalNb(ya) else: ya fi);
- ColBloc:=BleuMouvTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef Glisser(expr na,xa,ya)=
- LONG:=0;
- save $;
- picture $, texto;
- texto=ColleBoxNew("glisser en",if string na:OvalNb(na) else: na fi,"seconde(s) à x :",if string xa:OvalNb(xa) else: xa fi,"y:",if string ya:OvalNb(ya) else: ya fi);
- ColBloc:=BleuMouvTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef Allera(expr nbpas)=
- LONG:=0;
- save $;
- picture $, texto;
- if string nbpas:
- texto=ColleBoxNew("aller à",OvalMouvMenu(nbpas));
- ColBloc:=BleuMouvTrois;
- $=Affichage(texto);
- else:
- message("");
- message("La commande -- Allera -- n'accepte qu'un type string comme argument.");
- message("");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef Glissera(expr na,xa)=
- LONG:=0;
- save $;
- picture $, texto;
- if string xa:
- texto=ColleBoxNew("glisser en",if string na:OvalNb(na) else: na fi,"seconde(s) à",OvalMouvMenu(xa));
- ColBloc:=BleuMouvTrois;
- $=Affichage(texto);
-else:
- message("");
- message("La commande -- Glissera -- n'accepte qu'un type string comme deuxième argument.");
- message("");
- $=nullpicture;
-fi;
- $
-enddef;
-
-vardef Ajouter(expr nba,xa)=
- LONG:=0;
- save $;
- picture $, texto;
- if string xa:
- texto=ColleBoxNew("ajouter",if string nba:OvalNb(nba) else: nba fi,"à",xa);
- ColBloc:=BleuMouvTrois;
- $=Affichage(texto);
-else:
- message("");
- message("La commande -- Ajouter -- n'accepte qu'un type string comme deuxième argument.");
- message("");
- $=nullpicture;
-fi;
-$
-enddef;
-
-vardef Mettre(expr xa,nba)=
- LONG:=0;
- save $;
- picture $, texto;
- if string xa:
- texto=ColleBoxNew("mettre",xa,"à",if string nba:OvalNb(nba) else: nba fi);
- ColBloc:=BleuMouvTrois;
- $=Affichage(texto);
- else:
- message("");
- message("La commande -- Mettre -- n'accepte qu'un type string comme premier argument.");
- message("");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef Rebondir=
- LONG:=0;
- save $;
- picture $, texto;
- texto=ColleBoxNew("rebondir si le bord est atteint");
- ColBloc:=BleuMouvTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef FixerSensRotation(expr nbpas)=
- LONG:=0;
- save $;
- picture $, texto;
- if string nbpas:
- texto=ColleBoxNew("fixer le sens de rotation",RecMouvMenu(nbpas));%RecMouvMenu(nbpas));
- ColBloc:=BleuMouvTrois;
- $=Affichage(texto);
- else:
- message("La commande --FixerSensRotation-- admet un seul argument de type string");
- $=nullpicture;
- fi;
- $
-enddef;
-
-%%%% fin section Mouvement %%%%%%
-
-%%%%% Section Apparence %%%%%%%%%
-vardef DireT(expr na,xa)=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("dire",if string na:OvalText(na) else: na fi,"pendant",if string xa : OvalNb(xa) else: xa fi,"seconde(s)");
-ColBloc:=VioletAppTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef Dire(expr na)=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("dire",if string na:OvalText(na) else: na fi);
-ColBloc:=VioletAppTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef PenserT(expr na,xa)=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("penser à",if string na:OvalText(na) else: na fi,"pendant",if string xa : OvalNb(xa) else: xa fi,"seconde(s)");
-ColBloc:=VioletAppTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef Penser(expr na)=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("penser à",if string na:OvalText(na) else: na fi);
-ColBloc:=VioletAppTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef Montrer=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("montrer");
- ColBloc:=VioletAppTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef Cacher=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("cacher");
- ColBloc:=VioletAppTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef Basculer(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew("basculer sur le costume",OvalAppMenu(nbpas));
- ColBloc:=VioletAppTrois;
- $=Affichage(texto);
- else:
- message("La commande --Basculer-- n'accepte qu'un argument string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef BasculerCostume(expr nbpass)=Basculer(nbpass) enddef;
-
-vardef CostumeSuivant=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("costume suivant");
- ColBloc:=VioletAppTrois;
- $=Affichage(texto);
-$
-enddef;
-
-vardef ARSuivant=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("arrière-plan suivant");
- ColBloc:=VioletAppTrois;
- $=Affichage(texto);
-$
-enddef;
-
-vardef BasculerAR(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew("basculer sur l'arrière-plan",OvalAppMenu(nbpas));
- ColBloc:=VioletAppTrois;
- $=Affichage(texto);
- else:
- message("La commande --BasculerAR-- n'accepte qu'un argument string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef BasculerARA(expr nbpas)=%quand la scène est sélectionnée...
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew("basculer sur l'arrière-plan",OvalAppMenu(nbpas)," et attendre");
- ColBloc:=VioletAppTrois;
- $=Affichage(texto);
- else:
- message("La commande --BasculerARA-- n'accepte qu'un argument string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef AjouterEffet(expr nbpas,xa)=
- LONG:=0;
- save $;
- picture $,texto;
- if string xa:
- texto=ColleBoxNew("ajouter",if string nbpas: OvalNb(nbpas) else: nbpas fi," à l'effet",RecMenuApp(xa));
- ColBloc:=VioletAppTrois;
- $=Affichage(texto);
-else:
- message("La commande --AjouterEffet-- n'accepte qu'un deuxième argument de type string.");
- $=nullpicture;
-fi;
-$
-enddef;
-
-vardef MettreEffet(expr xa,nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string xa:
- texto=ColleBoxNew("mettre l'effet",RecMenuApp(xa),"à",if string nbpas:OvalNb(nbpas) else: nbpas fi);
- ColBloc:=VioletAppTrois;
- $=Affichage(texto);
-else:
- message("La commande --MettreEffet-- n'accepte qu'un premier argument de type string.");
- $=nullpicture;
-fi;
-$
-enddef;
-
-vardef AnnulerEffet=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("annuler les effets graphiques");
- ColBloc:=VioletAppTrois;
- $=Affichage(texto);
-$
-enddef;
-
-vardef AnnulerEffets=AnnulerEffet enddef;
-
-vardef AjouterTaille(expr na)=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("ajouter",if string na:OvalNb(na) else: na fi,"à la taille");
-ColBloc:=VioletAppTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef MettreA(expr na)=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("mettre la taille à",if string na:OvalNb(na) else: na fi,"\% de la taille initiale");
-ColBloc:=VioletAppTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef MettreTaille(expr art)=MettreA(art) enddef;
-
-vardef AllerPlan(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew("aller à l'",RecMenuApp(nbpas),"plan");
- ColBloc:=VioletAppTrois;
- $=Affichage(texto);
- else:
- message("La commande --AllerPlan-- n'accepte qu'un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef DeplacerPlan(expr nbpas,xa)=
- LONG:=0;
- save $;
- picture $,texto;
- if string xa:
- texto=ColleBoxNew("déplacer de",if string nbpas:OvalNb(nbpas) else: nbpas fi,"plan(s) vers l'",RecMenuApp(xa));
- ColBloc:=VioletAppTrois;
- $=Affichage(texto);
-else:
- message("La commande --DeplacerPlan-- n'accepte qu'un deuxième argument de type string.");
- $=nullpicture;
-fi;
-$
-enddef;
-%%%%fin Section Apparance%%%%%%%%%%%%
-
-%%%%%% Section Son%%%%%%%%%%%%
-vardef Jouer(expr nbpas)=
- LONG:=0;
- save $;
- picture $, texto;
- if string nbpas :
- texto=ColleBoxNew("jouer le son",OvalMenuSon(nbpas));
- ColBloc:=SonTrois;
- $=Affichage(texto);
- else:
- message("La commande --Jouer-- n'accepte qu'un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef JouerT(expr nbpas)=
- LONG:=0;
- save $;
- picture $, texto;
- if string nbpas:
- texto=ColleBoxNew("jouer le son",OvalMenuSon(nbpas)," jusqu'au bout");
- ColBloc:=SonTrois;
- $=Affichage(texto);
- else:
- message("La commande --Jouer-- n'accepte qu'un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef ArreterSon=
- LONG:=0;
- save $;
- picture $, texto;
- texto=ColleBoxNew("arrêter tous les sons");
- ColBloc:=SonTrois;;
- $=Affichage(texto);
- $
-enddef;
-
-vardef ArreterSons=ArreterSon enddef;
-
-vardef AjouterVol(expr xa)=
- LONG:=0;
- save $;
- picture $, texto;
- texto=ColleBoxNew("ajouter",if string xa:OvalNb(xa) else: xa fi," au volume");
- ColBloc:=SonTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef MettreVol(expr xa)=
- LONG:=0;
- save $;
- picture $, texto;
- texto=ColleBoxNew("mettre le volume à",if string xa: OvalNb(xa) else: xa fi,"~\%");
- ColBloc:=SonTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef AjouterEffetSon(expr nombre, effet)=
- LONG:=0;
- save $;
- picture $, texto;
- if string effet:
- texto=ColleBoxNew("ajouter",if string nombre : OvalNb(nombre) else: nombre fi," à l'effet",RecMenuSon(effet));
- ColBloc:=SonTrois;
- $=Affichage(texto);
-else:
- message("La commande -- AjouterEffet -- n'accepte qu'un deuxième argument de type string.");
- $=nullpicture;
-fi;
-$
-enddef;
-
-vardef MettreEffetSon(expr effet,nombre)=
- LONG:=0;
- save $;
- picture $, texto;
- if string effet:
- texto=ColleBoxNew("mettre l'effet",RecMenuSon(effet),"à",if string nombre:OvalNb(nombre) else: nombre fi);
- ColBloc:=SonTrois;
- $=Affichage(texto);
-else:
- message("La commande -- MettreEffet -- n'accepte qu'un argument de type string.");
- $=nullpicture;
-fi;
-$
-enddef;
-
-vardef AnnulerEffetSon=
- LONG:=0;
- save $;
- picture $, texto;
- texto=ColleBoxNew("annuler tous les effets sonores");
- ColBloc:=SonTrois;
- $=Affichage(texto);
- $
-enddef;
-
-%Musique
-vardef Tambour(expr na,xa)=
- LONG:=0;
- save $;
- picture $, texto;
- if string na:
- texto=ColleBoxNew(DoubleNote,"jouer du tambour",OvalStylo(na),"pendant",if string xa:OvalNb(xa) else: xa fi,"temps");
- ColBloc:=StyloTrois;
- $=Affichage(texto);
-else:
- message("La commande --Tambour-- n'accepte qu'un premier argument de type string.");
- $=nullpicture;
-fi;
-$
-enddef;
-
-vardef Pause(expr na)=
- LONG:=0;
- save $;
- picture $, texto;
- texto=ColleBoxNew(DoubleNote,"faire une pause pendant",if string na: OvalNb(na) else: na fi," temps");
- ColBloc:=StyloTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef JouerNote(expr na,xa)=
- LONG:=0;
- save $;
- picture $, texto;
- texto=ColleBoxNew(DoubleNote,"jouer la note",if string na:OvalNb(na) else: na fi," pendant",if string xa:OvalNb(xa) else: xa fi," temps");
-ColBloc:=StyloTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef ChoisirInstrument(expr na)=
- LONG:=0;
- save $;
- picture $, texto;
- if string na:
- texto=ColleBoxNew(DoubleNote,"choisir l'instrument \no{}",OvalStylo(na));
- ColBloc:=StyloTrois;
- $=Affichage(texto);
- else:
- message("La commande -- ChoisirInstrument -- n'accepte qu'un argument de type string");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef MettreTempo(expr xa)=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew(DoubleNote,"mettre le tempo à",if string xa:OvalNb(xa) else: xa fi);
- ColBloc:=FondSonTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef AjouterTempo(expr xa)=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew(DoubleNote,"ajouter",if string xa:OvalNb(xa) else: xa fi," au tempo");
-ColBloc:=FondSonTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef DoubleNote=
- save $;
- picture $;
- $=image(
- draw (((0,0)--(0,18pt)) shifted(-12,-9pt)) withpen pencircle scaled 1bp withcolor if print: coefprint*white else: StyloTrois fi;
- draw NoteImage shifted((-5,-2));
- draw NoteImage shifted((3.5,2));
- draw (((0,0)--(0,18pt)) shifted(12,-9pt)) withpen pencircle scaled 1bp withcolor if print: 0.5*coefprint*white else: (69/255,168/255,140/255) fi;%Trop clair->(14/255,187/255,139/255);
-);
- $:=$ shifted(-3,0);
- $
-enddef;
-
-vardef NoteImage=
- save $;
- picture $;
- $=image(
- linecap := butt;
- linejoin := mitered;
- fill (80.695297,716.262024)..controls (80.574203,716.257996) and (80.476601,716.171997)..(80.480499,716.062988)
- --(80.687500,704.125000)..controls (79.941399,704.570007) and (78.644501,704.637024)..(77.312500,704.223022)
- ..controls (75.503899,703.659973) and (74.339798,702.429993)..(74.710899,701.473022)
- ..controls (75.082001,700.512024) and (76.851601,700.187988)..(78.656303,700.750000)
- ..controls (80.425797,701.301025) and (81.574203,702.504028)..(81.273399,703.453003)
- --(81.125000,711.987976)..controls (82.910202,711.909973) and (86.910202,711.625000)..(84.917999,706.456970)
- ..controls (85.992203,707.906006) and (86.839798,709.598022)..(85.273399,711.629028)
- ..controls (84.378899,712.789001) and (81.617203,713.348022)..(81.062500,715.398010)
- --(81.054703,716.065979)..controls (81.050797,716.176025) and (80.953102,716.262024)..(80.832001,716.262024)
- --cycle if print=false: withcolor white fi;
- pickup pencircle scaled 0.797011bp;
- draw (80.695297,716.262024)..controls (80.574203,716.257996) and (80.476601,716.171997)..(80.480499,716.062988)
- --(80.687500,704.125000)..controls (79.941399,704.570007) and (78.644501,704.637024)..(77.312500,704.223022)
- ..controls (75.503899,703.659973) and (74.339798,702.429993)..(74.710899,701.473022)
- ..controls (75.082001,700.512024) and (76.851601,700.187988)..(78.656303,700.750000)
- ..controls (80.425797,701.301025) and (81.574203,702.504028)..(81.273399,703.453003)
- --(81.125000,711.987976)..controls (82.910202,711.909973) and (86.910202,711.625000)..(84.917999,706.456970)
- ..controls (85.992203,707.906006) and (86.839798,709.598022)..(85.273399,711.629028)
- ..controls (84.378899,712.789001) and (81.617203,713.348022)..(81.062500,715.398010)
- --(81.054703,716.065979)..controls (81.050797,716.176025) and (80.953102,716.262024)..(80.832001,716.262024)
- --cycle if print=false: withcolor white fi;
- pickup pencircle scaled eppen;
- );
- $:=($ rotatedabout((72.000000,699),15)) scaled 0.8;
- $:=$ shifted(-center $);
- $
-enddef;
-
-%%%%%% fin Section Son %%%%%%%%%
-
-%%%%%% Section Stylo %%%%%%%%%
-vardef ImageCrayon=
- save titi;
- picture titi;
- titi=image(%
- draw CrayonImage shifted(-12,0);
- draw (((0,0)--(0,18pt)) shifted(9,-9)) withpen pencircle scaled 1bp withcolor if print: 0.5*coefprint*white else: (69/255,168/255,140/255) fi;%Trop clair->(14/255,187/255,139/255);
- );
- titi
-enddef;
-
-vardef Effacer=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew(ImageCrayon,"effacer tout");
- ColBloc:=StyloTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef Estampiller=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew(ImageCrayon,"estampiller");
- ColBloc:=StyloTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef PoserStylo=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew(ImageCrayon," stylo en position d'écriture");
- ColBloc:=StyloTrois;
- $=Affichage(texto);
-$
-enddef;
-
-vardef ReleverStylo=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew(ImageCrayon,"relever le stylo");
- ColBloc:=StyloTrois;
- $=Affichage(texto);
-$
-enddef;
-
-vardef MettreCouleur(expr redc,greenc,bluec)=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew(ImageCrayon," mettre la couleur du stylo à",OvalCouleur(redc,greenc,bluec));
- ColBloc:=StyloTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef AjouterCS(text t)=
- LONG:=0;
- save $;
- picture $,texto;
- numeric k; k=0;
- for p_=t:
- if k=1:string effet; effet=p_ fi;
- if k=0: if string p_:string nombre; nombre=p_ else: if picture p_: picture nombre; nombre=p_; fi fi fi;
- k:=k+1;
- endfor;
- texto=ColleBoxNew(ImageCrayon,"ajouter",if string nombre:OvalNb(nombre) else: nombre fi,"à la",OvalStylo(effet),"du stylo");
-ColBloc:=StyloTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef MettreCS(text t)=
- LONG:=0;
- save $;
- picture $,texto;
- numeric k; k=0;
- for p_=t:
- if k=0:string effet; effet=p_ fi;
- if k=1: if string p_:string nombre; nombre=p_ else: if picture p_: picture nombre; nombre=p_; fi fi fi;
- k:=k+1;
- endfor;
- texto=ColleBoxNew(ImageCrayon,"mettre la",OvalStylo(effet),"du stylo à",if string nombre:OvalNb(nombre) else: nombre fi);
-ColBloc:=StyloTrois;
-$=Affichage(texto);
-$
-enddef;
-
-%taille du stylo
-vardef AjouterTS(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew(ImageCrayon,"ajouter",if string nbpas:OvalNb(nbpas) else: nbpas fi,"à la taille du stylo");
-ColBloc:=StyloTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef MettreTS(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew(ImageCrayon,"mettre la taille du stylo à",if string nbpas:OvalNb(nbpas) else: nbpas fi);
-ColBloc:=StyloTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef CrayonImage=
- picture cray;
- cray=image(%
- drawoptions (if print=false:withcolor (0.298050,0.556850,0.917650) fi);
- linecap := butt;
- linejoin := mitered;
- fill (0.960938,1.390630)--(1.644530,2.996090)..controls (1.730470,3.199220) and (1.917970,3.500000)..(2.062500,3.664060)..controls (2.324220,3.968750) and (3.539060,2.753910)..(3.234380,2.488280)..controls (3.070310,2.343750) and (2.769530,2.160160)..(2.566410,2.074220)--cycle;
- drawoptions (withcolor (0.349030,0.368640,0.450970));
- pickup pencircle scaled 0.498140bp;
- draw (0.960938,1.390630)--(1.644530,2.996090)..controls (1.730470,3.199220) and (1.917970,3.500000)..(2.062500,3.664060)..controls (2.324220,3.968750) and (3.539060,2.753910)..(3.234380,2.488280)..controls (3.070310,2.343750) and (2.769530,2.160160)..(2.566410,2.074220)--cycle;
- drawoptions (withcolor (1.000000,1.000000,1.000000));
- %pickup pencircle scaled 0.000000bp;
- fill (1.800780,3.363280)--(2.558590,5.156250)..controls (2.601560,5.257810) and (2.699220,5.402340)..(2.777340,5.480470)--(8.281250,10.984400)..controls (8.300780,11.003900) and (8.339840,11.023400)..(8.367190,11.031300)..controls (9.757810,11.398400) and (10.968800,10.187500)..(10.601600,8.792970)..controls (10.593800,8.769530) and (10.574200,8.730470)..(10.554700,8.710940)--(6.316410,4.476560)..controls (5.539060,3.695310) and (4.089840,2.718750)..(3.074220,2.289060)--(2.980470,2.246090)..controls (2.957030,2.238280) and (2.953130,2.242190)..(2.972660,2.261720)..controls (3.539060,2.753910) and (2.324220,3.968750)..(1.800780,3.363280)--cycle;
- drawoptions (if print=false:withcolor (0.349030,0.368640,0.450970) fi);
- pickup pencircle scaled 0.498140bp;
- draw (1.800780,3.363280)--(2.558590,5.156250)..controls (2.601560,5.257810) and (2.699220,5.402340)..(2.777340,5.480470)--(8.281250,10.984400)..controls (8.300780,11.003900) and (8.339840,11.023400)..(8.367190,11.031300)..controls (9.757810,11.398400) and (10.968800,10.187500)..(10.601600,8.792970)..controls (10.593800,8.769530) and (10.574200,8.730470)..(10.554700,8.710940)--(6.316410,4.476560)..controls (5.539060,3.695310) and (4.089840,2.718750)..(3.074220,2.289060)--(2.980470,2.246090)..controls (2.957030,2.238280) and (2.953130,2.242190)..(2.972660,2.261720)..controls (3.539060,2.753910) and (2.324220,3.968750)..(1.800780,3.363280);
- drawoptions (if print=false:withcolor (0.298050,0.556850,0.917650) fi);
- %pickup pencircle scaled 0.000000bp;
- fill (8.316410,11.019500)--(13.031300,15.730500)..controls (13.109400,15.808600) and (13.257800,15.878900)..(13.371100,15.886700)..controls (14.308600,15.949200) and (15.519500,14.734400)..(15.457000,13.796900)..controls (15.449200,13.687500) and (15.378900,13.535200)..(15.300800,13.457000)--(10.589800,8.746090)..controls (10.968800,10.187500) and (9.757810,11.398400)..(8.316410,11.019500)--cycle;
- drawoptions (if print=false:withcolor (0.349030,0.368640,0.450970) fi);
- pickup pencircle scaled 0.498140bp;
- draw (8.316410,11.019500)--(13.031300,15.730500)..controls (13.109400,15.808600) and (13.257800,15.878900)..(13.371100,15.886700)..controls (14.308600,15.949200) and (15.519500,14.734400)..(15.457000,13.796900)..controls (15.449200,13.687500) and (15.378900,13.535200)..(15.300800,13.457000)--(10.589800,8.746090)..controls (10.968800,10.187500) and (9.757810,11.398400)..(8.316410,11.019500)--cycle;
- draw (12.562500,15.265600)..controls (7.937500,15.644500) and (9.453130,10.488300)..(6.117190,11.398400);
- %pickup pencircle scaled 0.000000bp;
- fill (7.199220,12.785200)..controls (6.812500,13.175800) and (6.179690,13.175800)..(5.792970,12.785200)..controls (5.402340,12.398400) and (5.402340,11.765600)..(5.792970,11.378900)..controls (6.179690,10.988300) and (6.812500,10.988300)..(7.199220,11.378900)..controls (7.589840,11.765600) and (7.589840,12.398400)..(7.199220,12.785200)--cycle;
- fill (6.496090,12.082000)--cycle;
- pickup pencircle scaled 0.498140bp;
- draw (7.199220,12.785200)..controls (6.812500,13.175800) and (6.179690,13.175800)..(5.792970,12.785200)..controls (5.402340,12.398400) and (5.402340,11.765600)..(5.792970,11.378900)..controls (6.179690,10.988300) and (6.812500,10.988300)..(7.199220,11.378900)..controls (7.589840,11.765600) and (7.589840,12.398400)..(7.199220,12.785200)--cycle;
- draw (6.496090,12.082000);
- drawoptions();
- pickup pencircle scaled 0bp;
- draw (-3,0)--(-3,18) withcolor if print : coefprint*white else: StyloTrois fi;
- pickup pencircle scaled eppen;
- );
- cray:=cray shifted((0,-9pt));
- cray
-enddef;
-
-%%%%%% Fin Section Stylo %%%%%%%%
-
-%%%%%% Section Contrôle %%%%%%%%%
-color colControle;
-colControle:=OrangeConTrois;
-
-vardef AffichageStop=
- path cadre;
- cadre=(llcorner texto+(-eb,0)){dir-90}..{dir0}(llcorner texto+(0,-eb))--
- (lrcorner texto+(0,-eb)){dir0}..{dir90}(lrcorner texto+(eb,0))--(urcorner texto+(eb,0)){dir90}..{dir180}(urcorner texto+(0,eb))--
- (ulcorner texto+(0.625cm,0)+(eb,eb)){dir180}..
- {dir180}(ulcorner texto+(0.625cm,0))--
- (ulcorner texto+(0.375cm,0)){dir180}..
- {dir180}(ulcorner texto+(0.375cm,0)+(-eb,eb))--
- (ulcorner texto+(0,eb)){dir180}..{dir-90}(ulcorner texto+(-eb,0))--cycle;
- picture TEXT;
- TEXT=image(
- fill cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
- draw texto;
- draw cadre withcolor CoulLignes;
- );
- TEXT
-enddef;
-
-pair coindebutbloc[];
-numeric numblocrep;
-numblocrep:=0;
-
-vardef Repeter(expr xa)=
- LONG:=0;
- save $;
- numblocrep:=numblocrep+1;
- picture $,texto;
- texto=ColleBoxNew("répéter", if string xa : OvalNb(xa) else: xa fi,"fois");
-LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
-ColBloc:=OrangeConTrois;
-$=AffichageControle(texto);
-$
-enddef;
-
-vardef RepeterI=
- LONG:=0;
- save $;
- numblocrep:=numblocrep+1;
- picture $,texto;
- texto=ColleBoxNew("répéter indéfiniment");
- LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
- ColBloc:=OrangeConTrois;
- $=AffichageControle(texto);
- $
-enddef;
-
-vardef RepeterJ(expr xa)=
- LONG:=0;
- save $;
- numblocrep:=numblocrep+1;
- picture $,texto;
- if picture xa:
- texto=ColleBoxNew("répéter jusqu'à ce que",xa);
- LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
- ColBloc:=OrangeConTrois;
- $=AffichageControle(texto);
- else:
- message("La commande -- RepeterJ -- n'admet qu'un argument de type picture.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef FinBlocRepeter=
- LONG:=0;
- save $;
- picture $,texto;
- _coinprec:=_coinprec-(0.5cm,0);
- drawoptions();
- texto=image(
- labeloffset:=0;
- label.lrt(TEX("\hbox to"&decimal(LongRep[numblocrep])&"pt{\phantom{\barre fin du bloc}}"),if unknown _coinprec: (0,0) else:_coinprec fi);
- labeloffset:=3;
- );
-path cadre;
-cadre=(coindebutbloc[numblocrep]+(0.125,0.125))--
- (coindebutbloc[numblocrep]+(0.0625+0.5cm+eb,0.125)){dir180}..
- {dir-90}(coindebutbloc[numblocrep]+(0.5cm,-eb))--
- (ulcorner texto+(0.5cm,eb)){dir-90}..
- {dir0}(ulcorner texto+(0.5cm+eb,0))--
- (ulcorner texto+(0.5cm+0.375cm,0)){dir0}..%
- {dir0}(ulcorner texto+(0.5cm+0.375cm,0)+(eb,-eb))--%
- (ulcorner texto+(0.5cm+0.625cm,0)+(eb,-eb)){dir0}..%
- {dir0}(ulcorner texto+(0.5cm+0.625cm,0)+(2eb,0))--%
- (urcorner texto+(-eb,0)){dir0}..
- {dir-90}(urcorner texto+(0,-eb))--
- (lrcorner texto+(0,eb)){dir-90}..
- {dir180}(lrcorner texto+(-eb,0))--
- (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
- {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
- (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
- {dir180}(llcorner texto+(0.125+0.375cm,0))--
- (llcorner texto+(0.125,0)+(eb,0)){dir180}..
- {dir90}(llcorner texto+(0.125,0)+(0,eb))--
- cycle;
-$=image(
- fill cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
- draw cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
- AA:=ahangle;
- ahangle:=90;
- drawarrow (lrcorner texto+(-0.625cm,0.15cm)){dir-15}..{dir90}(urcorner texto+(-0.25cm,-0.1cm)) withpen pencircle scaled2bp if print=false : withcolor white fi;
- ahangle:=AA;
- draw (coindebutbloc[numblocrep]+(0.0625+0.5cm+eb,0.125)){dir180}..
- {dir-90}(coindebutbloc[numblocrep]+(0.5cm,-eb))--
- (ulcorner texto+(0.5cm,eb)){dir-90}..
- {dir0}(ulcorner texto+(0.5cm+eb,0))--
- (ulcorner texto+(0.5cm+0.375cm,0)){dir0}..%
- {dir0}(ulcorner texto+(0.5cm+0.375cm,0)+(eb,-eb))--%
- (ulcorner texto+(0.5cm+0.625cm,0)+(eb,-eb)){dir0}..%
- {dir0}(ulcorner texto+(0.5cm+0.625cm,0)+(2eb,0))--%
- (urcorner texto+(-eb,0)){dir0}..
- {dir-90}(urcorner texto+(0,-eb))--
- (lrcorner texto+(0,eb)){dir-90}..
- {dir180}(lrcorner texto+(-eb,0))--
- (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
- {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
- (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
- {dir180}(llcorner texto+(0.125+0.375cm,0))--
- (llcorner texto+(0.125,0)+(eb,0)){dir180}..
- {dir90}(llcorner texto+(0.125,0)+(0,eb))--(coindebutbloc[numblocrep]+(0.125,0.125)) withcolor CoulLignes;
- );
-_coinprec:=(llcorner $);
-_coinprec:=_coinprec+(0,eb);
-numblocrep:=numblocrep-1;
-$
-enddef;
-
-vardef FinBlocRepeterI=FinBlocRepeter enddef;
-
-vardef Si(expr xa)=
- LONG:=0;
- save $;
- numblocrep:=numblocrep+1;
- picture $,texto;
- if picture xa:
- texto=ColleBoxNew("si\hbox to1em{}",xa,"alors");
- LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
- ColBloc:=OrangeConTrois;
- $=AffichageControle(texto);
- else:
- message("La commande -- Si -- n'admet qu'un argument de type picture.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef FinBlocSi=
- LONG:=0;
- save $;
- picture $,texto;
- _coinprec:=_coinprec-(0.5cm,0);
- drawoptions();
- texto=image(
- labeloffset:=0;
- label.lrt(TEX("\hbox to"&decimal(LongRep[numblocrep])&"pt{\phantom{\barre fin du bloc}}"),if unknown _coinprec: (0,0) else:_coinprec fi);
- labeloffset:=3;
- );
-path cadre;
-if BlocStopAvant=false:
- cadre=(coindebutbloc[numblocrep]+(0.125,0.125))--
- (coindebutbloc[numblocrep]+(0.0625+0.5cm+eb,0.125)){dir180}..
- {dir-90}(coindebutbloc[numblocrep]+(0.5cm,-eb))--
- (ulcorner texto+(0.5cm,eb)){dir-90}..
- {dir0}(ulcorner texto+(0.5cm+eb,0))--
- (ulcorner texto+(0.5cm+0.375cm,0)){dir0}..%
- {dir0}(ulcorner texto+(0.5cm+0.375cm,0)+(eb,-eb))--%
- (ulcorner texto+(0.5cm+0.625cm,0)+(eb,-eb)){dir0}..%
- {dir0}(ulcorner texto+(0.5cm+0.625cm,0)+(2eb,0))--%
- (urcorner texto+(-eb,0)){dir0}..
- {dir-90}(urcorner texto+(0,-eb))--
- (lrcorner texto+(0,eb)){dir-90}..
- {dir180}(lrcorner texto+(-eb,0))--
- (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
- {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
- (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
- {dir180}(llcorner texto+(0.125+0.375cm,0))--
- (llcorner texto+(0.125,0)+(eb,0)){dir180}..
- {dir90}(llcorner texto+(0.125,0)+(0,eb))--
- cycle;
-else:
- cadre=(coindebutbloc[numblocrep]+(0.125,0.125))--
- (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
- {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
- (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
- {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
-% (ulcorner texto+(0.125+0.875cm,0)){dir0}..
-% {dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
-% (ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
-% {dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%
- (urcorner texto+(-eb,0)){dir0}..
- {dir-90}(urcorner texto+(0,-eb))--
- (lrcorner texto+(0,eb)){dir-90}..
- {dir180}(lrcorner texto+(-eb,0))--
- (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
- {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
- (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
- {dir180}(llcorner texto+(0.125+0.375cm,0))--
- (llcorner texto+(0.125,0)+(eb,0)){dir180}..
- {dir90}(llcorner texto+(0.125,0)+(0,eb))--
- cycle;
-fi;
-$=image(
- fill cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
- draw cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
- if BlocStopAvant=false:
- draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0)){dir180}..
- {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
- (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
- {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
- (ulcorner texto+(0.125+0.875cm,0)){dir0}..
- {dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
- (ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
- {dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%
- (urcorner texto+(-eb,0)){dir0}..
- {dir-90}(urcorner texto+(0,-eb))--
- (lrcorner texto+(0,eb)){dir-90}..
- {dir180}(lrcorner texto+(-eb,0))--
- (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
- {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
- (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
- {dir180}(llcorner texto+(0.125+0.375cm,0))--
- (llcorner texto+(0.125,0)+(eb,0)){dir180}..
- {dir90}(llcorner texto+(0.125,0)+(0,eb))--
- (coindebutbloc[numblocrep]+(0.125,0.125))
- withcolor CoulLignes;
- else:
- draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
- {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
- (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
- {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
- %(ulcorner texto+(0.125+0.875cm,0)){dir0}..
- %{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
- %(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
- %{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%
- (urcorner texto+(-eb,0)){dir0}..
- {dir-90}(urcorner texto+(0,-eb))--
- (lrcorner texto+(0,eb)){dir-90}..
- {dir180}(lrcorner texto+(-eb,0))--
- (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
- {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
- (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
- {dir180}(llcorner texto+(0.125+0.375cm,0))--
- (llcorner texto+(0.125,0)+(eb,0)){dir180}..
- {dir90}(llcorner texto+(0.125,0)+(0,eb))--
- (coindebutbloc[numblocrep]+(0.125,0.125))
- withcolor CoulLignes;
- fi;
- );
-_coinprec:=(llcorner $);
-_coinprec:=_coinprec+(0,eb);
-numblocrep:=numblocrep-1;
-$
-enddef;
-
-boolean BlocStopAvant;
-BlocStopAvant=false;
-
-vardef Sinon=
- LONG:=0;
- save $;
- picture $,texto;
- _coinprec:=_coinprec-(0.5cm,0);
- drawoptions();
- texto=image(
- labeloffset:=0;
- label.lrt(TEX("\, \hbox to"&decimal(LongRep[numblocrep])&"pt{\bfseries\barre sinon}"),if unknown _coinprec: (0,0) else:_coinprec fi) if print=false : withcolor blanc fi;
- labeloffset:=3;
- );
- path cadre;
- if BlocStopAvant=false:
- cadre=(llcorner texto+(0.125,0))--
- (coindebutbloc[numblocrep]+(0.125,0.125))--
- (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
- {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
- (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
- {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
- (ulcorner texto+(0.125+0.875cm,0)){dir0}..
- {dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
- (ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
- {dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%
- (urcorner texto+(-eb,0)){dir0}..
- {dir-90}(urcorner texto+(0,-eb))--
- (lrcorner texto+(0,eb)){dir-90}..
- {dir180}(lrcorner texto+(-eb,0))--
- (llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
- {dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
- (llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
- {dir180}(llcorner texto+(0.125+0.875cm,0))--
- cycle;
- else:
- cadre=(llcorner texto+(0.125,0))--
- (coindebutbloc[numblocrep]+(0.125,0.125))--
- (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
- {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
- (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
- {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
-% (ulcorner texto+(0.125+0.875cm,0)){dir0}..
-% {dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
-% (ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
-% {dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%
- (urcorner texto+(-eb,0)){dir0}..
- {dir-90}(urcorner texto+(0,-eb))--
- (lrcorner texto+(0,eb)){dir-90}..
- {dir180}(lrcorner texto+(-eb,0))--
- (llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
- {dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
- (llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
- {dir180}(llcorner texto+(0.125+0.875cm,0))--
- cycle;
- fi;
-$=image(
- fill cadre withcolor if print=true : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
- draw cadre withcolor if print=true : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
- draw texto;
- if BlocStopAvant=false:
- draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
- {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
- (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
- {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
- (ulcorner texto+(0.125+0.875cm,0)){dir0}..
- {dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
- (ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
- {dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%
- (urcorner texto+(-eb,0)){dir0}..
- {dir-90}(urcorner texto+(0,-eb))--
- (lrcorner texto+(0,eb)){dir-90}..
- {dir180}(lrcorner texto+(-eb,0))--
- (llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
- {dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
- (llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
- {dir180}(llcorner texto+(0.125+0.875cm,0))--
- (llcorner texto+(0.125+0.5cm+eb,0))
- withcolor CoulLignes;
- else:
- draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
- {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
- (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
- {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
- %(ulcorner texto+(0.125+0.875cm,0)){dir0}..
- %{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
- %(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
- %{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%
- (urcorner texto+(-eb,0)){dir0}..
- {dir-90}(urcorner texto+(0,-eb))--
- (lrcorner texto+(0,eb)){dir-90}..
- {dir180}(lrcorner texto+(-eb,0))--
- (llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
- {dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
- (llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
- {dir180}(llcorner texto+(0.125+0.875cm,0))
- withcolor CoulLignes;
- fi;
- draw (llcorner texto+(0.125,0))--(coindebutbloc[numblocrep]+(0.125,0.125)) withcolor CoulLignes;
- );
- _coinprec:=(llcorner $)+(0.5cm,0);
- _coinprec:=_coinprec+(0,eb);
- coindebutbloc[numblocrep]:=(llcorner $)+(0,eb+0.125);
- $
-enddef;
-
-vardef Attendre(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("attendre",if string nbpas:OvalNb(nbpas) else: nbpas fi,"seconde(s)");
-ColBloc:=OrangeConTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef AttendreJ(expr xa)=
- LONG:=0;
- save $;
- picture $,texto;
- if picture xa:
- texto=ColleBoxNew("attendre jusqu'à ce que",xa);
- ColBloc:=OrangeConTrois;
- $=Affichage(texto);
- else:
- message("La commande -- AttendreJ -- n'admet qu'un argument de type picture.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef Stop(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- string TTm;%Pour sauvegarder le nbpas car en l'utilisant dans les if, il ne permet pas la concaténation...
- TTm=if print:nbpas&"\hbox to1em{\barre}\blacktriangledown" else:"\color{white}"&nbpas&"\hbox to1em{\barre}\blacktriangledown";
- fi;
- texto=image(
- path ti;
- ti=Box("stop");
- label(TEX("\bfseries\barre stop"),center ti) if print=false : withcolor white fi;%_>ok
- if picture nbpas:
- picture ta;
- ta=nbpas;
- drawoptions(shifted (xpart((lrcorner ti)-(llcorner ta)+(eb,0)),ypart(center ti-center ta)));
- draw ta;
- drawoptions();
- else:
- path ta;
- ta=RecBox(TTm);%
- drawoptions(shifted (xpart((lrcorner ti)-(llcorner ta)+(eb,0)),ypart(center ti-center ta)));
- if print=false : fill ta withcolor ControleTrois fi;
- draw ta withcolor 0.95white;
- label(TEX(TTm),center ta);
- drawoptions();
- fi;
- );
-$=AffichageStop shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageStop);
-_coinprec:=llcorner $;
-_coinprec:=_coinprec;%+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
- label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
- Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-
-vardef CommencerClone=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("quand je commence comme un clone");
- ColBloc:=ControleTrois;
- $=AffichageED(texto);
- $
-enddef;
-
-vardef CreerClone(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew("créer un clone de",OvalMenuControle(nbpas));
- ColBloc:=ControleTrois;
- $=Affichage(texto);
- else:
- message("La commande -- CreerClone -- accepte un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef SupprimerClone=
- LONG:=0;
- save $;
- picture $,texto;
- texto=image(
- path ti;
- ti=Box("supprimer ce clone");
- label(TEX("\bfseries\barre supprimer ce clone"),center ti) if print=false : withcolor white fi;%_>ok
- );
- $=AffichageStop shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageStop);
-_coinprec:=llcorner $;
-_coinprec:=_coinprec+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
- label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
- Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-%%fin Section Contrôle%%%
-
-%%%%%%%% Section Evenements %%%%%
-vardef Drapeau=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("quand",DrapeauImage shifted(-(80,707)),"est cliqué");
- ColBloc:=EvenementTrois;
- $=AffichageED(texto);
- $
-enddef;
-
-vardef QPresse(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew("quand la touche",RecEvenementMenu(nbpas),"est pressée");
- ColBloc:=EvenementTrois;
- $=AffichageED(texto);
- else:
- message("La commande -- QPresse -- accepte un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef QLutinPresse=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("quand ce sprite est cliqué");
- ColBloc:=EvenementTrois;
- $=AffichageED(texto);
- $
-enddef;
-
-vardef QSpritePresse=QLutinPresse enddef;
-
-vardef QScenePressee=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("quand la scène est cliquée");
- ColBloc:=EvenementTrois;
- $=AffichageED(texto);
- $
-enddef;
-
-vardef QBasculeAR(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew("quand l'arrière-plan bascule sur",RecEvenementMenu(nbpas));
- ColBloc:=EvenementTrois;
- $=AffichageED(texto);
- else:
- message("La commande -- QBasculeAR -- accepte un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef QVolumeSup(expr nbpas,xa)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew("quand le",RecEvenementMenu(nbpas),"$>$",if string xa:OvalNb(xa) else: xa fi);
- ColBloc:=EvenementTrois;
- $=AffichageED(texto);
-else:
- message("La commande -- QVolumeSup -- accepte un premier argument de type string.");
- $=nullpicture;
-fi;
-$
-enddef;
-
-vardef QRecevoirMessage(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew("quand je reçois",RecEvenementMenu(nbpas));
- ColBloc:=EvenementTrois;
- $=AffichageED(texto);
- else:
- message("La commande -- QRecevoirMessage -- accepte un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef EnvoyerMessage(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew("envoyer à tous",OvalMenuEvenement(nbpas));
- ColBloc:=EvenementTrois;
- $=Affichage(texto);
- else:
- message("La commande -- EnvoyerMessage -- accepte un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef EnvoyerMessageA(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew("envoyer à tous",OvalMenuEvenement(nbpas),"et attendre");
- ColBloc:=EvenementTrois;
- $=Affichage(texto);
- else:
- message("La commande -- EnvoyerMessageA -- accepte un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef DrapeauImage=
- save $; picture $;
- $=image(
- linecap := butt;
- linejoin := rounded;
- if print = false: drawoptions(withcolor(76/255,191/255,86/255)) fi;
- fill (72.000000,713.254028)--(72.000000,718.918030)--(72.507797,718.979980)
- --(72.984398,719.026978)--(73.437500,719.054993)--(73.867203,719.070007)
- --(74.273399,719.073975)--(74.660202,719.062988)--(75.023399,719.043030)
- --(75.367203,719.012024)--(75.695297,718.968994)--(76.003899,718.918030)
- --(76.300797,718.859009)--(76.578102,718.793030)--(76.847702,718.723022)
- --(77.105499,718.648010)--(77.351601,718.570007)--(77.589798,718.484009)
- --(77.820297,718.401978)--(78.042999,718.312988)--(78.234398,718.237976)
- --(78.234398,706.906006)--(78.042999,706.979980)--(77.820297,707.065979)
- --(77.589798,707.151978)--(77.351601,707.237976)--(77.105499,707.315979)
- --(76.847702,707.390991)--(76.578102,707.460999)--(76.300797,707.526978)
- --(76.003899,707.585999)--(75.695297,707.637024)--(75.367203,707.676025)
- --(75.023399,707.710999)--(74.660202,707.729980)--(74.273399,707.742004)
- --(73.867203,707.737976)--(73.437500,707.723022)--(72.984398,707.690979)
- --(72.507797,707.648010)--(72.000000,707.585999)--cycle;
-% drawoptions (withcolor (0,0.625,0));
- fill (78.246101,712.565979)--(78.261703,718.226990)--(78.476601,718.140991)
- --(78.691399,718.059021)--(78.902298,717.976990)--(79.113297,717.895020)
- --(79.328102,717.820007)--(79.546898,717.754028)--(79.765602,717.687988)
- --(79.992203,717.632996)--(80.226601,717.585999)--(80.468803,717.543030)
- --(80.718803,717.515991)--(80.980499,717.495972)--(81.253899,717.492004)
- --(81.542999,717.495972)--(81.843803,717.515991)--(82.160202,717.546997)
- --(82.492203,717.598022)--(82.847702,717.664001)--(83.218803,717.745972)
- --(83.332001,717.773010)--(83.332001,706.440979)--(83.218803,706.414001)
- --(82.847702,706.328003)--(82.492203,706.265991)--(82.160202,706.215027)
- --(81.843803,706.179993)--(81.542999,706.164001)--(81.253899,706.156006)
- --(80.980499,706.164001)--(80.718803,706.184021)--(80.468803,706.210999)
- --(80.226601,706.250000)--(79.992203,706.301025)--(79.765602,706.354980)
- --(79.546898,706.418030)--(79.328102,706.487976)--(79.113297,706.562988)
- --(78.902298,706.645020)--(78.691399,706.723022)--(78.476601,706.809021)
- --(78.234398,706.906006)--cycle;
-% drawoptions (withcolor (0,0.625,0));
- fill (83.332001,712.109009)--(83.332001,717.773010)--(83.613297,717.843994)
- --(84.031303,717.965027)--(84.468803,718.104980)--(84.933601,718.265991)
- --(85.425797,718.448975)--(85.945297,718.651978)--(86.492203,718.882996)
- --(87.070297,719.137024)--(87.679703,719.414001)--(88.324203,719.718994)
- --(89.000000,720.054993)--(89.000000,708.718994)--(88.324203,708.387024)
- --(87.679703,708.081970)--(87.070297,707.801025)--(86.492203,707.551025)
- --(85.945297,707.320007)--(85.425797,707.117004)--(84.933601,706.934021)
- --(84.468803,706.773010)--(84.031303,706.632996)--(83.613297,706.512024)
- --(83.332001,706.440979)--cycle;
-% drawoptions (withcolor (0,0.625,0));
-%pickup pencircle scaled 0.199253bp;
- draw (72.000000,713.254028)--(72.000000,718.918030)--(72.507797,718.979980)
- --(72.984398,719.026978)--(73.437500,719.054993)--(73.867203,719.070007)
- --(74.273399,719.073975)--(74.660202,719.062988)--(75.023399,719.043030)
- --(75.367203,719.012024)--(75.695297,718.968994)--(76.003899,718.918030)
- --(76.300797,718.859009)--(76.578102,718.793030)--(76.847702,718.723022)
- --(77.105499,718.648010)--(77.351601,718.570007)--(77.589798,718.484009)
- --(77.820297,718.401978)--(78.042999,718.312988)--(78.261703,718.226990)
- --(78.476601,718.140991)--(78.691399,718.059021)--(78.902298,717.976990)
- --(79.113297,717.895020)--(79.328102,717.820007)--(79.546898,717.754028)
- --(79.765602,717.687988)--(79.992203,717.632996)--(80.226601,717.585999)
- --(80.468803,717.543030)--(80.718803,717.515991)--(80.980499,717.495972)
- --(81.253899,717.492004)--(81.542999,717.495972)--(81.843803,717.515991)
- --(82.160202,717.546997)--(82.492203,717.598022)--(82.847702,717.664001)
- --(83.218803,717.745972)--(83.613297,717.843994)--(84.031303,717.965027)
- --(84.468803,718.104980)--(84.933601,718.265991)--(85.425797,718.448975)
- --(85.945297,718.651978)--(86.492203,718.882996)--(87.070297,719.137024)
- --(87.679703,719.414001)--(88.324203,719.718994)--(89.000000,720.054993)
- --(89.000000,708.718994)--(88.324203,708.387024)--(87.679703,708.081970)
- --(87.070297,707.801025)--(86.492203,707.551025)--(85.945297,707.320007)
- --(85.425797,707.117004)--(84.933601,706.934021)--(84.468803,706.773010)
- --(84.031303,706.632996)--(83.613297,706.512024)--(83.218803,706.414001)
- --(82.847702,706.328003)--(82.492203,706.265991)--(82.160202,706.215027)
- --(81.843803,706.179993)--(81.542999,706.164001)--(81.253899,706.156006)
- --(80.980499,706.164001)--(80.718803,706.184021)--(80.468803,706.210999)
- --(80.226601,706.250000)--(79.992203,706.301025)--(79.765602,706.354980)
- --(79.546898,706.418030)--(79.328102,706.487976)--(79.113297,706.562988)
- --(78.902298,706.645020)--(78.691399,706.723022)--(78.476601,706.809021)
- --(78.261703,706.895020)--(78.042999,706.979980)--(77.820297,707.065979)
- --(77.589798,707.151978)--(77.351601,707.237976)--(77.105499,707.315979)
- --(76.847702,707.390991)--(76.578102,707.460999)--(76.300797,707.526978)
- --(76.003899,707.585999)--(75.695297,707.637024)--(75.367203,707.676025)
- --(75.023399,707.710999)--(74.660202,707.729980)--(74.273399,707.742004)
- --(73.867203,707.737976)--(73.437500,707.723022)--(72.984398,707.690979)
- --(72.507797,707.648010)--(72.000000,707.585999)--cycle if print=false : withcolor (0,0.625,0) fi;
- %pickup pencircle scaled 0.8bp;
- draw (72.000000,699)--(72.000000,720);
- drawoptions();
- );
- $:=$ rotatedabout((72.000000,699),-15);
- $
-enddef;
-%%Fin section Evenement%%%
-
-%%%% Section Bloc %%%%
-vardef AffichageBlocDef=
- path cadre;
- cadre=(llcorner texto+(-eb,0)){dir-90}..{dir0}(llcorner texto+(0,-eb))--
- (llcorner texto+(0.375cm,0)+(-eb,-eb)){dir0}..
- {dir0}(llcorner texto+(0.375cm,0)+(0,-2eb))--
- (llcorner texto+(0.625cm,0)+(0,-2eb)){dir0}..
- {dir0}(llcorner texto+(0.625cm,0)+(eb,-eb))--
- (lrcorner texto+(0,-eb)){dir0}..{dir90}(lrcorner texto+(eb,0))--
- (urcorner texto+(eb,eb)){dir90}..{dir180}(urcorner texto+(0,2eb))--
- (ulcorner texto+(0,2eb)){dir180}..
- {dir-90}(ulcorner texto+(-eb,eb))--
- cycle;
- picture TEXT;
- TEXT=image(
- fill cadre withcolor if print : coefprint*white else : BlocTrois fi;%if unknown colBloc : DarkPurple else: colBloc fi fi;
- draw texto;
- draw cadre withcolor CoulLignes;
- );
- TEXT
-enddef;
-
-vardef Bloc(text nomblocbloc)=
- LONG:=0;
- save $;
- picture $,texto;
- texto=image(
- picture CBbloc;
- CBbloc=ColleBoxNew(nomblocbloc);
- draw CBbloc;
- );
- ColBloc:=BlocTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef NouveauBloc(text nbpasbloc)=
- LONG:=0;
- save $;
- picture $,texto;
- texto=image(
- picture CB;
- CB=ColleBoxNew("définir",BlocPuzzle(nbpasbloc));
- draw CB;
- );
-$=AffichageBlocDef shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageBlocDef);
-_coinprec:=llcorner $;
-_coinprec:=_coinprec+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
- label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
- Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-%%%% Fin Section Bloc%%%%
-
-%%% Section Divers%%%
-vardef CommandeVide(expr commande)=
- LONG:=0;
- save $;
- picture $,texto,TEXT;
- if string commande :
- texto=image(
- label.lrt(TEX("\barre \hbox to"&commande&"cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
- );
-else:
- texto=commande;
-fi;
-ColBloc:=white;
-$=Affichage(texto);
-$
-enddef;
-
-vardef LigneVide=
- LONG:=0;
- save $;
- picture $,texto,TEXT;
- texto=image(
- label.lrt(TEX("\barre \hbox to2cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
- );
-TEXT=image(
- path cadre;
- cadre=CADRE(texto);
- unfill cadre;
- %draw (urcorner texto+(0,eb))--
- % (ulcorner texto+(0.625cm,0)+(eb,eb)){dir180}..
- % {dir180}(ulcorner texto+(0.625cm,0))--
- % (ulcorner texto+(0.375cm,0)){dir180}..
- % {dir180}(ulcorner texto+(0.375cm,0)+(-eb,eb))--
- % (ulcorner texto+(0,eb)) withpen pencircle scaled 0;
- );
-$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
-_coinprec:=llcorner $;
-_coinprec:=_coinprec+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
- label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
- Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-
-vardef LigneVideVar(expr commande)=
- LONG:=0;
- save $;
- picture $,texto,TEXT;
- if string texto:
- texto=image(
- label.lrt(TEX("\barre \hbox to2cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
- );
-else:
- texto=commande;
-fi;
-TEXT=image(
- path cadre;
- cadre=(llcorner texto+(-eb,0))--(llcorner texto+(0,-eb))--
- (llcorner texto+(0.375cm,0)+(-eb,-eb))--
- (llcorner texto+(0.375cm,0)+(0,-2eb))--
- (llcorner texto+(0.625cm,0)+(0,-2eb))--
- (llcorner texto+(0.625cm,0)+(eb,-eb))--
- (lrcorner texto+(0,-eb))--(lrcorner texto+(eb,0))--(urcorner texto+(eb,0))--(urcorner texto+(0,eb))--
- (ulcorner texto+(0.625cm,0)+(eb,eb))--
- (ulcorner texto+(0.625cm,0))--
- (ulcorner texto+(0.375cm,0))--
- (ulcorner texto+(0.375cm,0)+(-eb,eb))--
- (ulcorner texto+(0,eb))--(ulcorner texto+(-eb,0))--cycle;
- fill cadre withcolor white;
-% draw (urcorner texto+(0,eb))--
-% (ulcorner texto+(0.625cm,0)+(eb,eb))--
-% (ulcorner texto+(0.625cm,0))--
-% (ulcorner texto+(0.375cm,0))--
-% (ulcorner texto+(0.375cm,0)+(-eb,eb))--
-% (ulcorner texto+(0,eb)) withpen pencircle scaled 0.05bp;
- );
-$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
-_coinprec:=llcorner $;
-_coinprec:=_coinprec+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
- label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
- Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-
-vardef LignePointilles=
- LONG:=0;
- save $;
- picture $,texto,TEXT;
- texto=image(
- label.lrt(TEX("\barre\Large \strut\ldots\hbox to1em{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
- );
-TEXT=image(
- path cadre;
- cadre=CADRE(texto);
- fill cadre withcolor white;
- draw %(urcorner texto+(0,eb))--
- (ulcorner texto+(0.625cm,0)+(eb,eb)){dir180}..
- {dir180}(ulcorner texto+(0.625cm,0))--
- (ulcorner texto+(0.375cm,0)){dir180}..
- {dir180}(ulcorner texto+(0.375cm,0)+(-eb,eb))
- %--(ulcorner texto+(0,eb))
- withpen pencircle scaled 0.01;
- draw texto;
- );
-$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
-_coinprec:=llcorner $;
-_coinprec:=_coinprec+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
- label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
- Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-
-vardef Commentaires(expr commande)=
- LONG:=0;
- save $;
- picture $,texto,TEXT;
- texto=image(
- label.lrt(TEX("\barre "& commande &""),if unknown _coinprec: (0,0) else:_coinprec fi) withcolor 0.5*white;
- );
-TEXT=image(
- path cadre;
- cadre=CADRE(texto);
- fill cadre withcolor white;
- draw texto;
- );
-$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
-_coinprec:=llcorner $;
-_coinprec:=_coinprec+(0,eb);
-$
-enddef;
-
-color colcom;
-colcom=0.5white;
-
-vardef CommentairesLigne(expr commande)=
- LONG:=0;
- save $;
- picture $,texto,TEXT;
- TEXT=image(
- label.rt(TEX(commande), _coincom) withcolor colcom;
- );
-$=TEXT shifted (_coincom - 1/2[llcorner TEXT,ulcorner TEXT]);
-$
-enddef;
-
-vardef BlocGris(expr ar)=
- LONG:=0;
- save $; picture $;
- path ta; string TTm;
- TTm=ar&"\barre";
- ta=OvalMiniBox(TTm);
- $=image(
- fill ta withcolor 0.975white;
- draw ta withcolor 0.85white;
- label(TEX(TTm),center ta) if print=false : withcolor blanc fi;
- );
-$
-enddef;
-
-vardef BlocGrisMulti(text argris)=
- LONG:=0;
- save $; picture $;
- path ta; picture TTm;
- TTm=ColleBoxNew(argris);
- ta=OvalMiniBox(TTm);
- $=image(
- fill ta withcolor 0.975white;
- draw ta;
- %label(TEX(TTm),center ta) if print=false : withcolor blanc fi;
- );
-$
-enddef;
-
-boolean BlocE;
-BlocE:=false;
-
-vardef BlocUser(expr colblocuser)(text textbloc)=
- LONG:=0;
- save $;
- picture $;
- save TA; path TA; picture BUTB; picture texto; picture TEXT;
- BUTB=ColleBoxNew(textbloc);
- TA=Box(BUTB);
- texto=image(
- draw BUTB;
- );
- ColBloc:=colblocuser;
- if BlocE=false:
- $=Affichage(texto);
- else:
- $=AffichageED(texto);
- fi;
- $
-enddef;
-
-vardef BlocCouleur(expr colblocuser)=
- LONG:=0;
- save $;
- picture $,texto,TEXT;
- texto=image(
- label.lrt(TEX("\barre \hbox to4cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
- );
-ColBloc:=colblocuser;
-$=Affichage(texto);
-$
-enddef;
-%% fin Section Divers %%%
-
-%% Section Capteur %%%%
-vardef Demander(expr nbpas)=
- LONG:=0;
- save Dem;
- picture Dem,texto;
- if string nbpas:
- texto=ColleBoxNew("demander",OvalNb(nbpas),"et attendre");
- ColBloc:=CapteurTrois;
- Dem=Affichage(texto);
- else:
- message("La commande -- Demander -- admet un argument de type string.");
- Dem=nullpicture;
- fi;
- Dem
-enddef;
-
-vardef ReinitChrono=
- LONG:=0;
- save $;
- picture $,texto;
- texto=ColleBoxNew("réinitialiser le chronomètre");
- ColBloc:=CapteurTrois;
- $=Affichage(texto);
- $
-enddef;
-
-vardef MettreGlissement(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew("mettre mode de glissement à",RecMenuCap(nbpas));
- ColBloc:=CapteurTrois;
- $=Affichage(texto);
- else:
- message("La commande -- MettreGlissement -- admet un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-%video
-
-vardef CameraImage=
- LONG:=0;
- save $;
- picture $;
- $=image(
- pair A,B,C,D,E,F;
- A=(0,0);
- B-A=(10,0);
- C-B=(0,10);
- D-C=A-B;
- E-B=(4,1.5);
- F-C=(4,-1.5);
- numeric EB;
- EB=2pt;
- path camera;
- camera=(A+(EB,0))--(B+(-EB,0)){dir0}..{dir90}(B+(0,EB))--2/5[B,C]--E--F--3/5[B,C]--(C+(0,-EB)){dir90}..{dir-180}(C+(-EB,0))--(D+(EB,0)){dir180}..{dir-90}(D+(0,-EB))--(A+(0,EB)){dir-90}..{dir0}cycle;
- fill camera withcolor (77,77,77)/255;
- draw camera withcolor (77,77,77)*0.95/255;
- path cc;
- cc=fullcircle scaled 6;
- color coul[];
- if print:
- coul0:=0.9white;
- coul1:=0.933white;
- coul2:=0.966white;
- coul3:=white;
- else:
- coul0=(75,205,169)/255;
- coul1=(16,230,212)/255;
- coul2=(224,247,241)/255;
- coul3=(1,1,1);
- fi;
- for k=0 upto 3:
- fill (cc shifted(B+(10,3*k))) withcolor coul[k];
- draw (cc shifted(B+(10,3*k))) withcolor 0.95*coul[k];
- endfor;
- draw ((-3,0)--(-3,18)) withcolor if print : coefprint*white else: StyloTrois fi;
- pickup pencircle scaled eppen;
- );
- $:=$ scaled 0.8;
- $
-enddef;
-
-vardef ImageCamera=
- save titi;
- picture titi;
- titi=image(
- draw CameraImage shifted(-12,-5);
- draw (((0,0)--(0,18pt)) shifted(9,-9)) withpen pencircle scaled 1bp withcolor if print: 0.5*coefprint*white else: (69/255,168/255,140/255) fi;
- );
- titi
-enddef;
-
-vardef ActiverVideo(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew(ImageCamera,"vidéo",OvalStylo(nbpas));
- ColBloc:=StyloTrois;
- $=Affichage(texto);
- else:
- message("La commande -- ActiverVideo -- admet un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef TransparenceVideo(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew(ImageCamera,"mettre la transparence vidéo sur",OvalNb(nbpas));
- ColBloc:=StyloTrois;
- $=Affichage(texto);
- else:
- message("La commande -- TransparenceVideo -- admet un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef QuandMV(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas:
- texto=ColleBoxNew(ImageCamera,"quand mouvement vidéo $>$",OvalNb(nbpas));
- ColBloc:=StyloTrois;
- $=AffichageED(texto);
- else:
- message("La commande -- QuandMV -- admet un argument de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef VideoSur(expr nbpas,xa)=
- LONG:=0;
- save $;
- picture $,texto;
- if (string nbpas) and (string xa):
- texto=ColleBoxNew(ImageCamera,"vidéo",OvalStylo(nbpas),"sur",OvalStylo(xa));
- %ColBloc:=StyloTrois;
- path ta;
- ta=OvalBox(texto);
- $=image(
- fill ta withcolor if print: coefprint*white else: StyloTrois fi;
- draw ta withcolor CoulLignes;
- %label(TEX(TTm),center ta) if print=false : withcolor blanc fi;
- draw texto;
- );
- else:
- message("La commande -- VideoSur -- admet deux arguments de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-%% fin Section Capteur %%%
-
-%%% Section Variables %%%
-vardef MettreVar(expr nbpas,xa)=
- LONG:=0;
- save MV;
- picture MV,texto;
- if string nbpas :
- texto=ColleBoxNew("mettre",RecMenuVar(nbpas),"à",if string xa:OvalNb(xa) else: xa fi);
- ColBloc:=OrangeTrois;
- MV=Affichage(texto);
- else:
- message("La commande -- MettreVar -- admet un premier paramètre de type string.");
- MV=nullpicture;
- fi;
- MV
-enddef;
-
-vardef AjouterVar(expr nbpas,xa)=
- LONG:=0;
- save $;
- picture $,texto;
- if string xa :
- texto=ColleBoxNew("ajouter",if string nbpas:OvalNb(nbpas) else: nbpas fi,"à",RecMenuVar(xa));
- ColBloc:=OrangeTrois;
- $=Affichage(texto);
-else:
- message("La commande -- AjouterVar -- admet un deuxième paramètre de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef MontrerVar(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas :
- texto=ColleBoxNew("montrer la variable",RecMenuVar(nbpas));
- ColBloc:=OrangeTrois;
- $=Affichage(texto);
- else:
- message("La commande -- MontrerVar -- admet un premier paramètre de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef CacherVar(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas :
- texto=ColleBoxNew("cacher la variable",RecMenuVar(nbpas));
- ColBloc:=OrangeTrois;
- $=Affichage(texto);
- else:
- message("La commande -- CacherVar -- admet un premier paramètre de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-%Liste
-vardef AjouterListe(expr nbpas,xa)=
- LONG:=0;
- save $;
- picture $,texto;
- if string xa :
- texto=ColleBoxNew("ajouter",if string nbpas:OvalNb(nbpas) else: nbpas fi,"à",RecMenuList(xa));
- ColBloc:=OrangeListTrois;
- $=Affichage(texto);
-else:
- message("La commande -- AjouterListe -- admet un deuxième paramètre de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef SupprimerListe(expr nbpas,xa)=
- LONG:=0;
- save $;
- picture $,texto;
- if string xa :
- texto=ColleBoxNew("supprimer l'élément",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(xa));
- ColBloc:=OrangeListTrois;
- $=Affichage(texto);
-else:
- message("La commande -- SupprimerListe -- admet un deuxième paramètre de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef SupprimerListeAll(expr nbpas)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas :
- texto=ColleBoxNew("supprimer tous les éléments de la liste",RecMenuList(nbpas));
- ColBloc:=OrangeListTrois;
- $=Affichage(texto);
-else:
- message("La commande -- SupprimerListe -- admet un deuxième paramètre de type string.");
- $=nullpicture;
-fi;
-$
-enddef;
-
-vardef InsererListe(expr xa,nbpas,ya)=
- LONG:=0;
- save $;
- picture $,texto;
- if string ya :
- texto=ColleBoxNew("insérer",if string xa:OvalNb(xa) else: xa fi,"en position",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(ya));
- ColBloc:=OrangeListTrois;
- $=Affichage(texto);
- else:
- message("La commande -- InsererListe -- admet un troisième paramètre de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef RemplacerListe(expr xa,nbpas,ya)=
- LONG:=0;
- save $;
- picture $,texto;
- if string nbpas :
- texto=ColleBoxNew("remplacer l'élément",if string xa:OvalNb(xa) else: xa fi,"de la liste",RecMenuList(nbpas),"par",if string ya:OvalNb(ya) else: ya fi);
- ColBloc:=OrangeListTrois;
- $=Affichage(texto);
-else:
- message("La commande -- RemplacerListe -- admet un deuxième paramètre de type string.");
- $=nullpicture;
-fi;
-$
-enddef;
-
-vardef MontrerListe(expr xa)=
- LONG:=0;
- save $;
- picture $,texto;
- if string xa :
- texto=ColleBoxNew("montrer la liste",RecMenuList(xa));
- ColBloc:=OrangeListTrois;
- $=Affichage(texto);
- else:
- message("La commande -- MontrerListe -- admet un paramètre de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-vardef CacherListe(expr xa)=
- LONG:=0;
- save $;
- picture $,texto;
- if string xa :
- texto=ColleBoxNew("cacher la liste",RecMenuList(xa));
- ColBloc:=OrangeListTrois;
- $=Affichage(texto);
- else:
- message("La commande -- CacherListe -- admet un paramètre de type string.");
- $=nullpicture;
- fi;
- $
-enddef;
-
-%%% Section Operateur %%%
-
-vardef OpAdd(expr pasun,pasdeux)=
- save Oop; picture Oop;
- save TAao; path TAao;
- save LOPop; picture LOPop;
- LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$+$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
- TAao=OvalBox(LOPop);
- Oop=image(
- fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LOPop;
- draw TAao if print=false : withcolor coefprint*white fi;
- );
- Oop:=Oop shifted(-center Oop);
- Oop
-enddef;
-
-vardef OpSous(expr pasun,pasdeux)=
- save Oop; picture Oop;
- save TAao; path TAao;
- save LOPop; picture LOPop;
- LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$-$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
- TAao=OvalBox(LOPop);
- Oop=image(
- fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LOPop;
- draw TAao if print=false : withcolor coefprint*white fi;
- );
- Oop:=Oop shifted(-center Oop);
- Oop
-enddef;
-
-vardef OpMul(expr pasun,pasdeux)=
- save Oop; picture Oop;
- save TAao; path TAao;
- save LOPop; picture LOPop;
- LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$\times$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
- TAao=OvalBox(LOPop);
- Oop=image(
- fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LOPop;
- draw TAao if print=false : withcolor coefprint*white fi;
- );
- Oop:=Oop shifted(-center Oop);
- Oop
-enddef;
-
-vardef OpDiv(expr pasun,pasdeux)=
- save Oop; picture Oop;
- save TAao; path TAao;
- save LOPop; picture LOPop;
- LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$\div$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
- TAao=OvalBox(LOPop);
- Oop=image(
- fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LOPop;
- draw TAao if print=false : withcolor coefprint*white fi;
- );
- Oop:=Oop shifted(-center Oop);
- Oop
-enddef;
-
-vardef OpAlea(expr pasun,pasdeux)=
- save Oop; picture Oop;
- save TAao; path TAao;
- save LOPop; picture LOPop;
- LOPop=ColleBoxNew("nombre aléatoire entre",if string pasun : OvalNb(pasun) else: pasun fi,"et",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
- TAao=OvalBox(LOPop);
- Oop=image(
- fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LOPop;
- draw TAao if print=false : withcolor coefprint*white fi;
- );
- Oop:=Oop shifted(-center Oop);
- Oop
-enddef;
-
-vardef OpRegrouper(expr pasun,pasdeux)=
- save Oop; picture Oop;
- save TAao; path TAao;
- save LOPop; picture LOPop;
- LOPop=ColleBoxNew("regrouper",if string pasun : OvalNb(pasun) else: pasun fi,"et",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
- TAao=OvalBox(LOPop);
- Oop=image(
- fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LOPop;
- draw TAao if print=false : withcolor coefprint*white fi;
- );
- Oop:=Oop shifted(-center Oop);
- Oop
-enddef;
-
-vardef OpLettre(expr pasun,pasdeux)=
- save Oop; picture Oop;
- save TAao; path TAao;
- save LOPop; picture LOPop;
- LOPop=ColleBoxNew("lettre",if string pasun : OvalNb(pasun) else: pasun fi,"de",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
- TAao=OvalBox(LOPop);
- Oop=image(
- fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LOPop;
- draw TAao if print=false : withcolor coefprint*white fi;
- );
- Oop:=Oop shifted(-center Oop);
- Oop
-enddef;
-
-vardef OpLongueur(expr pasun)=
- save Oop; picture Oop;
- save TAao; path TAao;
- save LOPop; picture LOPop;
- LOPop=ColleBoxNew("longueur de",if string pasun : OvalNb(pasun) else: pasun fi);
- TAao=OvalBox(LOPop);
- Oop=image(
- fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LOPop;
- draw TAao if print=false : withcolor coefprint*white fi;
- );
- Oop:=Oop shifted(-center Oop);
- Oop
-enddef;
-
-vardef OpArrondi(expr pasun)=
- save Oop; picture Oop;
- save TAao; path TAao;
- save LOPop; picture LOPop;
- LOPop=ColleBoxNew("arrondi de",if string pasun : OvalNb(pasun) else: pasun fi);
- TAao=OvalBox(LOPop);
- Oop=image(
- fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LOPop;
- draw TAao if print=false : withcolor coefprint*white fi;
- );
- Oop:=Oop shifted(-center Oop);
- Oop
-enddef;
-
-vardef OpFonction(expr pasun,pasdeux)=
- save Oop; picture Oop;
- save TAao; path TAao;
- save LOPop; picture LOPop;
- LOPop=ColleBoxNew(RecMenuOp(pasun),"de",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
- TAao=OvalBox(LOPop);
- Oop=image(
- fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LOPop;
- draw TAao if print=false : withcolor coefprint*white fi;
- );
- Oop:=Oop shifted(-center Oop);
- Oop
-enddef;
-
-vardef TestOpSup(expr pasun, pasdeux)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$>$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
- TAa=DiamondBox(LTa);
- $=image(
- fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef TestOpInf(expr pasun, pasdeux)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$<$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
- TAa=DiamondBox(LTa);
- $=image(
- fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef TestOpEgal(expr pasun, pasdeux)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$=$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
- TAa=DiamondBox(LTa);
- $=image(
- fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef TestOpEt(expr pasun, pasdeux)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"et",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
- TAa=DiamondBox(LTa);
- $=image(
- fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef TestOpOu(expr pasun, pasdeux)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"ou",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
- TAa=DiamondBox(LTa);
- $=image(
- fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef TestOpNon(expr pasun)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew("non",if string pasun : OvalNb(pasun) else: pasun fi);
- TAa=DiamondBox(LTa);
- $=image(
- fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef TestOpContient(expr pasun,pasdeux)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"contient",if string pasun : OvalNb(pasdeux) else: pasun fi,"?");
- TAa=DiamondBox(LTa);
- $=image(
- fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef AppCostume(expr pasun)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew(RecMenuApp(pasun),"du costume");
- TAa=OvalBox(LTa);
- $=image(
- fill TAa if print=false : withcolor VioletAppTrois else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef AppAP(expr pasun)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew(RecMenuApp(pasun),"de l'arrière-plan");
- TAa=OvalBox(LTa);
- $=image(
- fill TAa if print=false : withcolor VioletAppTrois else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef CapDistance(expr pasun)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew("distance de",OvalCapMenu(pasun));
- TAa=OvalBox(LTa);
- $=image(
- fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef CapTemps(expr pasun)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew(RecMenuCap(pasun),"actuelle");
- TAa=OvalBox(LTa);
- $=image(
- fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef CapNumero(expr pasun,pasdeux)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew(RecMenuCap(pasun),"de",OvalCapMenu(pasdeux));
- TAa=OvalBox(LTa);
- $=image(
- fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef TestCapToucheObjet(expr pasun)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew("touche le",OvalCapMenu(pasun),"?");
- TAa=DiamondBox(LTa);
- $=image(
- fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef TestCapCouleur(expr pasun)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew("couleur",OvalCouleur(redpart(pasun),greenpart(pasun),bluepart(pasun)),"touchée ?");
- TAa=DiamondBox(LTa);
- $=image(
- fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef TestCapCouleurs(expr pasun,pasdeux)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew("couleur",OvalCouleur(redpart(pasun),greenpart(pasun),bluepart(pasun)),"touché",OvalCouleur(redpart(pasdeux),greenpart(pasdeux),bluepart(pasdeux)),"?");
- TAa=DiamondBox(LTa);
- $=image(
- fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef TestCapTouche(expr pasun)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew("touche",OvalMenuCap(pasun),"pressée ?");
- TAa=DiamondBox(LTa);
- $=image(
- fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef TestCapSouris=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew("souris pressée ?");
- TAa=DiamondBox(LTa);
- $=image(
- fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef TestListeContient(expr nbpas,nbbas)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew(RecMenuList(nbpas),"contient",if string nbbas:OvalNb(nbbas) else: nbbas fi);
- TAa=DiamondBox(LTa);
- $=image(
- fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef ListeElement(expr nbpas,nbbas)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew("élément",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(nbbas));
- TAa=OvalBox(LTa);
- $=image(
- fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef ListePosition(expr nbpas,nbbas)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew("position de",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(nbbas));
- TAa=OvalBox(LTa);
- $=image(
- fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
-vardef ListeLongueur(expr nbpas)=
- save $; picture $;
- save TAa; path TAa;
- save LTa; picture LTa;
- LTa=ColleBoxNew("longueur de",RecMenuList(nbpas));
- TAa=OvalBox(LTa);
- $=image(
- fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
- draw LTa;
- draw TAa if print=false : withcolor coefprint*white fi;
- );
- $:=$ shifted(-center $);
- $
-enddef;
-
Deleted: trunk/Master/texmf-dist/metapost/profcollege/PfC-Svgnames.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfC-Svgnames.mp 2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfC-Svgnames.mp 2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,153 +0,0 @@
-%D'après /usr/local/texlive/2020/texmf-dist/tex/latex/xcolor/svgnam.def
-color AliceBlue; AliceBlue = (.94,.972,1);
-color AntiqueWhite; AntiqueWhite = (.98,.92,.844);
-color Aqua; Aqua = (0,1,1);
-color Aquamarine; Aquamarine = (.498,1,.83);
-color Azure; Azure = (.94,1,1);
-color Beige; Beige = (.96,.96,.864);
-color Bisque; Bisque = (1,.894,.77);
-color Black; Black = (0,0,0);
-color BlanchedAlmond; BlanchedAlmond = (1,.92,.804);
-color Blue; Blue = (0,0,1);
-color BlueViolet; BlueViolet = (.54,.17,.888);
-color Brown; Brown = (.648,.165,.165);
-color BurlyWood; BurlyWood = (.87,.72,.53);
-color CadetBlue; CadetBlue = (.372,.62,.628);
-color Chartreuse; Chartreuse = (.498,1,0);
-color Chocolate; Chocolate = (.824,.41,.116);
-color Coral; Coral = (1,.498,.312);
-color CornflowerBlue; CornflowerBlue = (.392,.585,.93);
-color Cornsilk; Cornsilk = (1,.972,.864);
-color Crimson; Crimson = (.864,.08,.235);
-color Cyan; Cyan = (0,1,1);
-color DarkBlue; DarkBlue = (0,0,.545);
-color DarkCyan; DarkCyan = (0,.545,.545);
-color DarkGoldenrod; DarkGoldenrod = (.72,.525,.044);
-color DarkGray; DarkGray = (.664,.664,.664);
-color DarkGreen; DarkGreen = (0,.392,0);
-color DarkGrey; DarkGrey = (.664,.664,.664);
-color DarkKhaki; DarkKhaki = (.74,.716,.42);
-color DarkMagenta; DarkMagenta = (.545,0,.545);
-color DarkOliveGreen; DarkOliveGreen = (.332,.42,.185);
-color DarkOrange; DarkOrange = (1,.55,0);
-color DarkOrchid; DarkOrchid = (.6,.196,.8);
-color DarkRed; DarkRed = (.545,0,0);
-color DarkSalmon; DarkSalmon = (.912,.59,.48);
-color DarkSeaGreen; DarkSeaGreen = (.56,.736,.56);
-color DarkSlateBlue; DarkSlateBlue = (.284,.24,.545);
-color DarkSlateGray; DarkSlateGray = (.185,.31,.31);
-color DarkSlateGrey; DarkSlateGrey = (.185,.31,.31);
-color DarkTurquoise; DarkTurquoise = (0,.808,.82);
-color DarkViolet; DarkViolet = (.58,0,.828);
-color DeepPink; DeepPink = (1,.08,.576);
-color DeepSkyBlue; DeepSkyBlue = (0,.75,1);
-color DimGray; DimGray = (.41,.41,.41);
-color DimGrey; DimGrey = (.41,.41,.41);
-color DodgerBlue; DodgerBlue = (.116,.565,1);
-color FireBrick; FireBrick = (.698,.132,.132);
-color FloralWhite; FloralWhite = (1,.98,.94);
-color ForestGreen; ForestGreen = (.132,.545,.132);
-color Fuchsia; Fuchsia = (1,0,1);
-color Gainsboro; Gainsboro = (.864,.864,.864);
-color GhostWhite; GhostWhite = (.972,.972,1);
-color Gold; Gold = (1,.844,0);
-color Goldenrod; Goldenrod = (.855,.648,.125);
-color Gray; Gray = (.5,.5,.5);
-color Green; Green = (0,.5,0);
-color GreenYellow; GreenYellow = (.68,1,.185);
-color Grey; Grey = (.5,.5,.5);
-color Honeydew; Honeydew = (.94,1,.94);
-color HotPink; HotPink = (1,.41,.705);
-color IndianRed; IndianRed = (.804,.36,.36);
-color Indigo; Indigo = (.294,0,.51);
-color Ivory; Ivory = (1,1,.94);
-color Khaki; Khaki = (.94,.9,.55);
-color Lavender; Lavender = (.9,.9,.98);
-color LavenderBlush; LavenderBlush = (1,.94,.96);
-color LawnGreen; LawnGreen = (.488,.99,0);
-color LemonChiffon; LemonChiffon = (1,.98,.804);
-color LightBlue; LightBlue = (.68,.848,.9);
-color LightCoral; LightCoral = (.94,.5,.5);
-color LightCyan; LightCyan = (.88,1,1);
-color LightGoldenrod; LightGoldenrod = (.933,.867,.51);
-color LightGoldenrodYellow; LightGoldenrodYellow = (.98,.98,.824);
-color LightGray; LightGray = (.828,.828,.828);
-color LightGreen; LightGreen = (.565,.932,.565);
-color LightGrey; LightGrey = (.828,.828,.828);
-color LightPink; LightPink = (1,.712,.756);
-color LightSalmon; LightSalmon = (1,.628,.48);
-color LightSeaGreen; LightSeaGreen = (.125,.698,.668);
-color LightSkyBlue; LightSkyBlue = (.53,.808,.98);
-color LightSlateBlue; LightSlateBlue = (.518,.44,1);
-color LightSlateGray; LightSlateGray = (.468,.532,.6);
-color LightSlateGrey; LightSlateGrey = (.468,.532,.6);
-color LightSteelBlue; LightSteelBlue = (.69,.77,.87);
-color LightYellow; LightYellow = (1,1,.88);
-color Lime; Lime = (0,1,0);
-color LimeGreen; LimeGreen = (.196,.804,.196);
-color Linen; Linen = (.98,.94,.9);
-color Magenta; Magenta = (1,0,1);
-color Maroon; Maroon = (.5,0,0);
-color MediumAquamarine; MediumAquamarine = (.4,.804,.668);
-color MediumBlue; MediumBlue = (0,0,.804);
-color MediumOrchid; MediumOrchid = (.73,.332,.828);
-color MediumPurple; MediumPurple = (.576,.44,.86);
-color MediumSeaGreen; MediumSeaGreen = (.235,.7,.444);
-color MediumSlateBlue; MediumSlateBlue = (.484,.408,.932);
-color MediumSpringGreen; MediumSpringGreen = (0,.98,.604);
-color MediumTurquoise; MediumTurquoise = (.284,.82,.8);
-color MediumVioletRed; MediumVioletRed = (.78,.084,.52);
-color MidnightBlue; MidnightBlue = (.098,.098,.44);
-color MintCream; MintCream = (.96,1,.98);
-color MistyRose; MistyRose = (1,.894,.884);
-color Moccasin; Moccasin = (1,.894,.71);
-color NavajoWhite; NavajoWhite = (1,.87,.68);
-color Navy; Navy = (0,0,.5);
-color NavyBlue; NavyBlue = (0,0,.5);
-color OldLace; OldLace = (.992,.96,.9);
-color Olive; Olive = (.5,.5,0);
-color OliveDrab; OliveDrab = (.42,.556,.136);
-color Orange; Orange = (1,.648,0);
-color OrangeRed; OrangeRed = (1,.27,0);
-color Orchid; Orchid = (.855,.44,.84);
-color PaleGoldenrod; PaleGoldenrod = (.932,.91,.668);
-color PaleGreen; PaleGreen = (.596,.985,.596);
-color PaleTurquoise; PaleTurquoise = (.688,.932,.932);
-color PaleVioletRed; PaleVioletRed = (.86,.44,.576);
-color PapayaWhip; PapayaWhip = (1,.936,.835);
-color PeachPuff; PeachPuff = (1,.855,.725);
-color Peru; Peru = (.804,.52,.248);
-color Pink; Pink = (1,.752,.796);
-color Plum; Plum = (.868,.628,.868);
-color PowderBlue; PowderBlue = (.69,.88,.9);
-color Purple; Purple = (.5,0,.5);
-color Red; Red = (1,0,0);
-color RosyBrown; RosyBrown = (.736,.56,.56);
-color RoyalBlue; RoyalBlue = (.255,.41,.884);
-color SaddleBrown; SaddleBrown = (.545,.27,.075);
-color Salmon; Salmon = (.98,.5,.448);
-color SandyBrown; SandyBrown = (.956,.644,.376);
-color SeaGreen; SeaGreen = (.18,.545,.34);
-color Seashell; Seashell = (1,.96,.932);
-color Sienna; Sienna = (.628,.32,.176);
-color Silver; Silver = (.752,.752,.752);
-color SkyBlue; SkyBlue = (.53,.808,.92);
-color SlateBlue; SlateBlue = (.415,.352,.804);
-color SlateGray; SlateGray = (.44,.5,.565);
-color SlateGrey; SlateGrey = (.44,.5,.565);
-color Snow; Snow = (1,.98,.98);
-color SpringGreen; SpringGreen = (0,1,.498);
-color SteelBlue; SteelBlue = (.275,.51,.705);
-color Tan; Tan = (.824,.705,.55);
-color Teal; Teal = (0,.5,.5);
-color Thistle; Thistle = (.848,.75,.848);
-color Tomato; Tomato = (1,.39,.28);
-color Turquoise; Turquoise = (.25,.88,.815);
-color Violet; Violet = (.932,.51,.932);
-color VioletRed; VioletRed = (.816,.125,.565);
-color Wheat; Wheat = (.96,.87,.7);
-color White; White = (1,1,1);
-color WhiteSmoke; WhiteSmoke = (.96,.96,.96);
-color Yellow; Yellow = (1,1,0);
-color YellowGreen; YellowGreen = (.604,.804,.196);
-endinput
Added: trunk/Master/texmf-dist/metapost/profcollege/PfCAfficheur.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfCAfficheur.mp (rev 0)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfCAfficheur.mp 2021-04-23 20:37:20 UTC (rev 58973)
@@ -0,0 +1,182 @@
+u:=1cm;
+
+vardef Afficheur(expr nb,creux)=
+ pair Aa[];
+ Aa1=u*(-0.5,-1);
+ Aa2-Aa1=u*(1,0);
+ Aa4-Aa2=u*(0,2);
+ Aa3=1/2[Aa2,Aa4];
+ Aa5-Aa4=Aa1-Aa2;
+ Aa6-Aa3=Aa1-Aa2;
+ pair Bb[];
+ Bb1=Aa1 xscaled0.7 yscaled 0.85;
+ Bb2=Aa2 xscaled0.7 yscaled 0.85;
+ Bb4=Aa4 xscaled0.7 yscaled 0.85;
+ Bb5=Aa5 xscaled0.7 yscaled 0.85;
+ Bb3=1/2[Bb2,Bb4];
+ Bb6=1/2[Bb1,Bb5];
+ Bb7=1/2[Bb6,Bb3]+(0,4);
+ Bb8=1/2[Bb6,Bb3]-(0,6);
+ pair Cc[];
+ Cc1=u*(0.4,-0.85)+(0,-1);
+ ecarth:=1.5;
+ ecartv:=0.05;
+ path ASegment[];
+ ASegment[1]=1/10[Bb1,Bb2]--9/10[Bb1,Bb2];
+ ASegment[2]=1/10[Bb2,Bb3]--9/10[Bb2,Bb3];
+ ASegment[3]=1/10[Bb3,Bb4]--9/10[Bb3,Bb4];
+ ASegment[4]=1/10[Bb4,Bb5]--9/10[Bb4,Bb5];
+ ASegment[5]=1/10[Bb5,Bb6]--9/10[Bb5,Bb6];
+ ASegment[6]=1/10[Bb6,Bb1]--9/10[Bb6,Bb1];
+ ASegment[7]=1/10[Bb6,Bb3]--9/10[Bb6,Bb3];
+ color fondsegment;
+ fondsegment=0.2[LightSteelBlue,white];
+ save $;
+ picture $;
+ $=image(
+ fill Aa1--Aa2--Aa4--Aa5--cycle withcolor LightSteelBlue;
+ draw Aa1--Aa2--Aa4--Aa5--cycle withcolor LightSteelBlue;
+ if creux=0:
+ fill (unitsquare scaled 2) shifted Cc1 withcolor fondsegment;
+ else:
+ fill (unitsquare scaled 2) shifted Cc1 withcolor Crimson;
+ fi;
+ if nb=1:
+ drawoptions(withpen pensquare scaled2 withcolor Crimson);
+ draw ASegment[2];
+ draw ASegment[3];
+ drawoptions(withpen pensquare scaled2 withcolor fondsegment);
+ draw ASegment[1];
+ draw ASegment[4];
+ draw ASegment[5];
+ draw ASegment[6];
+ draw ASegment[7];
+ drawoptions();
+ fi;
+ if nb=2:
+ drawoptions(withpen pensquare scaled2 withcolor Crimson);
+ draw ASegment[1];
+ draw ASegment[3];
+ draw ASegment[4];
+ draw ASegment[6];
+ draw ASegment[7];
+ drawoptions(withpen pensquare scaled2 withcolor fondsegment);
+ draw ASegment[2];
+ draw ASegment[5];
+ drawoptions();
+ fi;
+ if nb=3:
+ drawoptions(withpen pensquare scaled2 withcolor Crimson);
+ draw ASegment[1];
+ draw ASegment[2];
+ draw ASegment[3];
+ draw ASegment[4];
+ draw ASegment[7];
+ drawoptions(withpen pensquare scaled2 withcolor fondsegment);
+ draw ASegment[5];
+ draw ASegment[6];
+ drawoptions();
+ fi;
+ if nb=4:
+ drawoptions(withpen pensquare scaled2 withcolor Crimson);
+ draw ASegment[2];
+ draw ASegment[3];
+ draw ASegment[5];
+ draw ASegment[7];
+ drawoptions(withpen pensquare scaled2 withcolor fondsegment);
+ draw ASegment[1];
+ draw ASegment[4];
+ draw ASegment[6];
+ drawoptions();
+ fi;
+ if nb=5:
+ drawoptions(withpen pensquare scaled2 withcolor Crimson);
+ draw ASegment[1];
+ draw ASegment[2];
+ draw ASegment[4];
+ draw ASegment[5];
+ draw ASegment[7];
+ drawoptions(withpen pensquare scaled2 withcolor fondsegment);
+ draw ASegment[3];
+ draw ASegment[6];
+ drawoptions();
+ fi;
+ if nb=6:
+ drawoptions(withpen pensquare scaled2 withcolor Crimson);
+ draw ASegment[1];
+ draw ASegment[2];
+ draw ASegment[4];
+ draw ASegment[5];
+ draw ASegment[6];
+ draw ASegment[7];
+ drawoptions(withpen pensquare scaled2 withcolor fondsegment);
+ draw ASegment[3];
+ drawoptions();
+ fi;
+ if nb=7:
+ drawoptions(withpen pensquare scaled2 withcolor Crimson);
+ draw ASegment[2];
+ draw ASegment[3];
+ draw ASegment[4];
+ drawoptions(withpen pensquare scaled2 withcolor fondsegment);
+ draw ASegment[1];
+ draw ASegment[5];
+ draw ASegment[6];
+ draw ASegment[7];
+ drawoptions();
+ fi;
+ if nb=8:
+ drawoptions(withpen pensquare scaled2 withcolor Crimson);
+ draw ASegment[1];
+ draw ASegment[2];
+ draw ASegment[3];
+ draw ASegment[4];
+ draw ASegment[5];
+ draw ASegment[6];
+ draw ASegment[7];
+ drawoptions();
+ fi;
+ if nb=9:
+ drawoptions(withpen pensquare scaled2 withcolor Crimson);
+ draw ASegment[1];
+ draw ASegment[2];
+ draw ASegment[3];
+ draw ASegment[4];
+ draw ASegment[5];
+ draw ASegment[7];
+ drawoptions(withpen pensquare scaled2 withcolor fondsegment);
+ draw ASegment[6];
+ drawoptions();
+ fi;
+ if nb=0:
+ drawoptions(withpen pensquare scaled2 withcolor Crimson);
+ draw ASegment[1];
+ draw ASegment[2];
+ draw ASegment[3];
+ draw ASegment[4];
+ draw ASegment[5];
+ draw ASegment[6];
+ drawoptions(withpen pensquare scaled2 withcolor fondsegment);
+ draw ASegment[7];
+ drawoptions();
+ fi;
+ if nb=10:
+ drawoptions(withpen pensquare scaled2 withcolor Crimson);
+ fill (unitsquare scaled 2) shifted Bb7 withcolor Crimson;
+ fill (unitsquare scaled 2) shifted Bb8 withcolor Crimson;
+ drawoptions(withpen pensquare scaled2 withcolor fondsegment);
+ draw ASegment[1];
+ draw ASegment[2];
+ draw ASegment[3];
+ draw ASegment[4];
+ draw ASegment[5];
+ draw ASegment[6];
+ draw ASegment[7];
+ drawoptions();
+ fi;
+ );
+ $
+enddef;
+
+endinput;
+
Property changes on: trunk/Master/texmf-dist/metapost/profcollege/PfCAfficheur.mp
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/metapost/profcollege/PfCCalculatrice.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfCCalculatrice.mp (rev 0)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfCCalculatrice.mp 2021-04-23 20:37:20 UTC (rev 58973)
@@ -0,0 +1,201 @@
+prologues:=3;
+
+path carre[];
+
+u:=0.5mm;
+
+vardef BlocAffichage=
+ for k=0 upto 34:
+ carre[k]:=(unitsquare scaled u) shifted(u*(k mod 5,5-(k div 5)));
+ endfor;
+enddef;
+
+vardef Affichage(expr decomp)=
+ save $;
+ picture $;
+ drawoptions(withpen pensquare scaled0.1);
+ $=image(%
+ for k=0 upto 34:
+ if (substring(k,k+1) of decomp)="1":
+ fill carre[k];
+ fi;
+ endfor;
+ );
+ drawoptions();
+ $
+enddef;
+
+nblignes:=0;
+
+boolean print;
+print:=false;
+
+color CouleurEcran;
+CouleurEcran=(107/255,148/255,107/255);
+
+boolean Math;
+Math=true;
+
+decahoriz:=0;
+
+vardef Test(expr cptk,cptnt)=
+ pair decalage;
+ if nblignes mod 2=0:
+ decalage:=u*((20-length(cptnt)+cptk)*6,-8*(nblignes-1));
+ else:
+ decalage:=u*(decahoriz,-8*(nblignes-1));
+ decahoriz:=decahoriz+6;
+ fi;
+ if substring(cptk,cptk+1) of cptnt="A":draw Affichage("01110100011000110001111111000110001") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="B":draw Affichage("11110100011000111110100011000111110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="C":draw Affichage("01110100011000010000100001000101110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="D":draw Affichage("11100100101000110001100011001011100") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="E":draw Affichage("11111100001000011111100001000011111") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="F":draw Affichage("11111100001000011111100001000010000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="G":draw Affichage("01110100011000010111100011000101110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="H":draw Affichage("10001100011000111111100011000110001") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="I":draw Affichage("01110001000010000100001000010001110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="J":draw Affichage("00111000100001000010000101001001100") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="K":draw Affichage("10001100101010011000101001001010001") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="L":draw Affichage("10000100001000010000100001000011111") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="M":draw Affichage("10001110111010110101100011000110001") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="N":draw Affichage("10001100011100110101100111000110001") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="O":draw Affichage("01110100011000110001100011000101110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="P":draw Affichage("11110100011000111110100001000010000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="Q":draw Affichage("01110100011000110001101011001001101") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="R":draw Affichage("11110100011000111110101001001010001") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="S":draw Affichage("01111100001000001110000010000111110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="T":draw Affichage("11111001000010000100001000010000100") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="U":draw Affichage("10001100011000110001100011000101110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="V":draw Affichage("10001100011000110001100010101000100") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="W":draw Affichage("10101101011010110101101011010101010") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="X":draw Affichage("10001100010101000100010101000110001") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="Y":draw Affichage("10001100011000101010001000010000100") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="Z":draw Affichage("11111000010001000100010001000011111") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="a":draw Affichage("00000000000111100001011111000101111") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="b":draw Affichage("10000100001011011001100011000111110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="c":draw Affichage("00000000000111010000100001000101110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="d":draw Affichage("00001000010110110011100011000101111") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="e":if Math:
+ draw Affichage("00000000000000000001101000100010100") shifted(decalage);
+ decalage:=u*(decahoriz-1,-8*(nblignes-1));
+ draw Affichage("00000000001001010101101011010110010") shifted(decalage);
+ decahoriz:=decahoriz+6;
+ else:
+ draw Affichage("00000000000111010001111111000001110") shifted(decalage);
+ fi;
+ elseif substring(cptk,cptk+1) of cptnt="@":draw Affichage("00010001000111010001111111000001110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="f":draw Affichage("00110010010100011100010000100001000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="g":draw Affichage("00000011111000110001011110000101110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="h":draw Affichage("10000100001011011001100011000110001") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="i":draw Affichage("00100000000110000100001000010001110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="j":if Math=true:
+ draw Affichage("00011000011110100001000000000000000") shifted(decalage);
+ else:
+ draw Affichage("00010000000011000010000101001001100") shifted(decalage);
+ fi;
+ elseif substring(cptk,cptk+1) of cptnt="k":if Math=true:
+ draw Affichage("11100001000100011100000000000000000") shifted(decalage);
+ else:
+ draw Affichage("10000100001001010100110001010010010") shifted(decalage);
+ fi;
+ elseif substring(cptk,cptk+1) of cptnt="l":if Math=true:
+ draw Affichage("11100010000010011100000000000000000") shifted(decalage);
+ else:
+ draw Affichage("01100001000010000100001000010001110") shifted(decalage);
+ fi;
+ elseif substring(cptk,cptk+1) of cptnt="m":draw Affichage("00000000001101010101101011000110001") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="n":draw Affichage("00000000001011011001100011000110001") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="o":draw Affichage("00000000000111010001100011000101110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="p":draw Affichage("00000000001111010001111101000010000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="q":if Math=true:
+ draw Affichage("00000000001111101010010100101010001") shifted(decalage);
+ else:
+ draw Affichage("00000000000110110011011110000100001") shifted(decalage);
+ fi;
+ elseif substring(cptk,cptk+1) of cptnt="r":draw Affichage("00000000001011011001100001000010000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="s":draw Affichage("00000000000111010000011100000111110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="t":draw Affichage("01000010001110001000010000100100110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="u":draw Affichage("00000000001000110001100011001101101") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="v":if Math=true:
+ draw Affichage("00111001000010000100101000110000100") shifted(decalage);
+ else:
+ draw Affichage("00000000001000110001100010111000100") shifted(decalage);
+ fi;
+ elseif substring(cptk,cptk+1) of cptnt="w":draw Affichage("00000000001010110101101011010101110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="x":draw Affichage("00000000001000101010001000101010001") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="y":draw Affichage("00000000001000110001011110000101110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="z":draw Affichage("00000000001111100010001000100011111") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="0":draw Affichage("01110100011001110101110011000101110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="1":draw Affichage("00100011000010000100001000010001110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="2":draw Affichage("01110100010000100010001000100011111") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="3":draw Affichage("11111000100010000010000011000101110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="4":draw Affichage("00010001100101010010111110001000010") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="5":draw Affichage("11111100001111000001000011000101110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="6":draw Affichage("00110010001000011110100011000101110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="7":draw Affichage("11111000010001000100010000100001000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="8":draw Affichage("01110100011000101110100011000101110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="9":draw Affichage("01110100011000101111000010001001100") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="!":draw Affichage("00100001000010000100000000000000100") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="'":draw Affichage("01100001000100000000000000000000000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="(":draw Affichage("00010001000100001000010000010000010") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt=")":draw Affichage("01000001000001000010000100010001000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="*":draw Affichage("00000001001010101110101010010000000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="+":draw Affichage("00000001000010011111001000010000000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt=",":draw Affichage("00000000000000000000011000010001000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="-":draw Affichage("00000000000000011111000000000000000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt=".":draw Affichage("00000000000000000000000000110001100") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="/":draw Affichage("00000000010001000100010001000000000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt=":":if Math=true:
+ draw Affichage("00000000000000000000000000000000000") shifted(decalage);
+ else:
+ draw Affichage("00000011000110000000011000110000000") shifted(decalage);
+ fi;
+ elseif substring(cptk,cptk+1) of cptnt=";":if Math=true:
+ draw Affichage("00000001000000011111000000010000000") shifted(decalage);
+ else:
+ draw Affichage("00000011000110000000011000010001000") shifted(decalage);
+ fi;
+ elseif substring(cptk,cptk+1) of cptnt="<":draw Affichage("00010001000100010000010000010000010") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="=":draw Affichage("00000000001111100000111110000000000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt=">":draw Affichage("10000010000010000010001000100010000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="?":draw Affichage("01110100010000100010001000000000100") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="[":draw Affichage("01110010000100001000010000100001110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="]":draw Affichage("01110000100001000010000100001001110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="`":draw Affichage("01000001000001000000000000000000000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="|":draw Affichage("00100001000010000100001000010000100") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt=" ":draw Affichage("00000100010101000100010101000100000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="&":draw Affichage("00000100001100011100110001000000000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="$":draw Affichage("00000000000000100001000010000111111") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="^":draw Affichage("00100010101000100000000000000000000") shifted(decalage);
+ fi;
+enddef;
+
+vardef LCD(text nt)(text rep)(expr NB)=
+ decahoriz:=0;
+ nblignes:=nblignes+1;
+ path Ecran;
+ Ecran:=(u*(0,-1)--u*(120,-1)--u*(120,7)--u*(0,7)--cycle) shifted(u*(0,-8*(nblignes-1)));
+ fill Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
+ draw Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
+ for k=0 upto length(nt)-1:
+ BlocAffichage;
+ Test(k,nt);
+ endfor;
+ for k=1 upto NB:
+ nblignes:=nblignes+1;
+ Ecran:=(u*(0,-1)--u*(120,-1)--u*(120,7)--u*(0,7)--cycle) shifted(u*(0,-8*(nblignes-1)));
+ fill Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
+ draw Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
+ endfor;
+ nblignes:=nblignes+1;
+ Ecran:=(u*(0,-1)--u*(120,-1)--u*(120,7)--u*(0,7)--cycle) shifted(u*(0,-8*(nblignes-1)));
+ fill Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
+ draw Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
+ for k=0 upto length(rep)-1:
+ BlocAffichage;
+ Test(k,rep);
+ endfor;
+enddef;
+
+endinput;
Property changes on: trunk/Master/texmf-dist/metapost/profcollege/PfCCalculatrice.mp
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/metapost/profcollege/PfCConstantes.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfCConstantes.mp (rev 0)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfCConstantes.mp 2021-04-23 20:37:20 UTC (rev 58973)
@@ -0,0 +1,20 @@
+%Constantes
+u:=1cm;
+v:=(sqrt3)/2;
+pi:=3.141592654;
+e:=2.718281828;
+c:=57.29578; % conversion d'un radian en degres
+color rouge,vert,bleu,jaune,noir,blanc,orange,rose,violet,ciel,cielfonce,orangevif,gris;
+rouge=(1,0,0);
+bleu=(0,0,1);
+noir=(0,0,0);
+blanc=(1,1,1);
+orange=(1,0.5,0);
+violet=blanc-vert;
+rose=(1,0.7,0.7);
+cielfonce=0.9*(0.25,1,1);
+ciel=bleu+vert;
+orangevif=(1,0.25,0.1);
+vert=(0,1,0);
+jaune=rouge+vert;
+gris=0.8*white;
Property changes on: trunk/Master/texmf-dist/metapost/profcollege/PfCConstantes.mp
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/metapost/profcollege/PfCGeometrie.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfCGeometrie.mp (rev 0)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfCGeometrie.mp 2021-04-23 20:37:20 UTC (rev 58973)
@@ -0,0 +1,1206 @@
+%===============================================
+%% PfC-Geometrie
+%% christophe.poulain at melusine.eu.org
+%%===============================================
+%------------------------------------------------
+% Appel fichier
+%------------------------------------------------
+%input PfC-Constantes;
+%------------------------------------------------
+% La figure (debut et fin) JMS/CP
+%------------------------------------------------
+path feuillet;
+numeric _tfig,_nfig;
+_tfig:=5cm;
+_nfig:=0;
+pair coinbg,coinbd,coinhd,coinhg;
+
+string typetrace;
+typetrace="normal";
+
+def feuille(expr xa,ya,xb,yb) =
+ feuillet := (xa,ya)--(xa,yb)--(xb,yb)--(xb,ya)--cycle;
+ coinbg := (xa,ya);
+ coinbd := (xb,ya);
+ coinhd := (xb,yb);
+ coinhg := (xa,yb);
+ %modifie le 29.09.04
+ z.so=(xpart(coinbg/1cm),ypart(coinbg/1cm));
+ z.ne=(xpart(coinhd/1cm),ypart(coinhd/1cm));
+ %fin modification
+ extra_endfig := "clip currentpicture to feuillet;" & extra_endfig;
+enddef;
+
+def Figure(expr xa,ya,xb,yb) =
+ feuille(xa,ya,xb,yb);
+ _tfig:= if (xb-xa)>(yb-ya): xb-xa else: yb-ya fi;
+ _tfig:=2*_tfig;
+enddef;
+
+%%-----------------------------------------------
+%% Les marques (JMS)
+%%-----------------------------------------------
+string marque_p;
+marque_p := "non";
+marque_r := 20;
+marque_a := 20;
+marque_s := 5;
+marque_ang := 10;
+m_c := 10 ;%Pour la croix du marquage des points
+
+%------------------------------------------------
+% Les tables
+%------------------------------------------------
+numeric _tn;
+_tn:=0;
+pair _t[];
+color _T[];
+
+%%-----------------------------------------------
+%% Procedures d'affichage
+%%-----------------------------------------------
+def MarquePoint(expr p)=
+ if typetrace="3D":
+ %JMS
+ if marque_p = "plein":
+ fill fullcircle scaled (marque_r/5) shifted Projette(p);
+ elseif marque_p = "creux":
+ fill fullcircle scaled (marque_r/5) shifted (Projette(p)) withcolor white;
+ draw fullcircle scaled (marque_r/5) shifted (Projette(p));
+ %fin JMS
+ elseif marque_p = "croix":
+ draw (Projette(p) shifted (-u/10,u/10))--(Projette(p) shifted (u/10,-u/10));
+ draw (Projette(p) shifted (-u/10,-u/10))--(Projette(p) shifted (u/10,u/10));
+ elseif marque_p = "tiretv":
+ draw (Projette(p) shifted (0,u/10))--(Projette(p) shifted(0,-u/10));
+ elseif marque_p = "tireth":
+ draw (Projette(p) shifted (u/10,0))--(Projette(p) shifted(-u/10,0));
+ fi;
+ else:
+ if marque_p = "plein":
+ fill fullcircle scaled (marque_r/5) shifted p;
+ elseif marque_p = "creux":
+ fill fullcircle scaled (marque_r/5) shifted p withcolor white;
+ draw fullcircle scaled (marque_r/5) shifted p;
+ elseif marque_p = "croix":
+ draw (p shifted (-u/m_c,u/m_c))--(p shifted (u/m_c,-u/m_c));
+ draw (p shifted (-u/m_c,-u/m_c))--(p shifted (u/m_c,u/m_c));
+ elseif marque_p = "tiretv":
+ draw (p shifted (0,u/10))--(p shifted(0,-u/10));
+ elseif marque_p = "tireth":
+ draw (p shifted (u/10,0))--(p shifted(-u/10,0));
+ fi;
+ fi;
+enddef;
+
+vardef pointe(text t) =
+ for p_ = t: if (pair p_) or (color p_): MarquePoint(p_); fi endfor;
+enddef;
+
+%------------------------------------------------
+% Points
+%------------------------------------------------
+%JMS
+vardef iso(text t) =
+ save s,n; numeric n;
+ if typetrace="3D":
+ color s; s := (0,0,0) ; n := 0;
+ for p_ = t: s := s + p_; n := n + 1 ; endfor;
+ else:
+ pair s; s := (0,0) ; n := 0;
+ for p_ = t: s := s + p_; n := n + 1 ; endfor;
+ fi;
+ if n>0: (1/n)*s fi
+enddef;
+
+vardef milieu(expr AA,BB)=
+ save $;
+ pair $;
+ if typetrace="mainlevee":
+ $=point((length segment(AA,BB))*(1/2+(-1+uniformdeviate(2))/10)) of segment(AA,BB)
+ else:
+ $=iso(AA,BB)
+ fi;
+ $
+enddef;
+
+vardef CentreCercleI(expr aa,bb,cc)=
+ save $,a,c;
+ pair $;
+ numeric a,c;
+ a=(angle(aa-cc)-angle(bb-cc))/2;
+ c=(angle(cc-bb)-angle(aa-bb))/2;
+ ($-cc) rotated a shifted cc=whatever[aa,cc];
+ ($-bb) rotated c shifted bb=whatever[bb,cc];
+ $
+enddef;
+
+%------------------------------------------------
+% Cercles
+%------------------------------------------------
+%Cercle connaissant le centre A et le rayon q
+vardef cercle(expr aa, q)=fullcircle scaled (2*q) shifted aa
+enddef;
+%Cercle de centre A et passant par B
+vardef cerclepoint(expr aa,bb)=fullcircle scaled (2*abs(aa-bb)) shifted aa
+enddef;
+%Cercle connaissant le diametre [AB]
+vardef cercledia(expr aa,bb)=cercles(iso(aa,bb),bb)
+ %fullcircle scaled (2*abs(1/2[aa,bb]-bb)) shifted (1/2[aa,bb])
+enddef;
+%Cercles complets
+vardef cercles(text t)=
+ save Cer;
+ save n;
+ n:=0;
+ for p_=t:
+ if pair p_:
+ n:=n+1;
+ _t[n]:=p_;
+ fi
+ if numeric p_:
+ rayon:=p_;
+ fi;
+ if color p_:
+ n:=n+1;
+ _T[n]:=p_;
+ fi;
+ endfor;
+ if typetrace="3D":%centre aa passant par bb dans le plan (ccddee) généralement aa=cc
+ path Cer;
+ color ptcer[];
+ for k=0 step 5 until 360 :
+ ptcer[k div 5]-_T[1]=Distance(_T[1],_T[2])*((_T[4]-_T[3])*cosd(k)/Distance(_T[3],_T[4])+(_T[5]-_T[3])*sind(k)/Distance(_T[3],_T[5]));
+ endfor;
+ Cer=Projette(ptcer0)
+ for k=0 step 5 until 360 :
+ ..Projette(ptcer[k div 5])
+ endfor
+ ..cycle;
+ else:
+ path Cer;
+ if n=1 : Cer=fullcircle scaled (2*rayon) shifted _t[1];
+ elseif n=2 : Cer=fullcircle scaled (2*abs(_t[1]-_t[2])) shifted _t[1];
+ elseif n=3 : Cer=cercles(CentreCercleC(_t[1],_t[2],_t[3]),_t[1]);
+ fi
+ fi
+ Cer
+enddef;
+
+%Point particulier sur le cercle
+vardef pointarc(expr cercla,angle)=
+ point(arctime((angle/360)*arclength cercla) of cercla) of cercla
+enddef;
+
+%Arc de cercle AB de centre 0(dans le sens direct) : les points A et B doivent etre sur le cercle.
+vardef arccercle(expr aa,bb,oo)=
+ path tempo;
+ path arc;
+ tempo=fullcircle scaled (2*abs(aa-oo)) shifted oo;
+ if (angle(aa-oo)=0) or (angle(aa-oo)>0) :
+ if (angle(bb-oo)=0) or (angle(bb-oo)>0):
+ if (angle(aa-oo)<angle(bb-oo)):
+ arc=subpath(angle(aa-oo)*(length tempo)/360,angle(bb-oo)*(length tempo)/360) of tempo;
+ else:
+ arc=subpath(angle(aa-oo)*(length tempo)/360,(length tempo)+angle(bb-oo)*(length tempo)/360) of tempo;
+ fi;
+ elseif (angle(bb-oo)<0):
+ arc=subpath(angle(aa-oo)*(length tempo)/360,(length tempo)+angle(bb-oo)*(length tempo)/360) of tempo;
+ fi;
+ elseif (angle(aa-oo)<0):
+ if (angle(bb-oo)=0) or (angle(bb-oo)>0):
+ arc=subpath(length tempo+angle(aa-oo)*(length tempo)/360,length tempo+angle(bb-oo)*(length tempo)/360) of tempo;
+ elseif (angle(bb-oo)<0):
+ if (angle(aa-oo)=angle(bb-oo)) or (angle(aa-oo)<angle(bb-oo)):
+ arc=subpath((length tempo)+angle(aa-oo)*(length tempo)/360,(length tempo)+angle(bb-oo)*(length tempo)/360) of tempo;
+ else:
+ arc=subpath((length tempo)+angle(aa-oo)*(length tempo)/360,2*(length tempo)+angle(bb-oo)*(length tempo)/360) of tempo;
+ fi;
+ fi;
+ fi;
+ arc
+enddef;
+
+vardef coupdecompas(expr ab,ac,ad)=arccercle(pointarc(cercles(ab,ac),angle(ac-ab)-ad),pointarc(cercles(ab,ac),angle(ac-ab)+ad),ab)
+enddef;
+
+%------------------------------------------------
+% Procedures de codage
+%------------------------------------------------
+%Codage de l'angle droit de sommet B
+vardef codeperp(expr aa,bb,cc,m)=%normalement m=5
+ save codep;
+ path codep;
+ if typetrace="3D":
+ codep=(Projette(bb)+m*unitvector(Projette(aa)-Projette(bb)))--(Projette(bb)+m*unitvector(Projette(aa)-Projette(bb))+m*unitvector(Projette(cc)-Projette(bb)))--(Projette(bb)+m*unitvector(Projette(cc)-Projette(bb)));
+ else:
+ codep=(bb+m*unitvector(aa-bb))--(bb+m*unitvector(aa-bb)+m*unitvector(cc-bb))--(bb+m*unitvector(cc-bb));
+ fi;
+ codep
+enddef;
+
+%Codage d'un milieu
+vardef codemil(expr AA,BB, n) =%extremites-angle de codage
+ save $,a,b,c,d;
+ path $;
+ pair a,b,c,d;
+ a=1/2[AA,BB];
+ b=(a+marque_s*unitvector(BB-AA))-(a-marque_s*unitvector(BB-AA));
+ c=b rotated n shifted a;
+ d=2[c,a];
+ $=c--d;
+ $
+enddef;
+%Codage de deux segments egaux
+vardef codesegments(expr aa,bb,cc,dd,n)=%extremites des segments(4)-type de codage
+ save $,v,w;
+ picture $;
+ pair AA,BB,CC,DD;
+ $=image(
+ if typetrace="3D":
+ AA=Projette(aa); BB=Projette(bb); CC=Projette(cc); DD=Projette(dd);
+ else:
+ AA=aa;BB=bb;CC=cc;DD=dd;
+ fi;
+ if n=5 :
+ draw fullcircle scaled 0.1cm shifted (1/2[AA,BB]);
+ draw fullcircle scaled 0.1cm shifted (1/2[CC,DD]);
+ elseif n=4 :
+ pair v,w;
+ v=1/2[AA,BB];
+ w=1/2[CC,DD];
+ draw codemil(AA,BB,60);
+ draw codemil(AA,BB,120);
+ draw codemil(CC,DD,60);
+ draw codemil(CC,DD,120);
+ elseif n=3 :
+ draw codemil(AA,BB,60);
+ draw codemil(AA,BB,60) shifted (2*unitvector(AA-BB));
+ draw codemil(AA,BB,60) shifted (2*unitvector(BB-AA));
+ draw codemil(CC,DD,60);
+ draw codemil(CC,DD,60) shifted (2*unitvector(CC-DD));
+ draw codemil(CC,DD,60) shifted (2*unitvector(DD-CC));
+ elseif n=2 :
+ draw codemil(AA,BB,60) shifted unitvector(AA-BB);
+ draw codemil(AA,BB,60) shifted unitvector(BB-AA);
+ draw codemil(CC,DD,60) shifted unitvector(CC-DD);
+ draw codemil(CC,DD,60) shifted unitvector(DD-CC);
+ elseif n=1 :
+ draw codemil(AA,BB,60);
+ draw codemil(CC,DD,60);
+ fi;
+ );
+ $
+ enddef;
+
+%Codage de plusieurs segments de meme longueur
+ vardef Codelongueur(text t)=
+ save result;
+ picture result;
+ pair tt[];
+ k:=0;
+ for p_=t:
+ if pair p_:
+ k:=k+1;
+ tt[k]=p_;
+ elseif color p_:
+ k:=k+1;
+ tt[k]=Projette(p_);
+ elseif numeric p_:
+ co:=p_;
+ fi;
+ endfor;
+ result=image(
+ if co=5:
+ for j=1 upto (k div 2):
+ draw fullcircle scaled 0.1cm shifted (1/2[tt[2*j-1],tt[2*j]]);
+ endfor;
+ elseif co=4:
+ for j=1 upto (k div 2):
+ draw codemil(tt[2*j-1],tt[2*j],60);
+ draw codemil(tt[2*j-1],tt[2*j],120);
+ endfor;
+ elseif co=3:
+ for j=1 upto (k div 2):
+ draw codemil(tt[2*j-1],tt[2*j],60);
+ draw codemil(tt[2*j-1],tt[2*j],60) shifted (2*unitvector(tt[2*j-1]-tt[2*j]));
+ draw codemil(tt[2*j-1],tt[2*j],60) shifted (2*unitvector(tt[2*j]-tt[2*j-1]));
+ endfor;
+ elseif co=2:
+ for j=1 upto (k div 2):
+ draw codemil(tt[2*j-1],tt[2*j],60) shifted unitvector(tt[2*j-1]-tt[2*j]);
+ draw codemil(tt[2*j-1],tt[2*j],60) shifted unitvector(tt[2*j]-tt[2*j-1]);
+ endfor;
+ elseif co=1:
+ for j=1 upto (k div 2):
+ draw codemil(tt[2*j-1],tt[2*j],60);
+ endfor;
+ fi;
+ );
+ result
+enddef;
+
+%Codage de l'angle abc non oriente (mais donne dans le sens direct) n fois avec des mesures differentes
+vardef codeangle@#(expr aa,bb,cc,nb,nom)=
+ save s,p,$;
+ path p;
+ picture $;
+ $=image(
+ trace marqueangle(aa,bb,cc,nb);
+ label.@#(nom,w);
+ );
+ $
+enddef;
+
+vardef Marqueangle(expr aa,bb,mark)=%codage d'un angle forme par les demi-droites aa et bb dans le sens direct avec la marque mark
+ save $;
+ picture $;
+ path conf,rr;
+ pair w,tangent;
+ numeric t,tt;
+ conf=fullcircle scaled (2*marque_a) shifted (aa intersectionpoint bb);
+ numeric te;
+ te=angle((conf intersectionpoint aa)-(aa intersectionpoint bb));
+ rr=(conf intersectionpoint aa){dir(90+angle((conf intersectionpoint aa)-(aa intersectionpoint bb)))}..(conf intersectionpoint bb);
+ t=length rr/2;
+ w=point(t) of rr;
+ tangent=unitvector(direction t of rr);
+ $=image(
+ trace rr;
+ if mark=1:
+ trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,90);
+ elseif mark=2:
+ trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,90) shifted tangent;
+ trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,90) shifted(-tangent);
+ elseif mark=3:
+ trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,90);
+ trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,90) shifted(1.5*tangent);
+ trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,90) shifted(-1.5*tangent);
+ elseif mark=4:
+ trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,45);
+ trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,-45);
+ fi;
+ );
+ $
+enddef;
+
+vardef marqueangle(expr aa,bb,cc,mark)=%codage d'un angle de sommet bb dans le sens direct par la marque mark.
+ save $;
+ picture $;
+ path conf,rr;
+ pair w,tangent;
+ numeric t;
+ if typetrace="mainlevee":
+ conf=fullcircle scaled (2*marque_a) shifted bb;
+ rr=(conf intersectionpoint demidroite(bb,aa)){dir(90+angle(aa-bb))}..(conf intersectionpoint demidroite(bb,cc));
+ w=rr intersectionpoint droite(bb,CentreCercleI(aa,bb,cc));
+ t=length rr/2;
+ tangent=unitvector(direction t of rr);
+ $=image(
+ trace rr;
+ if mark=1:
+ trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90);
+ elseif mark=2:
+ trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted tangent;
+ trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted(-tangent);
+ elseif mark=3:
+ trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90);
+ trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted(1.marque_s*tangent);
+ trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted(-1.marque_s*tangent);
+ elseif mark=4:
+ trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,45);
+ trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,-45);
+ fi;
+ );
+ else:
+ rr=arccercle(bb+marque_a*unitvector(aa-bb),bb+marque_a*unitvector(cc-bb),bb);
+ w=rr intersectionpoint droite(bb,CentreCercleI(aa,bb,cc));
+ t=length rr/2;
+ tangent=unitvector(direction t of rr);
+ $=image(
+ if mark=5:
+ drawarrow rr;
+ else:
+ trace rr;
+ fi;
+ if mark=1:
+ trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90);
+ elseif mark=2:
+ trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted tangent;
+ trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted(-tangent);
+ elseif mark=3:
+ trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90);
+ trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted(1.marque_s*tangent);
+ trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted(-1.marque_s*tangent);
+ elseif mark=4:
+ trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,45);
+ trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,-45);
+ fi;
+ );
+ fi;
+ $
+enddef;
+
+vardef coloreangle(expr aa,bb,cc)=arccercle(bb+marque_a*unitvector(aa-bb),bb+marque_a*unitvector(cc-bb),bb)--bb--cycle
+enddef;
+
+vardef Codeangle(expr aa,bb,cc,nb,nom)=
+ save s,p,$;
+ path p;
+ picture $;
+ $=image(
+ trace marqueangle(aa,bb,cc,nb);
+ label(nom,w shifted(marque_ang*unitvector(w-bb)));
+ );
+ $
+enddef;
+
+vardef marquesegment(expr aa,bb)=
+ save tr;
+ picture tr;
+ if typetrace="3D":
+ tr=image(%
+ typetrace:="normal";
+ trace rotation(segment(Projette(aa)-marque_s*unitvector(Projette(bb)-Projette(aa)),Projette(aa)+marque_s*unitvector(Projette(bb)-Projette(aa))),Projette(aa),90);
+ trace rotation(segment(Projette(bb)-marque_s*unitvector(Projette(bb)-Projette(aa)),Projette(bb)+marque_s*unitvector(Projette(bb)-Projette(aa))),Projette(bb),90);
+ typetrace:="3D";
+ );
+ else:
+ tr=image(%
+ trace rotation(segment(aa-marque_s*unitvector(bb-aa),aa+marque_s*unitvector(bb-aa)),aa,90);
+ trace rotation(segment(bb-marque_s*unitvector(bb-aa),bb+marque_s*unitvector(bb-aa)),bb,90);
+ );
+ fi;
+ tr
+enddef;
+
+vardef marquedemidroite(expr aa,bb)=
+ save tr;
+ picture tr;
+ tr=image(
+ trace rotation(segment(aa-marque_s*unitvector(bb-aa),aa+marque_s*unitvector(bb-aa)),aa,90);
+ );
+ tr
+enddef;
+
+%------------------------------------------------
+% Transformations
+%------------------------------------------------
+vardef projection(expr m,a,b) =
+ save h; pair h;
+ h - m = whatever * (b-a) rotated 90;
+ h = whatever [a,b];
+ if typetrace="mainlevee":
+ h:=h shifted((-2+uniformdeviate(4))*unitvector(a-b))
+ fi;
+ h
+enddef;
+
+vardef homothetie(expr objet,CTR,rapport)=
+ ((objet shifted (-CTR)) scaled rapport) shifted CTR
+enddef;
+
+vardef rotation(expr p,c,a)=
+ p rotatedaround(c,a)
+enddef;
+
+vardef symetrie(expr x)(text t)=
+ save n;
+ n:=0;
+ for p_=t: if pair p_:
+ n:=n+1;
+ _t[n]:=p_;
+ elseif color p_:
+ n:=n+1;
+ _T[n]:=p_;
+ fi;
+ endfor;
+ if n=1:
+ if typetrace="3D":
+ 2[x,_T[1]]
+ else:
+ rotation(x,_t[1],180)
+ fi
+ elseif n=2:
+ x reflectedabout(_t[1],_t[2])
+ elseif n=3:%Par rapport a un plan
+ 2[x,ProjectionsurPlan(x,_T[1],_T[2],_T[3])]
+ fi
+enddef;
+
+%------------------------------------------------
+% Droites
+%------------------------------------------------
+vardef segment(expr aa,bb)=
+ save Seg;
+ path Seg;
+ if typetrace="mainlevee":
+ Seg=aa{dir(angle(bb-aa)+5)}..bb{dir(angle(bb-aa)+5)}
+ elseif typetrace="3D":
+ Seg=Projette(aa)--Projette(bb)
+ else:
+ Seg=aa--bb
+ fi;
+ Seg
+enddef;
+
+vardef droite(expr AA,BB)=
+ save Dro;
+ path Dro;
+ if typetrace="mainlevee":
+ Dro=(_tfig/abs(AA-BB))[BB,AA]{dir(angle(BB-AA)+10)}..segment(AA,BB)..(_tfig/abs(AA-BB))[AA,BB]{dir(angle(BB-AA)+10)}
+ elseif typetrace="3D":
+ Dro=(_tfig/abs(Projette(AA)-Projette(BB)))[Projette(BB),Projette(AA)]--(_tfig/abs(Projette(AA)-Projette(BB)))[Projette(AA),Projette(BB)]
+ else:
+ Dro=(_tfig/abs(AA-BB))[BB,AA]--(_tfig/abs(AA-BB))[AA,BB]
+ fi;
+ Dro
+enddef;
+vardef demidroite(expr AA,BB)=
+ save Dem;
+ path Dem;
+ if typetrace="mainlevee":
+ Dem=segment(AA,BB)..(_tfig/abs(AA-BB))[AA,BB]{dir(angle(BB-AA)+10)}
+ elseif typetrace="3D":
+ Dem=Projette(AA)--(_tfig/abs(Projette(AA)-Projette(BB)))[Projette(AA),Projette(BB)]
+ else:
+ Dem=AA--(_tfig/abs(AA-BB))[AA,BB]
+ fi;
+ Dem
+enddef;
+
+vardef bissectrice(expr AA,BB,CC)=
+ save $;
+ path $;
+ if typetrace="mainlevee":
+ $=rotation(demidroite(BB,CentreCercleI(AA,BB,CC)),BB,-5+uniformdeviate(10))
+ else:
+ $=demidroite(BB,CentreCercleI(AA,BB,CC))
+ fi;
+ $
+enddef;
+
+vardef mediatrice(expr AA,BB)=droite(iso(AA,BB),rotation(BB,iso(AA,BB),90))
+enddef;
+%main levee : passer par la perpendiculaire passant par le milieu.
+
+vardef perpendiculaire(expr AA,BB,II)=droite(iso(AA,BB),rotation(BB,iso(AA,BB),90)) shifted (II-iso(AA,BB))
+enddef;
+
+vardef parallele(expr AA,BB,II)=droite(AA,BB) shifted (II-(projection(II,AA,BB)))
+enddef;
+
+%%%%%%%%%%
+%Polygone/Ligne brisée
+%%%%%%%%%
+vardef polygone(text t)=
+ pair aaa[];
+ j:=0;
+ for p_=t: if pair p_:
+ j:=j+1;
+ aaa[j]=p_;
+ elseif color p_:
+ j:=j+1;
+ aaa[j]=Projette(p_);
+ fi;
+ endfor;
+ aaa[j+1]:=aaa[1];
+ save $;
+ path $;
+ $=aaa1--
+ for k=2 upto j:
+ aaa[k]--
+ endfor
+ cycle;
+ $
+enddef;
+
+vardef chemin(text t)=
+ pair aaa[];
+ j:=0;
+ for p_=t: if pair p_:
+ j:=j+1;
+ aaa[j]=p_;
+ elseif color p_:
+ j:=j+1;
+ aaa[j]=Projette(p_);
+ fi;
+ endfor;
+ if typetrace="mainlevee":
+ save $;
+ picture $;
+ $=image(
+ for k=1 upto (j-1):
+ trace segment(aaa[k],aaa[k+1]);
+ endfor;
+ );
+ else:
+ save $;
+ path $;
+ $=aaa1
+ for k=2 upto j:
+ --aaa[k]
+ endfor;
+ fi;
+ $
+enddef;
+
+%------------------------------------------------
+%Sucres
+%------------------------------------------------
+vardef hachurage(expr chemin, angle, ecart, trace)=
+ save $;
+ picture $;
+ path support;
+ support=((u*(-37,0))--(u*(37,0))) rotated angle;
+ if trace=1:
+ drawoptions(dashed evenly);
+ elseif trace=2:
+ drawoptions(dashed dashpattern(on12bp off6bp on3bp off6bp));
+ elseif trace=3:
+ drawoptions(dashed withdots);
+ fi;
+ $ = image(
+ for j=-200 upto 200:
+ if ((support shifted (ecart*j*(u,0))) intersectiontimes chemin)<>(-1,-1):
+ draw support shifted (ecart*j*(u,0));
+ fi
+ endfor;
+ );
+ clip $ to chemin;
+ drawoptions();
+ $
+enddef;
+%fleche pour coter un segment [AB] (Jacques Marot)
+vardef cotation(expr aa,bb,ecart,decalage,cote)=
+ pair m[] ;
+ save $;
+ picture $;
+ m3=unitvector(bb-aa) rotated 90;
+ m1=aa+ecart*m3;
+ m2=bb+ecart*m3;
+ $=image(
+ pickup pencircle scaled 0.2bp;
+ drawdblarrow m1--m2 ;
+ draw aa--m1 dashed evenly;
+ draw bb--m2 dashed evenly;
+ label(cote rotated angle(m2-m1),(m1+m2)/2+decalage*m3);
+ );
+ $
+enddef;
+
+vardef appelation(expr aa,bb,decalage,cote)=
+ save $;
+ pair m[],AA,BB;
+ if color aa:
+ AA=Projette(aa);
+ else:
+ AA=aa;
+ fi;
+ if color bb:
+ BB=Projette(bb);
+ else:
+ BB=bb;
+ fi;
+ m3=unitvector(BB-AA) rotated 90;
+ picture $;
+ $=image(
+ label(cote rotated angle(BB-AA),(BB+AA)/2+decalage*m3);
+ );
+ $
+enddef;
+
+vardef cotationmil(expr aa,bb,ecart,decalage,cote)= %Christophe
+ pair m[],AA,BB;
+ save $;
+ picture cot;
+ if color aa:
+ AA=Projette(aa)
+ else:
+ AA=aa
+ fi;
+ if color bb:
+ BB=Projette(bb)
+ else:
+ BB=bb
+ fi;
+ m3=unitvector(BB-AA) rotated 90;
+ m1=AA+ecart*m3;
+ m2=BB+ecart*m3;
+ cot=image(
+ pickup pencircle scaled 0.2bp;
+ drawarrow (1/2[m1,m2]+decalage*unitvector(m1-m2))--m1;
+ drawarrow (1/2[m1,m2]-decalage*unitvector(m1-m2))--m2;
+ draw AA--m1 dashed evenly;
+ draw BB--m2 dashed evenly;
+ label(cote rotated angle(m2-m1),(m1+m2)/2);
+ );
+ cot
+enddef;
+
+%%%%%%%%%%
+%francisation
+%%%%%%%%%
+def trace expr o =
+ if path o: draw o else: draw o fi
+enddef;
+def remplis expr o =
+ if path o: fill o else: fill o fi
+enddef;
+
+%3D - basé sur donymodule
+color Sommet[];
+
+color Co[];
+Co0=jaune;
+Co1=violet;
+Co2=orange;
+Co3=ciel;
+Co4=vert;
+Co5=bleu;
+Co6=rouge;
+
+string pointilles;
+
+string typerepre;
+typerepre:="proj";
+
+%generalite
+vardef Projette(expr X)=
+ pair $;
+ Xobs := -redpart(X)*Aux1 + greenpart(X)*Aux3;
+ Yobs := -redpart(X)*Aux5 - greenpart(X)*Aux6 + bluepart(X)*Aux4;
+ if typerepre="proj":
+ Zobs := -redpart(X)*Aux7 - greenpart(X)*Aux8 - bluepart(X)*Aux2 + Rho;
+ XProj := DE*Xobs/Zobs;
+ YProj := DE*Yobs/Zobs;
+ elseif typerepre="persp":
+ XProj := DE*Xobs;
+ YProj := DE*Yobs;
+ fi;
+ $=(XProj,YProj);
+ $
+enddef;
+
+vardef Initialisation(expr r,t,p,d)=
+ Rho:=r;
+ Theta:=t;
+ Phi:=p;
+ DE:=d;
+ Aux1:=sind(Theta);
+ Aux2:=sind(Phi);
+ Aux3:=cosd(Theta);
+ Aux4:=cosd(Phi);
+ Aux5:=Aux3*Aux2;
+ Aux6:=Aux1*Aux2;
+ Aux7:=Aux3*Aux4;
+ Aux8:=Aux1*Aux4;
+ pointilles:="oui";
+enddef;
+
+%vues cachees
+
+vardef Face(text t)=
+ j:=0;
+ for p_=t :
+ if numeric p_:
+ a[j]:=p_;
+ j:=j+1;
+ fi;
+ endfor;
+ for k=1 upto (j-1):
+ Fc[a0*100+(k-1)]:=a[k];
+ endfor;
+enddef;
+
+vardef Oeil=(Rho*Aux7,Rho*Aux8,Rho*Aux2)
+enddef;
+
+vardef Vision(expr num)=
+ save bb;
+ color bb;
+ bb=(redpart(Oeil-Sommet[num]),greenpart(Oeil-Sommet[num]),bluepart(Oeil-Sommet[num]));
+ bb
+enddef;
+
+vardef Normal(expr vecun,vecde,vectr)=
+ save aa;
+ color aa;
+ P1:=redpart(vecde-vecun);
+ P2:=greenpart(vecde-vecun);
+ P3:=bluepart(vecde-vecun);
+ Q1:=redpart(vectr-vecun);
+ Q2:=greenpart(vectr-vecun);
+ Q3:=bluepart(vectr-vecun);
+ aa=(P2*Q3-Q2*P3,P3*Q1-Q3*P1,P1*Q2-Q1*P2);
+ aa
+enddef;
+
+vardef ProduitScalaire(expr wec,mor)=
+ redpart(wec)*redpart(mor)+greenpart(wec)*greenpart(mor)+bluepart(wec)*bluepart(mor)
+enddef;
+
+vardef Distance(expr aa,bb)=%Entre deux points
+ sqrt((redpart(bb)-redpart(aa))*(redpart(bb)-redpart(aa))+(greenpart(bb)-greenpart(aa))*(greenpart(bb)-greenpart(aa))+(bluepart(bb)-bluepart(aa))*(bluepart(bb)-bluepart(aa)))
+enddef;
+
+vardef Module(expr aa)=%module d'un vecteur
+sqrt((redpart(aa))**2+(greenpart(aa))**2+(bluepart(aa)**2))
+enddef;
+
+color CoulTrace;
+CoulTrace=black;
+
+vardef DessineObjet=
+ for l=1 upto NF:
+ color cc,dd;
+ dd=Vision(Fc[l*100+1]);
+ cc=Normal(Sommet[Fc[l*100+1]],Sommet[Fc[l*100+2]],Sommet[Fc[l*100+3]]);
+ if (ProduitScalaire(dd,cc)<0):
+ if pointilles="oui":
+ drawoptions(dashed dashpattern(on3pt off6pt) withcolor CoulTrace);
+ trace for k=1 upto Fc[100*l]:
+ Projette(Sommet[Fc[100*l+k]])--
+ endfor
+ cycle;
+ fi;
+ else:
+ trace for k=1 upto Fc[100*l]:
+ Projette(Sommet[Fc[100*l+k]])--
+ endfor
+ cycle withcolor CoulTrace;
+ fi;
+ drawoptions();
+ endfor;
+enddef;
+
+%%Transformations
+
+%Translations
+
+vardef TranslateSommets(expr v)=
+ for k=1 upto NbS:
+ Sommet[k]:=Sommet[k]+v;
+ endfor;
+enddef;
+
+vardef SymetriePlanZ(expr vv)=
+ for k=1 upto NbS:
+ w:=vv-bluepart(Sommet[k]);
+ Sommet[k]:=(redpart(Sommet[k]),greenpart(Sommet[k]),w);
+ endfor;
+enddef;
+
+vardef IntersectionDroite(expr aa,bb,cc,dd)=
+ save tt;
+ color tt;
+ tt=whatever[aa,bb];
+ tt=whatever[cc,dd];
+ tt
+enddef;
+
+%%denis Roegel----------
+vardef Intersectionplandroite(expr aa,bb,cc,dd,ee)=
+ save int;
+ boolean int;
+ color gg,caaa[];
+ caaa3=Normal(aa,bb,cc)/Module(Normal(aa,bb,cc));
+ caaa1=aa-dd;
+ caaa2=ee-dd;
+ if ProduitScalaire(caaa2,caaa3)<>0:
+ caaa4=caaa2*(ProduitScalaire(caaa1,caaa3)/ProduitScalaire(caaa2,caaa3));
+ int:=true;
+ else: % the line is parallel to the plane
+ int:=false;
+ fi;
+ int
+enddef;
+
+vardef IntersectionPlanDroite(expr aa,bb,cc,dd,ee)=%plan (aa,bb,cc) droite(dd,ee)
+ if Intersectionplandroite(aa,bb,cc,dd,ee):
+ gg=dd+caaa4;
+ fi;
+ gg
+enddef;
+
+vardef ProjectionsurPlan(expr aa,bb,cc,dd)=%Projection du point aa sur le plan (bbccdd)
+ save di,vc;
+ color va,vb,vc;
+ va=Normal(bb,cc,dd)/Module(Normal(bb,cc,dd));
+ vb=aa-bb;
+ di=-ProduitScalaire(vb,va);
+ va:=di*va;
+ vb:=vb+va;
+ vc=bb+vb;
+ vc
+enddef;
+
+vardef Intersectionplanplan(expr AA,BB,CC,DD,EE,FF)=%besoin pour la suite
+ color trial[];
+ path INTer;
+ if Intersectionplandroite(DD,EE,FF,AA,BB):
+ trial1=IntersectionPlanDroite(DD,EE,FF,AA,BB);
+ else:% there is no intersection or the intersection is the line
+ trial1=IntersectionPlanDroite(DD,EE,FF,AA,1/2[BB,CC]);
+ fi;
+ if Intersectionplandroite(DD,EE,FF,AA,CC):
+ trial2=IntersectionPlanDroite(DD,EE,FF,AA,CC);
+ else:% there is no intersection or the intersection is the line
+ trial2=IntersectionPlanDroite(DD,EE,FF,CC,1/2[BB,AA]);%modif de cp
+ fi;
+ %INTer=segment(10[trial1,trial2],10[trial2,trial1]);
+ INTer=droite(trial1,trial2);
+ INTer
+enddef;
+
+vardef IntersectionPlanPlan(expr aa,bb,cc,dd,ee,ff)=
+ %a verifier
+ save da,db,dc,int,INTER;
+ boolean int;
+ path INTER;
+ da=Module(aa-ProjectionsurPlan(aa,dd,ee,ff));
+ %show da;
+ db=Module(bb-ProjectionsurPlan(bb,dd,ee,ff));
+ %show db;
+ dc=Module(cc-ProjectionsurPlan(cc,dd,ee,ff));
+ %show dc;
+ if (da=db) and (db=dc): % the two planes are parallel
+ int:=false;
+ else:
+ int:=true;
+ if (da=db):
+ INTER=droite(aa,bb);
+ elseif (db=dc):
+ INTER=droite(bb,cc);
+ elseif (dc=da):
+ INTER=droite(cc,aa);
+ elseif (da>=db) and (da>=dc):
+ INTER=Intersectionplanplan(aa,bb,cc,dd,ee,ff);
+ elseif (db>=da) and (db>=dc):
+ INTER=Intersectionplanplan(bb,cc,aa,dd,ee,ff);
+ elseif (dc>=da) and (dc>=db):
+ INTER=Intersectionplanplan(cc,aa,bb,dd,ee,ff);
+ fi;
+ fi;
+ INTER
+enddef;
+%%---------------------
+
+%Cube
+numeric arete;
+arete=1;
+
+vardef Cube(text t)=
+ picture cub;
+ cub=image(
+ NbS:=8;
+ Sommet1:=(arete,0,0);
+ Sommet2:=(arete,arete,0);
+ Sommet3:=(0,arete,0);
+ Sommet4:=(0,0,0);
+ Sommet5:=(0,0,arete);
+ Sommet6:=(arete,0,arete);
+ Sommet7:=(arete,arete,arete);
+ Sommet8:=(0,arete,arete);
+%%Faces
+ NF:=6;
+ Fc[100]:=4;Fc[101]:=1;Fc[102]:=4;Fc[103]:=3;Fc[104]:=2;
+ Fc[200]:=4;Fc[201]:=4;Fc[202]:=5;Fc[203]:=8;Fc[204]:=3;
+ Fc[300]:=4;Fc[301]:=1;Fc[302]:=6;Fc[303]:=5;Fc[304]:=4;
+ Fc[400]:=4;Fc[401]:=5;Fc[402]:=6;Fc[403]:=7;Fc[404]:=8;
+ Fc[500]:=4;Fc[501]:=2;Fc[502]:=3;Fc[503]:=8;Fc[504]:=7;
+ Fc[600]:=4;Fc[601]:=1;Fc[602]:=2;Fc[603]:=7;Fc[604]:=6;
+ DessineObjet;
+ k:=1;
+ for p_=t:
+ if color p_:
+ p_=Sommet[k];
+ k:=k+1;
+ fi
+ endfor;
+ );
+cub
+enddef;
+
+vardef cube=
+ typetrace:="3D";
+ typerepre:="persp";
+ Initialisation(1500,30,20,100);
+ picture cub;
+ cub=image(
+ NbS:=8;
+ Sommet1:=(arete,0,0);
+ Sommet2:=(arete,arete,0);
+ Sommet3:=(0,arete,0);
+ Sommet4:=(0,0,0);
+ Sommet5:=(0,0,arete);
+ Sommet6:=(arete,0,arete);
+ Sommet7:=(arete,arete,arete);
+ Sommet8:=(0,arete,arete);
+%%Faces
+ NF:=6;
+ Fc[100]:=4;Fc[101]:=1;Fc[102]:=4;Fc[103]:=3;Fc[104]:=2;
+ Fc[200]:=4;Fc[201]:=4;Fc[202]:=5;Fc[203]:=8;Fc[204]:=3;
+ Fc[300]:=4;Fc[301]:=1;Fc[302]:=6;Fc[303]:=5;Fc[304]:=4;
+ Fc[400]:=4;Fc[401]:=5;Fc[402]:=6;Fc[403]:=7;Fc[404]:=8;
+ Fc[500]:=4;Fc[501]:=2;Fc[502]:=3;Fc[503]:=8;Fc[504]:=7;
+ Fc[600]:=4;Fc[601]:=1;Fc[602]:=2;Fc[603]:=7;Fc[604]:=6;
+ DessineObjet;
+ );
+ cub
+enddef;
+
+%Cube
+vardef Paveh(text t)=
+ picture paveh;
+ paveh=image(
+ NbS:=8;
+ Sommet1:=(0.75,0,0);
+ Sommet2:=(0.75,1.5,0);
+ Sommet3:=(0,1.5,0);
+ Sommet4:=(0,0,0);
+ Sommet5:=(0,0,1);
+ Sommet6:=(0.75,0,1);
+ Sommet7:=(0.75,1.5,1);
+ Sommet8:=(0,1.5,1);
+%%Faces
+ NF:=6;
+ Fc[100]:=4;Fc[101]:=1;Fc[102]:=4;Fc[103]:=3;Fc[104]:=2;
+ Fc[200]:=4;Fc[201]:=4;Fc[202]:=5;Fc[203]:=8;Fc[204]:=3;
+ Fc[300]:=4;Fc[301]:=1;Fc[302]:=6;Fc[303]:=5;Fc[304]:=4;
+ Fc[400]:=4;Fc[401]:=5;Fc[402]:=6;Fc[403]:=7;Fc[404]:=8;
+ Fc[500]:=4;Fc[501]:=2;Fc[502]:=3;Fc[503]:=8;Fc[504]:=7;
+ Fc[600]:=4;Fc[601]:=1;Fc[602]:=2;Fc[603]:=7;Fc[604]:=6;
+ DessineObjet;
+ k:=1;
+ for p_=t:
+ if color p_:
+ p_=Sommet[k];
+ k:=k+1;
+ fi
+ endfor;
+ );
+paveh
+enddef;
+
+%Cube
+vardef Pavev(text t)=
+ picture pavev;
+ pavev=image(
+ NbS:=8;
+ Sommet1:=(1,0,0);
+ Sommet2:=(1,0.75,0);
+ Sommet3:=(0,0.75,0);
+ Sommet4:=(0,0,0);
+ Sommet5:=(0,0,1.5);
+ Sommet6:=(1,0,1.5);
+ Sommet7:=(1,0.75,1.5);
+ Sommet8:=(0,0.75,1.5);
+%%Faces
+ NF:=6;
+ Fc[100]:=4;Fc[101]:=1;Fc[102]:=4;Fc[103]:=3;Fc[104]:=2;
+ Fc[200]:=4;Fc[201]:=4;Fc[202]:=5;Fc[203]:=8;Fc[204]:=3;
+ Fc[300]:=4;Fc[301]:=1;Fc[302]:=6;Fc[303]:=5;Fc[304]:=4;
+ Fc[400]:=4;Fc[401]:=5;Fc[402]:=6;Fc[403]:=7;Fc[404]:=8;
+ Fc[500]:=4;Fc[501]:=2;Fc[502]:=3;Fc[503]:=8;Fc[504]:=7;
+ Fc[600]:=4;Fc[601]:=1;Fc[602]:=2;Fc[603]:=7;Fc[604]:=6;
+ DessineObjet;
+ k:=1;
+ for p_=t:
+ if color p_:
+ p_=Sommet[k];
+ k:=k+1;
+ fi
+ endfor;
+ );
+pavev
+enddef;
+
+vardef Pave(text t)(expr aa,bb,cc)=
+ picture pave;
+ pave=image(
+ NbS:=8;
+ Sommet1:=(aa,0,0);
+ Sommet2:=(aa,bb,0);
+ Sommet3:=(0,bb,0);
+ Sommet4:=(0,0,0);
+ Sommet5:=(0,0,cc);
+ Sommet6:=(aa,0,cc);
+ Sommet7:=(aa,bb,cc);
+ Sommet8:=(0,bb,cc);
+%%Faces
+ NF:=6;
+ Fc[100]:=4;Fc[101]:=4;Fc[102]:=3;Fc[103]:=2;Fc[104]:=1;
+ Fc[200]:=4;Fc[201]:=4;Fc[202]:=5;Fc[203]:=8;Fc[204]:=3;
+ Fc[300]:=4;Fc[301]:=4;Fc[302]:=1;Fc[303]:=6;Fc[304]:=5;
+ Fc[400]:=4;Fc[401]:=5;Fc[402]:=6;Fc[403]:=7;Fc[404]:=8;
+ Fc[500]:=4;Fc[501]:=2;Fc[502]:=3;Fc[503]:=8;Fc[504]:=7;
+ Fc[600]:=4;Fc[601]:=1;Fc[602]:=2;Fc[603]:=7;Fc[604]:=6;
+ DessineObjet;
+ k:=1;
+ for p_=t:
+ if color p_:
+ p_=Sommet[k];
+ k:=k+1;
+ fi
+ endfor;
+ );
+pave
+enddef;
+
+vardef pave(expr aa,bb,cc)=
+ typetrace:="3D";
+ typerepre:="persp";
+ Initialisation(1500,30,20,100);
+ picture PAVE;
+ PAVE=image(
+ NbS:=8;
+ Sommet1:=(aa,0,0);
+ Sommet2:=(aa,bb,0);
+ Sommet3:=(0,bb,0);
+ Sommet4:=(0,0,0);
+ Sommet5:=(0,0,cc);
+ Sommet6:=(aa,0,cc);
+ Sommet7:=(aa,bb,cc);
+ Sommet8:=(0,bb,cc);
+%%Faces
+ NF:=6;
+ Fc[100]:=4;Fc[101]:=4;Fc[102]:=3;Fc[103]:=2;Fc[104]:=1;
+ Fc[200]:=4;Fc[201]:=4;Fc[202]:=5;Fc[203]:=8;Fc[204]:=3;
+ Fc[300]:=4;Fc[301]:=4;Fc[302]:=1;Fc[303]:=6;Fc[304]:=5;
+ Fc[400]:=4;Fc[401]:=5;Fc[402]:=6;Fc[403]:=7;Fc[404]:=8;
+ Fc[500]:=4;Fc[501]:=2;Fc[502]:=3;Fc[503]:=8;Fc[504]:=7;
+ Fc[600]:=4;Fc[601]:=1;Fc[602]:=2;Fc[603]:=7;Fc[604]:=6;
+ DessineObjet;
+ );
+ PAVE
+enddef;
+
+vardef Tetraedrer(text t)=
+ picture tetrar;
+ tetrar=image(
+ %Sommets
+ NbS:=4;
+ Sommet1:=(0,0,1);
+ Sommet2:=(-0.4714045,-0.8164965,-1/3);
+ Sommet3:=(0.942809,0,-1/3);
+ Sommet4:=(-0.4714045,0.8164965,-1/3);
+ %Faces
+ NF:=4;
+ Fc[100]:=3;Fc[101]:=1;Fc[102]:=2;Fc[103]:=3;
+ Fc[200]:=3;Fc[201]:=1;Fc[202]:=3;Fc[203]:=4;
+ Fc[300]:=3;Fc[301]:=1;Fc[302]:=4;Fc[303]:=2;
+ Fc[400]:=3;Fc[401]:=2;Fc[402]:=4;Fc[403]:=3;
+ DessineObjet;
+ k:=1;
+ for p_=t:
+ if color p_:
+ p_=Sommet[k];
+ k:=k+1;
+ fi
+ endfor;
+ );
+ tetrar
+enddef;
+
+endinput;
Property changes on: trunk/Master/texmf-dist/metapost/profcollege/PfCGeometrie.mp
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/metapost/profcollege/PfCLaTeX.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfCLaTeX.mp (rev 0)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfCLaTeX.mp 2021-04-23 20:37:20 UTC (rev 58973)
@@ -0,0 +1,15 @@
+vardef LATEX primary s =
+ write "verbatimtex" to "mptextmp.mp";
+ write "%&latex" to "mptextmp.mp";
+ write "\documentclass[]{article}" to "mptextmp.mp";
+ write "\usepackage{ProfCollege}" to "mptextmp.mp";
+ write "\usepackage[utf8]{inputenc}" to "mptextmp.mp";
+ write "\usepackage[T1]{fontenc}" to "mptextmp.mp";
+ write "\usepackage{fourier}" to "mptextmp.mp";
+ write "\usepackage[french]{babel}" to "mptextmp.mp";
+ write "\begin{document}" to "mptextmp.mp";
+ write "etex" to "mptextmp.mp";
+ write "btex "&s&" etex" to "mptextmp.mp";
+ write EOF to "mptextmp.mp";
+ scantokens "input mptextmp"
+enddef;
Property changes on: trunk/Master/texmf-dist/metapost/profcollege/PfCLaTeX.mp
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/metapost/profcollege/PfCScratch.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfCScratch.mp (rev 0)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfCScratch.mp 2021-04-23 20:37:20 UTC (rev 58973)
@@ -0,0 +1,3346 @@
+%%%%% epaisseur de tracés %%%%%%%%
+numeric eppen;
+eppen=0.25;
+
+pickup pencircle scaled eppen;
+defaultpen := savepen;
+
+%points pour placer les différents éléments
+pair _coinprec;%coinbasgauche de la boite précédente
+pair _coincom;%coinbasdroite de la boite afin d'y mettre des commentaires
+pair _coinnum;%milieu côté gauche pour placer la numérotation des lignes
+
+%paramètres
+numeric Nblignes; Nblignes:=1;
+pair DebutListe; DebutListe=(0,0);
+boolean NumeroteLignes; NumeroteLignes=false;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% couleurs
+color CoulLignes; CoulLignes:=black;
+color ColBloc; % alias des couleurs de bloc
+
+%Version3
+color BleuMouvTrois,dBleuMouvTrois,VioletAppTrois,dVioletAppTrois,OrangeConTrois,OrangeTrois,OrangeListTrois,SonTrois,DSonTrois,EvenementTrois,CapteurTrois,StyloTrois,BlocTrois,BlocDefTrois,BlocDefLigneTrois,MessageTrois,ControleTrois,CapFonceTrois,CloneTrois,FondSonTrois,OvalStyloTrois,FondOvalOp;
+BleuMouvTrois=(76/255,151/255,255/255);
+dBleuMouvTrois=(66/255,128/255,215/255);
+VioletAppTrois=(153/255,102/255,255/255);
+dVioletAppTrois=(133/255,92/255,214/255);
+OrangeConTrois=(255/255,171/255,25/255);
+OrangeTrois=(255/255,140/255,26/255);
+OrangeListTrois=(255/255,102/255,26/255);
+SonTrois=(207/255,99/255,207/255);
+DSonTrois=(201/255,79/255,201/255);
+FondSonTrois=(15/255,189/255,140/255);
+EvenementTrois=(255/255,191/255,0);
+MessageTrois=(230/255,172/255,0);
+CapteurTrois=(92/255,177/255,214/255);
+CapFonceTrois=(71/255,168/255,209/255);
+StyloTrois=(15/255,189/255,140/255);
+OvalStyloTrois=(13/255,165/255,122/255);
+BlocTrois=(255/255,102/255,128/255);
+BlocDefTrois=(255/255,77/255,106/255);
+BlocDefLigneTrois=(255/255,51/255,85/255);
+ControleTrois=(255/255,171/255,25/255);
+CloneTrois=(236/255,156/255,19/255);
+FondOvalOp=(89/255,192/255,89/255);
+
+vardef FondOvalAppMenu=
+ save $; color $;
+ $=dVioletAppTrois;
+ $
+enddef;
+
+%%%%Alias
+def Place expr o =
+ if path o: draw o else: draw o fi
+enddef;
+
+%impression
+boolean print;
+print=false;
+
+numeric coefprint;
+coefprint:=0.95;
+
+%texte ou symbole droite gauche
+boolean symbole;
+symbole=true;
+
+%divers
+numeric eb;%ecart boite-texte
+eb:=3pt;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Création des boites
+ecrt:=eb/2;%largeur de la bordure de départ des boites Box, OValBox...
+
+vardef Box(text t)=
+ save $; path $;
+ picture ox;
+ ox=image(
+ if string t:
+ string demitt;
+ demitt=t&"\barre";
+ label(TEX(demitt),(0,0));
+ else:
+ draw t;
+ fi;
+ );
+ $=(llcorner ox+(0,-ecrt))--(lrcorner ox+(0,-ecrt))--(urcorner ox+(0,ecrt))--(ulcorner ox+(0,ecrt))--cycle;
+ $
+enddef;
+
+vardef RecBox(text t)=
+ save $; path $; path xo;
+ if string t:
+ string demit;
+ demit=t&"\demibarre";
+ xo=Box(demit);%on crée la boite contenant le texte
+ else:
+ xo=Box(t);
+ fi;
+ $=(llcorner xo+(-eb,eb)){dir-90}..{dir0}(llcorner xo)--(lrcorner xo){dir0}..{dir90}(lrcorner xo+(eb,eb))--(urcorner xo+(eb,-eb)){dir90}..{dir180}(urcorner xo)--(ulcorner xo){dir180}..{dir-90}(ulcorner xo+(-eb,-eb))--cycle;
+ $
+enddef;
+
+%%%%%%%%%%%%%%
+
+%%%%%%% Boites Ovales %%%%%%%%
+vardef OvalBox(text t)=
+ save $; path $; path xo;
+ if string t:
+ string demit;
+ demit=t&"\barre";
+ xo=Box(demit);%on crée la boite contenant le texte
+ else:
+ xo=Box(t);
+ fi;
+ $=(llcorner xo+(eb,0))--(lrcorner xo-(eb,0)){dir0}..{dir180}(urcorner xo+(-eb,0))--(ulcorner xo+(eb,0)){dir180}..{dir0}cycle;%on "arrondit" la boite
+ $
+enddef;
+
+vardef OvalVar(expr ar)=
+ save Ovar; picture Ovar;
+ save TAvar; path TAvar;
+ string TTv;
+ TTv=ar&"\barre";
+ TAvar=OvalBox(TTv);
+ Ovar=image(
+ fill TAvar if print=false : withcolor OrangeTrois else : withcolor white fi;
+ draw TAvar if print=false : withcolor coefprint*white fi;
+ label(TEX("\barre\bfseries "&ar),(0,0)) if print=false : withcolor white fi;
+ );
+ Ovar:=Ovar shifted(-center Ovar);
+ Ovar
+enddef;
+
+vardef OvalList(text listelist)=
+ save CList; picture CList;
+ path TAlist; picture LOCMt;
+ LOCMt=ColleBoxNew(listelist);
+ TAlist=OvalBox(LOCMt);
+ CList=image(
+ fill TAlist if print=false : withcolor OrangeListTrois else : withcolor white fi;
+ draw LOCMt;
+ draw TAlist if print=false : withcolor coefprint*white fi;
+ );
+ CList:=CList shifted(-center CList);
+ CList
+enddef;
+
+vardef OvalBloc(expr ar)=
+ save $; picture $;
+ path tabloc;
+ tabloc=OvalBox(ar);
+ $=image(
+ fill tabloc if print=false : withcolor BlocTrois else: withcolor white fi;
+ draw tabloc if print=true : withcolor black else: withcolor BlocDefLigneTrois fi;
+ label(TEX("\bfseries\barre "&ar),(0,0)) if print=false : withcolor blanc fi;
+ );
+ $
+enddef;
+
+vardef OvalMiniBox(text t)=
+ save $; path $; path xo;
+ if string t:
+ string demit;
+ demit=t&"\barre";
+ xo=Box(demit);%on crée la boite contenant le texte
+ else:
+ xo=Box(t);
+ fi;
+ $=(llcorner xo+(eb/2,0))--(lrcorner xo-(eb/2,0)){dir0}..{dir180}(urcorner xo+(-eb/2,0))--(ulcorner xo+(eb/2,0)){dir180}..{dir0}cycle;%on "arrondit" la boite
+ $
+enddef;
+
+vardef DiamondBox(text t)=
+ save $; path $; path xo;
+ xo=Box(t);%on crée la boite contenant le texte
+ $=(llcorner xo-(eb,0))--(lrcorner xo+(eb,0))--(1/2[lrcorner xo,urcorner xo]+(4eb,0))--(urcorner xo+(eb,0))--(ulcorner xo-(eb,0))--(1/2[llcorner xo,ulcorner xo]+(-4eb,0))--cycle;
+ $
+enddef;
+
+vardef OvalNb(expr ar)=
+ save Onb; picture Onb;
+ path tanb;
+ tanb=OvalBox(ar);
+ Onb=image(
+ fill tanb withcolor white;
+ draw tanb if print=false : withcolor coefprint*white fi;
+ label(TEX("\barre "&ar),(0,0));
+ );
+ Onb
+enddef;
+
+vardef OvalText(expr ar)=
+ save $; save TA;
+ picture $;
+ path TA;
+ TA=OvalBox(ar);
+ $=image(%
+ fill TA withcolor white;
+ draw TA if print=false : withcolor coefprint*white fi;
+ label(TEX("\barre "&ar),(0,0));
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef OvalOp(text listeop)=
+ save Oop; picture Oop;
+ save TAao; path TAao;
+ save LOPop; picture LOPop;
+ LOPop=ColleBoxNew(listeop);
+ TAao=OvalBox(LOPop);
+ Oop=image(
+ fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LOPop;
+ draw TAao if print=false : withcolor coefprint*white fi;
+ );
+ Oop:=Oop shifted(-center Oop);
+ Oop
+enddef;
+
+vardef OvalApp(text listop)=
+ save $; picture $;
+ save ta; path ta;
+ save TTap; picture TTap;
+ TTap=ColleBoxNew(listop);
+ ta=OvalBox(TTap);
+ $=image(
+ fill ta if print=false : withcolor VioletAppTrois else: withcolor white fi;
+ draw ta if print=false : withcolor coefprint*white fi;
+ draw TTap;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef OvalSon(text listop)=
+ save $; picture $;
+ save ta; path ta;
+ save TTap; picture TTap;
+ TTap=ColleBoxNew(listop);
+ ta=OvalBox(TTap);
+ $=image(
+ fill ta if print=false : withcolor SonTrois else: withcolor white fi;
+ draw ta if print=false : withcolor coefprint*white fi;
+ draw TTap;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef OvalMusique(expr ar)=
+ save $; save TA;
+ picture $;
+ if string ar:
+ picture TT;
+ TT=ColleBoxNew(DoubleNote,"tempo");
+ path TA;
+ TA=OvalBox(TT);
+ $=image(
+ fill TA if print : withcolor white else : withcolor StyloTrois fi;
+ draw TT if print=true : withcolor coefprint*white fi;
+ );
+ else:
+ message("La commande --OvalStylo-- n'accepte qu'un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef OvalMouv(expr ar)=
+ save $; picture $;
+ path ta; string TTm;
+ TTm=ar&"\longbarre";
+ ta=OvalBox(TTm);
+ $=image(
+ fill ta if print=false : withcolor BleuMouvTrois else: withcolor white fi;
+ draw ta if print=false : withcolor coefprint*white fi;
+ label(TEX("\longbarre "&ar),center ta) if print=false : withcolor blanc fi;
+ );
+ $
+enddef;
+
+vardef OvalMenuCap(expr art)=OvalCapMenu(art) enddef;
+
+vardef OvalCapMenu(expr ar)=
+ save $; picture $;
+ string TTm;
+ TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "{\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown}";
+ fi;
+ path TAMC;
+ TAMC=OvalBox(TTm);
+ $=image(
+ fill TAMC if print : withcolor white else : withcolor CapFonceTrois fi;
+ draw TAMC if print=false : withcolor coefprint*white fi;
+ label(TEX(TTm),center TAMC);
+ );
+ $
+enddef;
+
+vardef OvalCap(text listecap)=
+ save Cap; picture Cap;
+ save TAcap; path TAcap;
+ save LOCMcap; picture LOCMcap;
+ LOCMcap=ColleBoxNew(listecap);
+ TAcap=OvalBox(LOCMcap);
+ Cap=image(
+ fill TAcap if print=false : withcolor CapteurTrois else : withcolor white fi;
+ draw LOCMcap;
+ draw TAcap if print=false : withcolor coefprint*white fi;
+ );
+ Cap:=Cap shifted(-center Cap);
+ Cap
+enddef;
+
+vardef OvalMouvMenu(expr ar)=
+ save $; picture $;
+ path ta; string TTm;
+ TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else:
+ "{\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown}"
+ fi;
+ ta=OvalBox(TTm);
+ $=image(
+ fill ta if print=false : withcolor dBleuMouvTrois else: withcolor white fi;
+ draw ta if print=false : withcolor coefprint*white fi;
+ label(TEX(TTm),center ta);
+ );
+ $
+enddef;
+
+vardef OvalAppMenu(expr ar)=
+ save $; picture $;
+ path ta; string TTm;
+ TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "{\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown}";
+ fi;
+ ta=OvalBox(TTm);
+ $=image(
+ fill ta if print=false : withcolor FondOvalAppMenu else: withcolor white fi;
+ draw ta if print=false : withcolor coefprint*white fi;
+ label(TEX(TTm),center ta);
+ );
+ $
+enddef;
+
+vardef OvalSonMenu(expr art)=OvalMenuSon(art) enddef;
+
+vardef OvalMenuSon(expr ar)=
+ save $; save TA;
+ picture $;
+ string TTm;
+ TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "{\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown}";
+ fi;
+ path TA;
+ TA=OvalBox(TTm);
+ $=image(%
+ fill TA if print : withcolor white else : withcolor DSonTrois fi;
+ draw TA if print=false : withcolor coefprint*white fi;
+ label(TEX(TTm),center TA);
+ );
+ $
+enddef;
+
+vardef OvalMenuControle(expr ar)=
+ save $; save TA;
+ picture $;
+ string TTm;
+ TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "{\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown}";
+ fi;
+ path TA;
+ TA=OvalBox(TTm);
+ $=image(
+ fill TA if print : withcolor white else : withcolor CloneTrois fi;
+ draw TA if print=false : withcolor coefprint*white fi;
+ label(TEX(TTm), center TA);
+ );
+ $
+enddef;
+
+vardef OvalStylo(expr ar)=
+ save $; save TA;
+ picture $;
+ string TT,TTI;
+ if string ar:
+ if print:
+ TT=ar&"\hbox to1em{\barre}\blacktriangledown"
+ else:
+ TT=ar&"\hbox to1em{\barre}{\color{white}\blacktriangledown}"
+ fi;
+ TTI=ar&"\hbox to1em{\barre}\phantom{\blacktriangledown}";
+ path TA;
+ TA=OvalBox(TT);
+ $=image(
+ fill TA if print : withcolor white else : withcolor OvalStyloTrois fi;
+ draw TA if print=false : withcolor coefprint*white fi;
+ label(TEX(TT),(0,0)) if print=false : withcolor white fi;
+ );
+ else:
+ message("La commande --OvalStylo-- n'accepte qu'un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef OvalCouleur(expr redcc,greencc,bluecc)=
+ save $; picture $;
+ string TTv;
+ path tacol;
+ TTv="\phantom{10}\barre";
+ tacol=OvalBox(TTv);
+ $=image(
+ fill tacol withcolor (redcc,greencc,bluecc);
+ draw tacol;
+ );
+ $:=$ shifted(-center tacol);
+ $
+enddef;
+
+vardef OvalMenuEvenement(expr ar)=
+ save $; save TA;
+ picture $;
+ string TTm;
+ TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "{\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown}";
+ fi;
+ path TA;
+ TA=OvalBox(TTm);
+ $=image(
+ fill TA if print : withcolor white else : withcolor MessageTrois fi;
+ draw TA if print=false : withcolor coefprint*white fi;
+ label(TEX(TTm), center TA);
+ );
+ $
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Rectangles
+vardef RecMouvMenu(expr ar)=
+ save $; picture $;
+ path ta; string TTm;
+ TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "{\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown}"
+ fi;
+ ta=RecBox(TTm);
+ $=image(
+ fill ta if print=false : withcolor BleuMouvTrois else: withcolor white fi;
+ draw ta if print=false : withcolor coefprint*white fi;
+ label(TEX(TTm),center ta);
+ );
+ $
+enddef;
+
+vardef RecMenuApp(expr ar)=
+ save $; picture $;
+ save ta; path ta; string TTm;
+ TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "{\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown}";
+ fi;
+ ta=RecBox(TTm);
+ $=image(
+ fill ta if print=false : withcolor VioletAppTrois else: withcolor white fi;
+ draw ta if print=false : withcolor coefprint*white fi;
+ label(TEX(TTm),center ta);
+ );
+ $
+enddef;
+
+vardef RecMenuOp(expr ar)=
+ save $; save TA;
+ picture $; string TTm;
+ TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "{\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown}";
+ fi;
+ path TA;
+ TA=RecBox(TTm);
+ $=image(
+ fill TA if print : withcolor white else : withcolor FondOvalOp fi;
+ draw TA if print=false : withcolor coefprint*white fi;
+ label(TEX(TTm), center TA);
+ );
+ $
+enddef;
+
+vardef RecMenuSon(expr ar)=
+ save $; save TA;
+ picture $; string TTm;
+ TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "{\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown}" fi;
+ path TA;
+ TA=RecBox(TTm);
+ $=image(
+ fill TA if print : withcolor white else : withcolor SonTrois fi;
+ draw TA if print=false : withcolor coefprint*white fi;
+ label(TEX(TTm), center TA);
+ );
+ $
+enddef;
+
+vardef RecEvenementMenu(expr ar)=
+ save $; picture $;
+ path ta; string TTm;
+ TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "{\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown}";
+ fi;
+ ta=RecBox(TTm);
+ $=image(
+ fill ta if print=false : withcolor EvenementTrois else: withcolor white fi;
+ draw ta if print=false : withcolor coefprint*white fi;
+ label(TEX(TTm),center ta);
+ );
+ $
+enddef;
+
+vardef RecMenuCap(expr ar)=
+ save $; picture $;
+ path ta; string TTm;
+ TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "{\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown}";
+ fi;
+ ta=RecBox(TTm);
+ $=image(
+ fill ta if print=false : withcolor CapteurTrois else: withcolor white fi;
+ draw ta if print=false : withcolor coefprint*white fi;
+ label(TEX(TTm),center ta);
+ );
+ $
+enddef;
+
+vardef RecMenuVar(expr ar)=
+ save $; save TA;
+ picture $; string TTm;
+ TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "{\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown}";
+ fi;
+ path TA;
+ TA=RecBox(TTm);
+ $=image(
+ fill TA if print : withcolor white else : withcolor OrangeTrois fi;
+ draw TA if print=false : withcolor coefprint*white fi;
+ label(TEX(TTm), center TA);
+ );
+ $
+enddef;
+
+vardef RecMenuList(expr ar)=
+ save $; save TA;
+ picture $; string TTm;
+ TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "{\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown}";
+ fi;
+ path TA;
+ TA=RecBox(TTm);
+ $=image(
+ fill TA if print : withcolor white else : withcolor OrangeListTrois fi;
+ draw TA if print=false : withcolor coefprint*white fi;
+ label(TEX(TTm), center TA);
+ );
+ $
+enddef;
+
+%%%%%%% Affichage Complet %%%%%%%%%%%%%
+vardef PuzzleBox(text t)=
+ save $; path $; path xo;
+ xo=Box(t);%on crée la boite contenant le texte
+ $=(llcorner xo+(-eb,0)){dir-90}..{dir0}(llcorner xo+(0,-eb))--
+ (llcorner xo+(0.375cm,0)+(-eb,-eb)){dir0}..
+ {dir0}(llcorner xo+(0.375cm,0)+(0,-2eb))--
+ (llcorner xo+(0.625cm,0)+(0,-2eb)){dir0}..
+ {dir0}(llcorner xo+(0.625cm,0)+(eb,-eb))--
+ (lrcorner xo+(0,-eb)){dir0}..{dir90}(lrcorner xo+(eb,0))--(urcorner xo+(eb,0)){dir90}..{dir-180}(urcorner xo+(0,eb))--
+ (ulcorner xo+(0.625cm,0)+(eb,eb)){dir180}..
+ {dir180}(ulcorner xo+(0.625cm,0))--
+ (ulcorner xo+(0.375cm,0)){dir180}..
+ {dir180}(ulcorner xo+(0.375cm,0)+(-eb,eb))--
+ (ulcorner xo+(0,eb)){dir-180}..{dir-90}(ulcorner xo+(-eb,0))--cycle;
+ $
+enddef;
+
+vardef BlocPuzzle(text nombloc)=
+ save Bpuzzle; picture Bpuzzle;
+ path TABp; picture LOCMp;
+ LOCMp=ColleBoxNew(nombloc);
+ TABp=PuzzleBox(LOCMp);
+ Bpuzzle=image(
+ fill TABp if print=false : withcolor BlocDefTrois else : withcolor white fi;
+ draw LOCMp;
+ draw TABp if print=true : withcolor black else: withcolor BlocDefLigneTrois fi;
+ );
+ Bpuzzle:=Bpuzzle shifted(-center Bpuzzle+(0,-eb/2));
+ Bpuzzle
+enddef;
+
+vardef ColleBoxNew(text t)=%Pour coller plusieurs boites
+ save Colle; picture Colle;
+ Colle=nullpicture;
+ numeric nbcolle; nbcolle:=0;
+ save NBCOLLE; path NBCOLLE;
+ for p_ = t:
+ nbcolle:=nbcolle+1;
+ endfor;
+ picture HOLD; HOLD:=nullpicture;
+ if unknown LONG: LONG:=0 fi;
+ if nbcolle=1:%On dessine
+ for p_ = t:
+ if string p_:
+ NBCOLLE:=Box(p_);
+ HOLD:=image(
+ label(TEX("\sffamily\bfseries\longbarre "&p_),(0,0)) if print=false : withcolor white fi;%->ok
+ );
+ HOLD:=(HOLD shifted ((xpart((center HOLD)-(llcorner HOLD))+LONG,0)));
+ else:
+ HOLD:=(p_ shifted ((xpart((center p_)-(llcorner p_))+LONG,0)));
+ fi;
+ endfor;
+ addto Colle also HOLD;
+ LONG:=LONG+abs(lrcorner Colle - llcorner Colle)+eb;
+ else:%il faut coller les boites une à une
+ for p_ = t:
+ addto Colle also (ColleBoxNew(p_));
+ endfor;
+ fi;
+ Colle
+enddef;
+
+vardef CADRE(expr texti)=
+ save $; path $;
+ $=(llcorner texti+(-eb,0)){dir-90}..{dir0}(llcorner texti+(0,-eb))--
+ (llcorner texti+(0.375cm,0)+(-eb,-eb)){dir0}..
+ {dir0}(llcorner texti+(0.375cm,0)+(0,-2eb))--
+ (llcorner texti+(0.625cm,0)+(0,-2eb)){dir0}..
+ {dir0}(llcorner texti+(0.625cm,0)+(eb,-eb))--
+ (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir-180}(urcorner texti+(0,eb))--
+ (ulcorner texti+(0.625cm,0)+(eb,eb)){dir180}..
+ {dir180}(ulcorner texti+(0.625cm,0))--
+ (ulcorner texti+(0.375cm,0)){dir180}..
+ {dir180}(ulcorner texti+(0.375cm,0)+(-eb,eb))--
+ (ulcorner texti+(0,eb)){dir-180}..{dir-90}(ulcorner texti+(-eb,0))--cycle;
+ $
+enddef;
+
+vardef AFFI(expr texta)=
+ path cadre;
+ cadre=CADRE(texta);
+ picture TEXT;
+ TEXT=image(%
+ fill cadre withcolor if print=true :coefprint*white else: if unknown ColBloc : white else : ColBloc fi; fi;
+ draw texta;
+ draw cadre withcolor CoulLignes;
+ );
+ TEXT
+enddef;
+
+vardef Affichage(expr textu)=
+ save $;
+ picture $;
+ $=AFFI(textu);
+ $:=$ shifted (if unknown _coinprec:(0,0) else :_coinprec fi - (ulcorner $));
+_coinprec:=(llcorner $)+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+ label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+ Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+
+%Pour les blocs de type contrôle
+vardef CADRECONTROLE(expr texti)=
+ save $; path $;
+ path tracecadre;
+ $=(llcorner texti+(-eb,-eb))--%(llcorner texti+(0,-eb))--
+ (llcorner texti+(0.875cm,0)+(-eb,-eb)){dir0}..
+ {dir0}(llcorner texti+(0.875cm,0)+(0,-2eb))--
+ (llcorner texti+(1.125cm,0)+(0,-2eb)){dir0}..
+ {dir0}(llcorner texti+(1.125cm,0)+(eb,-eb))--
+ (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir180}(urcorner texti+(0,eb))--
+ (ulcorner texti+(0.625cm,0)+(eb,eb)){dir180}..
+ {dir180}(ulcorner texti+(0.625cm,0))--
+ (ulcorner texti+(0.375cm,0)){dir180}..
+ {dir180}(ulcorner texti+(0.375cm,0)+(-eb,eb))--
+ (ulcorner texti+(0,eb)){dir180}..{dir-90}(ulcorner texti+(-eb,0))--cycle;
+ tracecadre=(llcorner texti+(0.5cm,0)+(0,-eb))--(llcorner texti+(0.875cm,0)+(-eb,-eb)){dir0}..
+ {dir0}(llcorner texti+(0.875cm,0)+(0,-2eb))--
+ (llcorner texti+(1.125cm,0)+(0,-2eb)){dir0}..
+ {dir0}(llcorner texti+(1.125cm,0)+(eb,-eb))--
+ (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir180}(urcorner texti+(0,eb))--
+ (ulcorner texti+(0.625cm,0)+(eb,eb)){dir180}..
+ {dir180}(ulcorner texti+(0.625cm,0))--
+ (ulcorner texti+(0.375cm,0)){dir180}..
+ {dir180}(ulcorner texti+(0.375cm,0)+(-eb,eb))--
+ (ulcorner texti+(0,eb)){dir180}..{dir-90}(ulcorner texti+(-eb,0))--
+ (llcorner texti+(-eb,-eb));
+ $
+enddef;
+
+vardef AFFICONTROLE(expr texta)=
+ path cadre;
+ cadre=CADRECONTROLE(texta);
+ picture TEXT;
+ TEXT=image(
+ fill cadre withcolor if print=true :coefprint*white else: if unknown ColBloc : white else : ColBloc fi; fi;
+ draw texta;
+ draw tracecadre withcolor CoulLignes;
+ );
+ TEXT
+enddef;
+
+vardef AffichageControle(expr textu)=
+ save $;
+ picture $;
+ $=AFFICONTROLE(textu);
+ $:=$ shifted (if unknown _coinprec:(0,0) else :_coinprec fi - (ulcorner $));
+_coinprec:=llcorner $+(0.5cm,0);
+_coinprec:=_coinprec+(0,eb);
+coindebutbloc[numblocrep]:=(llcorner $)+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+ label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+ Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+
+vardef CADREED(expr texti)=
+ save $; path $;
+ $=(llcorner texti+(-eb,0)){dir-90}..{dir0}(llcorner texti+(0,-eb))--
+ (llcorner texti+(0.375cm,0)+(-eb,-eb)){dir0}..
+ {dir0}(llcorner texti+(0.375cm,0)+(0,-2eb))--
+ (llcorner texti+(0.625cm,0)+(0,-2eb)){dir0}..
+ {dir0}(llcorner texti+(0.625cm,0)+(eb,-eb))--
+ (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir-180}(urcorner texti+(0,eb))--
+ 1/2[ulcorner texti+(-eb,eb),urcorner texti+(eb,eb)]{dir150}..{dir-150}(ulcorner texti+(-eb,eb))--cycle;
+ $
+enddef;
+
+vardef AFFIED(expr texta)=
+ path cadre;
+ cadre=CADREED(texta);
+ picture TEXT;
+ TEXT=image(
+ fill cadre withcolor if print=true :coefprint*white else: if unknown ColBloc : white else : ColBloc fi; fi;
+ draw texta;
+ draw cadre withcolor CoulLignes;
+ );
+ TEXT
+enddef;
+
+vardef AffichageED(expr textu)=
+ save $;
+ picture $;
+ $=AFFIED(textu);
+ $:=$ shifted (if unknown _coinprec:(0,0) else :_coinprec fi - (ulcorner $));
+_coinprec:=llcorner $;
+_coinprec:=_coinprec+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+ label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+ Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+
+%%% section Mouvement %%%%%%%%%%
+vardef Avancer(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string nbpas:
+ texto=ColleBoxNew("avancer de",OvalNb(nbpas),"pas");
+ else:
+ texto=ColleBoxNew("avancer de",nbpas,"pas");
+ fi;
+ ColBloc:=BleuMouvTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef Arcdroite=
+ save $;
+ picture $;
+ $=image(
+ path cc;
+ cc=fullcircle scaled 10pt;
+ drawarrow reverse(subpath(0,0.75*length cc) of cc) withpen pencircle scaled 2bp if print=false: withcolor white fi;
+ );
+ $
+enddef;
+
+vardef Arcgauche=
+ save $;
+ picture $;
+ $=image(
+ path cc;
+ cc=fullcircle scaled 10pt;
+ drawarrow (subpath(0.75*length cc,1.5*length cc) of cc) withpen pencircle scaled 2bp if print=false: withcolor white fi;
+ );
+ $
+enddef;
+
+vardef Tournerd(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string nbpas:
+ if symbole=true:
+ texto=ColleBoxNew("tourner",Arcdroite,"de",OvalNb(nbpas),"degré(s)");
+ else:
+ texto=ColleBoxNew("tourner à droite de",OvalNb(nbpas),"degré(s)");
+ fi;
+ else:
+ if symbole=true:
+ texto=ColleBoxNew("tourner",Arcdroite,"de",nbpas,"degré(s)");
+ else:
+ texto=ColleBoxNew("tourner à droite de",nbpas,"degré(s)");
+ fi;
+ fi;
+ ColBloc:=BleuMouvTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef Tournerg(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string nbpas:
+ if symbole=true:
+ texto=ColleBoxNew("tourner",Arcgauche,"de",OvalNb(nbpas),"degré(s)");
+ else:
+ texto=ColleBoxNew("tourner à gauche de",OvalNb(nbpas),"degré(s)");
+ fi;
+ else:
+ if symbole=true:
+ texto=ColleBoxNew("tourner",Arcgauche,"de",nbpas,"degré(s)");
+ else:
+ texto=ColleBoxNew("tourner à gauche de",nbpas,"degré(s)");
+ fi;
+ fi;
+ ColBloc:=BleuMouvTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef Orienter(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string nbpas:
+ texto=ColleBoxNew("s'orienter à",OvalNb(nbpas));
+ else:
+ texto=ColleBoxNew("s'orienter à",nbpas);
+ fi;
+ ColBloc:=BleuMouvTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef Orienterdirection(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string nbpas:
+ texto=ColleBoxNew("s'orienter vers",OvalMouvMenu(nbpas));
+ else:
+ texto=ColleBoxNew("s'orienter vers",nbpas);
+ fi;
+ ColBloc:=BleuMouvTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef OrienterVers(expr nbpass)=Orienterdirection(nbpass) enddef;
+
+vardef Aller(expr xa,ya)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ texto=ColleBoxNew("aller à x:",if string xa:OvalNb(xa) else: xa fi,"y:",if string ya:OvalNb(ya) else: ya fi);
+ ColBloc:=BleuMouvTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef Glisser(expr na,xa,ya)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ texto=ColleBoxNew("glisser en",if string na:OvalNb(na) else: na fi,"seconde(s) à x :",if string xa:OvalNb(xa) else: xa fi,"y:",if string ya:OvalNb(ya) else: ya fi);
+ ColBloc:=BleuMouvTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef Allera(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string nbpas:
+ texto=ColleBoxNew("aller à",OvalMouvMenu(nbpas));
+ ColBloc:=BleuMouvTrois;
+ $=Affichage(texto);
+ else:
+ message("");
+ message("La commande -- Allera -- n'accepte qu'un type string comme argument.");
+ message("");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef Glissera(expr na,xa)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string xa:
+ texto=ColleBoxNew("glisser en",if string na:OvalNb(na) else: na fi,"seconde(s) à",OvalMouvMenu(xa));
+ ColBloc:=BleuMouvTrois;
+ $=Affichage(texto);
+else:
+ message("");
+ message("La commande -- Glissera -- n'accepte qu'un type string comme deuxième argument.");
+ message("");
+ $=nullpicture;
+fi;
+ $
+enddef;
+
+vardef Ajouter(expr nba,xa)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string xa:
+ texto=ColleBoxNew("ajouter",if string nba:OvalNb(nba) else: nba fi,"à",xa);
+ ColBloc:=BleuMouvTrois;
+ $=Affichage(texto);
+else:
+ message("");
+ message("La commande -- Ajouter -- n'accepte qu'un type string comme deuxième argument.");
+ message("");
+ $=nullpicture;
+fi;
+$
+enddef;
+
+vardef Mettre(expr xa,nba)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string xa:
+ texto=ColleBoxNew("mettre",xa,"à",if string nba:OvalNb(nba) else: nba fi);
+ ColBloc:=BleuMouvTrois;
+ $=Affichage(texto);
+ else:
+ message("");
+ message("La commande -- Mettre -- n'accepte qu'un type string comme premier argument.");
+ message("");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef Rebondir=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ texto=ColleBoxNew("rebondir si le bord est atteint");
+ ColBloc:=BleuMouvTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef FixerSensRotation(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string nbpas:
+ texto=ColleBoxNew("fixer le sens de rotation",RecMouvMenu(nbpas));%RecMouvMenu(nbpas));
+ ColBloc:=BleuMouvTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande --FixerSensRotation-- admet un seul argument de type string");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+%%%% fin section Mouvement %%%%%%
+
+%%%%% Section Apparence %%%%%%%%%
+vardef DireT(expr na,xa)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("dire",if string na:OvalText(na) else: na fi,"pendant",if string xa : OvalNb(xa) else: xa fi,"seconde(s)");
+ColBloc:=VioletAppTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef Dire(expr na)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("dire",if string na:OvalText(na) else: na fi);
+ColBloc:=VioletAppTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef PenserT(expr na,xa)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("penser à",if string na:OvalText(na) else: na fi,"pendant",if string xa : OvalNb(xa) else: xa fi,"seconde(s)");
+ColBloc:=VioletAppTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef Penser(expr na)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("penser à",if string na:OvalText(na) else: na fi);
+ColBloc:=VioletAppTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef Montrer=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("montrer");
+ ColBloc:=VioletAppTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef Cacher=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("cacher");
+ ColBloc:=VioletAppTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef Basculer(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew("basculer sur le costume",OvalAppMenu(nbpas));
+ ColBloc:=VioletAppTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande --Basculer-- n'accepte qu'un argument string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef BasculerCostume(expr nbpass)=Basculer(nbpass) enddef;
+
+vardef CostumeSuivant=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("costume suivant");
+ ColBloc:=VioletAppTrois;
+ $=Affichage(texto);
+$
+enddef;
+
+vardef ARSuivant=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("arrière-plan suivant");
+ ColBloc:=VioletAppTrois;
+ $=Affichage(texto);
+$
+enddef;
+
+vardef BasculerAR(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew("basculer sur l'arrière-plan",OvalAppMenu(nbpas));
+ ColBloc:=VioletAppTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande --BasculerAR-- n'accepte qu'un argument string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef BasculerARA(expr nbpas)=%quand la scène est sélectionnée...
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew("basculer sur l'arrière-plan",OvalAppMenu(nbpas)," et attendre");
+ ColBloc:=VioletAppTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande --BasculerARA-- n'accepte qu'un argument string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef AjouterEffet(expr nbpas,xa)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string xa:
+ texto=ColleBoxNew("ajouter",if string nbpas: OvalNb(nbpas) else: nbpas fi," à l'effet",RecMenuApp(xa));
+ ColBloc:=VioletAppTrois;
+ $=Affichage(texto);
+else:
+ message("La commande --AjouterEffet-- n'accepte qu'un deuxième argument de type string.");
+ $=nullpicture;
+fi;
+$
+enddef;
+
+vardef MettreEffet(expr xa,nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string xa:
+ texto=ColleBoxNew("mettre l'effet",RecMenuApp(xa),"à",if string nbpas:OvalNb(nbpas) else: nbpas fi);
+ ColBloc:=VioletAppTrois;
+ $=Affichage(texto);
+else:
+ message("La commande --MettreEffet-- n'accepte qu'un premier argument de type string.");
+ $=nullpicture;
+fi;
+$
+enddef;
+
+vardef AnnulerEffet=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("annuler les effets graphiques");
+ ColBloc:=VioletAppTrois;
+ $=Affichage(texto);
+$
+enddef;
+
+vardef AnnulerEffets=AnnulerEffet enddef;
+
+vardef AjouterTaille(expr na)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("ajouter",if string na:OvalNb(na) else: na fi,"à la taille");
+ColBloc:=VioletAppTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef MettreA(expr na)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("mettre la taille à",if string na:OvalNb(na) else: na fi,"\% de la taille initiale");
+ColBloc:=VioletAppTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef MettreTaille(expr art)=MettreA(art) enddef;
+
+vardef AllerPlan(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew("aller à l'",RecMenuApp(nbpas),"plan");
+ ColBloc:=VioletAppTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande --AllerPlan-- n'accepte qu'un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef DeplacerPlan(expr nbpas,xa)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string xa:
+ texto=ColleBoxNew("déplacer de",if string nbpas:OvalNb(nbpas) else: nbpas fi,"plan(s) vers l'",RecMenuApp(xa));
+ ColBloc:=VioletAppTrois;
+ $=Affichage(texto);
+else:
+ message("La commande --DeplacerPlan-- n'accepte qu'un deuxième argument de type string.");
+ $=nullpicture;
+fi;
+$
+enddef;
+%%%%fin Section Apparance%%%%%%%%%%%%
+
+%%%%%% Section Son%%%%%%%%%%%%
+vardef Jouer(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string nbpas :
+ texto=ColleBoxNew("jouer le son",OvalMenuSon(nbpas));
+ ColBloc:=SonTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande --Jouer-- n'accepte qu'un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef JouerT(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string nbpas:
+ texto=ColleBoxNew("jouer le son",OvalMenuSon(nbpas)," jusqu'au bout");
+ ColBloc:=SonTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande --Jouer-- n'accepte qu'un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef ArreterSon=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ texto=ColleBoxNew("arrêter tous les sons");
+ ColBloc:=SonTrois;;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef ArreterSons=ArreterSon enddef;
+
+vardef AjouterVol(expr xa)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ texto=ColleBoxNew("ajouter",if string xa:OvalNb(xa) else: xa fi," au volume");
+ ColBloc:=SonTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef MettreVol(expr xa)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ texto=ColleBoxNew("mettre le volume à",if string xa: OvalNb(xa) else: xa fi,"~\%");
+ ColBloc:=SonTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef AjouterEffetSon(expr nombre, effet)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string effet:
+ texto=ColleBoxNew("ajouter",if string nombre : OvalNb(nombre) else: nombre fi," à l'effet",RecMenuSon(effet));
+ ColBloc:=SonTrois;
+ $=Affichage(texto);
+else:
+ message("La commande -- AjouterEffet -- n'accepte qu'un deuxième argument de type string.");
+ $=nullpicture;
+fi;
+$
+enddef;
+
+vardef MettreEffetSon(expr effet,nombre)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string effet:
+ texto=ColleBoxNew("mettre l'effet",RecMenuSon(effet),"à",if string nombre:OvalNb(nombre) else: nombre fi);
+ ColBloc:=SonTrois;
+ $=Affichage(texto);
+else:
+ message("La commande -- MettreEffet -- n'accepte qu'un argument de type string.");
+ $=nullpicture;
+fi;
+$
+enddef;
+
+vardef AnnulerEffetSon=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ texto=ColleBoxNew("annuler tous les effets sonores");
+ ColBloc:=SonTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+%Musique
+vardef Tambour(expr na,xa)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string na:
+ texto=ColleBoxNew(DoubleNote,"jouer du tambour",OvalStylo(na),"pendant",if string xa:OvalNb(xa) else: xa fi,"temps");
+ ColBloc:=StyloTrois;
+ $=Affichage(texto);
+else:
+ message("La commande --Tambour-- n'accepte qu'un premier argument de type string.");
+ $=nullpicture;
+fi;
+$
+enddef;
+
+vardef Pause(expr na)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ texto=ColleBoxNew(DoubleNote,"faire une pause pendant",if string na: OvalNb(na) else: na fi," temps");
+ ColBloc:=StyloTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef JouerNote(expr na,xa)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ texto=ColleBoxNew(DoubleNote,"jouer la note",if string na:OvalNb(na) else: na fi," pendant",if string xa:OvalNb(xa) else: xa fi," temps");
+ColBloc:=StyloTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef ChoisirInstrument(expr na)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string na:
+ texto=ColleBoxNew(DoubleNote,"choisir l'instrument \no{}",OvalStylo(na));
+ ColBloc:=StyloTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande -- ChoisirInstrument -- n'accepte qu'un argument de type string");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef MettreTempo(expr xa)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew(DoubleNote,"mettre le tempo à",if string xa:OvalNb(xa) else: xa fi);
+ ColBloc:=FondSonTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef AjouterTempo(expr xa)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew(DoubleNote,"ajouter",if string xa:OvalNb(xa) else: xa fi," au tempo");
+ColBloc:=FondSonTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef DoubleNote=
+ save $;
+ picture $;
+ $=image(
+ draw (((0,0)--(0,18pt)) shifted(-12,-9pt)) withpen pencircle scaled 1bp withcolor if print: coefprint*white else: StyloTrois fi;
+ draw NoteImage shifted((-5,-2));
+ draw NoteImage shifted((3.5,2));
+ draw (((0,0)--(0,18pt)) shifted(12,-9pt)) withpen pencircle scaled 1bp withcolor if print: 0.5*coefprint*white else: (69/255,168/255,140/255) fi;%Trop clair->(14/255,187/255,139/255);
+);
+ $:=$ shifted(-3,0);
+ $
+enddef;
+
+vardef NoteImage=
+ save $;
+ picture $;
+ $=image(
+ linecap := butt;
+ linejoin := mitered;
+ fill (80.695297,716.262024)..controls (80.574203,716.257996) and (80.476601,716.171997)..(80.480499,716.062988)
+ --(80.687500,704.125000)..controls (79.941399,704.570007) and (78.644501,704.637024)..(77.312500,704.223022)
+ ..controls (75.503899,703.659973) and (74.339798,702.429993)..(74.710899,701.473022)
+ ..controls (75.082001,700.512024) and (76.851601,700.187988)..(78.656303,700.750000)
+ ..controls (80.425797,701.301025) and (81.574203,702.504028)..(81.273399,703.453003)
+ --(81.125000,711.987976)..controls (82.910202,711.909973) and (86.910202,711.625000)..(84.917999,706.456970)
+ ..controls (85.992203,707.906006) and (86.839798,709.598022)..(85.273399,711.629028)
+ ..controls (84.378899,712.789001) and (81.617203,713.348022)..(81.062500,715.398010)
+ --(81.054703,716.065979)..controls (81.050797,716.176025) and (80.953102,716.262024)..(80.832001,716.262024)
+ --cycle if print=false: withcolor white fi;
+ pickup pencircle scaled 0.797011bp;
+ draw (80.695297,716.262024)..controls (80.574203,716.257996) and (80.476601,716.171997)..(80.480499,716.062988)
+ --(80.687500,704.125000)..controls (79.941399,704.570007) and (78.644501,704.637024)..(77.312500,704.223022)
+ ..controls (75.503899,703.659973) and (74.339798,702.429993)..(74.710899,701.473022)
+ ..controls (75.082001,700.512024) and (76.851601,700.187988)..(78.656303,700.750000)
+ ..controls (80.425797,701.301025) and (81.574203,702.504028)..(81.273399,703.453003)
+ --(81.125000,711.987976)..controls (82.910202,711.909973) and (86.910202,711.625000)..(84.917999,706.456970)
+ ..controls (85.992203,707.906006) and (86.839798,709.598022)..(85.273399,711.629028)
+ ..controls (84.378899,712.789001) and (81.617203,713.348022)..(81.062500,715.398010)
+ --(81.054703,716.065979)..controls (81.050797,716.176025) and (80.953102,716.262024)..(80.832001,716.262024)
+ --cycle if print=false: withcolor white fi;
+ pickup pencircle scaled eppen;
+ );
+ $:=($ rotatedabout((72.000000,699),15)) scaled 0.8;
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+%%%%%% fin Section Son %%%%%%%%%
+
+%%%%%% Section Stylo %%%%%%%%%
+vardef ImageCrayon=
+ save titi;
+ picture titi;
+ titi=image(%
+ draw CrayonImage shifted(-12,0);
+ draw (((0,0)--(0,18pt)) shifted(9,-9)) withpen pencircle scaled 1bp withcolor if print: 0.5*coefprint*white else: (69/255,168/255,140/255) fi;%Trop clair->(14/255,187/255,139/255);
+ );
+ titi
+enddef;
+
+vardef Effacer=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew(ImageCrayon,"effacer tout");
+ ColBloc:=StyloTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef Estampiller=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew(ImageCrayon,"estampiller");
+ ColBloc:=StyloTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef PoserStylo=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew(ImageCrayon," stylo en position d'écriture");
+ ColBloc:=StyloTrois;
+ $=Affichage(texto);
+$
+enddef;
+
+vardef ReleverStylo=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew(ImageCrayon,"relever le stylo");
+ ColBloc:=StyloTrois;
+ $=Affichage(texto);
+$
+enddef;
+
+vardef MettreCouleur(expr redc,greenc,bluec)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew(ImageCrayon," mettre la couleur du stylo à",OvalCouleur(redc,greenc,bluec));
+ ColBloc:=StyloTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef AjouterCS(text t)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ numeric k; k=0;
+ for p_=t:
+ if k=1:string effet; effet=p_ fi;
+ if k=0: if string p_:string nombre; nombre=p_ else: if picture p_: picture nombre; nombre=p_; fi fi fi;
+ k:=k+1;
+ endfor;
+ texto=ColleBoxNew(ImageCrayon,"ajouter",if string nombre:OvalNb(nombre) else: nombre fi,"à la",OvalStylo(effet),"du stylo");
+ColBloc:=StyloTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef MettreCS(text t)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ numeric k; k=0;
+ for p_=t:
+ if k=0:string effet; effet=p_ fi;
+ if k=1: if string p_:string nombre; nombre=p_ else: if picture p_: picture nombre; nombre=p_; fi fi fi;
+ k:=k+1;
+ endfor;
+ texto=ColleBoxNew(ImageCrayon,"mettre la",OvalStylo(effet),"du stylo à",if string nombre:OvalNb(nombre) else: nombre fi);
+ColBloc:=StyloTrois;
+$=Affichage(texto);
+$
+enddef;
+
+%taille du stylo
+vardef AjouterTS(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew(ImageCrayon,"ajouter",if string nbpas:OvalNb(nbpas) else: nbpas fi,"à la taille du stylo");
+ColBloc:=StyloTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef MettreTS(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew(ImageCrayon,"mettre la taille du stylo à",if string nbpas:OvalNb(nbpas) else: nbpas fi);
+ColBloc:=StyloTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef CrayonImage=
+ picture cray;
+ cray=image(%
+ drawoptions (if print=false:withcolor (0.298050,0.556850,0.917650) fi);
+ linecap := butt;
+ linejoin := mitered;
+ fill (0.960938,1.390630)--(1.644530,2.996090)..controls (1.730470,3.199220) and (1.917970,3.500000)..(2.062500,3.664060)..controls (2.324220,3.968750) and (3.539060,2.753910)..(3.234380,2.488280)..controls (3.070310,2.343750) and (2.769530,2.160160)..(2.566410,2.074220)--cycle;
+ drawoptions (withcolor (0.349030,0.368640,0.450970));
+ pickup pencircle scaled 0.498140bp;
+ draw (0.960938,1.390630)--(1.644530,2.996090)..controls (1.730470,3.199220) and (1.917970,3.500000)..(2.062500,3.664060)..controls (2.324220,3.968750) and (3.539060,2.753910)..(3.234380,2.488280)..controls (3.070310,2.343750) and (2.769530,2.160160)..(2.566410,2.074220)--cycle;
+ drawoptions (withcolor (1.000000,1.000000,1.000000));
+ %pickup pencircle scaled 0.000000bp;
+ fill (1.800780,3.363280)--(2.558590,5.156250)..controls (2.601560,5.257810) and (2.699220,5.402340)..(2.777340,5.480470)--(8.281250,10.984400)..controls (8.300780,11.003900) and (8.339840,11.023400)..(8.367190,11.031300)..controls (9.757810,11.398400) and (10.968800,10.187500)..(10.601600,8.792970)..controls (10.593800,8.769530) and (10.574200,8.730470)..(10.554700,8.710940)--(6.316410,4.476560)..controls (5.539060,3.695310) and (4.089840,2.718750)..(3.074220,2.289060)--(2.980470,2.246090)..controls (2.957030,2.238280) and (2.953130,2.242190)..(2.972660,2.261720)..controls (3.539060,2.753910) and (2.324220,3.968750)..(1.800780,3.363280)--cycle;
+ drawoptions (if print=false:withcolor (0.349030,0.368640,0.450970) fi);
+ pickup pencircle scaled 0.498140bp;
+ draw (1.800780,3.363280)--(2.558590,5.156250)..controls (2.601560,5.257810) and (2.699220,5.402340)..(2.777340,5.480470)--(8.281250,10.984400)..controls (8.300780,11.003900) and (8.339840,11.023400)..(8.367190,11.031300)..controls (9.757810,11.398400) and (10.968800,10.187500)..(10.601600,8.792970)..controls (10.593800,8.769530) and (10.574200,8.730470)..(10.554700,8.710940)--(6.316410,4.476560)..controls (5.539060,3.695310) and (4.089840,2.718750)..(3.074220,2.289060)--(2.980470,2.246090)..controls (2.957030,2.238280) and (2.953130,2.242190)..(2.972660,2.261720)..controls (3.539060,2.753910) and (2.324220,3.968750)..(1.800780,3.363280);
+ drawoptions (if print=false:withcolor (0.298050,0.556850,0.917650) fi);
+ %pickup pencircle scaled 0.000000bp;
+ fill (8.316410,11.019500)--(13.031300,15.730500)..controls (13.109400,15.808600) and (13.257800,15.878900)..(13.371100,15.886700)..controls (14.308600,15.949200) and (15.519500,14.734400)..(15.457000,13.796900)..controls (15.449200,13.687500) and (15.378900,13.535200)..(15.300800,13.457000)--(10.589800,8.746090)..controls (10.968800,10.187500) and (9.757810,11.398400)..(8.316410,11.019500)--cycle;
+ drawoptions (if print=false:withcolor (0.349030,0.368640,0.450970) fi);
+ pickup pencircle scaled 0.498140bp;
+ draw (8.316410,11.019500)--(13.031300,15.730500)..controls (13.109400,15.808600) and (13.257800,15.878900)..(13.371100,15.886700)..controls (14.308600,15.949200) and (15.519500,14.734400)..(15.457000,13.796900)..controls (15.449200,13.687500) and (15.378900,13.535200)..(15.300800,13.457000)--(10.589800,8.746090)..controls (10.968800,10.187500) and (9.757810,11.398400)..(8.316410,11.019500)--cycle;
+ draw (12.562500,15.265600)..controls (7.937500,15.644500) and (9.453130,10.488300)..(6.117190,11.398400);
+ %pickup pencircle scaled 0.000000bp;
+ fill (7.199220,12.785200)..controls (6.812500,13.175800) and (6.179690,13.175800)..(5.792970,12.785200)..controls (5.402340,12.398400) and (5.402340,11.765600)..(5.792970,11.378900)..controls (6.179690,10.988300) and (6.812500,10.988300)..(7.199220,11.378900)..controls (7.589840,11.765600) and (7.589840,12.398400)..(7.199220,12.785200)--cycle;
+ fill (6.496090,12.082000)--cycle;
+ pickup pencircle scaled 0.498140bp;
+ draw (7.199220,12.785200)..controls (6.812500,13.175800) and (6.179690,13.175800)..(5.792970,12.785200)..controls (5.402340,12.398400) and (5.402340,11.765600)..(5.792970,11.378900)..controls (6.179690,10.988300) and (6.812500,10.988300)..(7.199220,11.378900)..controls (7.589840,11.765600) and (7.589840,12.398400)..(7.199220,12.785200)--cycle;
+ draw (6.496090,12.082000);
+ drawoptions();
+ pickup pencircle scaled 0bp;
+ draw (-3,0)--(-3,18) withcolor if print : coefprint*white else: StyloTrois fi;
+ pickup pencircle scaled eppen;
+ );
+ cray:=cray shifted((0,-9pt));
+ cray
+enddef;
+
+%%%%%% Fin Section Stylo %%%%%%%%
+
+%%%%%% Section Contrôle %%%%%%%%%
+color colControle;
+colControle:=OrangeConTrois;
+
+vardef AffichageStop=
+ path cadre;
+ cadre=(llcorner texto+(-eb,0)){dir-90}..{dir0}(llcorner texto+(0,-eb))--
+ (lrcorner texto+(0,-eb)){dir0}..{dir90}(lrcorner texto+(eb,0))--(urcorner texto+(eb,0)){dir90}..{dir180}(urcorner texto+(0,eb))--
+ (ulcorner texto+(0.625cm,0)+(eb,eb)){dir180}..
+ {dir180}(ulcorner texto+(0.625cm,0))--
+ (ulcorner texto+(0.375cm,0)){dir180}..
+ {dir180}(ulcorner texto+(0.375cm,0)+(-eb,eb))--
+ (ulcorner texto+(0,eb)){dir180}..{dir-90}(ulcorner texto+(-eb,0))--cycle;
+ picture TEXT;
+ TEXT=image(
+ fill cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
+ draw texto;
+ draw cadre withcolor CoulLignes;
+ );
+ TEXT
+enddef;
+
+pair coindebutbloc[];
+numeric numblocrep;
+numblocrep:=0;
+
+vardef Repeter(expr xa)=
+ LONG:=0;
+ save $;
+ numblocrep:=numblocrep+1;
+ picture $,texto;
+ texto=ColleBoxNew("répéter", if string xa : OvalNb(xa) else: xa fi,"fois");
+LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
+ColBloc:=OrangeConTrois;
+$=AffichageControle(texto);
+$
+enddef;
+
+vardef RepeterI=
+ LONG:=0;
+ save $;
+ numblocrep:=numblocrep+1;
+ picture $,texto;
+ texto=ColleBoxNew("répéter indéfiniment");
+ LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
+ ColBloc:=OrangeConTrois;
+ $=AffichageControle(texto);
+ $
+enddef;
+
+vardef RepeterJ(expr xa)=
+ LONG:=0;
+ save $;
+ numblocrep:=numblocrep+1;
+ picture $,texto;
+ if picture xa:
+ texto=ColleBoxNew("répéter jusqu'à ce que",xa);
+ LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
+ ColBloc:=OrangeConTrois;
+ $=AffichageControle(texto);
+ else:
+ message("La commande -- RepeterJ -- n'admet qu'un argument de type picture.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef FinBlocRepeter=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ _coinprec:=_coinprec-(0.5cm,0);
+ drawoptions();
+ texto=image(
+ labeloffset:=0;
+ label.lrt(TEX("\hbox to"&decimal(LongRep[numblocrep])&"pt{\phantom{\barre fin du bloc}}"),if unknown _coinprec: (0,0) else:_coinprec fi);
+ labeloffset:=3;
+ );
+path cadre;
+cadre=(coindebutbloc[numblocrep]+(0.125,0.125))--
+ (coindebutbloc[numblocrep]+(0.0625+0.5cm+eb,0.125)){dir180}..
+ {dir-90}(coindebutbloc[numblocrep]+(0.5cm,-eb))--
+ (ulcorner texto+(0.5cm,eb)){dir-90}..
+ {dir0}(ulcorner texto+(0.5cm+eb,0))--
+ (ulcorner texto+(0.5cm+0.375cm,0)){dir0}..%
+ {dir0}(ulcorner texto+(0.5cm+0.375cm,0)+(eb,-eb))--%
+ (ulcorner texto+(0.5cm+0.625cm,0)+(eb,-eb)){dir0}..%
+ {dir0}(ulcorner texto+(0.5cm+0.625cm,0)+(2eb,0))--%
+ (urcorner texto+(-eb,0)){dir0}..
+ {dir-90}(urcorner texto+(0,-eb))--
+ (lrcorner texto+(0,eb)){dir-90}..
+ {dir180}(lrcorner texto+(-eb,0))--
+ (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
+ (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.375cm,0))--
+ (llcorner texto+(0.125,0)+(eb,0)){dir180}..
+ {dir90}(llcorner texto+(0.125,0)+(0,eb))--
+ cycle;
+$=image(
+ fill cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
+ draw cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
+ AA:=ahangle;
+ ahangle:=90;
+ drawarrow (lrcorner texto+(-0.625cm,0.15cm)){dir-15}..{dir90}(urcorner texto+(-0.25cm,-0.1cm)) withpen pencircle scaled2bp if print=false : withcolor white fi;
+ ahangle:=AA;
+ draw (coindebutbloc[numblocrep]+(0.0625+0.5cm+eb,0.125)){dir180}..
+ {dir-90}(coindebutbloc[numblocrep]+(0.5cm,-eb))--
+ (ulcorner texto+(0.5cm,eb)){dir-90}..
+ {dir0}(ulcorner texto+(0.5cm+eb,0))--
+ (ulcorner texto+(0.5cm+0.375cm,0)){dir0}..%
+ {dir0}(ulcorner texto+(0.5cm+0.375cm,0)+(eb,-eb))--%
+ (ulcorner texto+(0.5cm+0.625cm,0)+(eb,-eb)){dir0}..%
+ {dir0}(ulcorner texto+(0.5cm+0.625cm,0)+(2eb,0))--%
+ (urcorner texto+(-eb,0)){dir0}..
+ {dir-90}(urcorner texto+(0,-eb))--
+ (lrcorner texto+(0,eb)){dir-90}..
+ {dir180}(lrcorner texto+(-eb,0))--
+ (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
+ (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.375cm,0))--
+ (llcorner texto+(0.125,0)+(eb,0)){dir180}..
+ {dir90}(llcorner texto+(0.125,0)+(0,eb))--(coindebutbloc[numblocrep]+(0.125,0.125)) withcolor CoulLignes;
+ );
+_coinprec:=(llcorner $);
+_coinprec:=_coinprec+(0,eb);
+numblocrep:=numblocrep-1;
+$
+enddef;
+
+vardef FinBlocRepeterI=FinBlocRepeter enddef;
+
+vardef Si(expr xa)=
+ LONG:=0;
+ save $;
+ numblocrep:=numblocrep+1;
+ picture $,texto;
+ if picture xa:
+ texto=ColleBoxNew("si\hbox to1em{}",xa,"alors");
+ LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
+ ColBloc:=OrangeConTrois;
+ $=AffichageControle(texto);
+ else:
+ message("La commande -- Si -- n'admet qu'un argument de type picture.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef FinBlocSi=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ _coinprec:=_coinprec-(0.5cm,0);
+ drawoptions();
+ texto=image(
+ labeloffset:=0;
+ label.lrt(TEX("\hbox to"&decimal(LongRep[numblocrep])&"pt{\phantom{\barre fin du bloc}}"),if unknown _coinprec: (0,0) else:_coinprec fi);
+ labeloffset:=3;
+ );
+path cadre;
+if BlocStopAvant=false:
+ cadre=(coindebutbloc[numblocrep]+(0.125,0.125))--
+ (coindebutbloc[numblocrep]+(0.0625+0.5cm+eb,0.125)){dir180}..
+ {dir-90}(coindebutbloc[numblocrep]+(0.5cm,-eb))--
+ (ulcorner texto+(0.5cm,eb)){dir-90}..
+ {dir0}(ulcorner texto+(0.5cm+eb,0))--
+ (ulcorner texto+(0.5cm+0.375cm,0)){dir0}..%
+ {dir0}(ulcorner texto+(0.5cm+0.375cm,0)+(eb,-eb))--%
+ (ulcorner texto+(0.5cm+0.625cm,0)+(eb,-eb)){dir0}..%
+ {dir0}(ulcorner texto+(0.5cm+0.625cm,0)+(2eb,0))--%
+ (urcorner texto+(-eb,0)){dir0}..
+ {dir-90}(urcorner texto+(0,-eb))--
+ (lrcorner texto+(0,eb)){dir-90}..
+ {dir180}(lrcorner texto+(-eb,0))--
+ (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
+ (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.375cm,0))--
+ (llcorner texto+(0.125,0)+(eb,0)){dir180}..
+ {dir90}(llcorner texto+(0.125,0)+(0,eb))--
+ cycle;
+else:
+ cadre=(coindebutbloc[numblocrep]+(0.125,0.125))--
+ (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
+ {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
+ (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
+ {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
+% (ulcorner texto+(0.125+0.875cm,0)){dir0}..
+% {dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
+% (ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
+% {dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%
+ (urcorner texto+(-eb,0)){dir0}..
+ {dir-90}(urcorner texto+(0,-eb))--
+ (lrcorner texto+(0,eb)){dir-90}..
+ {dir180}(lrcorner texto+(-eb,0))--
+ (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
+ (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.375cm,0))--
+ (llcorner texto+(0.125,0)+(eb,0)){dir180}..
+ {dir90}(llcorner texto+(0.125,0)+(0,eb))--
+ cycle;
+fi;
+$=image(
+ fill cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
+ draw cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
+ if BlocStopAvant=false:
+ draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0)){dir180}..
+ {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
+ (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
+ {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
+ (ulcorner texto+(0.125+0.875cm,0)){dir0}..
+ {dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
+ (ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
+ {dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%
+ (urcorner texto+(-eb,0)){dir0}..
+ {dir-90}(urcorner texto+(0,-eb))--
+ (lrcorner texto+(0,eb)){dir-90}..
+ {dir180}(lrcorner texto+(-eb,0))--
+ (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
+ (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.375cm,0))--
+ (llcorner texto+(0.125,0)+(eb,0)){dir180}..
+ {dir90}(llcorner texto+(0.125,0)+(0,eb))--
+ (coindebutbloc[numblocrep]+(0.125,0.125))
+ withcolor CoulLignes;
+ else:
+ draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
+ {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
+ (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
+ {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
+ %(ulcorner texto+(0.125+0.875cm,0)){dir0}..
+ %{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
+ %(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
+ %{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%
+ (urcorner texto+(-eb,0)){dir0}..
+ {dir-90}(urcorner texto+(0,-eb))--
+ (lrcorner texto+(0,eb)){dir-90}..
+ {dir180}(lrcorner texto+(-eb,0))--
+ (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
+ (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.375cm,0))--
+ (llcorner texto+(0.125,0)+(eb,0)){dir180}..
+ {dir90}(llcorner texto+(0.125,0)+(0,eb))--
+ (coindebutbloc[numblocrep]+(0.125,0.125))
+ withcolor CoulLignes;
+ fi;
+ );
+_coinprec:=(llcorner $);
+_coinprec:=_coinprec+(0,eb);
+numblocrep:=numblocrep-1;
+$
+enddef;
+
+boolean BlocStopAvant;
+BlocStopAvant=false;
+
+vardef Sinon=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ _coinprec:=_coinprec-(0.5cm,0);
+ drawoptions();
+ texto=image(
+ labeloffset:=0;
+ label.lrt(TEX("\, \hbox to"&decimal(LongRep[numblocrep])&"pt{\bfseries\barre sinon}"),if unknown _coinprec: (0,0) else:_coinprec fi) if print=false : withcolor blanc fi;
+ labeloffset:=3;
+ );
+ path cadre;
+ if BlocStopAvant=false:
+ cadre=(llcorner texto+(0.125,0))--
+ (coindebutbloc[numblocrep]+(0.125,0.125))--
+ (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
+ {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
+ (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
+ {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
+ (ulcorner texto+(0.125+0.875cm,0)){dir0}..
+ {dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
+ (ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
+ {dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%
+ (urcorner texto+(-eb,0)){dir0}..
+ {dir-90}(urcorner texto+(0,-eb))--
+ (lrcorner texto+(0,eb)){dir-90}..
+ {dir180}(lrcorner texto+(-eb,0))--
+ (llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
+ {dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
+ (llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.875cm,0))--
+ cycle;
+ else:
+ cadre=(llcorner texto+(0.125,0))--
+ (coindebutbloc[numblocrep]+(0.125,0.125))--
+ (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
+ {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
+ (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
+ {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
+% (ulcorner texto+(0.125+0.875cm,0)){dir0}..
+% {dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
+% (ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
+% {dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%
+ (urcorner texto+(-eb,0)){dir0}..
+ {dir-90}(urcorner texto+(0,-eb))--
+ (lrcorner texto+(0,eb)){dir-90}..
+ {dir180}(lrcorner texto+(-eb,0))--
+ (llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
+ {dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
+ (llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.875cm,0))--
+ cycle;
+ fi;
+$=image(
+ fill cadre withcolor if print=true : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
+ draw cadre withcolor if print=true : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
+ draw texto;
+ if BlocStopAvant=false:
+ draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
+ {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
+ (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
+ {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
+ (ulcorner texto+(0.125+0.875cm,0)){dir0}..
+ {dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
+ (ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
+ {dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%
+ (urcorner texto+(-eb,0)){dir0}..
+ {dir-90}(urcorner texto+(0,-eb))--
+ (lrcorner texto+(0,eb)){dir-90}..
+ {dir180}(lrcorner texto+(-eb,0))--
+ (llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
+ {dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
+ (llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.875cm,0))--
+ (llcorner texto+(0.125+0.5cm+eb,0))
+ withcolor CoulLignes;
+ else:
+ draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
+ {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
+ (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
+ {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
+ %(ulcorner texto+(0.125+0.875cm,0)){dir0}..
+ %{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
+ %(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
+ %{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%
+ (urcorner texto+(-eb,0)){dir0}..
+ {dir-90}(urcorner texto+(0,-eb))--
+ (lrcorner texto+(0,eb)){dir-90}..
+ {dir180}(lrcorner texto+(-eb,0))--
+ (llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
+ {dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
+ (llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.875cm,0))
+ withcolor CoulLignes;
+ fi;
+ draw (llcorner texto+(0.125,0))--(coindebutbloc[numblocrep]+(0.125,0.125)) withcolor CoulLignes;
+ );
+ _coinprec:=(llcorner $)+(0.5cm,0);
+ _coinprec:=_coinprec+(0,eb);
+ coindebutbloc[numblocrep]:=(llcorner $)+(0,eb+0.125);
+ $
+enddef;
+
+vardef Attendre(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("attendre",if string nbpas:OvalNb(nbpas) else: nbpas fi,"seconde(s)");
+ColBloc:=OrangeConTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef AttendreJ(expr xa)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if picture xa:
+ texto=ColleBoxNew("attendre jusqu'à ce que",xa);
+ ColBloc:=OrangeConTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande -- AttendreJ -- n'admet qu'un argument de type picture.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef Stop(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ string TTm;%Pour sauvegarder le nbpas car en l'utilisant dans les if, il ne permet pas la concaténation...
+ TTm=if print:nbpas&"\hbox to1em{\barre}\blacktriangledown" else:"{\color{white}"&nbpas&"\hbox to1em{\barre}\blacktriangledown}";
+ fi;
+ texto=image(
+ path ti;
+ ti=Box("stop");
+ label(TEX("\bfseries\barre stop"),center ti) if print=false : withcolor white fi;%_>ok
+ if picture nbpas:
+ picture ta;
+ ta=nbpas;
+ drawoptions(shifted (xpart((lrcorner ti)-(llcorner ta)+(eb,0)),ypart(center ti-center ta)));
+ draw ta;
+ drawoptions();
+ else:
+ path ta;
+ ta=RecBox(TTm);%
+ drawoptions(shifted (xpart((lrcorner ti)-(llcorner ta)+(eb,0)),ypart(center ti-center ta)));
+ if print=false : fill ta withcolor ControleTrois fi;
+ draw ta withcolor 0.95white;
+ label(TEX(TTm),center ta);
+ drawoptions();
+ fi;
+ );
+$=AffichageStop shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageStop);
+_coinprec:=llcorner $;
+_coinprec:=_coinprec;%+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+ label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+ Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+
+vardef CommencerClone=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("quand je commence comme un clone");
+ ColBloc:=ControleTrois;
+ $=AffichageED(texto);
+ $
+enddef;
+
+vardef CreerClone(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew("créer un clone de",OvalMenuControle(nbpas));
+ ColBloc:=ControleTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande -- CreerClone -- accepte un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef SupprimerClone=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=image(
+ path ti;
+ ti=Box("supprimer ce clone");
+ label(TEX("\bfseries\barre supprimer ce clone"),center ti) if print=false : withcolor white fi;%_>ok
+ );
+ $=AffichageStop shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageStop);
+_coinprec:=llcorner $;
+_coinprec:=_coinprec+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+ label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+ Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+%%fin Section Contrôle%%%
+
+%%%%%%%% Section Evenements %%%%%
+vardef Drapeau=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("quand",DrapeauImage shifted(-(80,707)),"est cliqué");
+ ColBloc:=EvenementTrois;
+ $=AffichageED(texto);
+ $
+enddef;
+
+vardef QPresse(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew("quand la touche",RecEvenementMenu(nbpas),"est pressée");
+ ColBloc:=EvenementTrois;
+ $=AffichageED(texto);
+ else:
+ message("La commande -- QPresse -- accepte un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef QLutinPresse=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("quand ce sprite est cliqué");
+ ColBloc:=EvenementTrois;
+ $=AffichageED(texto);
+ $
+enddef;
+
+vardef QSpritePresse=QLutinPresse enddef;
+
+vardef QScenePressee=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("quand la scène est cliquée");
+ ColBloc:=EvenementTrois;
+ $=AffichageED(texto);
+ $
+enddef;
+
+vardef QBasculeAR(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew("quand l'arrière-plan bascule sur",RecEvenementMenu(nbpas));
+ ColBloc:=EvenementTrois;
+ $=AffichageED(texto);
+ else:
+ message("La commande -- QBasculeAR -- accepte un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef QVolumeSup(expr nbpas,xa)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew("quand le",RecEvenementMenu(nbpas),"$>$",if string xa:OvalNb(xa) else: xa fi);
+ ColBloc:=EvenementTrois;
+ $=AffichageED(texto);
+else:
+ message("La commande -- QVolumeSup -- accepte un premier argument de type string.");
+ $=nullpicture;
+fi;
+$
+enddef;
+
+vardef QRecevoirMessage(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew("quand je reçois",RecEvenementMenu(nbpas));
+ ColBloc:=EvenementTrois;
+ $=AffichageED(texto);
+ else:
+ message("La commande -- QRecevoirMessage -- accepte un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef EnvoyerMessage(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew("envoyer à tous",OvalMenuEvenement(nbpas));
+ ColBloc:=EvenementTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande -- EnvoyerMessage -- accepte un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef EnvoyerMessageA(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew("envoyer à tous",OvalMenuEvenement(nbpas),"et attendre");
+ ColBloc:=EvenementTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande -- EnvoyerMessageA -- accepte un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef DrapeauImage=
+ save $; picture $;
+ $=image(
+ linecap := butt;
+ linejoin := rounded;
+ if print = false: drawoptions(withcolor(76/255,191/255,86/255)) fi;
+ fill (72.000000,713.254028)--(72.000000,718.918030)--(72.507797,718.979980)
+ --(72.984398,719.026978)--(73.437500,719.054993)--(73.867203,719.070007)
+ --(74.273399,719.073975)--(74.660202,719.062988)--(75.023399,719.043030)
+ --(75.367203,719.012024)--(75.695297,718.968994)--(76.003899,718.918030)
+ --(76.300797,718.859009)--(76.578102,718.793030)--(76.847702,718.723022)
+ --(77.105499,718.648010)--(77.351601,718.570007)--(77.589798,718.484009)
+ --(77.820297,718.401978)--(78.042999,718.312988)--(78.234398,718.237976)
+ --(78.234398,706.906006)--(78.042999,706.979980)--(77.820297,707.065979)
+ --(77.589798,707.151978)--(77.351601,707.237976)--(77.105499,707.315979)
+ --(76.847702,707.390991)--(76.578102,707.460999)--(76.300797,707.526978)
+ --(76.003899,707.585999)--(75.695297,707.637024)--(75.367203,707.676025)
+ --(75.023399,707.710999)--(74.660202,707.729980)--(74.273399,707.742004)
+ --(73.867203,707.737976)--(73.437500,707.723022)--(72.984398,707.690979)
+ --(72.507797,707.648010)--(72.000000,707.585999)--cycle;
+% drawoptions (withcolor (0,0.625,0));
+ fill (78.246101,712.565979)--(78.261703,718.226990)--(78.476601,718.140991)
+ --(78.691399,718.059021)--(78.902298,717.976990)--(79.113297,717.895020)
+ --(79.328102,717.820007)--(79.546898,717.754028)--(79.765602,717.687988)
+ --(79.992203,717.632996)--(80.226601,717.585999)--(80.468803,717.543030)
+ --(80.718803,717.515991)--(80.980499,717.495972)--(81.253899,717.492004)
+ --(81.542999,717.495972)--(81.843803,717.515991)--(82.160202,717.546997)
+ --(82.492203,717.598022)--(82.847702,717.664001)--(83.218803,717.745972)
+ --(83.332001,717.773010)--(83.332001,706.440979)--(83.218803,706.414001)
+ --(82.847702,706.328003)--(82.492203,706.265991)--(82.160202,706.215027)
+ --(81.843803,706.179993)--(81.542999,706.164001)--(81.253899,706.156006)
+ --(80.980499,706.164001)--(80.718803,706.184021)--(80.468803,706.210999)
+ --(80.226601,706.250000)--(79.992203,706.301025)--(79.765602,706.354980)
+ --(79.546898,706.418030)--(79.328102,706.487976)--(79.113297,706.562988)
+ --(78.902298,706.645020)--(78.691399,706.723022)--(78.476601,706.809021)
+ --(78.234398,706.906006)--cycle;
+% drawoptions (withcolor (0,0.625,0));
+ fill (83.332001,712.109009)--(83.332001,717.773010)--(83.613297,717.843994)
+ --(84.031303,717.965027)--(84.468803,718.104980)--(84.933601,718.265991)
+ --(85.425797,718.448975)--(85.945297,718.651978)--(86.492203,718.882996)
+ --(87.070297,719.137024)--(87.679703,719.414001)--(88.324203,719.718994)
+ --(89.000000,720.054993)--(89.000000,708.718994)--(88.324203,708.387024)
+ --(87.679703,708.081970)--(87.070297,707.801025)--(86.492203,707.551025)
+ --(85.945297,707.320007)--(85.425797,707.117004)--(84.933601,706.934021)
+ --(84.468803,706.773010)--(84.031303,706.632996)--(83.613297,706.512024)
+ --(83.332001,706.440979)--cycle;
+% drawoptions (withcolor (0,0.625,0));
+%pickup pencircle scaled 0.199253bp;
+ draw (72.000000,713.254028)--(72.000000,718.918030)--(72.507797,718.979980)
+ --(72.984398,719.026978)--(73.437500,719.054993)--(73.867203,719.070007)
+ --(74.273399,719.073975)--(74.660202,719.062988)--(75.023399,719.043030)
+ --(75.367203,719.012024)--(75.695297,718.968994)--(76.003899,718.918030)
+ --(76.300797,718.859009)--(76.578102,718.793030)--(76.847702,718.723022)
+ --(77.105499,718.648010)--(77.351601,718.570007)--(77.589798,718.484009)
+ --(77.820297,718.401978)--(78.042999,718.312988)--(78.261703,718.226990)
+ --(78.476601,718.140991)--(78.691399,718.059021)--(78.902298,717.976990)
+ --(79.113297,717.895020)--(79.328102,717.820007)--(79.546898,717.754028)
+ --(79.765602,717.687988)--(79.992203,717.632996)--(80.226601,717.585999)
+ --(80.468803,717.543030)--(80.718803,717.515991)--(80.980499,717.495972)
+ --(81.253899,717.492004)--(81.542999,717.495972)--(81.843803,717.515991)
+ --(82.160202,717.546997)--(82.492203,717.598022)--(82.847702,717.664001)
+ --(83.218803,717.745972)--(83.613297,717.843994)--(84.031303,717.965027)
+ --(84.468803,718.104980)--(84.933601,718.265991)--(85.425797,718.448975)
+ --(85.945297,718.651978)--(86.492203,718.882996)--(87.070297,719.137024)
+ --(87.679703,719.414001)--(88.324203,719.718994)--(89.000000,720.054993)
+ --(89.000000,708.718994)--(88.324203,708.387024)--(87.679703,708.081970)
+ --(87.070297,707.801025)--(86.492203,707.551025)--(85.945297,707.320007)
+ --(85.425797,707.117004)--(84.933601,706.934021)--(84.468803,706.773010)
+ --(84.031303,706.632996)--(83.613297,706.512024)--(83.218803,706.414001)
+ --(82.847702,706.328003)--(82.492203,706.265991)--(82.160202,706.215027)
+ --(81.843803,706.179993)--(81.542999,706.164001)--(81.253899,706.156006)
+ --(80.980499,706.164001)--(80.718803,706.184021)--(80.468803,706.210999)
+ --(80.226601,706.250000)--(79.992203,706.301025)--(79.765602,706.354980)
+ --(79.546898,706.418030)--(79.328102,706.487976)--(79.113297,706.562988)
+ --(78.902298,706.645020)--(78.691399,706.723022)--(78.476601,706.809021)
+ --(78.261703,706.895020)--(78.042999,706.979980)--(77.820297,707.065979)
+ --(77.589798,707.151978)--(77.351601,707.237976)--(77.105499,707.315979)
+ --(76.847702,707.390991)--(76.578102,707.460999)--(76.300797,707.526978)
+ --(76.003899,707.585999)--(75.695297,707.637024)--(75.367203,707.676025)
+ --(75.023399,707.710999)--(74.660202,707.729980)--(74.273399,707.742004)
+ --(73.867203,707.737976)--(73.437500,707.723022)--(72.984398,707.690979)
+ --(72.507797,707.648010)--(72.000000,707.585999)--cycle if print=false : withcolor (0,0.625,0) fi;
+ %pickup pencircle scaled 0.8bp;
+ draw (72.000000,699)--(72.000000,720);
+ drawoptions();
+ );
+ $:=$ rotatedabout((72.000000,699),-15);
+ $
+enddef;
+%%Fin section Evenement%%%
+
+%%%% Section Bloc %%%%
+vardef AffichageBlocDef=
+ path cadre;
+ cadre=(llcorner texto+(-eb,0)){dir-90}..{dir0}(llcorner texto+(0,-eb))--
+ (llcorner texto+(0.375cm,0)+(-eb,-eb)){dir0}..
+ {dir0}(llcorner texto+(0.375cm,0)+(0,-2eb))--
+ (llcorner texto+(0.625cm,0)+(0,-2eb)){dir0}..
+ {dir0}(llcorner texto+(0.625cm,0)+(eb,-eb))--
+ (lrcorner texto+(0,-eb)){dir0}..{dir90}(lrcorner texto+(eb,0))--
+ (urcorner texto+(eb,eb)){dir90}..{dir180}(urcorner texto+(0,2eb))--
+ (ulcorner texto+(0,2eb)){dir180}..
+ {dir-90}(ulcorner texto+(-eb,eb))--
+ cycle;
+ picture TEXT;
+ TEXT=image(
+ fill cadre withcolor if print : coefprint*white else : BlocTrois fi;%if unknown colBloc : DarkPurple else: colBloc fi fi;
+ draw texto;
+ draw cadre withcolor CoulLignes;
+ );
+ TEXT
+enddef;
+
+vardef Bloc(text nomblocbloc)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=image(
+ picture CBbloc;
+ CBbloc=ColleBoxNew(nomblocbloc);
+ draw CBbloc;
+ );
+ ColBloc:=BlocTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef NouveauBloc(text nbpasbloc)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=image(
+ picture CB;
+ CB=ColleBoxNew("définir",BlocPuzzle(nbpasbloc));
+ draw CB;
+ );
+$=AffichageBlocDef shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageBlocDef);
+_coinprec:=llcorner $;
+_coinprec:=_coinprec+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+ label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+ Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+%%%% Fin Section Bloc%%%%
+
+%%% Section Divers%%%
+vardef CommandeVide(expr commande)=
+ LONG:=0;
+ save $;
+ picture $,texto,TEXT;
+ if string commande :
+ texto=image(
+ label.lrt(TEX("\barre \hbox to"&commande&"cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
+ );
+else:
+ texto=commande;
+fi;
+ColBloc:=white;
+$=Affichage(texto);
+$
+enddef;
+
+vardef LigneVide=
+ LONG:=0;
+ save $;
+ picture $,texto,TEXT;
+ texto=image(
+ label.lrt(TEX("\barre \hbox to2cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
+ );
+TEXT=image(
+ path cadre;
+ cadre=CADRE(texto);
+ unfill cadre;
+ %draw (urcorner texto+(0,eb))--
+ % (ulcorner texto+(0.625cm,0)+(eb,eb)){dir180}..
+ % {dir180}(ulcorner texto+(0.625cm,0))--
+ % (ulcorner texto+(0.375cm,0)){dir180}..
+ % {dir180}(ulcorner texto+(0.375cm,0)+(-eb,eb))--
+ % (ulcorner texto+(0,eb)) withpen pencircle scaled 0;
+ );
+$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
+_coinprec:=llcorner $;
+_coinprec:=_coinprec+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+ label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+ Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+
+vardef LigneVideVar(expr commande)=
+ LONG:=0;
+ save $;
+ picture $,texto,TEXT;
+ if string texto:
+ texto=image(
+ label.lrt(TEX("\barre \hbox to2cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
+ );
+else:
+ texto=commande;
+fi;
+TEXT=image(
+ path cadre;
+ cadre=(llcorner texto+(-eb,0))--(llcorner texto+(0,-eb))--
+ (llcorner texto+(0.375cm,0)+(-eb,-eb))--
+ (llcorner texto+(0.375cm,0)+(0,-2eb))--
+ (llcorner texto+(0.625cm,0)+(0,-2eb))--
+ (llcorner texto+(0.625cm,0)+(eb,-eb))--
+ (lrcorner texto+(0,-eb))--(lrcorner texto+(eb,0))--(urcorner texto+(eb,0))--(urcorner texto+(0,eb))--
+ (ulcorner texto+(0.625cm,0)+(eb,eb))--
+ (ulcorner texto+(0.625cm,0))--
+ (ulcorner texto+(0.375cm,0))--
+ (ulcorner texto+(0.375cm,0)+(-eb,eb))--
+ (ulcorner texto+(0,eb))--(ulcorner texto+(-eb,0))--cycle;
+ fill cadre withcolor white;
+% draw (urcorner texto+(0,eb))--
+% (ulcorner texto+(0.625cm,0)+(eb,eb))--
+% (ulcorner texto+(0.625cm,0))--
+% (ulcorner texto+(0.375cm,0))--
+% (ulcorner texto+(0.375cm,0)+(-eb,eb))--
+% (ulcorner texto+(0,eb)) withpen pencircle scaled 0.05bp;
+ );
+$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
+_coinprec:=llcorner $;
+_coinprec:=_coinprec+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+ label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+ Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+
+vardef LignePointilles=
+ LONG:=0;
+ save $;
+ picture $,texto,TEXT;
+ texto=image(
+ label.lrt(TEX("\barre\Large \strut\ldots\hbox to1em{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
+ );
+TEXT=image(
+ path cadre;
+ cadre=CADRE(texto);
+ fill cadre withcolor white;
+ draw %(urcorner texto+(0,eb))--
+ (ulcorner texto+(0.625cm,0)+(eb,eb)){dir180}..
+ {dir180}(ulcorner texto+(0.625cm,0))--
+ (ulcorner texto+(0.375cm,0)){dir180}..
+ {dir180}(ulcorner texto+(0.375cm,0)+(-eb,eb))
+ %--(ulcorner texto+(0,eb))
+ withpen pencircle scaled 0.01;
+ draw texto;
+ );
+$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
+_coinprec:=llcorner $;
+_coinprec:=_coinprec+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+ label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+ Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+
+vardef Commentaires(expr commande)=
+ LONG:=0;
+ save $;
+ picture $,texto,TEXT;
+ texto=image(
+ label.lrt(TEX("\barre "& commande &""),if unknown _coinprec: (0,0) else:_coinprec fi) withcolor 0.5*white;
+ );
+TEXT=image(
+ path cadre;
+ cadre=CADRE(texto);
+ fill cadre withcolor white;
+ draw texto;
+ );
+$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
+_coinprec:=llcorner $;
+_coinprec:=_coinprec+(0,eb);
+$
+enddef;
+
+color colcom;
+colcom=0.5white;
+
+vardef CommentairesLigne(expr commande)=
+ LONG:=0;
+ save $;
+ picture $,texto,TEXT;
+ TEXT=image(
+ label.rt(TEX(commande), _coincom) withcolor colcom;
+ );
+$=TEXT shifted (_coincom - 1/2[llcorner TEXT,ulcorner TEXT]);
+$
+enddef;
+
+vardef BlocGris(expr ar)=
+ LONG:=0;
+ save $; picture $;
+ path ta; string TTm;
+ TTm=ar&"\barre";
+ ta=OvalMiniBox(TTm);
+ $=image(
+ fill ta withcolor 0.975white;
+ draw ta withcolor 0.85white;
+ label(TEX(TTm),center ta) if print=false : withcolor blanc fi;
+ );
+$
+enddef;
+
+vardef BlocGrisMulti(text argris)=
+ LONG:=0;
+ save $; picture $;
+ path ta; picture TTm;
+ TTm=ColleBoxNew(argris);
+ ta=OvalMiniBox(TTm);
+ $=image(
+ fill ta withcolor 0.975white;
+ draw ta;
+ %label(TEX(TTm),center ta) if print=false : withcolor blanc fi;
+ );
+$
+enddef;
+
+boolean BlocE;
+BlocE:=false;
+
+vardef BlocUser(expr colblocuser)(text textbloc)=
+ LONG:=0;
+ save $;
+ picture $;
+ save TA; path TA; picture BUTB; picture texto; picture TEXT;
+ BUTB=ColleBoxNew(textbloc);
+ TA=Box(BUTB);
+ texto=image(
+ draw BUTB;
+ );
+ ColBloc:=colblocuser;
+ if BlocE=false:
+ $=Affichage(texto);
+ else:
+ $=AffichageED(texto);
+ fi;
+ $
+enddef;
+
+vardef BlocCouleur(expr colblocuser)=
+ LONG:=0;
+ save $;
+ picture $,texto,TEXT;
+ texto=image(
+ label.lrt(TEX("\barre \hbox to4cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
+ );
+ColBloc:=colblocuser;
+$=Affichage(texto);
+$
+enddef;
+%% fin Section Divers %%%
+
+%% Section Capteur %%%%
+vardef Demander(expr nbpas)=
+ LONG:=0;
+ save Dem;
+ picture Dem,texto;
+ if string nbpas:
+ texto=ColleBoxNew("demander",OvalNb(nbpas),"et attendre");
+ ColBloc:=CapteurTrois;
+ Dem=Affichage(texto);
+ else:
+ message("La commande -- Demander -- admet un argument de type string.");
+ Dem=nullpicture;
+ fi;
+ Dem
+enddef;
+
+vardef ReinitChrono=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("réinitialiser le chronomètre");
+ ColBloc:=CapteurTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef MettreGlissement(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew("mettre mode de glissement à",RecMenuCap(nbpas));
+ ColBloc:=CapteurTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande -- MettreGlissement -- admet un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+%video
+
+vardef CameraImage=
+ LONG:=0;
+ save $;
+ picture $;
+ $=image(
+ pair A,B,C,D,E,F;
+ A=(0,0);
+ B-A=(10,0);
+ C-B=(0,10);
+ D-C=A-B;
+ E-B=(4,1.5);
+ F-C=(4,-1.5);
+ numeric EB;
+ EB=2pt;
+ path camera;
+ camera=(A+(EB,0))--(B+(-EB,0)){dir0}..{dir90}(B+(0,EB))--2/5[B,C]--E--F--3/5[B,C]--(C+(0,-EB)){dir90}..{dir-180}(C+(-EB,0))--(D+(EB,0)){dir180}..{dir-90}(D+(0,-EB))--(A+(0,EB)){dir-90}..{dir0}cycle;
+ fill camera withcolor (77,77,77)/255;
+ draw camera withcolor (77,77,77)*0.95/255;
+ path cc;
+ cc=fullcircle scaled 6;
+ color coul[];
+ if print:
+ coul0:=0.9white;
+ coul1:=0.933white;
+ coul2:=0.966white;
+ coul3:=white;
+ else:
+ coul0=(75,205,169)/255;
+ coul1=(16,230,212)/255;
+ coul2=(224,247,241)/255;
+ coul3=(1,1,1);
+ fi;
+ for k=0 upto 3:
+ fill (cc shifted(B+(10,3*k))) withcolor coul[k];
+ draw (cc shifted(B+(10,3*k))) withcolor 0.95*coul[k];
+ endfor;
+ draw ((-3,0)--(-3,18)) withcolor if print : coefprint*white else: StyloTrois fi;
+ pickup pencircle scaled eppen;
+ );
+ $:=$ scaled 0.8;
+ $
+enddef;
+
+vardef ImageCamera=
+ save titi;
+ picture titi;
+ titi=image(
+ draw CameraImage shifted(-12,-5);
+ draw (((0,0)--(0,18pt)) shifted(9,-9)) withpen pencircle scaled 1bp withcolor if print: 0.5*coefprint*white else: (69/255,168/255,140/255) fi;
+ );
+ titi
+enddef;
+
+vardef ActiverVideo(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew(ImageCamera,"vidéo",OvalStylo(nbpas));
+ ColBloc:=StyloTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande -- ActiverVideo -- admet un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef TransparenceVideo(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew(ImageCamera,"mettre la transparence vidéo sur",OvalNb(nbpas));
+ ColBloc:=StyloTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande -- TransparenceVideo -- admet un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef QuandMV(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew(ImageCamera,"quand mouvement vidéo $>$",OvalNb(nbpas));
+ ColBloc:=StyloTrois;
+ $=AffichageED(texto);
+ else:
+ message("La commande -- QuandMV -- admet un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef VideoSur(expr nbpas,xa)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if (string nbpas) and (string xa):
+ texto=ColleBoxNew(ImageCamera,"vidéo",OvalStylo(nbpas),"sur",OvalStylo(xa));
+ %ColBloc:=StyloTrois;
+ path ta;
+ ta=OvalBox(texto);
+ $=image(
+ fill ta withcolor if print: coefprint*white else: StyloTrois fi;
+ draw ta withcolor CoulLignes;
+ %label(TEX(TTm),center ta) if print=false : withcolor blanc fi;
+ draw texto;
+ );
+ else:
+ message("La commande -- VideoSur -- admet deux arguments de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+%% fin Section Capteur %%%
+
+%%% Section Variables %%%
+vardef MettreVar(expr nbpas,xa)=
+ LONG:=0;
+ save MV;
+ picture MV,texto;
+ if string nbpas :
+ texto=ColleBoxNew("mettre",RecMenuVar(nbpas),"à",if string xa:OvalNb(xa) else: xa fi);
+ ColBloc:=OrangeTrois;
+ MV=Affichage(texto);
+ else:
+ message("La commande -- MettreVar -- admet un premier paramètre de type string.");
+ MV=nullpicture;
+ fi;
+ MV
+enddef;
+
+vardef AjouterVar(expr nbpas,xa)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string xa :
+ texto=ColleBoxNew("ajouter",if string nbpas:OvalNb(nbpas) else: nbpas fi,"à",RecMenuVar(xa));
+ ColBloc:=OrangeTrois;
+ $=Affichage(texto);
+else:
+ message("La commande -- AjouterVar -- admet un deuxième paramètre de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef MontrerVar(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas :
+ texto=ColleBoxNew("montrer la variable",RecMenuVar(nbpas));
+ ColBloc:=OrangeTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande -- MontrerVar -- admet un premier paramètre de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef CacherVar(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas :
+ texto=ColleBoxNew("cacher la variable",RecMenuVar(nbpas));
+ ColBloc:=OrangeTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande -- CacherVar -- admet un premier paramètre de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+%Liste
+vardef AjouterListe(expr nbpas,xa)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string xa :
+ texto=ColleBoxNew("ajouter",if string nbpas:OvalNb(nbpas) else: nbpas fi,"à",RecMenuList(xa));
+ ColBloc:=OrangeListTrois;
+ $=Affichage(texto);
+else:
+ message("La commande -- AjouterListe -- admet un deuxième paramètre de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef SupprimerListe(expr nbpas,xa)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string xa :
+ texto=ColleBoxNew("supprimer l'élément",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(xa));
+ ColBloc:=OrangeListTrois;
+ $=Affichage(texto);
+else:
+ message("La commande -- SupprimerListe -- admet un deuxième paramètre de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef SupprimerListeAll(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas :
+ texto=ColleBoxNew("supprimer tous les éléments de la liste",RecMenuList(nbpas));
+ ColBloc:=OrangeListTrois;
+ $=Affichage(texto);
+else:
+ message("La commande -- SupprimerListe -- admet un deuxième paramètre de type string.");
+ $=nullpicture;
+fi;
+$
+enddef;
+
+vardef InsererListe(expr xa,nbpas,ya)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string ya :
+ texto=ColleBoxNew("insérer",if string xa:OvalNb(xa) else: xa fi,"en position",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(ya));
+ ColBloc:=OrangeListTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande -- InsererListe -- admet un troisième paramètre de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef RemplacerListe(expr xa,nbpas,ya)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas :
+ texto=ColleBoxNew("remplacer l'élément",if string xa:OvalNb(xa) else: xa fi,"de la liste",RecMenuList(nbpas),"par",if string ya:OvalNb(ya) else: ya fi);
+ ColBloc:=OrangeListTrois;
+ $=Affichage(texto);
+else:
+ message("La commande -- RemplacerListe -- admet un deuxième paramètre de type string.");
+ $=nullpicture;
+fi;
+$
+enddef;
+
+vardef MontrerListe(expr xa)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string xa :
+ texto=ColleBoxNew("montrer la liste",RecMenuList(xa));
+ ColBloc:=OrangeListTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande -- MontrerListe -- admet un paramètre de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef CacherListe(expr xa)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string xa :
+ texto=ColleBoxNew("cacher la liste",RecMenuList(xa));
+ ColBloc:=OrangeListTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande -- CacherListe -- admet un paramètre de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+%%% Section Operateur %%%
+
+vardef OpAdd(expr pasun,pasdeux)=
+ save Oop; picture Oop;
+ save TAao; path TAao;
+ save LOPop; picture LOPop;
+ LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$+$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAao=OvalBox(LOPop);
+ Oop=image(
+ fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LOPop;
+ draw TAao if print=false : withcolor coefprint*white fi;
+ );
+ Oop:=Oop shifted(-center Oop);
+ Oop
+enddef;
+
+vardef OpSous(expr pasun,pasdeux)=
+ save Oop; picture Oop;
+ save TAao; path TAao;
+ save LOPop; picture LOPop;
+ LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$-$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAao=OvalBox(LOPop);
+ Oop=image(
+ fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LOPop;
+ draw TAao if print=false : withcolor coefprint*white fi;
+ );
+ Oop:=Oop shifted(-center Oop);
+ Oop
+enddef;
+
+vardef OpMul(expr pasun,pasdeux)=
+ save Oop; picture Oop;
+ save TAao; path TAao;
+ save LOPop; picture LOPop;
+ LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$\times$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAao=OvalBox(LOPop);
+ Oop=image(
+ fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LOPop;
+ draw TAao if print=false : withcolor coefprint*white fi;
+ );
+ Oop:=Oop shifted(-center Oop);
+ Oop
+enddef;
+
+vardef OpDiv(expr pasun,pasdeux)=
+ save Oop; picture Oop;
+ save TAao; path TAao;
+ save LOPop; picture LOPop;
+ LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$\div$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAao=OvalBox(LOPop);
+ Oop=image(
+ fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LOPop;
+ draw TAao if print=false : withcolor coefprint*white fi;
+ );
+ Oop:=Oop shifted(-center Oop);
+ Oop
+enddef;
+
+vardef OpAlea(expr pasun,pasdeux)=
+ save Oop; picture Oop;
+ save TAao; path TAao;
+ save LOPop; picture LOPop;
+ LOPop=ColleBoxNew("nombre aléatoire entre",if string pasun : OvalNb(pasun) else: pasun fi,"et",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAao=OvalBox(LOPop);
+ Oop=image(
+ fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LOPop;
+ draw TAao if print=false : withcolor coefprint*white fi;
+ );
+ Oop:=Oop shifted(-center Oop);
+ Oop
+enddef;
+
+vardef OpRegrouper(expr pasun,pasdeux)=
+ save Oop; picture Oop;
+ save TAao; path TAao;
+ save LOPop; picture LOPop;
+ LOPop=ColleBoxNew("regrouper",if string pasun : OvalNb(pasun) else: pasun fi,"et",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAao=OvalBox(LOPop);
+ Oop=image(
+ fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LOPop;
+ draw TAao if print=false : withcolor coefprint*white fi;
+ );
+ Oop:=Oop shifted(-center Oop);
+ Oop
+enddef;
+
+vardef OpLettre(expr pasun,pasdeux)=
+ save Oop; picture Oop;
+ save TAao; path TAao;
+ save LOPop; picture LOPop;
+ LOPop=ColleBoxNew("lettre",if string pasun : OvalNb(pasun) else: pasun fi,"de",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAao=OvalBox(LOPop);
+ Oop=image(
+ fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LOPop;
+ draw TAao if print=false : withcolor coefprint*white fi;
+ );
+ Oop:=Oop shifted(-center Oop);
+ Oop
+enddef;
+
+vardef OpLongueur(expr pasun)=
+ save Oop; picture Oop;
+ save TAao; path TAao;
+ save LOPop; picture LOPop;
+ LOPop=ColleBoxNew("longueur de",if string pasun : OvalNb(pasun) else: pasun fi);
+ TAao=OvalBox(LOPop);
+ Oop=image(
+ fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LOPop;
+ draw TAao if print=false : withcolor coefprint*white fi;
+ );
+ Oop:=Oop shifted(-center Oop);
+ Oop
+enddef;
+
+vardef OpArrondi(expr pasun)=
+ save Oop; picture Oop;
+ save TAao; path TAao;
+ save LOPop; picture LOPop;
+ LOPop=ColleBoxNew("arrondi de",if string pasun : OvalNb(pasun) else: pasun fi);
+ TAao=OvalBox(LOPop);
+ Oop=image(
+ fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LOPop;
+ draw TAao if print=false : withcolor coefprint*white fi;
+ );
+ Oop:=Oop shifted(-center Oop);
+ Oop
+enddef;
+
+vardef OpFonction(expr pasun,pasdeux)=
+ save Oop; picture Oop;
+ save TAao; path TAao;
+ save LOPop; picture LOPop;
+ LOPop=ColleBoxNew(RecMenuOp(pasun),"de",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAao=OvalBox(LOPop);
+ Oop=image(
+ fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LOPop;
+ draw TAao if print=false : withcolor coefprint*white fi;
+ );
+ Oop:=Oop shifted(-center Oop);
+ Oop
+enddef;
+
+vardef TestOpSup(expr pasun, pasdeux)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$>$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAa=DiamondBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef TestOpInf(expr pasun, pasdeux)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$<$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAa=DiamondBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef TestOpEgal(expr pasun, pasdeux)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$=$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAa=DiamondBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef TestOpEt(expr pasun, pasdeux)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"et",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAa=DiamondBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef TestOpOu(expr pasun, pasdeux)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"ou",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAa=DiamondBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef TestOpNon(expr pasun)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew("non",if string pasun : OvalNb(pasun) else: pasun fi);
+ TAa=DiamondBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef TestOpContient(expr pasun,pasdeux)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"contient",if string pasun : OvalNb(pasdeux) else: pasun fi,"?");
+ TAa=DiamondBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef AppCostume(expr pasun)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew(RecMenuApp(pasun),"du costume");
+ TAa=OvalBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor VioletAppTrois else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef AppAP(expr pasun)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew(RecMenuApp(pasun),"de l'arrière-plan");
+ TAa=OvalBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor VioletAppTrois else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef CapDistance(expr pasun)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew("distance de",OvalCapMenu(pasun));
+ TAa=OvalBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef CapTemps(expr pasun)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew(RecMenuCap(pasun),"actuelle");
+ TAa=OvalBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef CapNumero(expr pasun,pasdeux)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew(RecMenuCap(pasun),"de",OvalCapMenu(pasdeux));
+ TAa=OvalBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef TestCapToucheObjet(expr pasun)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew("touche le",OvalCapMenu(pasun),"?");
+ TAa=DiamondBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef TestCapCouleur(expr pasun)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew("couleur",OvalCouleur(redpart(pasun),greenpart(pasun),bluepart(pasun)),"touchée ?");
+ TAa=DiamondBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef TestCapCouleurs(expr pasun,pasdeux)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew("couleur",OvalCouleur(redpart(pasun),greenpart(pasun),bluepart(pasun)),"touché",OvalCouleur(redpart(pasdeux),greenpart(pasdeux),bluepart(pasdeux)),"?");
+ TAa=DiamondBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef TestCapTouche(expr pasun)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew("touche",OvalMenuCap(pasun),"pressée ?");
+ TAa=DiamondBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef TestCapSouris=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew("souris pressée ?");
+ TAa=DiamondBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef TestListeContient(expr nbpas,nbbas)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew(RecMenuList(nbpas),"contient",if string nbbas:OvalNb(nbbas) else: nbbas fi);
+ TAa=DiamondBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef ListeElement(expr nbpas,nbbas)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew("élément",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(nbbas));
+ TAa=OvalBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef ListePosition(expr nbpas,nbbas)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew("position de",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(nbbas));
+ TAa=OvalBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef ListeLongueur(expr nbpas)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew("longueur de",RecMenuList(nbpas));
+ TAa=OvalBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
Property changes on: trunk/Master/texmf-dist/metapost/profcollege/PfCScratch.mp
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/metapost/profcollege/PfCScratchpdf.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfCScratchpdf.mp (rev 0)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfCScratchpdf.mp 2021-04-23 20:37:20 UTC (rev 58973)
@@ -0,0 +1,3378 @@
+%%%%% epaisseur de tracés %%%%%%%%
+numeric eppen;
+eppen=0.25;
+
+pickup pencircle scaled eppen;
+defaultpen := savepen;
+
+%points pour placer les différents éléments
+pair _coinprec;%coinbasgauche de la boite précédente
+pair _coincom;%coinbasdroite de la boite afin d'y mettre des commentaires
+pair _coinnum;%milieu côté gauche pour placer la numérotation des lignes
+
+%paramètres
+numeric Nblignes; Nblignes:=1;
+pair DebutListe; DebutListe=(0,0);
+boolean NumeroteLignes; NumeroteLignes=false;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% couleurs
+color CoulLignes; CoulLignes:=black;
+color ColBloc; % alias des couleurs de bloc
+
+vardef LATEXSCRATCH primary s =
+ write "verbatimtex" to "mptextmp.mp";
+ write "%&latex" to "mptextmp.mp";
+ write "\documentclass[12pt]{article}" to "mptextmp.mp";
+ write "\usepackage{ProfCollege}" to "mptextmp.mp";
+ write "\usepackage[utf8]{inputenc}" to "mptextmp.mp";
+ write "\usepackage[T1]{fontenc}" to "mptextmp.mp";
+ write "\usepackage[sfdefault,lf]{carlito}" to "mptextmp.mp";
+ write "\usepackage{pifont}" to "mptextmp.mp";
+% write "\usepackage[french]{babel}" to "mptextmp.mp";
+% write "\usepackage[autolanguage]{numprint}" to "mptextmp.mp";
+% write "\usepackage{amssymb}" to "mptextmp.mp";
+% write "\usepackage{amsmath}" to "mptextmp.mp";
+% write "\usepackage{mathrsfs}" to "mptextmp.mp";
+% write "\usepackage{xcolor}" to "mptextmp.mp";
+% write "\usepackage{calc}" to "mptextmp.mp";
+% write "\newlength{\longbarreheight}" to "mptextmp.mp";
+% write "\setlength{\longbarreheight}{2.1ex+3pt}" to "mptextmp.mp";
+% write "\newlength{\longbarredepth}" to "mptextmp.mp";
+% write "\setlength{\longbarredepth}{0.9ex+3pt}" to "mptextmp.mp";
+% write "\def\longbarre{\vrule height\longbarreheight depth\longbarredepth width0pt}" to "mptextmp.mp";
+% write "\usepackage{graphicx}" to "mptextmp.mp";
+% write "\def\barre{\vrule height2.1ex depth.9ex width0pt}" to "mptextmp.mp";
+% write "\def\demibarre{\vrule height1.4ex depth.6ex width0pt}" to "mptextmp.mp";
+ write "\begin{document}" to "mptextmp.mp";
+ write "etex" to "mptextmp.mp";
+ write "btex "&s&" etex" to "mptextmp.mp";
+ write EOF to "mptextmp.mp";
+ scantokens "input mptextmp"
+enddef;
+
+
+%Version3
+color BleuMouvTrois,dBleuMouvTrois,VioletAppTrois,dVioletAppTrois,OrangeConTrois,OrangeTrois,OrangeListTrois,SonTrois,DSonTrois,EvenementTrois,CapteurTrois,StyloTrois,BlocTrois,BlocDefTrois,BlocDefLigneTrois,MessageTrois,ControleTrois,CapFonceTrois,CloneTrois,FondSonTrois,OvalStyloTrois,FondOvalOp;
+BleuMouvTrois=(76/255,151/255,255/255);
+dBleuMouvTrois=(66/255,128/255,215/255);
+VioletAppTrois=(153/255,102/255,255/255);
+dVioletAppTrois=(133/255,92/255,214/255);
+OrangeConTrois=(255/255,171/255,25/255);
+OrangeTrois=(255/255,140/255,26/255);
+OrangeListTrois=(255/255,102/255,26/255);
+SonTrois=(207/255,99/255,207/255);
+DSonTrois=(201/255,79/255,201/255);
+FondSonTrois=(15/255,189/255,140/255);
+EvenementTrois=(255/255,191/255,0);
+MessageTrois=(230/255,172/255,0);
+CapteurTrois=(92/255,177/255,214/255);
+CapFonceTrois=(71/255,168/255,209/255);
+StyloTrois=(15/255,189/255,140/255);
+OvalStyloTrois=(13/255,165/255,122/255);
+BlocTrois=(255/255,102/255,128/255);
+BlocDefTrois=(255/255,77/255,106/255);
+BlocDefLigneTrois=(255/255,51/255,85/255);
+ControleTrois=(255/255,171/255,25/255);
+CloneTrois=(236/255,156/255,19/255);
+FondOvalOp=(89/255,192/255,89/255);
+
+vardef FondOvalAppMenu=
+ save $; color $;
+ $=dVioletAppTrois;
+ $
+enddef;
+
+%%%%Alias
+def Place expr o =
+ if path o: draw o else: draw o fi
+enddef;
+
+%impression
+boolean print;
+print=false;
+
+numeric coefprint;
+coefprint:=0.95;
+
+%texte ou symbole droite gauche
+boolean symbole;
+symbole=true;
+
+%divers
+numeric eb;%ecart boite-texte
+eb:=3pt;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Création des boites
+ecrt:=eb/2;%largeur de la bordure de départ des boites Box, OValBox...
+
+vardef Box(text t)=
+ save $; path $;
+ picture ox;
+ ox=image(
+ if string t:
+ string demitt;
+ demitt=t&"\barre";
+ label(LATEXSCRATCH(demitt),(0,0));
+ else:
+ draw t;
+ fi;
+ );
+ $=(llcorner ox+(0,-ecrt))--(lrcorner ox+(0,-ecrt))--(urcorner ox+(0,ecrt))--(ulcorner ox+(0,ecrt))--cycle;
+ $
+enddef;
+
+vardef RecBox(text t)=
+ save $; path $; path xo;
+ if string t:
+ string demit;
+ demit=t&"\demibarre";
+ xo=Box(demit);%on crée la boite contenant le texte
+ else:
+ xo=Box(t);
+ fi;
+ $=(llcorner xo+(-eb,eb)){dir-90}..{dir0}(llcorner xo)--(lrcorner xo){dir0}..{dir90}(lrcorner xo+(eb,eb))--(urcorner xo+(eb,-eb)){dir90}..{dir180}(urcorner xo)--(ulcorner xo){dir180}..{dir-90}(ulcorner xo+(-eb,-eb))--cycle;
+ $
+enddef;
+
+%%%%%%%%%%%%%%
+
+%%%%%%% Boites Ovales %%%%%%%%
+vardef OvalBox(text t)=
+ save $; path $; path xo;
+ if string t:
+ string demit;
+ demit=t&"\barre";
+ xo=Box(demit);%on crée la boite contenant le texte
+ else:
+ xo=Box(t);
+ fi;
+ $=(llcorner xo+(eb,0))--(lrcorner xo-(eb,0)){dir0}..{dir180}(urcorner xo+(-eb,0))--(ulcorner xo+(eb,0)){dir180}..{dir0}cycle;%on "arrondit" la boite
+ $
+enddef;
+
+vardef OvalVar(expr ar)=
+ save Ovar; picture Ovar;
+ save TAvar; path TAvar;
+ string TTv;
+ TTv=ar&"\barre";
+ TAvar=OvalBox(TTv);
+ Ovar=image(
+ fill TAvar if print=false : withcolor OrangeTrois else : withcolor white fi;
+ draw TAvar if print=false : withcolor coefprint*white fi;
+ label(LATEXSCRATCH("\barre\bfseries "&ar),(0,0)) if print=false : withcolor white fi;
+ );
+ Ovar:=Ovar shifted(-center Ovar);
+ Ovar
+enddef;
+
+vardef OvalList(text listelist)=
+ save CList; picture CList;
+ path TAlist; picture LOCMt;
+ LOCMt=ColleBoxNew(listelist);
+ TAlist=OvalBox(LOCMt);
+ CList=image(
+ fill TAlist if print=false : withcolor OrangeListTrois else : withcolor white fi;
+ draw LOCMt;
+ draw TAlist if print=false : withcolor coefprint*white fi;
+ );
+ CList:=CList shifted(-center CList);
+ CList
+enddef;
+
+vardef OvalBloc(expr ar)=
+ save $; picture $;
+ path tabloc;
+ tabloc=OvalBox(ar);
+ $=image(
+ fill tabloc if print=false : withcolor BlocTrois else: withcolor white fi;
+ draw tabloc if print=true : withcolor black else: withcolor BlocDefLigneTrois fi;
+ label(LATEXSCRATCH("\bfseries\barre "&ar),(0,0)) if print=false : withcolor blanc fi;
+ );
+ $
+enddef;
+
+vardef OvalMiniBox(text t)=
+ save $; path $; path xo;
+ if string t:
+ string demit;
+ demit=t&"\demibarre";
+ xo=Box(demit);%on crée la boite contenant le texte
+ else:
+ xo=Box(t);
+ fi;
+ $=(llcorner xo+(eb/2,0))--(lrcorner xo-(eb/2,0)){dir0}..{dir180}(urcorner xo+(-eb/2,0))--(ulcorner xo+(eb/2,0)){dir180}..{dir0}cycle;%on "arrondit" la boite
+ $
+enddef;
+
+vardef DiamondBox(text t)=
+ save $; path $; path xo;
+ xo=Box(t);%on crée la boite contenant le texte
+ $=(llcorner xo-(eb,0))--(lrcorner xo+(eb,0))--(1/2[lrcorner xo,urcorner xo]+(4eb,0))--(urcorner xo+(eb,0))--(ulcorner xo-(eb,0))--(1/2[llcorner xo,ulcorner xo]+(-4eb,0))--cycle;
+ $
+enddef;
+
+vardef OvalNb(expr ar)=
+ save Onb; picture Onb;
+ path tanb;
+ tanb=OvalBox(ar);
+ Onb=image(
+ fill tanb withcolor white;
+ draw tanb if print=false : withcolor coefprint*white fi;
+ label(LATEXSCRATCH("\barre "&ar),(0,0));
+ );
+ Onb
+enddef;
+
+vardef OvalText(expr ar)=
+ save $; save TA;
+ picture $;
+ path TA;
+ TA=OvalBox(ar);
+ $=image(%
+ fill TA withcolor white;
+ draw TA if print=false : withcolor coefprint*white fi;
+ label(LATEXSCRATCH("\barre "&ar),(0,0));
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef OvalOp(text listeop)=
+ save Oop; picture Oop;
+ save TAao; path TAao;
+ save LOPop; picture LOPop;
+ LOPop=ColleBoxNew(listeop);
+ TAao=OvalBox(LOPop);
+ Oop=image(
+ fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LOPop;
+ draw TAao if print=false : withcolor coefprint*white fi;
+ );
+ Oop:=Oop shifted(-center Oop);
+ Oop
+enddef;
+
+vardef OvalApp(text listop)=
+ save $; picture $;
+ save ta; path ta;
+ save TTap; picture TTap;
+ TTap=ColleBoxNew(listop);
+ ta=OvalBox(TTap);
+ $=image(
+ fill ta if print=false : withcolor VioletAppTrois else: withcolor white fi;
+ draw ta if print=false : withcolor coefprint*white fi;
+ draw TTap;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef OvalSon(text listop)=
+ save $; picture $;
+ save ta; path ta;
+ save TTap; picture TTap;
+ TTap=ColleBoxNew(listop);
+ ta=OvalBox(TTap);
+ $=image(
+ fill ta if print=false : withcolor SonTrois else: withcolor white fi;
+ draw ta if print=false : withcolor coefprint*white fi;
+ draw TTap;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef OvalMusique(expr ar)=
+ save $; save TA;
+ picture $;
+ if string ar:
+ picture TT;
+ TT=ColleBoxNew(DoubleNote,"tempo");
+ path TA;
+ TA=OvalBox(TT);
+ $=image(
+ fill TA if print : withcolor white else : withcolor StyloTrois fi;
+ draw TT if print=true : withcolor coefprint*white fi;
+ );
+ else:
+ message("La commande --OvalStylo-- n'accepte qu'un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef OvalMouv(expr ar)=
+ save $; picture $;
+ path ta; string TTm;
+ TTm=ar&"\longbarre";
+ ta=OvalBox(TTm);
+ $=image(
+ fill ta if print=false : withcolor BleuMouvTrois else: withcolor white fi;
+ draw ta if print=false : withcolor coefprint*white fi;
+ label(LATEXSCRATCH("\longbarre "&ar),center ta) if print=false : withcolor blanc fi;
+ );
+ $
+enddef;
+
+vardef OvalMenuCap(expr art)=OvalCapMenu(art) enddef;
+
+vardef OvalCapMenu(expr ar)=
+ save $; picture $;
+ string TTm;
+ TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
+ fi;
+ path TAMC;
+ TAMC=OvalBox(TTm);
+ $=image(
+ fill TAMC if print : withcolor white else : withcolor CapFonceTrois fi;
+ draw TAMC if print=false : withcolor coefprint*white fi;
+ label(LATEXSCRATCH(TTm),center TAMC);
+ );
+ $
+enddef;
+
+vardef OvalCap(text listecap)=
+ save Cap; picture Cap;
+ save TAcap; path TAcap;
+ save LOCMcap; picture LOCMcap;
+ LOCMcap=ColleBoxNew(listecap);
+ TAcap=OvalBox(LOCMcap);
+ Cap=image(
+ fill TAcap if print=false : withcolor CapteurTrois else : withcolor white fi;
+ draw LOCMcap;
+ draw TAcap if print=false : withcolor coefprint*white fi;
+ );
+ Cap:=Cap shifted(-center Cap);
+ Cap
+enddef;
+
+vardef OvalMouvMenu(expr ar)=
+ save $; picture $;
+ path ta; string TTm;
+ TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else:
+ "\color{white}"&ar&"\hbox to1em{\barre}\color{black}\blacktriangledown"
+ fi;
+ ta=OvalBox(TTm);
+ $=image(
+ fill ta if print=false : withcolor dBleuMouvTrois else: withcolor white fi;
+ draw ta if print=false : withcolor coefprint*white fi;
+ label(LATEXSCRATCH(TTm),center ta);
+ );
+ $
+enddef;
+
+vardef OvalAppMenu(expr ar)=
+ save $; picture $;
+ path ta; string TTm;
+ TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
+ fi;
+ ta=OvalBox(TTm);
+ $=image(
+ fill ta if print=false : withcolor FondOvalAppMenu else: withcolor white fi;
+ draw ta if print=false : withcolor coefprint*white fi;
+ label(LATEXSCRATCH(TTm),center ta);
+ );
+ $
+enddef;
+
+vardef OvalSonMenu(expr art)=OvalMenuSon(art) enddef;
+
+vardef OvalMenuSon(expr ar)=
+ save $; save TA;
+ picture $;
+ string TTm;
+ TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
+ fi;
+ path TA;
+ TA=OvalBox(TTm);
+ $=image(%
+ fill TA if print : withcolor white else : withcolor DSonTrois fi;
+ draw TA if print=false : withcolor coefprint*white fi;
+ label(LATEXSCRATCH(TTm),center TA);
+ );
+ $
+enddef;
+
+vardef OvalMenuControle(expr ar)=
+ save $; save TA;
+ picture $;
+ string TTm;
+ TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
+ fi;
+ path TA;
+ TA=OvalBox(TTm);
+ $=image(
+ fill TA if print : withcolor white else : withcolor CloneTrois fi;
+ draw TA if print=false : withcolor coefprint*white fi;
+ label(LATEXSCRATCH(TTm), center TA);
+ );
+ $
+enddef;
+
+vardef OvalStylo(expr ar)=
+ save $; save TA;
+ picture $;
+ string TT,TTI;
+ if string ar:
+ if print:
+ TT=ar&"\hbox to1em{\barre}\blacktriangledown"
+ else:
+ TT=ar&"\hbox to1em{\barre}\color{white}\blacktriangledown"
+ fi;
+ TTI=ar&"\hbox to1em{\barre}\phantom{\blacktriangledown}";
+ path TA;
+ TA=OvalBox(TT);
+ $=image(
+ fill TA if print : withcolor white else : withcolor OvalStyloTrois fi;
+ draw TA if print=false : withcolor coefprint*white fi;
+ label(LATEXSCRATCH(TT),(0,0)) if print=false : withcolor white fi;
+ );
+ else:
+ message("La commande --OvalStylo-- n'accepte qu'un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef OvalCouleur(expr redcc,greencc,bluecc)=
+ save $; picture $;
+ string TTv;
+ path tacol;
+ TTv="\phantom{10}\barre";
+ tacol=OvalBox(TTv);
+ $=image(
+ fill tacol withcolor (redcc,greencc,bluecc);
+ draw tacol;
+ );
+ $:=$ shifted(-center tacol);
+ $
+enddef;
+
+vardef OvalMenuEvenement(expr ar)=
+ save $; save TA;
+ picture $;
+ string TTm;
+ TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
+ fi;
+ path TA;
+ TA=OvalBox(TTm);
+ $=image(
+ fill TA if print : withcolor white else : withcolor MessageTrois fi;
+ draw TA if print=false : withcolor coefprint*white fi;
+ label(LATEXSCRATCH(TTm), center TA);
+ );
+ $
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Rectangles
+vardef RecMouvMenu(expr ar)=
+ save $; picture $;
+ path ta; string TTm;
+ TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown"
+ fi;
+ ta=RecBox(TTm);
+ $=image(
+ fill ta if print=false : withcolor BleuMouvTrois else: withcolor white fi;
+ draw ta if print=false : withcolor coefprint*white fi;
+ label(LATEXSCRATCH(TTm),center ta);
+ );
+ $
+enddef;
+
+vardef RecMenuApp(expr ar)=
+ save $; picture $;
+ save ta; path ta; string TTm;
+ TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
+ fi;
+ ta=RecBox(TTm);
+ $=image(
+ fill ta if print=false : withcolor VioletAppTrois else: withcolor white fi;
+ draw ta if print=false : withcolor coefprint*white fi;
+ label(LATEXSCRATCH(TTm),center ta);
+ );
+ $
+enddef;
+
+vardef RecMenuOp(expr ar)=
+ save $; save TA;
+ picture $; string TTm;
+ TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
+ fi;
+ path TA;
+ TA=RecBox(TTm);
+ $=image(
+ fill TA if print : withcolor white else : withcolor FondOvalOp fi;
+ draw TA if print=false : withcolor coefprint*white fi;
+ label(LATEXSCRATCH(TTm), center TA);
+ );
+ $
+enddef;
+
+vardef RecMenuSon(expr ar)=
+ save $; save TA;
+ picture $; string TTm;
+ TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown" fi;
+ path TA;
+ TA=RecBox(TTm);
+ $=image(
+ fill TA if print : withcolor white else : withcolor SonTrois fi;
+ draw TA if print=false : withcolor coefprint*white fi;
+ label(LATEXSCRATCH(TTm), center TA);
+ );
+ $
+enddef;
+
+vardef RecEvenementMenu(expr ar)=
+ save $; picture $;
+ path ta; string TTm;
+ TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
+ fi;
+ ta=RecBox(TTm);
+ $=image(
+ fill ta if print=false : withcolor EvenementTrois else: withcolor white fi;
+ draw ta if print=false : withcolor coefprint*white fi;
+ label(LATEXSCRATCH(TTm),center ta);
+ );
+ $
+enddef;
+
+vardef RecMenuCap(expr ar)=
+ save $; picture $;
+ path ta; string TTm;
+ TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
+ fi;
+ ta=RecBox(TTm);
+ $=image(
+ fill ta if print=false : withcolor CapteurTrois else: withcolor white fi;
+ draw ta if print=false : withcolor coefprint*white fi;
+ label(LATEXSCRATCH(TTm),center ta);
+ );
+ $
+enddef;
+
+vardef RecMenuVar(expr ar)=
+ save $; save TA;
+ picture $; string TTm;
+ TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
+ fi;
+ path TA;
+ TA=RecBox(TTm);
+ $=image(
+ fill TA if print : withcolor white else : withcolor OrangeTrois fi;
+ draw TA if print=false : withcolor coefprint*white fi;
+ label(LATEXSCRATCH(TTm), center TA);
+ );
+ $
+enddef;
+
+vardef RecMenuList(expr ar)=
+ save $; save TA;
+ picture $; string TTm;
+ TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
+ fi;
+ path TA;
+ TA=RecBox(TTm);
+ $=image(
+ fill TA if print : withcolor white else : withcolor OrangeListTrois fi;
+ draw TA if print=false : withcolor coefprint*white fi;
+ label(LATEXSCRATCH(TTm), center TA);
+ );
+ $
+enddef;
+
+%%%%%%% Affichage Complet %%%%%%%%%%%%%
+vardef PuzzleBox(text t)=
+ save $; path $; path xo;
+ xo=Box(t);%on crée la boite contenant le texte
+ $=(llcorner xo+(-eb,0)){dir-90}..{dir0}(llcorner xo+(0,-eb))--
+ (llcorner xo+(0.375cm,0)+(-eb,-eb)){dir0}..
+ {dir0}(llcorner xo+(0.375cm,0)+(0,-2eb))--
+ (llcorner xo+(0.625cm,0)+(0,-2eb)){dir0}..
+ {dir0}(llcorner xo+(0.625cm,0)+(eb,-eb))--
+ (lrcorner xo+(0,-eb)){dir0}..{dir90}(lrcorner xo+(eb,0))--(urcorner xo+(eb,0)){dir90}..{dir-180}(urcorner xo+(0,eb))--
+ (ulcorner xo+(0.625cm,0)+(eb,eb)){dir180}..
+ {dir180}(ulcorner xo+(0.625cm,0))--
+ (ulcorner xo+(0.375cm,0)){dir180}..
+ {dir180}(ulcorner xo+(0.375cm,0)+(-eb,eb))--
+ (ulcorner xo+(0,eb)){dir-180}..{dir-90}(ulcorner xo+(-eb,0))--cycle;
+ $
+enddef;
+
+vardef BlocPuzzle(text nombloc)=
+ save Bpuzzle; picture Bpuzzle;
+ path TABp; picture LOCMp;
+ LOCMp=ColleBoxNew(nombloc);
+ TABp=PuzzleBox(LOCMp);
+ Bpuzzle=image(
+ fill TABp if print=false : withcolor BlocDefTrois else : withcolor white fi;
+ draw LOCMp;
+ draw TABp if print=true : withcolor black else: withcolor BlocDefLigneTrois fi;
+ );
+ Bpuzzle:=Bpuzzle shifted(-center Bpuzzle+(0,-eb/2));
+ Bpuzzle
+enddef;
+
+vardef ColleBoxNew(text t)=%Pour coller plusieurs boites
+ save Colle; picture Colle;
+ Colle=nullpicture;
+ numeric nbcolle; nbcolle:=0;
+ save NBCOLLE; path NBCOLLE;
+ for p_ = t:
+ nbcolle:=nbcolle+1;
+ endfor;
+ picture HOLD; HOLD:=nullpicture;
+ if unknown LONG: LONG:=0 fi;
+ if nbcolle=1:%On dessine
+ for p_ = t:
+ if string p_:
+ NBCOLLE:=Box(p_);
+ HOLD:=image(
+ label(LATEXSCRATCH("\sffamily\bfseries\longbarre "&p_),(0,0)) if print=false : withcolor white fi;%->ok
+ );
+ HOLD:=(HOLD shifted ((xpart((center HOLD)-(llcorner HOLD))+LONG,0)));
+ else:
+ HOLD:=(p_ shifted ((xpart((center p_)-(llcorner p_))+LONG,0)));
+ fi;
+ endfor;
+ addto Colle also HOLD;
+ LONG:=LONG+abs(lrcorner Colle - llcorner Colle)+eb;
+ else:%il faut coller les boites une à une
+ for p_ = t:
+ addto Colle also (ColleBoxNew(p_));
+ endfor;
+ fi;
+ Colle
+enddef;
+
+vardef CADRE(expr texti)=
+ save $; path $;
+ $=(llcorner texti+(-eb,0)){dir-90}..{dir0}(llcorner texti+(0,-eb))--
+ (llcorner texti+(0.375cm,0)+(-eb,-eb)){dir0}..
+ {dir0}(llcorner texti+(0.375cm,0)+(0,-2eb))--
+ (llcorner texti+(0.625cm,0)+(0,-2eb)){dir0}..
+ {dir0}(llcorner texti+(0.625cm,0)+(eb,-eb))--
+ (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir-180}(urcorner texti+(0,eb))--
+ (ulcorner texti+(0.625cm,0)+(eb,eb)){dir180}..
+ {dir180}(ulcorner texti+(0.625cm,0))--
+ (ulcorner texti+(0.375cm,0)){dir180}..
+ {dir180}(ulcorner texti+(0.375cm,0)+(-eb,eb))--
+ (ulcorner texti+(0,eb)){dir-180}..{dir-90}(ulcorner texti+(-eb,0))--cycle;
+ $
+enddef;
+
+vardef AFFI(expr texta)=
+ path cadre;
+ cadre=CADRE(texta);
+ picture TEXT;
+ TEXT=image(%
+ fill cadre withcolor if print=true :coefprint*white else: if unknown ColBloc : white else : ColBloc fi; fi;
+ draw texta;
+ draw cadre withcolor CoulLignes;
+ );
+ TEXT
+enddef;
+
+vardef Affichage(expr textu)=
+ save $;
+ picture $;
+ $=AFFI(textu);
+ $:=$ shifted (if unknown _coinprec:(0,0) else :_coinprec fi - (ulcorner $));
+_coinprec:=(llcorner $)+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+ label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+ Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+
+%Pour les blocs de type contrôle
+vardef CADRECONTROLE(expr texti)=
+ save $; path $;
+ path tracecadre;
+ $=(llcorner texti+(-eb,-eb))--%(llcorner texti+(0,-eb))--
+ (llcorner texti+(0.875cm,0)+(-eb,-eb)){dir0}..
+ {dir0}(llcorner texti+(0.875cm,0)+(0,-2eb))--
+ (llcorner texti+(1.125cm,0)+(0,-2eb)){dir0}..
+ {dir0}(llcorner texti+(1.125cm,0)+(eb,-eb))--
+ (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir180}(urcorner texti+(0,eb))--
+ (ulcorner texti+(0.625cm,0)+(eb,eb)){dir180}..
+ {dir180}(ulcorner texti+(0.625cm,0))--
+ (ulcorner texti+(0.375cm,0)){dir180}..
+ {dir180}(ulcorner texti+(0.375cm,0)+(-eb,eb))--
+ (ulcorner texti+(0,eb)){dir180}..{dir-90}(ulcorner texti+(-eb,0))--cycle;
+ tracecadre=(llcorner texti+(0.5cm,0)+(0,-eb))--(llcorner texti+(0.875cm,0)+(-eb,-eb)){dir0}..
+ {dir0}(llcorner texti+(0.875cm,0)+(0,-2eb))--
+ (llcorner texti+(1.125cm,0)+(0,-2eb)){dir0}..
+ {dir0}(llcorner texti+(1.125cm,0)+(eb,-eb))--
+ (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir180}(urcorner texti+(0,eb))--
+ (ulcorner texti+(0.625cm,0)+(eb,eb)){dir180}..
+ {dir180}(ulcorner texti+(0.625cm,0))--
+ (ulcorner texti+(0.375cm,0)){dir180}..
+ {dir180}(ulcorner texti+(0.375cm,0)+(-eb,eb))--
+ (ulcorner texti+(0,eb)){dir180}..{dir-90}(ulcorner texti+(-eb,0))--
+ (llcorner texti+(-eb,-eb));
+ $
+enddef;
+
+vardef AFFICONTROLE(expr texta)=
+ path cadre;
+ cadre=CADRECONTROLE(texta);
+ picture TEXT;
+ TEXT=image(
+ fill cadre withcolor if print=true :coefprint*white else: if unknown ColBloc : white else : ColBloc fi; fi;
+ draw texta;
+ draw tracecadre withcolor CoulLignes;
+ );
+ TEXT
+enddef;
+
+vardef AffichageControle(expr textu)=
+ save $;
+ picture $;
+ $=AFFICONTROLE(textu);
+ $:=$ shifted (if unknown _coinprec:(0,0) else :_coinprec fi - (ulcorner $));
+_coinprec:=llcorner $+(0.5cm,0);
+_coinprec:=_coinprec+(0,eb);
+coindebutbloc[numblocrep]:=(llcorner $)+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+ label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+ Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+
+vardef CADREED(expr texti)=
+ save $; path $;
+ $=(llcorner texti+(-eb,0)){dir-90}..{dir0}(llcorner texti+(0,-eb))--
+ (llcorner texti+(0.375cm,0)+(-eb,-eb)){dir0}..
+ {dir0}(llcorner texti+(0.375cm,0)+(0,-2eb))--
+ (llcorner texti+(0.625cm,0)+(0,-2eb)){dir0}..
+ {dir0}(llcorner texti+(0.625cm,0)+(eb,-eb))--
+ (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir-180}(urcorner texti+(0,eb))--
+ 1/2[ulcorner texti+(-eb,eb),urcorner texti+(eb,eb)]{dir150}..{dir-150}(ulcorner texti+(-eb,eb))--cycle;
+ $
+enddef;
+
+vardef AFFIED(expr texta)=
+ path cadre;
+ cadre=CADREED(texta);
+ picture TEXT;
+ TEXT=image(
+ fill cadre withcolor if print=true :coefprint*white else: if unknown ColBloc : white else : ColBloc fi; fi;
+ draw texta;
+ draw cadre withcolor CoulLignes;
+ );
+ TEXT
+enddef;
+
+vardef AffichageED(expr textu)=
+ save $;
+ picture $;
+ $=AFFIED(textu);
+ $:=$ shifted (if unknown _coinprec:(0,0) else :_coinprec fi - (ulcorner $));
+_coinprec:=llcorner $;
+_coinprec:=_coinprec+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+ label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+ Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+
+%%% section Mouvement %%%%%%%%%%
+vardef Avancer(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string nbpas:
+ texto=ColleBoxNew("avancer de",OvalNb(nbpas),"pas");
+ else:
+ texto=ColleBoxNew("avancer de",nbpas,"pas");
+ fi;
+ ColBloc:=BleuMouvTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef Arcdroite=
+ save $;
+ picture $;
+ $=image(
+ path cc;
+ cc=fullcircle scaled 10pt;
+ drawarrow reverse(subpath(0,0.75*length cc) of cc) withpen pencircle scaled 2bp if print=false: withcolor white fi;
+ );
+ $
+enddef;
+
+vardef Arcgauche=
+ save $;
+ picture $;
+ $=image(
+ path cc;
+ cc=fullcircle scaled 10pt;
+ drawarrow (subpath(0.75*length cc,1.5*length cc) of cc) withpen pencircle scaled 2bp if print=false: withcolor white fi;
+ );
+ $
+enddef;
+
+vardef Tournerd(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string nbpas:
+ if symbole=true:
+ texto=ColleBoxNew("tourner",Arcdroite,"de",OvalNb(nbpas),"degré(s)");
+ else:
+ texto=ColleBoxNew("tourner à droite de",OvalNb(nbpas),"degré(s)");
+ fi;
+ else:
+ if symbole=true:
+ texto=ColleBoxNew("tourner",Arcdroite,"de",nbpas,"degré(s)");
+ else:
+ texto=ColleBoxNew("tourner à droite de",nbpas,"degré(s)");
+ fi;
+ fi;
+ ColBloc:=BleuMouvTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef Tournerg(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string nbpas:
+ if symbole=true:
+ texto=ColleBoxNew("tourner",Arcgauche,"de",OvalNb(nbpas),"degré(s)");
+ else:
+ texto=ColleBoxNew("tourner à gauche de",OvalNb(nbpas),"degré(s)");
+ fi;
+ else:
+ if symbole=true:
+ texto=ColleBoxNew("tourner",Arcgauche,"de",nbpas,"degré(s)");
+ else:
+ texto=ColleBoxNew("tourner à gauche de",nbpas,"degré(s)");
+ fi;
+ fi;
+ ColBloc:=BleuMouvTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef Orienter(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string nbpas:
+ texto=ColleBoxNew("s'orienter à",OvalNb(nbpas));
+ else:
+ texto=ColleBoxNew("s'orienter à",nbpas);
+ fi;
+ ColBloc:=BleuMouvTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef Orienterdirection(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string nbpas:
+ texto=ColleBoxNew("s'orienter vers",OvalMouvMenu(nbpas));
+ else:
+ texto=ColleBoxNew("s'orienter vers",nbpas);
+ fi;
+ ColBloc:=BleuMouvTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef OrienterVers(expr nbpass)=Orienterdirection(nbpass) enddef;
+
+vardef Aller(expr xa,ya)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ texto=ColleBoxNew("aller à x:",if string xa:OvalNb(xa) else: xa fi,"y:",if string ya:OvalNb(ya) else: ya fi);
+ ColBloc:=BleuMouvTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef Glisser(expr na,xa,ya)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ texto=ColleBoxNew("glisser en",if string na:OvalNb(na) else: na fi,"seconde(s) à x :",if string xa:OvalNb(xa) else: xa fi,"y:",if string ya:OvalNb(ya) else: ya fi);
+ ColBloc:=BleuMouvTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef Allera(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string nbpas:
+ texto=ColleBoxNew("aller à",OvalMouvMenu(nbpas));
+ ColBloc:=BleuMouvTrois;
+ $=Affichage(texto);
+ else:
+ message("");
+ message("La commande -- Allera -- n'accepte qu'un type string comme argument.");
+ message("");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef Glissera(expr na,xa)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string xa:
+ texto=ColleBoxNew("glisser en",if string na:OvalNb(na) else: na fi,"seconde(s) à",OvalMouvMenu(xa));
+ ColBloc:=BleuMouvTrois;
+ $=Affichage(texto);
+else:
+ message("");
+ message("La commande -- Glissera -- n'accepte qu'un type string comme deuxième argument.");
+ message("");
+ $=nullpicture;
+fi;
+ $
+enddef;
+
+vardef Ajouter(expr nba,xa)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string xa:
+ texto=ColleBoxNew("ajouter",if string nba:OvalNb(nba) else: nba fi,"à",xa);
+ ColBloc:=BleuMouvTrois;
+ $=Affichage(texto);
+else:
+ message("");
+ message("La commande -- Ajouter -- n'accepte qu'un type string comme deuxième argument.");
+ message("");
+ $=nullpicture;
+fi;
+$
+enddef;
+
+vardef Mettre(expr xa,nba)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string xa:
+ texto=ColleBoxNew("mettre",xa,"à",if string nba:OvalNb(nba) else: nba fi);
+ ColBloc:=BleuMouvTrois;
+ $=Affichage(texto);
+ else:
+ message("");
+ message("La commande -- Mettre -- n'accepte qu'un type string comme premier argument.");
+ message("");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef Rebondir=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ texto=ColleBoxNew("rebondir si le bord est atteint");
+ ColBloc:=BleuMouvTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef FixerSensRotation(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string nbpas:
+ texto=ColleBoxNew("fixer le sens de rotation",RecMouvMenu(nbpas));%RecMouvMenu(nbpas));
+ ColBloc:=BleuMouvTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande --FixerSensRotation-- admet un seul argument de type string");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+%%%% fin section Mouvement %%%%%%
+
+%%%%% Section Apparence %%%%%%%%%
+vardef DireT(expr na,xa)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("dire",if string na:OvalText(na) else: na fi,"pendant",if string xa : OvalNb(xa) else: xa fi,"seconde(s)");
+ColBloc:=VioletAppTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef Dire(expr na)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("dire",if string na:OvalText(na) else: na fi);
+ColBloc:=VioletAppTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef PenserT(expr na,xa)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("penser à",if string na:OvalText(na) else: na fi,"pendant",if string xa : OvalNb(xa) else: xa fi,"seconde(s)");
+ColBloc:=VioletAppTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef Penser(expr na)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("penser à",if string na:OvalText(na) else: na fi);
+ColBloc:=VioletAppTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef Montrer=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("montrer");
+ ColBloc:=VioletAppTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef Cacher=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("cacher");
+ ColBloc:=VioletAppTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef Basculer(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew("basculer sur le costume",OvalAppMenu(nbpas));
+ ColBloc:=VioletAppTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande --Basculer-- n'accepte qu'un argument string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef BasculerCostume(expr nbpass)=Basculer(nbpass) enddef;
+
+vardef CostumeSuivant=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("costume suivant");
+ ColBloc:=VioletAppTrois;
+ $=Affichage(texto);
+$
+enddef;
+
+vardef ARSuivant=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("arrière-plan suivant");
+ ColBloc:=VioletAppTrois;
+ $=Affichage(texto);
+$
+enddef;
+
+vardef BasculerAR(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew("basculer sur l'arrière-plan",OvalAppMenu(nbpas));
+ ColBloc:=VioletAppTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande --BasculerAR-- n'accepte qu'un argument string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef BasculerARA(expr nbpas)=%quand la scène est sélectionnée...
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew("basculer sur l'arrière-plan",OvalAppMenu(nbpas)," et attendre");
+ ColBloc:=VioletAppTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande --BasculerARA-- n'accepte qu'un argument string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef AjouterEffet(expr nbpas,xa)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string xa:
+ texto=ColleBoxNew("ajouter",if string nbpas: OvalNb(nbpas) else: nbpas fi," à l'effet",RecMenuApp(xa));
+ ColBloc:=VioletAppTrois;
+ $=Affichage(texto);
+else:
+ message("La commande --AjouterEffet-- n'accepte qu'un deuxième argument de type string.");
+ $=nullpicture;
+fi;
+$
+enddef;
+
+vardef MettreEffet(expr xa,nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string xa:
+ texto=ColleBoxNew("mettre l'effet",RecMenuApp(xa),"à",if string nbpas:OvalNb(nbpas) else: nbpas fi);
+ ColBloc:=VioletAppTrois;
+ $=Affichage(texto);
+else:
+ message("La commande --MettreEffet-- n'accepte qu'un premier argument de type string.");
+ $=nullpicture;
+fi;
+$
+enddef;
+
+vardef AnnulerEffet=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("annuler les effets graphiques");
+ ColBloc:=VioletAppTrois;
+ $=Affichage(texto);
+$
+enddef;
+
+vardef AnnulerEffets=AnnulerEffet enddef;
+
+vardef AjouterTaille(expr na)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("ajouter",if string na:OvalNb(na) else: na fi,"à la taille");
+ColBloc:=VioletAppTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef MettreA(expr na)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("mettre la taille à",if string na:OvalNb(na) else: na fi,"\% de la taille initiale");
+ColBloc:=VioletAppTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef MettreTaille(expr art)=MettreA(art) enddef;
+
+vardef AllerPlan(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew("aller à l'",RecMenuApp(nbpas),"plan");
+ ColBloc:=VioletAppTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande --AllerPlan-- n'accepte qu'un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef DeplacerPlan(expr nbpas,xa)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string xa:
+ texto=ColleBoxNew("déplacer de",if string nbpas:OvalNb(nbpas) else: nbpas fi,"plan(s) vers l'",RecMenuApp(xa));
+ ColBloc:=VioletAppTrois;
+ $=Affichage(texto);
+else:
+ message("La commande --DeplacerPlan-- n'accepte qu'un deuxième argument de type string.");
+ $=nullpicture;
+fi;
+$
+enddef;
+%%%%fin Section Apparance%%%%%%%%%%%%
+
+%%%%%% Section Son%%%%%%%%%%%%
+vardef Jouer(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string nbpas :
+ texto=ColleBoxNew("jouer le son",OvalMenuSon(nbpas));
+ ColBloc:=SonTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande --Jouer-- n'accepte qu'un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef JouerT(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string nbpas:
+ texto=ColleBoxNew("jouer le son",OvalMenuSon(nbpas)," jusqu'au bout");
+ ColBloc:=SonTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande --Jouer-- n'accepte qu'un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef ArreterSon=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ texto=ColleBoxNew("arrêter tous les sons");
+ ColBloc:=SonTrois;;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef ArreterSons=ArreterSon enddef;
+
+vardef AjouterVol(expr xa)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ texto=ColleBoxNew("ajouter",if string xa:OvalNb(xa) else: xa fi," au volume");
+ ColBloc:=SonTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef MettreVol(expr xa)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ texto=ColleBoxNew("mettre le volume à",if string xa: OvalNb(xa) else: xa fi,"~\%");
+ ColBloc:=SonTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef AjouterEffetSon(expr nombre, effet)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string effet:
+ texto=ColleBoxNew("ajouter",if string nombre : OvalNb(nombre) else: nombre fi," à l'effet",RecMenuSon(effet));
+ ColBloc:=SonTrois;
+ $=Affichage(texto);
+else:
+ message("La commande -- AjouterEffet -- n'accepte qu'un deuxième argument de type string.");
+ $=nullpicture;
+fi;
+$
+enddef;
+
+vardef MettreEffetSon(expr effet,nombre)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string effet:
+ texto=ColleBoxNew("mettre l'effet",RecMenuSon(effet),"à",if string nombre:OvalNb(nombre) else: nombre fi);
+ ColBloc:=SonTrois;
+ $=Affichage(texto);
+else:
+ message("La commande -- MettreEffet -- n'accepte qu'un argument de type string.");
+ $=nullpicture;
+fi;
+$
+enddef;
+
+vardef AnnulerEffetSon=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ texto=ColleBoxNew("annuler tous les effets sonores");
+ ColBloc:=SonTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+%Musique
+vardef Tambour(expr na,xa)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string na:
+ texto=ColleBoxNew(DoubleNote,"jouer du tambour",OvalStylo(na),"pendant",if string xa:OvalNb(xa) else: xa fi,"temps");
+ ColBloc:=StyloTrois;
+ $=Affichage(texto);
+else:
+ message("La commande --Tambour-- n'accepte qu'un premier argument de type string.");
+ $=nullpicture;
+fi;
+$
+enddef;
+
+vardef Pause(expr na)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ texto=ColleBoxNew(DoubleNote,"faire une pause pendant",if string na: OvalNb(na) else: na fi," temps");
+ ColBloc:=StyloTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef JouerNote(expr na,xa)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ texto=ColleBoxNew(DoubleNote,"jouer la note",if string na:OvalNb(na) else: na fi," pendant",if string xa:OvalNb(xa) else: xa fi," temps");
+ColBloc:=StyloTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef ChoisirInstrument(expr na)=
+ LONG:=0;
+ save $;
+ picture $, texto;
+ if string na:
+ texto=ColleBoxNew(DoubleNote,"choisir l'instrument \no{}",OvalStylo(na));
+ ColBloc:=StyloTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande -- ChoisirInstrument -- n'accepte qu'un argument de type string");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef MettreTempo(expr xa)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew(DoubleNote,"mettre le tempo à",if string xa:OvalNb(xa) else: xa fi);
+ ColBloc:=FondSonTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef AjouterTempo(expr xa)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew(DoubleNote,"ajouter",if string xa:OvalNb(xa) else: xa fi," au tempo");
+ColBloc:=FondSonTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef DoubleNote=
+ save $;
+ picture $;
+ $=image(
+ draw (((0,0)--(0,18pt)) shifted(-12,-9pt)) withpen pencircle scaled 1bp withcolor if print: coefprint*white else: StyloTrois fi;
+ draw NoteImage shifted((-5,-2));
+ draw NoteImage shifted((3.5,2));
+ draw (((0,0)--(0,18pt)) shifted(12,-9pt)) withpen pencircle scaled 1bp withcolor if print: 0.5*coefprint*white else: (69/255,168/255,140/255) fi;%Trop clair->(14/255,187/255,139/255);
+);
+ $:=$ shifted(-3,0);
+ $
+enddef;
+
+vardef NoteImage=
+ save $;
+ picture $;
+ $=image(
+ linecap := butt;
+ linejoin := mitered;
+ fill (80.695297,716.262024)..controls (80.574203,716.257996) and (80.476601,716.171997)..(80.480499,716.062988)
+ --(80.687500,704.125000)..controls (79.941399,704.570007) and (78.644501,704.637024)..(77.312500,704.223022)
+ ..controls (75.503899,703.659973) and (74.339798,702.429993)..(74.710899,701.473022)
+ ..controls (75.082001,700.512024) and (76.851601,700.187988)..(78.656303,700.750000)
+ ..controls (80.425797,701.301025) and (81.574203,702.504028)..(81.273399,703.453003)
+ --(81.125000,711.987976)..controls (82.910202,711.909973) and (86.910202,711.625000)..(84.917999,706.456970)
+ ..controls (85.992203,707.906006) and (86.839798,709.598022)..(85.273399,711.629028)
+ ..controls (84.378899,712.789001) and (81.617203,713.348022)..(81.062500,715.398010)
+ --(81.054703,716.065979)..controls (81.050797,716.176025) and (80.953102,716.262024)..(80.832001,716.262024)
+ --cycle if print=false: withcolor white fi;
+ pickup pencircle scaled 0.797011bp;
+ draw (80.695297,716.262024)..controls (80.574203,716.257996) and (80.476601,716.171997)..(80.480499,716.062988)
+ --(80.687500,704.125000)..controls (79.941399,704.570007) and (78.644501,704.637024)..(77.312500,704.223022)
+ ..controls (75.503899,703.659973) and (74.339798,702.429993)..(74.710899,701.473022)
+ ..controls (75.082001,700.512024) and (76.851601,700.187988)..(78.656303,700.750000)
+ ..controls (80.425797,701.301025) and (81.574203,702.504028)..(81.273399,703.453003)
+ --(81.125000,711.987976)..controls (82.910202,711.909973) and (86.910202,711.625000)..(84.917999,706.456970)
+ ..controls (85.992203,707.906006) and (86.839798,709.598022)..(85.273399,711.629028)
+ ..controls (84.378899,712.789001) and (81.617203,713.348022)..(81.062500,715.398010)
+ --(81.054703,716.065979)..controls (81.050797,716.176025) and (80.953102,716.262024)..(80.832001,716.262024)
+ --cycle if print=false: withcolor white fi;
+ pickup pencircle scaled eppen;
+ );
+ $:=($ rotatedabout((72.000000,699),15)) scaled 0.8;
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+%%%%%% fin Section Son %%%%%%%%%
+
+%%%%%% Section Stylo %%%%%%%%%
+vardef ImageCrayon=
+ save titi;
+ picture titi;
+ titi=image(%
+ draw CrayonImage shifted(-12,0);
+ draw (((0,0)--(0,18pt)) shifted(9,-9)) withpen pencircle scaled 1bp withcolor if print: 0.5*coefprint*white else: (69/255,168/255,140/255) fi;%Trop clair->(14/255,187/255,139/255);
+ );
+ titi
+enddef;
+
+vardef Effacer=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew(ImageCrayon,"effacer tout");
+ ColBloc:=StyloTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef Estampiller=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew(ImageCrayon,"estampiller");
+ ColBloc:=StyloTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef PoserStylo=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew(ImageCrayon," stylo en position d'écriture");
+ ColBloc:=StyloTrois;
+ $=Affichage(texto);
+$
+enddef;
+
+vardef ReleverStylo=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew(ImageCrayon,"relever le stylo");
+ ColBloc:=StyloTrois;
+ $=Affichage(texto);
+$
+enddef;
+
+vardef MettreCouleur(expr redc,greenc,bluec)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew(ImageCrayon," mettre la couleur du stylo à",OvalCouleur(redc,greenc,bluec));
+ ColBloc:=StyloTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef AjouterCS(text t)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ numeric k; k=0;
+ for p_=t:
+ if k=1:string effet; effet=p_ fi;
+ if k=0: if string p_:string nombre; nombre=p_ else: if picture p_: picture nombre; nombre=p_; fi fi fi;
+ k:=k+1;
+ endfor;
+ texto=ColleBoxNew(ImageCrayon,"ajouter",if string nombre:OvalNb(nombre) else: nombre fi,"à la",OvalStylo(effet),"du stylo");
+ColBloc:=StyloTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef MettreCS(text t)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ numeric k; k=0;
+ for p_=t:
+ if k=0:string effet; effet=p_ fi;
+ if k=1: if string p_:string nombre; nombre=p_ else: if picture p_: picture nombre; nombre=p_; fi fi fi;
+ k:=k+1;
+ endfor;
+ texto=ColleBoxNew(ImageCrayon,"mettre la",OvalStylo(effet),"du stylo à",if string nombre:OvalNb(nombre) else: nombre fi);
+ColBloc:=StyloTrois;
+$=Affichage(texto);
+$
+enddef;
+
+%taille du stylo
+vardef AjouterTS(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew(ImageCrayon,"ajouter",if string nbpas:OvalNb(nbpas) else: nbpas fi,"à la taille du stylo");
+ColBloc:=StyloTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef MettreTS(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew(ImageCrayon,"mettre la taille du stylo à",if string nbpas:OvalNb(nbpas) else: nbpas fi);
+ColBloc:=StyloTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef CrayonImage=
+ picture cray;
+ cray=image(%
+ drawoptions (if print=false:withcolor (0.298050,0.556850,0.917650) fi);
+ linecap := butt;
+ linejoin := mitered;
+ fill (0.960938,1.390630)--(1.644530,2.996090)..controls (1.730470,3.199220) and (1.917970,3.500000)..(2.062500,3.664060)..controls (2.324220,3.968750) and (3.539060,2.753910)..(3.234380,2.488280)..controls (3.070310,2.343750) and (2.769530,2.160160)..(2.566410,2.074220)--cycle;
+ drawoptions (withcolor (0.349030,0.368640,0.450970));
+ pickup pencircle scaled 0.498140bp;
+ draw (0.960938,1.390630)--(1.644530,2.996090)..controls (1.730470,3.199220) and (1.917970,3.500000)..(2.062500,3.664060)..controls (2.324220,3.968750) and (3.539060,2.753910)..(3.234380,2.488280)..controls (3.070310,2.343750) and (2.769530,2.160160)..(2.566410,2.074220)--cycle;
+ drawoptions (withcolor (1.000000,1.000000,1.000000));
+ %pickup pencircle scaled 0.000000bp;
+ fill (1.800780,3.363280)--(2.558590,5.156250)..controls (2.601560,5.257810) and (2.699220,5.402340)..(2.777340,5.480470)--(8.281250,10.984400)..controls (8.300780,11.003900) and (8.339840,11.023400)..(8.367190,11.031300)..controls (9.757810,11.398400) and (10.968800,10.187500)..(10.601600,8.792970)..controls (10.593800,8.769530) and (10.574200,8.730470)..(10.554700,8.710940)--(6.316410,4.476560)..controls (5.539060,3.695310) and (4.089840,2.718750)..(3.074220,2.289060)--(2.980470,2.246090)..controls (2.957030,2.238280) and (2.953130,2.242190)..(2.972660,2.261720)..controls (3.539060,2.753910) and (2.324220,3.968750)..(1.800780,3.363280)--cycle;
+ drawoptions (if print=false:withcolor (0.349030,0.368640,0.450970) fi);
+ pickup pencircle scaled 0.498140bp;
+ draw (1.800780,3.363280)--(2.558590,5.156250)..controls (2.601560,5.257810) and (2.699220,5.402340)..(2.777340,5.480470)--(8.281250,10.984400)..controls (8.300780,11.003900) and (8.339840,11.023400)..(8.367190,11.031300)..controls (9.757810,11.398400) and (10.968800,10.187500)..(10.601600,8.792970)..controls (10.593800,8.769530) and (10.574200,8.730470)..(10.554700,8.710940)--(6.316410,4.476560)..controls (5.539060,3.695310) and (4.089840,2.718750)..(3.074220,2.289060)--(2.980470,2.246090)..controls (2.957030,2.238280) and (2.953130,2.242190)..(2.972660,2.261720)..controls (3.539060,2.753910) and (2.324220,3.968750)..(1.800780,3.363280);
+ drawoptions (if print=false:withcolor (0.298050,0.556850,0.917650) fi);
+ %pickup pencircle scaled 0.000000bp;
+ fill (8.316410,11.019500)--(13.031300,15.730500)..controls (13.109400,15.808600) and (13.257800,15.878900)..(13.371100,15.886700)..controls (14.308600,15.949200) and (15.519500,14.734400)..(15.457000,13.796900)..controls (15.449200,13.687500) and (15.378900,13.535200)..(15.300800,13.457000)--(10.589800,8.746090)..controls (10.968800,10.187500) and (9.757810,11.398400)..(8.316410,11.019500)--cycle;
+ drawoptions (if print=false:withcolor (0.349030,0.368640,0.450970) fi);
+ pickup pencircle scaled 0.498140bp;
+ draw (8.316410,11.019500)--(13.031300,15.730500)..controls (13.109400,15.808600) and (13.257800,15.878900)..(13.371100,15.886700)..controls (14.308600,15.949200) and (15.519500,14.734400)..(15.457000,13.796900)..controls (15.449200,13.687500) and (15.378900,13.535200)..(15.300800,13.457000)--(10.589800,8.746090)..controls (10.968800,10.187500) and (9.757810,11.398400)..(8.316410,11.019500)--cycle;
+ draw (12.562500,15.265600)..controls (7.937500,15.644500) and (9.453130,10.488300)..(6.117190,11.398400);
+ %pickup pencircle scaled 0.000000bp;
+ fill (7.199220,12.785200)..controls (6.812500,13.175800) and (6.179690,13.175800)..(5.792970,12.785200)..controls (5.402340,12.398400) and (5.402340,11.765600)..(5.792970,11.378900)..controls (6.179690,10.988300) and (6.812500,10.988300)..(7.199220,11.378900)..controls (7.589840,11.765600) and (7.589840,12.398400)..(7.199220,12.785200)--cycle;
+ fill (6.496090,12.082000)--cycle;
+ pickup pencircle scaled 0.498140bp;
+ draw (7.199220,12.785200)..controls (6.812500,13.175800) and (6.179690,13.175800)..(5.792970,12.785200)..controls (5.402340,12.398400) and (5.402340,11.765600)..(5.792970,11.378900)..controls (6.179690,10.988300) and (6.812500,10.988300)..(7.199220,11.378900)..controls (7.589840,11.765600) and (7.589840,12.398400)..(7.199220,12.785200)--cycle;
+ draw (6.496090,12.082000);
+ drawoptions();
+ pickup pencircle scaled 0bp;
+ draw (-3,0)--(-3,18) withcolor if print : coefprint*white else: StyloTrois fi;
+ pickup pencircle scaled eppen;
+ );
+ cray:=cray shifted((0,-9pt));
+ cray
+enddef;
+
+%%%%%% Fin Section Stylo %%%%%%%%
+
+%%%%%% Section Contrôle %%%%%%%%%
+color colControle;
+colControle:=OrangeConTrois;
+
+vardef AffichageStop=
+ path cadre;
+ cadre=(llcorner texto+(-eb,0)){dir-90}..{dir0}(llcorner texto+(0,-eb))--
+ (lrcorner texto+(0,-eb)){dir0}..{dir90}(lrcorner texto+(eb,0))--(urcorner texto+(eb,0)){dir90}..{dir180}(urcorner texto+(0,eb))--
+ (ulcorner texto+(0.625cm,0)+(eb,eb)){dir180}..
+ {dir180}(ulcorner texto+(0.625cm,0))--
+ (ulcorner texto+(0.375cm,0)){dir180}..
+ {dir180}(ulcorner texto+(0.375cm,0)+(-eb,eb))--
+ (ulcorner texto+(0,eb)){dir180}..{dir-90}(ulcorner texto+(-eb,0))--cycle;
+ picture TEXT;
+ TEXT=image(
+ fill cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
+ draw texto;
+ draw cadre withcolor CoulLignes;
+ );
+ TEXT
+enddef;
+
+pair coindebutbloc[];
+numeric numblocrep;
+numblocrep:=0;
+
+vardef Repeter(expr xa)=
+ LONG:=0;
+ save $;
+ numblocrep:=numblocrep+1;
+ picture $,texto;
+ texto=ColleBoxNew("répéter", if string xa : OvalNb(xa) else: xa fi,"fois");
+LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
+ColBloc:=OrangeConTrois;
+$=AffichageControle(texto);
+$
+enddef;
+
+vardef RepeterI=
+ LONG:=0;
+ save $;
+ numblocrep:=numblocrep+1;
+ picture $,texto;
+ texto=ColleBoxNew("répéter indéfiniment");
+ LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
+ ColBloc:=OrangeConTrois;
+ $=AffichageControle(texto);
+ $
+enddef;
+
+vardef RepeterJ(expr xa)=
+ LONG:=0;
+ save $;
+ numblocrep:=numblocrep+1;
+ picture $,texto;
+ if picture xa:
+ texto=ColleBoxNew("répéter jusqu'à ce que",xa);
+ LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
+ ColBloc:=OrangeConTrois;
+ $=AffichageControle(texto);
+ else:
+ message("La commande -- RepeterJ -- n'admet qu'un argument de type picture.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef FinBlocRepeter=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ _coinprec:=_coinprec-(0.5cm,0);
+ drawoptions();
+ texto=image(
+ labeloffset:=0;
+ label.lrt(LATEXSCRATCH("\hbox to"&decimal(LongRep[numblocrep])&"pt{\phantom{\barre fin du bloc}}"),if unknown _coinprec: (0,0) else:_coinprec fi);
+ labeloffset:=3;
+ );
+path cadre;
+cadre=(coindebutbloc[numblocrep]+(0.125,0.125))--
+ (coindebutbloc[numblocrep]+(0.0625+0.5cm+eb,0.125)){dir180}..
+ {dir-90}(coindebutbloc[numblocrep]+(0.5cm,-eb))--
+ (ulcorner texto+(0.5cm,eb)){dir-90}..
+ {dir0}(ulcorner texto+(0.5cm+eb,0))--
+ (ulcorner texto+(0.5cm+0.375cm,0)){dir0}..%
+ {dir0}(ulcorner texto+(0.5cm+0.375cm,0)+(eb,-eb))--%
+ (ulcorner texto+(0.5cm+0.625cm,0)+(eb,-eb)){dir0}..%
+ {dir0}(ulcorner texto+(0.5cm+0.625cm,0)+(2eb,0))--%
+ (urcorner texto+(-eb,0)){dir0}..
+ {dir-90}(urcorner texto+(0,-eb))--
+ (lrcorner texto+(0,eb)){dir-90}..
+ {dir180}(lrcorner texto+(-eb,0))--
+ (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
+ (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.375cm,0))--
+ (llcorner texto+(0.125,0)+(eb,0)){dir180}..
+ {dir90}(llcorner texto+(0.125,0)+(0,eb))--
+ cycle;
+$=image(
+ fill cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
+ draw cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
+ AA:=ahangle;
+ ahangle:=90;
+ drawarrow (lrcorner texto+(-0.625cm,0.15cm)){dir-15}..{dir90}(urcorner texto+(-0.25cm,-0.1cm)) withpen pencircle scaled2bp if print=false : withcolor white fi;
+ ahangle:=AA;
+ draw (coindebutbloc[numblocrep]+(0.0625+0.5cm+eb,0.125)){dir180}..
+ {dir-90}(coindebutbloc[numblocrep]+(0.5cm,-eb))--
+ (ulcorner texto+(0.5cm,eb)){dir-90}..
+ {dir0}(ulcorner texto+(0.5cm+eb,0))--
+ (ulcorner texto+(0.5cm+0.375cm,0)){dir0}..%
+ {dir0}(ulcorner texto+(0.5cm+0.375cm,0)+(eb,-eb))--%
+ (ulcorner texto+(0.5cm+0.625cm,0)+(eb,-eb)){dir0}..%
+ {dir0}(ulcorner texto+(0.5cm+0.625cm,0)+(2eb,0))--%
+ (urcorner texto+(-eb,0)){dir0}..
+ {dir-90}(urcorner texto+(0,-eb))--
+ (lrcorner texto+(0,eb)){dir-90}..
+ {dir180}(lrcorner texto+(-eb,0))--
+ (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
+ (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.375cm,0))--
+ (llcorner texto+(0.125,0)+(eb,0)){dir180}..
+ {dir90}(llcorner texto+(0.125,0)+(0,eb))--(coindebutbloc[numblocrep]+(0.125,0.125)) withcolor CoulLignes;
+ );
+_coinprec:=(llcorner $);
+_coinprec:=_coinprec+(0,eb);
+numblocrep:=numblocrep-1;
+$
+enddef;
+
+vardef FinBlocRepeterI=FinBlocRepeter enddef;
+
+vardef Si(expr xa)=
+ LONG:=0;
+ save $;
+ numblocrep:=numblocrep+1;
+ picture $,texto;
+ if picture xa:
+ texto=ColleBoxNew("si\hbox to1em{}",xa,"alors");
+ LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
+ ColBloc:=OrangeConTrois;
+ $=AffichageControle(texto);
+ else:
+ message("La commande -- Si -- n'admet qu'un argument de type picture.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef FinBlocSi=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ _coinprec:=_coinprec-(0.5cm,0);
+ drawoptions();
+ texto=image(
+ labeloffset:=0;
+ label.lrt(LATEXSCRATCH("\hbox to"&decimal(LongRep[numblocrep])&"pt{\phantom{\barre fin du bloc}}"),if unknown _coinprec: (0,0) else:_coinprec fi);
+ labeloffset:=3;
+ );
+path cadre;
+if BlocStopAvant=false:
+ cadre=(coindebutbloc[numblocrep]+(0.125,0.125))--
+ (coindebutbloc[numblocrep]+(0.0625+0.5cm+eb,0.125)){dir180}..
+ {dir-90}(coindebutbloc[numblocrep]+(0.5cm,-eb))--
+ (ulcorner texto+(0.5cm,eb)){dir-90}..
+ {dir0}(ulcorner texto+(0.5cm+eb,0))--
+ (ulcorner texto+(0.5cm+0.375cm,0)){dir0}..%
+ {dir0}(ulcorner texto+(0.5cm+0.375cm,0)+(eb,-eb))--%
+ (ulcorner texto+(0.5cm+0.625cm,0)+(eb,-eb)){dir0}..%
+ {dir0}(ulcorner texto+(0.5cm+0.625cm,0)+(2eb,0))--%
+ (urcorner texto+(-eb,0)){dir0}..
+ {dir-90}(urcorner texto+(0,-eb))--
+ (lrcorner texto+(0,eb)){dir-90}..
+ {dir180}(lrcorner texto+(-eb,0))--
+ (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
+ (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.375cm,0))--
+ (llcorner texto+(0.125,0)+(eb,0)){dir180}..
+ {dir90}(llcorner texto+(0.125,0)+(0,eb))--
+ cycle;
+else:
+ cadre=(coindebutbloc[numblocrep]+(0.125,0.125))--
+ (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
+ {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
+ (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
+ {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
+% (ulcorner texto+(0.125+0.875cm,0)){dir0}..
+% {dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
+% (ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
+% {dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%
+ (urcorner texto+(-eb,0)){dir0}..
+ {dir-90}(urcorner texto+(0,-eb))--
+ (lrcorner texto+(0,eb)){dir-90}..
+ {dir180}(lrcorner texto+(-eb,0))--
+ (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
+ (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.375cm,0))--
+ (llcorner texto+(0.125,0)+(eb,0)){dir180}..
+ {dir90}(llcorner texto+(0.125,0)+(0,eb))--
+ cycle;
+fi;
+$=image(
+ fill cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
+ draw cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
+ if BlocStopAvant=false:
+ draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0)){dir180}..
+ {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
+ (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
+ {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
+ (ulcorner texto+(0.125+0.875cm,0)){dir0}..
+ {dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
+ (ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
+ {dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%
+ (urcorner texto+(-eb,0)){dir0}..
+ {dir-90}(urcorner texto+(0,-eb))--
+ (lrcorner texto+(0,eb)){dir-90}..
+ {dir180}(lrcorner texto+(-eb,0))--
+ (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
+ (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.375cm,0))--
+ (llcorner texto+(0.125,0)+(eb,0)){dir180}..
+ {dir90}(llcorner texto+(0.125,0)+(0,eb))--
+ (coindebutbloc[numblocrep]+(0.125,0.125))
+ withcolor CoulLignes;
+ else:
+ draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
+ {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
+ (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
+ {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
+ %(ulcorner texto+(0.125+0.875cm,0)){dir0}..
+ %{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
+ %(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
+ %{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%
+ (urcorner texto+(-eb,0)){dir0}..
+ {dir-90}(urcorner texto+(0,-eb))--
+ (lrcorner texto+(0,eb)){dir-90}..
+ {dir180}(lrcorner texto+(-eb,0))--
+ (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
+ (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.375cm,0))--
+ (llcorner texto+(0.125,0)+(eb,0)){dir180}..
+ {dir90}(llcorner texto+(0.125,0)+(0,eb))--
+ (coindebutbloc[numblocrep]+(0.125,0.125))
+ withcolor CoulLignes;
+ fi;
+ );
+_coinprec:=(llcorner $);
+_coinprec:=_coinprec+(0,eb);
+numblocrep:=numblocrep-1;
+$
+enddef;
+
+boolean BlocStopAvant;
+BlocStopAvant=false;
+
+vardef Sinon=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ _coinprec:=_coinprec-(0.5cm,0);
+ drawoptions();
+ texto=image(
+ labeloffset:=0;
+ label.lrt(LATEXSCRATCH("\, \hbox to"&decimal(LongRep[numblocrep])&"pt{\bfseries\barre sinon}"),if unknown _coinprec: (0,0) else:_coinprec fi) if print=false : withcolor blanc fi;
+ labeloffset:=3;
+ );
+ path cadre;
+ if BlocStopAvant=false:
+ cadre=(llcorner texto+(0.125,0))--
+ (coindebutbloc[numblocrep]+(0.125,0.125))--
+ (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
+ {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
+ (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
+ {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
+ (ulcorner texto+(0.125+0.875cm,0)){dir0}..
+ {dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
+ (ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
+ {dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%
+ (urcorner texto+(-eb,0)){dir0}..
+ {dir-90}(urcorner texto+(0,-eb))--
+ (lrcorner texto+(0,eb)){dir-90}..
+ {dir180}(lrcorner texto+(-eb,0))--
+ (llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
+ {dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
+ (llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.875cm,0))--
+ cycle;
+ else:
+ cadre=(llcorner texto+(0.125,0))--
+ (coindebutbloc[numblocrep]+(0.125,0.125))--
+ (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
+ {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
+ (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
+ {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
+% (ulcorner texto+(0.125+0.875cm,0)){dir0}..
+% {dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
+% (ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
+% {dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%
+ (urcorner texto+(-eb,0)){dir0}..
+ {dir-90}(urcorner texto+(0,-eb))--
+ (lrcorner texto+(0,eb)){dir-90}..
+ {dir180}(lrcorner texto+(-eb,0))--
+ (llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
+ {dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
+ (llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.875cm,0))--
+ cycle;
+ fi;
+$=image(
+ fill cadre withcolor if print=true : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
+ draw cadre withcolor if print=true : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
+ draw texto;
+ if BlocStopAvant=false:
+ draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
+ {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
+ (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
+ {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
+ (ulcorner texto+(0.125+0.875cm,0)){dir0}..
+ {dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
+ (ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
+ {dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%
+ (urcorner texto+(-eb,0)){dir0}..
+ {dir-90}(urcorner texto+(0,-eb))--
+ (lrcorner texto+(0,eb)){dir-90}..
+ {dir180}(lrcorner texto+(-eb,0))--
+ (llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
+ {dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
+ (llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.875cm,0))--
+ (llcorner texto+(0.125+0.5cm+eb,0))
+ withcolor CoulLignes;
+ else:
+ draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
+ {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
+ (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
+ {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
+ %(ulcorner texto+(0.125+0.875cm,0)){dir0}..
+ %{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
+ %(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
+ %{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%
+ (urcorner texto+(-eb,0)){dir0}..
+ {dir-90}(urcorner texto+(0,-eb))--
+ (lrcorner texto+(0,eb)){dir-90}..
+ {dir180}(lrcorner texto+(-eb,0))--
+ (llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
+ {dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
+ (llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
+ {dir180}(llcorner texto+(0.125+0.875cm,0))
+ withcolor CoulLignes;
+ fi;
+ draw (llcorner texto+(0.125,0))--(coindebutbloc[numblocrep]+(0.125,0.125)) withcolor CoulLignes;
+ );
+ _coinprec:=(llcorner $)+(0.5cm,0);
+ _coinprec:=_coinprec+(0,eb);
+ coindebutbloc[numblocrep]:=(llcorner $)+(0,eb+0.125);
+ $
+enddef;
+
+vardef Attendre(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("attendre",if string nbpas:OvalNb(nbpas) else: nbpas fi,"seconde(s)");
+ColBloc:=OrangeConTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef AttendreJ(expr xa)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if picture xa:
+ texto=ColleBoxNew("attendre jusqu'à ce que",xa);
+ ColBloc:=OrangeConTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande -- AttendreJ -- n'admet qu'un argument de type picture.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef Stop(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ string TTm;%Pour sauvegarder le nbpas car en l'utilisant dans les if, il ne permet pas la concaténation...
+ TTm=if print:nbpas&"\hbox to1em{\barre}\blacktriangledown" else:"\color{white}"&nbpas&"\hbox to1em{\barre}\blacktriangledown";
+ fi;
+ texto=image(
+ path ti;
+ ti=Box("stop");
+ label(LATEXSCRATCH("\bfseries\barre stop"),center ti) if print=false : withcolor white fi;%_>ok
+ if picture nbpas:
+ picture ta;
+ ta=nbpas;
+ drawoptions(shifted (xpart((lrcorner ti)-(llcorner ta)+(eb,0)),ypart(center ti-center ta)));
+ draw ta;
+ drawoptions();
+ else:
+ path ta;
+ ta=RecBox(TTm);%
+ drawoptions(shifted (xpart((lrcorner ti)-(llcorner ta)+(eb,0)),ypart(center ti-center ta)));
+ if print=false : fill ta withcolor ControleTrois fi;
+ draw ta withcolor 0.95white;
+ label(LATEXSCRATCH(TTm),center ta);
+ drawoptions();
+ fi;
+ );
+$=AffichageStop shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageStop);
+_coinprec:=llcorner $;
+_coinprec:=_coinprec;%+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+ label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+ Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+
+vardef CommencerClone=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("quand je commence comme un clone");
+ ColBloc:=ControleTrois;
+ $=AffichageED(texto);
+ $
+enddef;
+
+vardef CreerClone(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew("créer un clone de",OvalMenuControle(nbpas));
+ ColBloc:=ControleTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande -- CreerClone -- accepte un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef SupprimerClone=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=image(
+ path ti;
+ ti=Box("supprimer ce clone");
+ label(LATEXSCRATCH("\bfseries\barre supprimer ce clone"),center ti) if print=false : withcolor white fi;%_>ok
+ );
+ $=AffichageStop shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageStop);
+_coinprec:=llcorner $;
+_coinprec:=_coinprec+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+ label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+ Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+%%fin Section Contrôle%%%
+
+%%%%%%%% Section Evenements %%%%%
+vardef Drapeau=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("quand",DrapeauImage shifted(-(80,707)),"est cliqué");
+ ColBloc:=EvenementTrois;
+ $=AffichageED(texto);
+ $
+enddef;
+
+vardef QPresse(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew("quand la touche",RecEvenementMenu(nbpas),"est pressée");
+ ColBloc:=EvenementTrois;
+ $=AffichageED(texto);
+ else:
+ message("La commande -- QPresse -- accepte un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef QLutinPresse=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("quand ce sprite est cliqué");
+ ColBloc:=EvenementTrois;
+ $=AffichageED(texto);
+ $
+enddef;
+
+vardef QSpritePresse=QLutinPresse enddef;
+
+vardef QScenePressee=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("quand la scène est cliquée");
+ ColBloc:=EvenementTrois;
+ $=AffichageED(texto);
+ $
+enddef;
+
+vardef QBasculeAR(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew("quand l'arrière-plan bascule sur",RecEvenementMenu(nbpas));
+ ColBloc:=EvenementTrois;
+ $=AffichageED(texto);
+ else:
+ message("La commande -- QBasculeAR -- accepte un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef QVolumeSup(expr nbpas,xa)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew("quand le",RecEvenementMenu(nbpas),"$>$",if string xa:OvalNb(xa) else: xa fi);
+ ColBloc:=EvenementTrois;
+ $=AffichageED(texto);
+else:
+ message("La commande -- QVolumeSup -- accepte un premier argument de type string.");
+ $=nullpicture;
+fi;
+$
+enddef;
+
+vardef QRecevoirMessage(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew("quand je reçois",RecEvenementMenu(nbpas));
+ ColBloc:=EvenementTrois;
+ $=AffichageED(texto);
+ else:
+ message("La commande -- QRecevoirMessage -- accepte un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef EnvoyerMessage(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew("envoyer à tous",OvalMenuEvenement(nbpas));
+ ColBloc:=EvenementTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande -- EnvoyerMessage -- accepte un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef EnvoyerMessageA(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew("envoyer à tous",OvalMenuEvenement(nbpas),"et attendre");
+ ColBloc:=EvenementTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande -- EnvoyerMessageA -- accepte un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef DrapeauImage=
+ save $; picture $;
+ $=image(
+ linecap := butt;
+ linejoin := rounded;
+ if print = false: drawoptions(withcolor(76/255,191/255,86/255)) fi;
+ fill (72.000000,713.254028)--(72.000000,718.918030)--(72.507797,718.979980)
+ --(72.984398,719.026978)--(73.437500,719.054993)--(73.867203,719.070007)
+ --(74.273399,719.073975)--(74.660202,719.062988)--(75.023399,719.043030)
+ --(75.367203,719.012024)--(75.695297,718.968994)--(76.003899,718.918030)
+ --(76.300797,718.859009)--(76.578102,718.793030)--(76.847702,718.723022)
+ --(77.105499,718.648010)--(77.351601,718.570007)--(77.589798,718.484009)
+ --(77.820297,718.401978)--(78.042999,718.312988)--(78.234398,718.237976)
+ --(78.234398,706.906006)--(78.042999,706.979980)--(77.820297,707.065979)
+ --(77.589798,707.151978)--(77.351601,707.237976)--(77.105499,707.315979)
+ --(76.847702,707.390991)--(76.578102,707.460999)--(76.300797,707.526978)
+ --(76.003899,707.585999)--(75.695297,707.637024)--(75.367203,707.676025)
+ --(75.023399,707.710999)--(74.660202,707.729980)--(74.273399,707.742004)
+ --(73.867203,707.737976)--(73.437500,707.723022)--(72.984398,707.690979)
+ --(72.507797,707.648010)--(72.000000,707.585999)--cycle;
+% drawoptions (withcolor (0,0.625,0));
+ fill (78.246101,712.565979)--(78.261703,718.226990)--(78.476601,718.140991)
+ --(78.691399,718.059021)--(78.902298,717.976990)--(79.113297,717.895020)
+ --(79.328102,717.820007)--(79.546898,717.754028)--(79.765602,717.687988)
+ --(79.992203,717.632996)--(80.226601,717.585999)--(80.468803,717.543030)
+ --(80.718803,717.515991)--(80.980499,717.495972)--(81.253899,717.492004)
+ --(81.542999,717.495972)--(81.843803,717.515991)--(82.160202,717.546997)
+ --(82.492203,717.598022)--(82.847702,717.664001)--(83.218803,717.745972)
+ --(83.332001,717.773010)--(83.332001,706.440979)--(83.218803,706.414001)
+ --(82.847702,706.328003)--(82.492203,706.265991)--(82.160202,706.215027)
+ --(81.843803,706.179993)--(81.542999,706.164001)--(81.253899,706.156006)
+ --(80.980499,706.164001)--(80.718803,706.184021)--(80.468803,706.210999)
+ --(80.226601,706.250000)--(79.992203,706.301025)--(79.765602,706.354980)
+ --(79.546898,706.418030)--(79.328102,706.487976)--(79.113297,706.562988)
+ --(78.902298,706.645020)--(78.691399,706.723022)--(78.476601,706.809021)
+ --(78.234398,706.906006)--cycle;
+% drawoptions (withcolor (0,0.625,0));
+ fill (83.332001,712.109009)--(83.332001,717.773010)--(83.613297,717.843994)
+ --(84.031303,717.965027)--(84.468803,718.104980)--(84.933601,718.265991)
+ --(85.425797,718.448975)--(85.945297,718.651978)--(86.492203,718.882996)
+ --(87.070297,719.137024)--(87.679703,719.414001)--(88.324203,719.718994)
+ --(89.000000,720.054993)--(89.000000,708.718994)--(88.324203,708.387024)
+ --(87.679703,708.081970)--(87.070297,707.801025)--(86.492203,707.551025)
+ --(85.945297,707.320007)--(85.425797,707.117004)--(84.933601,706.934021)
+ --(84.468803,706.773010)--(84.031303,706.632996)--(83.613297,706.512024)
+ --(83.332001,706.440979)--cycle;
+% drawoptions (withcolor (0,0.625,0));
+%pickup pencircle scaled 0.199253bp;
+ draw (72.000000,713.254028)--(72.000000,718.918030)--(72.507797,718.979980)
+ --(72.984398,719.026978)--(73.437500,719.054993)--(73.867203,719.070007)
+ --(74.273399,719.073975)--(74.660202,719.062988)--(75.023399,719.043030)
+ --(75.367203,719.012024)--(75.695297,718.968994)--(76.003899,718.918030)
+ --(76.300797,718.859009)--(76.578102,718.793030)--(76.847702,718.723022)
+ --(77.105499,718.648010)--(77.351601,718.570007)--(77.589798,718.484009)
+ --(77.820297,718.401978)--(78.042999,718.312988)--(78.261703,718.226990)
+ --(78.476601,718.140991)--(78.691399,718.059021)--(78.902298,717.976990)
+ --(79.113297,717.895020)--(79.328102,717.820007)--(79.546898,717.754028)
+ --(79.765602,717.687988)--(79.992203,717.632996)--(80.226601,717.585999)
+ --(80.468803,717.543030)--(80.718803,717.515991)--(80.980499,717.495972)
+ --(81.253899,717.492004)--(81.542999,717.495972)--(81.843803,717.515991)
+ --(82.160202,717.546997)--(82.492203,717.598022)--(82.847702,717.664001)
+ --(83.218803,717.745972)--(83.613297,717.843994)--(84.031303,717.965027)
+ --(84.468803,718.104980)--(84.933601,718.265991)--(85.425797,718.448975)
+ --(85.945297,718.651978)--(86.492203,718.882996)--(87.070297,719.137024)
+ --(87.679703,719.414001)--(88.324203,719.718994)--(89.000000,720.054993)
+ --(89.000000,708.718994)--(88.324203,708.387024)--(87.679703,708.081970)
+ --(87.070297,707.801025)--(86.492203,707.551025)--(85.945297,707.320007)
+ --(85.425797,707.117004)--(84.933601,706.934021)--(84.468803,706.773010)
+ --(84.031303,706.632996)--(83.613297,706.512024)--(83.218803,706.414001)
+ --(82.847702,706.328003)--(82.492203,706.265991)--(82.160202,706.215027)
+ --(81.843803,706.179993)--(81.542999,706.164001)--(81.253899,706.156006)
+ --(80.980499,706.164001)--(80.718803,706.184021)--(80.468803,706.210999)
+ --(80.226601,706.250000)--(79.992203,706.301025)--(79.765602,706.354980)
+ --(79.546898,706.418030)--(79.328102,706.487976)--(79.113297,706.562988)
+ --(78.902298,706.645020)--(78.691399,706.723022)--(78.476601,706.809021)
+ --(78.261703,706.895020)--(78.042999,706.979980)--(77.820297,707.065979)
+ --(77.589798,707.151978)--(77.351601,707.237976)--(77.105499,707.315979)
+ --(76.847702,707.390991)--(76.578102,707.460999)--(76.300797,707.526978)
+ --(76.003899,707.585999)--(75.695297,707.637024)--(75.367203,707.676025)
+ --(75.023399,707.710999)--(74.660202,707.729980)--(74.273399,707.742004)
+ --(73.867203,707.737976)--(73.437500,707.723022)--(72.984398,707.690979)
+ --(72.507797,707.648010)--(72.000000,707.585999)--cycle if print=false : withcolor (0,0.625,0) fi;
+ %pickup pencircle scaled 0.8bp;
+ draw (72.000000,699)--(72.000000,720);
+ drawoptions();
+ );
+ $:=$ rotatedabout((72.000000,699),-15);
+ $
+enddef;
+%%Fin section Evenement%%%
+
+%%%% Section Bloc %%%%
+vardef AffichageBlocDef=
+ path cadre;
+ cadre=(llcorner texto+(-eb,0)){dir-90}..{dir0}(llcorner texto+(0,-eb))--
+ (llcorner texto+(0.375cm,0)+(-eb,-eb)){dir0}..
+ {dir0}(llcorner texto+(0.375cm,0)+(0,-2eb))--
+ (llcorner texto+(0.625cm,0)+(0,-2eb)){dir0}..
+ {dir0}(llcorner texto+(0.625cm,0)+(eb,-eb))--
+ (lrcorner texto+(0,-eb)){dir0}..{dir90}(lrcorner texto+(eb,0))--
+ (urcorner texto+(eb,eb)){dir90}..{dir180}(urcorner texto+(0,2eb))--
+ (ulcorner texto+(0,2eb)){dir180}..
+ {dir-90}(ulcorner texto+(-eb,eb))--
+ cycle;
+ picture TEXT;
+ TEXT=image(
+ fill cadre withcolor if print : coefprint*white else : BlocTrois fi;%if unknown colBloc : DarkPurple else: colBloc fi fi;
+ draw texto;
+ draw cadre withcolor CoulLignes;
+ );
+ TEXT
+enddef;
+
+vardef Bloc(text nomblocbloc)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=image(
+ picture CBbloc;
+ CBbloc=ColleBoxNew(nomblocbloc);
+ draw CBbloc;
+ );
+ ColBloc:=BlocTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef NouveauBloc(text nbpasbloc)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=image(
+ picture CB;
+ CB=ColleBoxNew("définir",BlocPuzzle(nbpasbloc));
+ draw CB;
+ );
+$=AffichageBlocDef shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageBlocDef);
+_coinprec:=llcorner $;
+_coinprec:=_coinprec+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+ label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+ Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+%%%% Fin Section Bloc%%%%
+
+%%% Section Divers%%%
+vardef CommandeVide(expr commande)=
+ LONG:=0;
+ save $;
+ picture $,texto,TEXT;
+ if string commande :
+ texto=image(
+ label.lrt(LATEXSCRATCH("\barre \hbox to"&commande&"cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
+ );
+else:
+ texto=commande;
+fi;
+ColBloc:=white;
+$=Affichage(texto);
+$
+enddef;
+
+vardef LigneVide=
+ LONG:=0;
+ save $;
+ picture $,texto,TEXT;
+ texto=image(
+ label.lrt(LATEXSCRATCH("\barre \hbox to2cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
+ );
+TEXT=image(
+ path cadre;
+ cadre=CADRE(texto);
+ unfill cadre;
+ %draw (urcorner texto+(0,eb))--
+ % (ulcorner texto+(0.625cm,0)+(eb,eb)){dir180}..
+ % {dir180}(ulcorner texto+(0.625cm,0))--
+ % (ulcorner texto+(0.375cm,0)){dir180}..
+ % {dir180}(ulcorner texto+(0.375cm,0)+(-eb,eb))--
+ % (ulcorner texto+(0,eb)) withpen pencircle scaled 0;
+ );
+$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
+_coinprec:=llcorner $;
+_coinprec:=_coinprec+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+ label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+ Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+
+vardef LigneVideVar(expr commande)=
+ LONG:=0;
+ save $;
+ picture $,texto,TEXT;
+ if string texto:
+ texto=image(
+ label.lrt(LATEXSCRATCH("\barre \hbox to2cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
+ );
+else:
+ texto=commande;
+fi;
+TEXT=image(
+ path cadre;
+ cadre=(llcorner texto+(-eb,0))--(llcorner texto+(0,-eb))--
+ (llcorner texto+(0.375cm,0)+(-eb,-eb))--
+ (llcorner texto+(0.375cm,0)+(0,-2eb))--
+ (llcorner texto+(0.625cm,0)+(0,-2eb))--
+ (llcorner texto+(0.625cm,0)+(eb,-eb))--
+ (lrcorner texto+(0,-eb))--(lrcorner texto+(eb,0))--(urcorner texto+(eb,0))--(urcorner texto+(0,eb))--
+ (ulcorner texto+(0.625cm,0)+(eb,eb))--
+ (ulcorner texto+(0.625cm,0))--
+ (ulcorner texto+(0.375cm,0))--
+ (ulcorner texto+(0.375cm,0)+(-eb,eb))--
+ (ulcorner texto+(0,eb))--(ulcorner texto+(-eb,0))--cycle;
+ fill cadre withcolor white;
+% draw (urcorner texto+(0,eb))--
+% (ulcorner texto+(0.625cm,0)+(eb,eb))--
+% (ulcorner texto+(0.625cm,0))--
+% (ulcorner texto+(0.375cm,0))--
+% (ulcorner texto+(0.375cm,0)+(-eb,eb))--
+% (ulcorner texto+(0,eb)) withpen pencircle scaled 0.05bp;
+ );
+$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
+_coinprec:=llcorner $;
+_coinprec:=_coinprec+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+ label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+ Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+
+vardef LignePointilles=
+ LONG:=0;
+ save $;
+ picture $,texto,TEXT;
+ texto=image(
+ label.lrt(LATEXSCRATCH("\barre\Large \strut\ldots\hbox to1em{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
+ );
+TEXT=image(
+ path cadre;
+ cadre=CADRE(texto);
+ fill cadre withcolor white;
+ draw %(urcorner texto+(0,eb))--
+ (ulcorner texto+(0.625cm,0)+(eb,eb)){dir180}..
+ {dir180}(ulcorner texto+(0.625cm,0))--
+ (ulcorner texto+(0.375cm,0)){dir180}..
+ {dir180}(ulcorner texto+(0.375cm,0)+(-eb,eb))
+ %--(ulcorner texto+(0,eb))
+ withpen pencircle scaled 0.01;
+ draw texto;
+ );
+$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
+_coinprec:=llcorner $;
+_coinprec:=_coinprec+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+ label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+ Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+
+vardef Commentaires(expr commande)=
+ LONG:=0;
+ save $;
+ picture $,texto,TEXT;
+ texto=image(
+ label.lrt(LATEXSCRATCH("\barre "& commande &""),if unknown _coinprec: (0,0) else:_coinprec fi) withcolor 0.5*white;
+ );
+TEXT=image(
+ path cadre;
+ cadre=CADRE(texto);
+ fill cadre withcolor white;
+ draw texto;
+ );
+$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
+_coinprec:=llcorner $;
+_coinprec:=_coinprec+(0,eb);
+$
+enddef;
+
+color colcom;
+colcom=0.5white;
+
+vardef CommentairesLigne(expr commande)=
+ LONG:=0;
+ save $;
+ picture $,texto,TEXT;
+ TEXT=image(
+ label.rt(LATEXSCRATCH(commande), _coincom) withcolor colcom;
+ );
+$=TEXT shifted (_coincom - 1/2[llcorner TEXT,ulcorner TEXT]);
+$
+enddef;
+
+vardef BlocGris(expr ar)=
+ LONG:=0;
+ save $; picture $;
+ path ta; string TTm;
+ TTm=ar&"\barre";
+ ta=OvalMiniBox(TTm);
+ $=image(
+ fill ta withcolor 0.975white;
+ draw ta withcolor 0.85white;
+ label(LATEXSCRATCH(TTm),center ta) if print=false : withcolor blanc fi;
+ );
+$
+enddef;
+
+vardef BlocGrisMulti(text argris)=
+ LONG:=0;
+ save $; picture $;
+ path ta; picture TTm;
+ TTm=ColleBox(argris);
+ ta=OvalMiniBox(TTm);
+ $=image(
+ fill ta withcolor grisBloc;
+ draw TTm;
+% label(LALATEXSCRATCH(TTm),center ta) if print=false : withcolor blanc fi;
+ );
+$
+enddef;
+
+boolean BlocE;
+BlocE:=false;
+
+vardef BlocUser(expr colblocuser)(text textbloc)=
+ LONG:=0;
+ save $;
+ picture $;
+ save TA; path TA; picture BUTB; picture texto; picture TEXT;
+ BUTB=ColleBoxNew(textbloc);
+ TA=Box(BUTB);
+ texto=image(
+ draw BUTB;
+ );
+ ColBloc:=colblocuser;
+ if BlocE=false:
+ $=Affichage(texto);
+ else:
+ $=AffichageED(texto);
+ fi;
+ $
+enddef;
+
+vardef BlocCouleur(expr colblocuser)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=image(
+ label.lrt(LATEXSCRATCH("\barre \hbox to4cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
+ );
+ColBloc:=colblocuser;
+$=Affichage(texto);
+$
+enddef;
+%% fin Section Divers %%%
+
+%% Section Capteur %%%%
+vardef Demander(expr nbpas)=
+ LONG:=0;
+ save Dem;
+ picture Dem,texto;
+ if string nbpas:
+ texto=ColleBoxNew("demander",OvalNb(nbpas),"et attendre");
+ ColBloc:=CapteurTrois;
+ Dem=Affichage(texto);
+ else:
+ message("La commande -- Demander -- admet un argument de type string.");
+ Dem=nullpicture;
+ fi;
+ Dem
+enddef;
+
+vardef ReinitChrono=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ texto=ColleBoxNew("réinitialiser le chronomètre");
+ ColBloc:=CapteurTrois;
+ $=Affichage(texto);
+ $
+enddef;
+
+vardef MettreGlissement(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew("mettre mode de glissement à",RecMenuCap(nbpas));
+ ColBloc:=CapteurTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande -- MettreGlissement -- admet un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+%video
+
+vardef CameraImage=
+ LONG:=0;
+ save $;
+ picture $;
+ $=image(
+ pair A,B,C,D,E,F;
+ A=(0,0);
+ B-A=(10,0);
+ C-B=(0,10);
+ D-C=A-B;
+ E-B=(4,1.5);
+ F-C=(4,-1.5);
+ numeric EB;
+ EB=2pt;
+ path camera;
+ camera=(A+(EB,0))--(B+(-EB,0)){dir0}..{dir90}(B+(0,EB))--2/5[B,C]--E--F--3/5[B,C]--(C+(0,-EB)){dir90}..{dir-180}(C+(-EB,0))--(D+(EB,0)){dir180}..{dir-90}(D+(0,-EB))--(A+(0,EB)){dir-90}..{dir0}cycle;
+ fill camera withcolor (77,77,77)/255;
+ draw camera withcolor (77,77,77)*0.95/255;
+ path cc;
+ cc=fullcircle scaled 6;
+ color coul[];
+ if print:
+ coul0:=0.9white;
+ coul1:=0.933white;
+ coul2:=0.966white;
+ coul3:=white;
+ else:
+ coul0=(75,205,169)/255;
+ coul1=(16,230,212)/255;
+ coul2=(224,247,241)/255;
+ coul3=(1,1,1);
+ fi;
+ for k=0 upto 3:
+ fill (cc shifted(B+(10,3*k))) withcolor coul[k];
+ draw (cc shifted(B+(10,3*k))) withcolor 0.95*coul[k];
+ endfor;
+ draw ((-3,0)--(-3,18)) withcolor if print : coefprint*white else: StyloTrois fi;
+ pickup pencircle scaled eppen;
+ );
+ $:=$ scaled 0.8;
+ $
+enddef;
+
+vardef ImageCamera=
+ save titi;
+ picture titi;
+ titi=image(
+ draw CameraImage shifted(-12,-5);
+ draw (((0,0)--(0,18pt)) shifted(9,-9)) withpen pencircle scaled 1bp withcolor if print: 0.5*coefprint*white else: (69/255,168/255,140/255) fi;
+ );
+ titi
+enddef;
+
+vardef ActiverVideo(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew(ImageCamera,"vidéo",OvalStylo(nbpas));
+ ColBloc:=StyloTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande -- ActiverVideo -- admet un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef TransparenceVideo(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew(ImageCamera,"mettre la transparence vidéo sur",OvalNb(nbpas));
+ ColBloc:=StyloTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande -- TransparenceVideo -- admet un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef QuandMV(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas:
+ texto=ColleBoxNew(ImageCamera,"quand mouvement vidéo $>$",OvalNb(nbpas));
+ ColBloc:=StyloTrois;
+ $=AffichageED(texto);
+ else:
+ message("La commande -- QuandMV -- admet un argument de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef VideoSur(expr nbpas,xa)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if (string nbpas) and (string xa):
+ texto=ColleBoxNew(ImageCamera,"vidéo",OvalStylo(nbpas),"sur",OvalStylo(xa));
+ %ColBloc:=StyloTrois;
+ path ta;
+ ta=OvalBox(texto);
+ $=image(
+ fill ta withcolor if print: coefprint*white else: StyloTrois fi;
+ draw ta withcolor CoulLignes;
+ %label(LATEXSCRATCH(TTm),center ta) if print=false : withcolor blanc fi;
+ draw texto;
+ );
+ else:
+ message("La commande -- VideoSur -- admet deux arguments de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+%% fin Section Capteur %%%
+
+%%% Section Variables %%%
+vardef MettreVar(expr nbpas,xa)=
+ LONG:=0;
+ save MV;
+ picture MV,texto;
+ if string nbpas :
+ texto=ColleBoxNew("mettre",RecMenuVar(nbpas),"à",if string xa:OvalNb(xa) else: xa fi);
+ ColBloc:=OrangeTrois;
+ MV=Affichage(texto);
+ else:
+ message("La commande -- MettreVar -- admet un premier paramètre de type string.");
+ MV=nullpicture;
+ fi;
+ MV
+enddef;
+
+vardef AjouterVar(expr nbpas,xa)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string xa :
+ texto=ColleBoxNew("ajouter",if string nbpas:OvalNb(nbpas) else: nbpas fi,"à",RecMenuVar(xa));
+ ColBloc:=OrangeTrois;
+ $=Affichage(texto);
+else:
+ message("La commande -- AjouterVar -- admet un deuxième paramètre de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef MontrerVar(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas :
+ texto=ColleBoxNew("montrer la variable",RecMenuVar(nbpas));
+ ColBloc:=OrangeTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande -- MontrerVar -- admet un premier paramètre de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef CacherVar(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas :
+ texto=ColleBoxNew("cacher la variable",RecMenuVar(nbpas));
+ ColBloc:=OrangeTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande -- CacherVar -- admet un premier paramètre de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+%Liste
+vardef AjouterListe(expr nbpas,xa)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string xa :
+ texto=ColleBoxNew("ajouter",if string nbpas:OvalNb(nbpas) else: nbpas fi,"à",RecMenuList(xa));
+ ColBloc:=OrangeListTrois;
+ $=Affichage(texto);
+else:
+ message("La commande -- AjouterListe -- admet un deuxième paramètre de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef SupprimerListe(expr nbpas,xa)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string xa :
+ texto=ColleBoxNew("supprimer l'élément",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(xa));
+ ColBloc:=OrangeListTrois;
+ $=Affichage(texto);
+else:
+ message("La commande -- SupprimerListe -- admet un deuxième paramètre de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef SupprimerListeAll(expr nbpas)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas :
+ texto=ColleBoxNew("supprimer tous les éléments de la liste",RecMenuList(nbpas));
+ ColBloc:=OrangeListTrois;
+ $=Affichage(texto);
+else:
+ message("La commande -- SupprimerListe -- admet un deuxième paramètre de type string.");
+ $=nullpicture;
+fi;
+$
+enddef;
+
+vardef InsererListe(expr xa,nbpas,ya)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string ya :
+ texto=ColleBoxNew("insérer",if string xa:OvalNb(xa) else: xa fi,"en position",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(ya));
+ ColBloc:=OrangeListTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande -- InsererListe -- admet un troisième paramètre de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef RemplacerListe(expr xa,nbpas,ya)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string nbpas :
+ texto=ColleBoxNew("remplacer l'élément",if string xa:OvalNb(xa) else: xa fi,"de la liste",RecMenuList(nbpas),"par",if string ya:OvalNb(ya) else: ya fi);
+ ColBloc:=OrangeListTrois;
+ $=Affichage(texto);
+else:
+ message("La commande -- RemplacerListe -- admet un deuxième paramètre de type string.");
+ $=nullpicture;
+fi;
+$
+enddef;
+
+vardef MontrerListe(expr xa)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string xa :
+ texto=ColleBoxNew("montrer la liste",RecMenuList(xa));
+ ColBloc:=OrangeListTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande -- MontrerListe -- admet un paramètre de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+vardef CacherListe(expr xa)=
+ LONG:=0;
+ save $;
+ picture $,texto;
+ if string xa :
+ texto=ColleBoxNew("cacher la liste",RecMenuList(xa));
+ ColBloc:=OrangeListTrois;
+ $=Affichage(texto);
+ else:
+ message("La commande -- CacherListe -- admet un paramètre de type string.");
+ $=nullpicture;
+ fi;
+ $
+enddef;
+
+%%% Section Operateur %%%
+
+vardef OpAdd(expr pasun,pasdeux)=
+ save Oop; picture Oop;
+ save TAao; path TAao;
+ save LOPop; picture LOPop;
+ LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$+$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAao=OvalBox(LOPop);
+ Oop=image(
+ fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LOPop;
+ draw TAao if print=false : withcolor coefprint*white fi;
+ );
+ Oop:=Oop shifted(-center Oop);
+ Oop
+enddef;
+
+vardef OpSous(expr pasun,pasdeux)=
+ save Oop; picture Oop;
+ save TAao; path TAao;
+ save LOPop; picture LOPop;
+ LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$-$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAao=OvalBox(LOPop);
+ Oop=image(
+ fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LOPop;
+ draw TAao if print=false : withcolor coefprint*white fi;
+ );
+ Oop:=Oop shifted(-center Oop);
+ Oop
+enddef;
+
+vardef OpMul(expr pasun,pasdeux)=
+ save Oop; picture Oop;
+ save TAao; path TAao;
+ save LOPop; picture LOPop;
+ LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$\times$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAao=OvalBox(LOPop);
+ Oop=image(
+ fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LOPop;
+ draw TAao if print=false : withcolor coefprint*white fi;
+ );
+ Oop:=Oop shifted(-center Oop);
+ Oop
+enddef;
+
+vardef OpDiv(expr pasun,pasdeux)=
+ save Oop; picture Oop;
+ save TAao; path TAao;
+ save LOPop; picture LOPop;
+ LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$\div$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAao=OvalBox(LOPop);
+ Oop=image(
+ fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LOPop;
+ draw TAao if print=false : withcolor coefprint*white fi;
+ );
+ Oop:=Oop shifted(-center Oop);
+ Oop
+enddef;
+
+vardef OpAlea(expr pasun,pasdeux)=
+ save Oop; picture Oop;
+ save TAao; path TAao;
+ save LOPop; picture LOPop;
+ LOPop=ColleBoxNew("nombre aléatoire entre",if string pasun : OvalNb(pasun) else: pasun fi,"et",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAao=OvalBox(LOPop);
+ Oop=image(
+ fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LOPop;
+ draw TAao if print=false : withcolor coefprint*white fi;
+ );
+ Oop:=Oop shifted(-center Oop);
+ Oop
+enddef;
+
+vardef OpRegrouper(expr pasun,pasdeux)=
+ save Oop; picture Oop;
+ save TAao; path TAao;
+ save LOPop; picture LOPop;
+ LOPop=ColleBoxNew("regrouper",if string pasun : OvalNb(pasun) else: pasun fi,"et",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAao=OvalBox(LOPop);
+ Oop=image(
+ fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LOPop;
+ draw TAao if print=false : withcolor coefprint*white fi;
+ );
+ Oop:=Oop shifted(-center Oop);
+ Oop
+enddef;
+
+vardef OpLettre(expr pasun,pasdeux)=
+ save Oop; picture Oop;
+ save TAao; path TAao;
+ save LOPop; picture LOPop;
+ LOPop=ColleBoxNew("lettre",if string pasun : OvalNb(pasun) else: pasun fi,"de",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAao=OvalBox(LOPop);
+ Oop=image(
+ fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LOPop;
+ draw TAao if print=false : withcolor coefprint*white fi;
+ );
+ Oop:=Oop shifted(-center Oop);
+ Oop
+enddef;
+
+vardef OpLongueur(expr pasun)=
+ save Oop; picture Oop;
+ save TAao; path TAao;
+ save LOPop; picture LOPop;
+ LOPop=ColleBoxNew("longueur de",if string pasun : OvalNb(pasun) else: pasun fi);
+ TAao=OvalBox(LOPop);
+ Oop=image(
+ fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LOPop;
+ draw TAao if print=false : withcolor coefprint*white fi;
+ );
+ Oop:=Oop shifted(-center Oop);
+ Oop
+enddef;
+
+vardef OpArrondi(expr pasun)=
+ save Oop; picture Oop;
+ save TAao; path TAao;
+ save LOPop; picture LOPop;
+ LOPop=ColleBoxNew("arrondi de",if string pasun : OvalNb(pasun) else: pasun fi);
+ TAao=OvalBox(LOPop);
+ Oop=image(
+ fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LOPop;
+ draw TAao if print=false : withcolor coefprint*white fi;
+ );
+ Oop:=Oop shifted(-center Oop);
+ Oop
+enddef;
+
+vardef OpFonction(expr pasun,pasdeux)=
+ save Oop; picture Oop;
+ save TAao; path TAao;
+ save LOPop; picture LOPop;
+ LOPop=ColleBoxNew(RecMenuOp(pasun),"de",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAao=OvalBox(LOPop);
+ Oop=image(
+ fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LOPop;
+ draw TAao if print=false : withcolor coefprint*white fi;
+ );
+ Oop:=Oop shifted(-center Oop);
+ Oop
+enddef;
+
+vardef TestOpSup(expr pasun, pasdeux)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$>$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAa=DiamondBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef TestOpInf(expr pasun, pasdeux)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$<$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAa=DiamondBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef TestOpEgal(expr pasun, pasdeux)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$=$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAa=DiamondBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef TestOpEt(expr pasun, pasdeux)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"et",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAa=DiamondBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef TestOpOu(expr pasun, pasdeux)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"ou",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAa=DiamondBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef TestOpNon(expr pasun)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew("non",if string pasun : OvalNb(pasun) else: pasun fi);
+ TAa=DiamondBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef TestOpContient(expr pasun,pasdeux)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"contient",if string pasun : OvalNb(pasdeux) else: pasun fi,"?");
+ TAa=DiamondBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef AppCostume(expr pasun)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew(RecMenuApp(pasun),"du costume");
+ TAa=OvalBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor VioletAppTrois else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef AppAP(expr pasun)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew(RecMenuApp(pasun),"de l'arrière-plan");
+ TAa=OvalBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor VioletAppTrois else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef CapDistance(expr pasun)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew("distance de",OvalCapMenu(pasun));
+ TAa=OvalBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef CapTemps(expr pasun)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew(RecMenuCap(pasun),"actuelle");
+ TAa=OvalBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef CapNumero(expr pasun,pasdeux)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew(RecMenuCap(pasun),"de",OvalCapMenu(pasdeux));
+ TAa=OvalBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef TestCapToucheObjet(expr pasun)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew("touche le",OvalCapMenu(pasun),"?");
+ TAa=DiamondBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef TestCapCouleur(expr pasun)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew("couleur",OvalCouleur(redpart(pasun),greenpart(pasun),bluepart(pasun)),"touchée ?");
+ TAa=DiamondBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef TestCapCouleurs(expr pasun,pasdeux)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew("couleur",OvalCouleur(redpart(pasun),greenpart(pasun),bluepart(pasun)),"touché",OvalCouleur(redpart(pasdeux),greenpart(pasdeux),bluepart(pasdeux)),"?");
+ TAa=DiamondBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef TestCapTouche(expr pasun)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew("touche",OvalMenuCap(pasun),"pressée ?");
+ TAa=DiamondBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef TestCapSouris=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew("souris pressée ?");
+ TAa=DiamondBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef TestListeContient(expr nbpas,nbbas)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew(RecMenuList(nbpas),"contient",if string nbbas:OvalNb(nbbas) else: nbbas fi);
+ TAa=DiamondBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef ListeElement(expr nbpas,nbbas)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew("élément",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(nbbas));
+ TAa=OvalBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef ListePosition(expr nbpas,nbbas)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew("position de",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(nbbas));
+ TAa=OvalBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
+vardef ListeLongueur(expr nbpas)=
+ save $; picture $;
+ save TAa; path TAa;
+ save LTa; picture LTa;
+ LTa=ColleBoxNew("longueur de",RecMenuList(nbpas));
+ TAa=OvalBox(LTa);
+ $=image(
+ fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
+ draw LTa;
+ draw TAa if print=false : withcolor coefprint*white fi;
+ );
+ $:=$ shifted(-center $);
+ $
+enddef;
+
Property changes on: trunk/Master/texmf-dist/metapost/profcollege/PfCScratchpdf.mp
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/metapost/profcollege/PfCSvgnames.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfCSvgnames.mp (rev 0)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfCSvgnames.mp 2021-04-23 20:37:20 UTC (rev 58973)
@@ -0,0 +1,153 @@
+%D'après /usr/local/texlive/2020/texmf-dist/tex/latex/xcolor/svgnam.def
+color AliceBlue; AliceBlue = (.94,.972,1);
+color AntiqueWhite; AntiqueWhite = (.98,.92,.844);
+color Aqua; Aqua = (0,1,1);
+color Aquamarine; Aquamarine = (.498,1,.83);
+color Azure; Azure = (.94,1,1);
+color Beige; Beige = (.96,.96,.864);
+color Bisque; Bisque = (1,.894,.77);
+color Black; Black = (0,0,0);
+color BlanchedAlmond; BlanchedAlmond = (1,.92,.804);
+color Blue; Blue = (0,0,1);
+color BlueViolet; BlueViolet = (.54,.17,.888);
+color Brown; Brown = (.648,.165,.165);
+color BurlyWood; BurlyWood = (.87,.72,.53);
+color CadetBlue; CadetBlue = (.372,.62,.628);
+color Chartreuse; Chartreuse = (.498,1,0);
+color Chocolate; Chocolate = (.824,.41,.116);
+color Coral; Coral = (1,.498,.312);
+color CornflowerBlue; CornflowerBlue = (.392,.585,.93);
+color Cornsilk; Cornsilk = (1,.972,.864);
+color Crimson; Crimson = (.864,.08,.235);
+color Cyan; Cyan = (0,1,1);
+color DarkBlue; DarkBlue = (0,0,.545);
+color DarkCyan; DarkCyan = (0,.545,.545);
+color DarkGoldenrod; DarkGoldenrod = (.72,.525,.044);
+color DarkGray; DarkGray = (.664,.664,.664);
+color DarkGreen; DarkGreen = (0,.392,0);
+color DarkGrey; DarkGrey = (.664,.664,.664);
+color DarkKhaki; DarkKhaki = (.74,.716,.42);
+color DarkMagenta; DarkMagenta = (.545,0,.545);
+color DarkOliveGreen; DarkOliveGreen = (.332,.42,.185);
+color DarkOrange; DarkOrange = (1,.55,0);
+color DarkOrchid; DarkOrchid = (.6,.196,.8);
+color DarkRed; DarkRed = (.545,0,0);
+color DarkSalmon; DarkSalmon = (.912,.59,.48);
+color DarkSeaGreen; DarkSeaGreen = (.56,.736,.56);
+color DarkSlateBlue; DarkSlateBlue = (.284,.24,.545);
+color DarkSlateGray; DarkSlateGray = (.185,.31,.31);
+color DarkSlateGrey; DarkSlateGrey = (.185,.31,.31);
+color DarkTurquoise; DarkTurquoise = (0,.808,.82);
+color DarkViolet; DarkViolet = (.58,0,.828);
+color DeepPink; DeepPink = (1,.08,.576);
+color DeepSkyBlue; DeepSkyBlue = (0,.75,1);
+color DimGray; DimGray = (.41,.41,.41);
+color DimGrey; DimGrey = (.41,.41,.41);
+color DodgerBlue; DodgerBlue = (.116,.565,1);
+color FireBrick; FireBrick = (.698,.132,.132);
+color FloralWhite; FloralWhite = (1,.98,.94);
+color ForestGreen; ForestGreen = (.132,.545,.132);
+color Fuchsia; Fuchsia = (1,0,1);
+color Gainsboro; Gainsboro = (.864,.864,.864);
+color GhostWhite; GhostWhite = (.972,.972,1);
+color Gold; Gold = (1,.844,0);
+color Goldenrod; Goldenrod = (.855,.648,.125);
+color Gray; Gray = (.5,.5,.5);
+color Green; Green = (0,.5,0);
+color GreenYellow; GreenYellow = (.68,1,.185);
+color Grey; Grey = (.5,.5,.5);
+color Honeydew; Honeydew = (.94,1,.94);
+color HotPink; HotPink = (1,.41,.705);
+color IndianRed; IndianRed = (.804,.36,.36);
+color Indigo; Indigo = (.294,0,.51);
+color Ivory; Ivory = (1,1,.94);
+color Khaki; Khaki = (.94,.9,.55);
+color Lavender; Lavender = (.9,.9,.98);
+color LavenderBlush; LavenderBlush = (1,.94,.96);
+color LawnGreen; LawnGreen = (.488,.99,0);
+color LemonChiffon; LemonChiffon = (1,.98,.804);
+color LightBlue; LightBlue = (.68,.848,.9);
+color LightCoral; LightCoral = (.94,.5,.5);
+color LightCyan; LightCyan = (.88,1,1);
+color LightGoldenrod; LightGoldenrod = (.933,.867,.51);
+color LightGoldenrodYellow; LightGoldenrodYellow = (.98,.98,.824);
+color LightGray; LightGray = (.828,.828,.828);
+color LightGreen; LightGreen = (.565,.932,.565);
+color LightGrey; LightGrey = (.828,.828,.828);
+color LightPink; LightPink = (1,.712,.756);
+color LightSalmon; LightSalmon = (1,.628,.48);
+color LightSeaGreen; LightSeaGreen = (.125,.698,.668);
+color LightSkyBlue; LightSkyBlue = (.53,.808,.98);
+color LightSlateBlue; LightSlateBlue = (.518,.44,1);
+color LightSlateGray; LightSlateGray = (.468,.532,.6);
+color LightSlateGrey; LightSlateGrey = (.468,.532,.6);
+color LightSteelBlue; LightSteelBlue = (.69,.77,.87);
+color LightYellow; LightYellow = (1,1,.88);
+color Lime; Lime = (0,1,0);
+color LimeGreen; LimeGreen = (.196,.804,.196);
+color Linen; Linen = (.98,.94,.9);
+color Magenta; Magenta = (1,0,1);
+color Maroon; Maroon = (.5,0,0);
+color MediumAquamarine; MediumAquamarine = (.4,.804,.668);
+color MediumBlue; MediumBlue = (0,0,.804);
+color MediumOrchid; MediumOrchid = (.73,.332,.828);
+color MediumPurple; MediumPurple = (.576,.44,.86);
+color MediumSeaGreen; MediumSeaGreen = (.235,.7,.444);
+color MediumSlateBlue; MediumSlateBlue = (.484,.408,.932);
+color MediumSpringGreen; MediumSpringGreen = (0,.98,.604);
+color MediumTurquoise; MediumTurquoise = (.284,.82,.8);
+color MediumVioletRed; MediumVioletRed = (.78,.084,.52);
+color MidnightBlue; MidnightBlue = (.098,.098,.44);
+color MintCream; MintCream = (.96,1,.98);
+color MistyRose; MistyRose = (1,.894,.884);
+color Moccasin; Moccasin = (1,.894,.71);
+color NavajoWhite; NavajoWhite = (1,.87,.68);
+color Navy; Navy = (0,0,.5);
+color NavyBlue; NavyBlue = (0,0,.5);
+color OldLace; OldLace = (.992,.96,.9);
+color Olive; Olive = (.5,.5,0);
+color OliveDrab; OliveDrab = (.42,.556,.136);
+color Orange; Orange = (1,.648,0);
+color OrangeRed; OrangeRed = (1,.27,0);
+color Orchid; Orchid = (.855,.44,.84);
+color PaleGoldenrod; PaleGoldenrod = (.932,.91,.668);
+color PaleGreen; PaleGreen = (.596,.985,.596);
+color PaleTurquoise; PaleTurquoise = (.688,.932,.932);
+color PaleVioletRed; PaleVioletRed = (.86,.44,.576);
+color PapayaWhip; PapayaWhip = (1,.936,.835);
+color PeachPuff; PeachPuff = (1,.855,.725);
+color Peru; Peru = (.804,.52,.248);
+color Pink; Pink = (1,.752,.796);
+color Plum; Plum = (.868,.628,.868);
+color PowderBlue; PowderBlue = (.69,.88,.9);
+color Purple; Purple = (.5,0,.5);
+color Red; Red = (1,0,0);
+color RosyBrown; RosyBrown = (.736,.56,.56);
+color RoyalBlue; RoyalBlue = (.255,.41,.884);
+color SaddleBrown; SaddleBrown = (.545,.27,.075);
+color Salmon; Salmon = (.98,.5,.448);
+color SandyBrown; SandyBrown = (.956,.644,.376);
+color SeaGreen; SeaGreen = (.18,.545,.34);
+color Seashell; Seashell = (1,.96,.932);
+color Sienna; Sienna = (.628,.32,.176);
+color Silver; Silver = (.752,.752,.752);
+color SkyBlue; SkyBlue = (.53,.808,.92);
+color SlateBlue; SlateBlue = (.415,.352,.804);
+color SlateGray; SlateGray = (.44,.5,.565);
+color SlateGrey; SlateGrey = (.44,.5,.565);
+color Snow; Snow = (1,.98,.98);
+color SpringGreen; SpringGreen = (0,1,.498);
+color SteelBlue; SteelBlue = (.275,.51,.705);
+color Tan; Tan = (.824,.705,.55);
+color Teal; Teal = (0,.5,.5);
+color Thistle; Thistle = (.848,.75,.848);
+color Tomato; Tomato = (1,.39,.28);
+color Turquoise; Turquoise = (.25,.88,.815);
+color Violet; Violet = (.932,.51,.932);
+color VioletRed; VioletRed = (.816,.125,.565);
+color Wheat; Wheat = (.96,.87,.7);
+color White; White = (1,1,1);
+color WhiteSmoke; WhiteSmoke = (.96,.96,.96);
+color Yellow; Yellow = (1,1,0);
+color YellowGreen; YellowGreen = (.604,.804,.196);
+endinput
Property changes on: trunk/Master/texmf-dist/metapost/profcollege/PfCSvgnames.mp
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationComposition2.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationComposition2.tex 2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationComposition2.tex 2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,275 +0,0 @@
-% Licence : Released under the LaTeX Project Public License v1.3c
-% or later, see http://www.latex-project.org/lppl.txtf
-\newcommand{\EquaDeuxComposition}[5][]{%type ax+b=d ou b=cx+d$
- \useKVdefault[ClesEquation]%
- \setKV[ClesEquation]{#1}%
- \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide
- \EquaDeuxComposition[#1]{#4}{#5}{#2}{#3}
- \else%cas ax+b=d
- \xintifboolexpr{#2=0}{%
- \xintifboolexpr{#3=#5}{%b=d
- L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
- {%b<>d
- L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
- }%
- }{%ELSE
- \xintifboolexpr{#3=0}{%ax+b=d
- \EquaBase[#1]{#2}{}{}{#5}%
- }{%ax+b=d$ Ici
- \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Ccompo}{\useKV[ClesEquation]{CouleurCompo}}}{}
- \begin{align*}
- \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{#5}}\tikzmark{E-\theNbequa}\\
- \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{#5-#3}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}\\
- \tikzmark{C-\theNbequa}\xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
- \xintifboolexpr{\Coeffa=1}{}{\\}
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{A-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
- \rightcomment{E-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
- }{}
- \xintifboolexpr{\Coeffa=1}{%
- }{%\ifnum\cmtd>1
- \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{%ICI ?
- \ifboolKV[ClesEquation]{FlecheDiv}{%
- \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{}
- }
- }
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
- }{}
- }{}
- \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
- \end{align*}
- \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.
- }{}
- }
- }
- \fi
-}
-
-\newcommand{\EquaTroisComposition}[5][]{%ax+b=cx ou ax=cx+d
- \useKVdefault[ClesEquation]%
- \setKV[ClesEquation]{#1}%
- \ifx\bla#3\bla%on inverse en faisant attention à la boucle #3<->#5
- \ifx\bla#5\bla%
- %% paramètre oublié
- \else
- \EquaTroisComposition[#1]{#4}{#5}{#2}{}%
- \fi
- \else
- \xintifboolexpr{#2=0}{%b=cx
- \EquaBase[#1]{#4}{}{}{#3}
- }{%
- \xintifboolexpr{#4=0}{%ax+b=0
- \EquaDeuxComposition[#1]{#2}{#3}{}{0}
- }{%ax+b=cx
- \xintifboolexpr{#2=#4}{%
- \xintifboolexpr{#3=0}{%ax=ax
- L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solutions.}%
- {%ax+b=ax
- L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.%
- }%
- }{%% Cas délicat
- \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c
- \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Ccompo}{\useKV[ClesEquation]{CouleurCompo}}}{}
- \begin{align*}
- \tikzmark{A-\theNbequa}\mathcolor{Ccompo}{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\
- \mathcolor{Ccompo}{\num{\fpeval{#2-#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{+\num{#4}\useKV[ClesEquation]{Lettre}}{-\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\\
- \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{0}\tikzmark{F-\theNbequa}\\
- \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{0-#3}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}\tikzmark{F-\theNbequa}\\
- \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
- \xintifboolexpr{\Coeffa=1}{}{\\}
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
- \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
- \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
- \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
- }{}
- \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
- \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{
- \ifboolKV[ClesEquation]{FlecheDiv}{%
- \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{}
- }
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
- }{}
- }{}
- }
- \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
- \end{align*}
- \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}
- }{%ax+b=cx+d avec a<c % Autre cas délicat
- \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Ccompo}{\useKV[ClesEquation]{CouleurCompo}}}{}
- \begin{align*}%
- \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\tikzmark{E-\theNbequa}\\
- \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{#4-#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#2>0}{+\num{#2}\useKV[ClesEquation]{Lettre}}{-\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\\
- \tikzmark{B-\theNbequa}\xdef\Coeffb{#3}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{F-\theNbequa}
- \xintifboolexpr{\Coeffa=1}{}{\\}
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
- \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
- }{}
- \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
- \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{B-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{
- \ifboolKV[ClesEquation]{FlecheDiv}{%
- \leftcomment{B-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{}
- }
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
- }{}
- }{}
- }
- \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
- \end{align*}
- \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}%
- }%
- }%
- }%
- }%
- \fi
-}%
-
-
-\newcommand{\ResolEquationComposition}[5][]{%
- \useKVdefault[ClesEquation]%
- \setKV[ClesEquation]{#1}%
- \xintifboolexpr{#2=0}{%
- \xintifboolexpr{#4=0}{%
- \xintifboolexpr{#3=#5}{%b=d
- L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
- {%b<>d
- L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
- }%
- }%
- {%0x+b=cx+d$
- \EquaDeuxComposition[#1]{#4}{#5}{#2}{#3}%
- }%
- }{%
- \xintifboolexpr{#4=0}{%ax+b=0x+d
- \EquaDeuxComposition[#1]{#2}{#3}{}{#5}%
- }
- {%ax+b=cx+d$
- \xintifboolexpr{#3=0}{%
- \xintifboolexpr{#5=0}{%ax=cx
- \EquaTroisComposition[#1]{#2}{0}{#4}{}%
- }%
- {%ax=cx+d
- \EquaTroisComposition[#1]{#4}{#5}{#2}{}%
- }%
- }%
- {\xintifboolexpr{#5=0}{%ax+b=cx
- \EquaTroisComposition[#1]{#2}{#3}{#4}{}%
- }%
- {%ax+b=cx+d -- ici
- \xintifboolexpr{#2=#4}{%
- \xintifboolexpr{#3=#5}{%b=d
- L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solutions.}%
- {%b<>d
- L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.%
- }%
- }{
- %% Cas délicat
- \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c
- \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Ccompo}{\useKV[ClesEquation]{CouleurCompo}}}{}
- \begin{align*}
- \tikzmark{A-\theNbequa}\mathcolor{Ccompo}{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\
- \mathcolor{Ccompo}{\num{\fpeval{#2-#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{+\num{#4}\useKV[ClesEquation]{Lettre}}{-\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
- \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{#5}}\tikzmark{F-\theNbequa}\\
- \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{#5-#3}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}\\
- \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
- \xintifboolexpr{\Coeffa=1}{}{\\}
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
- \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
- \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
- \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
- }{}
- \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
- \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{
- \ifboolKV[ClesEquation]{FlecheDiv}{%
- \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{}
- }
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
- }{}
- }{}
- }
- \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
- \end{align*}
- \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
- }{}
- }{%ax+b=cx+d avec a<c % Autre cas délicat
- \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Ccompo}{\useKV[ClesEquation]{CouleurCompo}}}{}%
- \begin{align*}%
- \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\
- \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{#4-#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#2>0}{+\num{#2}\useKV[ClesEquation]{Lettre}}{-\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
- \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{F-\theNbequa}\\
- \mathcolor{Ccompo}{\num{\fpeval{#3-#5}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
- \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#3-#5}}\num{\Coeffb}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{G-\theNbequa}%\\
- \xintifboolexpr{\Coeffa=1}{}{\\}
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
- \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
- \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}%
- \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}%
- }{}
- \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
- \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{
- \ifboolKV[ClesEquation]{FlecheDiv}{%
- \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{}
- }
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
- }{}
- }{}
- }
- \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
- \end{align*}
- \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
- }{}%
- }%
- }%
- }%
- }%
- }%
- }%
-}%
\ No newline at end of file
Deleted: trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationLaurent1.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationLaurent1.tex 2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationLaurent1.tex 2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,226 +0,0 @@
-% Licence : Released under the LaTeX Project Public License v1.3c
-% or later, see http://www.latex-project.org/lppl.txtf
-\newcommand{\EquaBaseLaurent}[5][]{%type ax=d ou b=cx
- \useKVdefault[ClesEquation]%
- \setKV[ClesEquation]{#1}%
- \ifx\bla#2\bla%on teste si le paramètre #2 est vide:
- % si oui, on est dans le cas b=cx. Eh bien on échange :)
- % Mais attention si les deux paramètres a et c sont vides...
- \EquaBase[#1]{#4}{}{}{#3}
- \else
- % si non, on est dans le cas ax=d
- \xintifboolexpr{#2=0}{%
- \xintifboolexpr{#5=0}{%
- L'équation $0\useKV[ClesEquation]{ELettre}=0$ a une infinité de solution.}{L'équation $0\useKV[ClesEquation]{Lettre}=\num{#5}$ n'a aucune solution.}%
- }{%\else
- \xintifboolexpr{#5=0}{L'équation $\num{#2}\useKV[ClesEquation]{Lettre}=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.}{%\else
- \begin{align*}%
- \xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{#2}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{#2}}}}&=\xintifboolexpr{#2=1}{\num{#5}}{\color{Cdecomp}\frac{\color{black}\num{#5}}{\num{#2}}}
- \xintifboolexpr{#2=1}{}{\\\useKV[ClesEquation]{Lettre}&=\frac{\num{#5}}{\num{#2}}}%\\
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{#5}{#2}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{#5}{#2}}{}%\\
- }{}
- }{}
- \end{align*}
- \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}=\num{#5}}{\num{#2}\useKV[ClesEquation]{Lettre}=\num{#5}}$ a une unique solution : $\displaystyle\useKV[ClesEquation]{Lettre}=\opdiv*{#5}{#2}{numequa}{resteequa}\opcmp{resteequa}{0}\ifopeq\opexport{numequa}{\numequa}\num{\numequa}\else\ifboolKV[ClesEquation]{Simplification}{\SSimplifie{#5}{#2}}{\frac{\num{#5}}{\num{#2}}}\fi$.%
- }{}
- }
- }
- \fi
-}
-
-\newcommand{\EquaDeuxLaurent}[5][]{%type ax+b=d ou b=cx+d$
- \useKVdefault[ClesEquation]%
- \setKV[ClesEquation]{#1}%
- \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide
- \EquaDeuxLaurent[#1]{#4}{#5}{#2}{#3}
- \else%cas ax+b=d
- \xintifboolexpr{#2=0}{%
- \xintifboolexpr{#3=#5}{%b=d
- L'équation $\num{#3}=\num{#5}$ a une infinité de solution.}%
- {%b<>d
- L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
- }%
- }{%ELSE
- \xintifboolexpr{#3=0}{%ax+b=d
- \EquaBaseLaurent[#1]{#2}{}{}{#5}%
- }{%ax+b=d$ Ici
- \begin{align*}
- \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#3} {}}\stackText}{-\num{\fpeval{0-#3}}\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}&=\num{#5}\xintifboolexpr{#3>0}{\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}\\
- \xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}%\\
- \xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa=1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\
- \xintifboolexpr{\Coeffa=1}{}{\\}
- \xintifboolexpr{\Coeffa=1}{%
- }{%\ifnum\cmtd>1
- \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
- }{}
- }{}
- }
- \end{align*}
- \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.
- }{}
- }
- }
-}
-
-\newcommand{\EquaTroisLaurent}[5][]{%ax+b=cx ou ax=cx+d
- \useKVdefault[ClesEquation]%
- \setKV[ClesEquation]{#1}%
- \ifx\bla#3\bla%on inverse en faisant attention à la boucle #3<->#5
- \ifx\bla#5\bla%
- %% paramètre oublié
- \else
- \EquaTroisLaurent[#1]{#4}{#5}{#2}{}%
- \fi
- \else
- \xintifboolexpr{#2=0}{%b=cx
- \EquaBaseLaurent[#1]{#4}{}{}{#3}
- }{%
- \xintifboolexpr{#4=0}{%ax+b=0
- \EquaDeuxLaurent[#1]{#2}{#3}{}{0}
- }{%ax+b=cx
- \xintifboolexpr{#2=#4}{%
- \xintifboolexpr{#3=0}{%ax=ax
- L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solution.}%
- {%ax+b=ax
- L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.%
- }%
- }{%% Cas délicat
- \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c
- \begin{align*}
- \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#3} {}}\stackText}{-\num{\fpeval{0-#3}}\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}\\
- \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}\\
- \xdef\Coeffa{\fpeval{#2-#4}}\xdef\Coeffb{\fpeval{0-#3}}%\\
- \xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa=1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\
- \xintifboolexpr{\Coeffa=1}{}{\\}
- \xintifboolexpr{\Coeffa=1}{%
- }{%\ifnum\cmtd>1
- \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
- }{}
- }{}
- }
- \end{align*}
- \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}
- }{%ax+b=cx avec a<c % Autre cas délicat
- \begin{align*}%
- \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\\
- \xdef\Coeffa{\fpeval{#2-#4}}\xdef\Coeffb{\fpeval{0-#3}}%\\
- \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#3} {}}\stackText}{-\num{\fpeval{0-#3}}\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}&=0\xintifboolexpr{#3>0}{\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}\\
- \xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa=1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\
- \xintifboolexpr{\Coeffa=1}{}{\\}
- \xintifboolexpr{\Coeffa=1}{%
- }{%\ifnum\cmtd>1
- \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
- }{}
- }{}
- }
- \end{align*}
- \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}%
- }%
- }%
- }%
- }%
- \fi
-}%
-
-\newcommand{\ResolEquationLaurent}[5][]{%
- \useKVdefault[ClesEquation]%
- \setKV[ClesEquation]{#1}%
- \xintifboolexpr{#2=0}{%
- \xintifboolexpr{#4=0}{%
- \xintifboolexpr{#3=#5}{%b=d
- L'équation $\num{#3}=\num{#5}$ a une infinité de solution.}%
- {%b<>d
- L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
- }%
- }%
- {%0x+b=cx+d
- \EquaDeuxLaurent[#1]{#4}{#5}{}{#3}%
- }%
- }{%
- \xintifboolexpr{#4=0}{%ax+b=0x+d
- \EquaDeuxLaurent[#1]{#2}{#3}{}{#5}%
- }
- {%ax+b=cx+d
- \xintifboolexpr{#3=0}{%
- \xintifboolexpr{#5=0}{%ax=cx
- \EquaTroisLaurent[#1]{#2}{0}{#4}{}%
- }%
- {%ax=cx+d
- \EquaTroisLaurent[#1]{#4}{#5}{#2}{}%
- }%
- }%
- {\xintifboolexpr{#5=0}{%ax+b=cx
- \EquaTroisLaurent[#1]{#2}{#3}{#4}{}%
- }%
- {%ax+b=cx+d -- ici
- \xintifboolexpr{#2=#4}{%
- \xintifboolexpr{#3=#5}{%b=d
- L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solution.}%
- {%b<>d
- L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.%
- }%
- }{%% Cas délicat
- \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c
- \begin{align*}
- \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#3} {}}\stackText}{-\num{\fpeval{0-#3}}\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\xintifboolexpr{#3>0}{\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}\\
- \xdef\Coeffa{\fpeval{#2-#4}}\xdef\Coeffb{\fpeval{#5-#3}}%\\
- \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\xintifboolexpr{\Coeffb>0}{+\num{\Coeffb}}{-\num{\fpeval{0-\Coeffb}}}\\
- \xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa=1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\
- \xintifboolexpr{\Coeffa=1}{}{\\}
- \xintifboolexpr{\Coeffa=1}{%
- }{%\ifnum\cmtd>1
- \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
- }{}
- }{}
- }
- \end{align*}
- \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
- }{}
- }{%ax+b=cx+d avec a<c % Autre cas délicat
- \begin{align*}%
- \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}\xintifboolexpr{#3>0}{\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#3}} {}}\stackText}%
- &=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\xintifboolexpr{#3>0}{\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#3}} {}}\stackText}
- \\
- \xdef\Coeffa{\fpeval{#2-#4}}\xdef\Coeffb{\fpeval{#5-#3}}%\\
- \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\xintifboolexpr{\Coeffb>0}{+\num{\Coeffb}}{-\num{\fpeval{0-\Coeffb}}}\\
- \xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa=1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\
- \xintifboolexpr{\Coeffa=1}{}{\\}
- \xintifboolexpr{\Coeffa=1}{%
- }{%\ifnum\cmtd>1
- \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
- }{}
- }{}
- }
- \end{align*}
- \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
- }{}%
- }%
- }%
- }%
- }%
- }%
- }%
-}%
\ No newline at end of file
Deleted: trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationPose1.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationPose1.tex 2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationPose1.tex 2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,246 +0,0 @@
-% Licence : Released under the LaTeX Project Public License v1.3c
-% or later, see http://www.latex-project.org/lppl.txtf
-\newcommand{\EquaBaseL}[5][]{%type ax=d ou b=cx
- \useKVdefault[ClesEquation]%
- \setKV[ClesEquation]{#1}%
- \ifx\bla#2\bla%on teste si le paramètre #2 est vide:
- % si oui, on est dans le cas b=cx. Eh bien on échange :)
- % Mais attention si les deux paramètres a et c sont vides...
- \EquaBaseL[#1]{#4}{}{}{#3}
- \else
- % si non, on est dans le cas ax=d
- \xintifboolexpr{#2=0}{%
- \xintifboolexpr{#5=0}{%
- L'équation $0\useKV[ClesEquation]{Lettre}=0$ a une infinité de solution.}{L'équation $0\useKV[ClesEquation]{Lettre}=\num{#5}$ n'a aucune solution.}%
- }{%\else
- \xintifboolexpr{#5=0}{L'équation $\num{#2}\useKV[ClesEquation]{Lettre}=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.}{%\else
- \begin{align*}%
- \xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\num{#2}\useKV[ClesEquation]{Lettre}}&=\num{#5}\\
- \xintifboolexpr{#2=1}{}{%
- \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}}\phantom{\useKV[ClesEquation]{Lettre}}&\phantom{=}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}}\\}
- \useKV[ClesEquation]{Lettre}&=\frac{\num{#5}}{\num{#2}}%\\
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{#5}{#2}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{#5}{#2}}{}%\\
- }{}
- }{}
- %\ifboolKV[ClesEquation]{Fleches}{%
- %\stepcounter{Nbequa}}%
- %{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}
- %}
- \end{align*}
- \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}=\num{#5}}{\num{#2}\useKV[ClesEquation]{Lettre}=\num{#5}}$ a une unique solution : $\displaystyle\useKV[ClesEquation]{Lettre}=\opdiv*{#5}{#2}{numequa}{resteequa}\opcmp{resteequa}{0}\ifopeq\opexport{numequa}{\numequa}\num{\numequa}\else\ifboolKV[ClesEquation]{Simplification}{\SSimplifie{#5}{#2}}{\frac{\num{#5}}{\num{#2}}}\fi$.%
- }{}
- }
- }
- \fi
-}
-
-\newcommand{\EquaDeuxL}[5][]{%type ax+b=d ou b=cx+d$
- \useKVdefault[ClesEquation]%
- \setKV[ClesEquation]{#1}%
- \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide
- \EquaDeuxL[#1]{#4}{#5}{#2}{#3}
- \else%cas ax+b=d
- \xintifboolexpr{#2=0}{%
- \xintifboolexpr{#3=#5}{%b=d
- L'équation $\num{#3}=\num{#5}$ a une infinité de solution.}%
- {%b<>d
- L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
- }%
- }{%ELSE
- \xintifboolexpr{#3=0}{%ax+b=d
- \EquaBaseL[#1]{#2}{}{}{#5}%
- }{%ax+b=d$ Ici
- \begin{align*}
- \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\\
- \phantom{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}&\phantom{\mathrel{=}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\
- \xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\num{\Coeffb}%\\
- \xintifboolexpr{\Coeffa=1}{}{\\}
- \xintifboolexpr{\Coeffa=1}{%
- }{%\ifnum\cmtd>1
- \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}}\phantom{\useKV[ClesEquation]{Lettre}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\phantom{=}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}}\\
- \useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
- }
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{%
- \\\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\SSimplifie{\Coeffb}{\Coeffa}%
- }{}%\\
- }{}
- }{}
- \end{align*}
- \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.
- }{}
- }
- }
- \fi
-}
-
-\newcommand{\EquaTroisL}[5][]{%ax+b=cx ou ax=cx+d
- \useKVdefault[ClesEquation]%
- \setKV[ClesEquation]{#1}%
- \ifx\bla#3\bla%on inverse en faisant attention à la boucle #3<->#5
- \ifx\bla#5\bla%
- %% paramètre oublié
- \else
- \EquaTroisL[#1]{#4}{#5}{#2}{}%
- \fi
- \else
- \xintifboolexpr{#2=0}{%b=cx
- \EquaBaseL[#1]{#4}{}{}{#3}
- }{%
- \xintifboolexpr{#4=0}{%ax+b=0
- \EquaDeuxL[#1]{#2}{#3}{}{0}
- }{%ax+b=cx
- \xintifboolexpr{#2=#4}{%
- \xintifboolexpr{#3=0}{%ax=ax
- L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solution.}%
- {%ax+b=ax
- L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.%
- }%
- }{%% Cas délicat
- \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c
- \begin{align*}
- \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\\
- \mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{{}-{}\num{#4}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\phantom{{}={}}\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\\
- \xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\\
- \phantom{\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{{}-{}\num{#3}}{{}+{}\num{\fpeval{0-#3}}}}&\phantom{\mathrel{=}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{{}-{}\num{#3}}{{}+{}\num{\fpeval{0-#3}}}}\\
- \xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\num{\Coeffb}%\\
- \xintifboolexpr{\Coeffa=1}{}{\\}
- \xintifboolexpr{\Coeffa=1}{%
- }{%\ifnum\cmtd>1
- \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\phantom{\useKV[ClesEquation]{Lettre}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\phantom{=}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\\
- \useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
- }
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\%
- \useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\SSimplifie{\Coeffb}{\Coeffa}%\\
- }{}
- }{}
- }{}
- \end{align*}
- \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}
- }{%ax+b=cx+d avec a<c % Autre cas délicat
- \begin{align*}%
- \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\\
- \mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{{}-{}\num{#2}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\phantom{{}={}}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{{}-{}\num{#2}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\\
- \xdef\Coeffb{#3}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}%\\
- \xintifboolexpr{\Coeffa=1}{}{\\}
- \xintifboolexpr{\Coeffa=1}{%
- }{%\ifnum\cmtd>1
- \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}&\phantom{=}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\\
- \frac{\num{\Coeffb}}{\num{\Coeffa}}&=\phantom{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}%\\
- }
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\%
- \SSimplifie{\Coeffb}{\Coeffa}&=\phantom{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}%\\
- }{}
- }{}
- }{}
- \end{align*}
- \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}%
- }%
- }%
- }%
- }%
- \fi
- }%\\
- % \\
-
-\newcommand{\ResolEquationL}[5][]{%
- \useKVdefault[ClesEquation]%
- \setKV[ClesEquation]{#1}%
- \xintifboolexpr{#2=0}{%
- \xintifboolexpr{#4=0}{%
- \xintifboolexpr{#3=#5}{%b=d
- L'équation $\num{#3}=\num{#5}$ a une infinité de solution.}%
- {%b<>d
- L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
- }%
- }%
- {%0x+b=cx+d$
- \EquaDeuxL[#1]{#4}{#5}{}{#3}%
- }%
- }{%
- \xintifboolexpr{#4=0}{%ax+b=0x+d
- \EquaDeuxL[#1]{#2}{#3}{}{#5}%
- }
- {%ax+b=cx+d$
- \xintifboolexpr{#3=0}{%
- \xintifboolexpr{#5=0}{%ax=cx
- \EquaTroisL[#1]{#2}{0}{#4}{}%
- }%
- {%ax=cx+d
- \EquaTroisL[#1]{#4}{#5}{#2}{}%
- }%
- }%
- {\xintifboolexpr{#5=0}{%ax+b=cx
- \EquaTroisL[#1]{#2}{#3}{#4}{}%
- }%
- {%ax+b=cx+d -- ici
- \xintifboolexpr{#2=#4}{%
- \xintifboolexpr{#3=#5}{%b=d
- L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solution.}%
- {%b<>d
- L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.%
- }%
- }{
- %% Cas délicat
- \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c
- \begin{align*}
- \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
- \mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{{}-{}\num{#4}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{{}-{}\num{#4}\useKV[ClesEquation]{Lettre}}{\phantom{{}={}}+{}\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\\
- \xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\phantom{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#5>0}{\phantom{{}+{}}\num{#5}}{-\num{\fpeval{0-#5}}}\\
- \mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{{}-{}\num{#3}}{{}+{}\num{\fpeval{0-#3}}}}&\phantom{{}={}\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{{}-{}\num{#3}}{{}+{}\num{\fpeval{0-#3}}}}\\
- \xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\phantom{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{\Coeffb>0}{\phantom{{}+{}}\num{\Coeffb}}{{}-{}\num{\fpeval{0-\Coeffb}}}%\\
- \xintifboolexpr{\Coeffa=1}{}{\\}
- \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
- \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\phantom{\useKV[ClesEquation]{Lettre}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\phantom{{}={}}\phantom{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\\
- \phantom{\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\phantom{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{\Coeffb>0}{{}+{}}{}}\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
- }
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\%
- \useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\phantom{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{\Coeffb>0}{{}+{}}{}}\SSimplifie{\Coeffb}{\Coeffa}%\\
- }{}
- }{}
- }{}
- \end{align*}
- \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
- }{}
- }{%ax+b=cx+d avec a<c % Autre cas délicat
- \begin{align*}%
- \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
- \mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{{}-{}\num{#2}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\xintifboolexpr{#4<0}{\phantom{={}}}{}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{{}-{}\num{#2}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\\
- \xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
- \mathcolor{Cdecomp}{\xintifboolexpr{#5>0}{{}-{}\num{#5}}{{}+{}\num{\fpeval{0-#5}}}}&\phantom{{}={}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}}\\
- \xdef\Coeffb{\fpeval{#3-#5}}\num{\Coeffb}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}%\\
- \xintifboolexpr{\Coeffa=1}{}{\\}
- \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
- \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}&\xintifboolexpr{\Coeffa<0}{\phantom{{}={}}}{\phantom{=}}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\\
- \frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}%\\
- }
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
- }{}
- }{}
- \end{align*}
- \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
- }{}%
- }%
- }%
- }%
- }%
- }%
- }%
-}%
Deleted: trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationSoustraction2.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationSoustraction2.tex 2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationSoustraction2.tex 2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,345 +0,0 @@
-% Licence : Released under the LaTeX Project Public License v1.3c
-% or later, see http://www.latex-project.org/lppl.txtf
-\newcommand{\EquaBase}[5][]{%type ax=d ou b=cx
- \useKVdefault[ClesEquation]%
- \setKV[ClesEquation]{#1}%
- \ifx\bla#2\bla%on teste si le paramètre #2 est vide:
- % si oui, on est dans le cas b=cx. Eh bien on échange :)
- % Mais attention si les deux paramètres a et c sont vides...
- \EquaBase[#1]{#4}{}{}{#3}
- \else
- % si non, on est dans le cas ax=d
- \xintifboolexpr{#2=0}{%
- \xintifboolexpr{#5=0}{%
- L'équation $0\useKV[ClesEquation]{ELettre}=0$ a une infinité de solutions.}{L'équation $0\useKV[ClesEquation]{Lettre}=\num{#5}$ n'a aucune solution.}%
- }{%\else
- \xintifboolexpr{#5=0}{L'équation $\num{#2}\useKV[ClesEquation]{Lettre}=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.}{%\else
- \begin{align*}%
- \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\num{#2}\useKV[ClesEquation]{Lettre}}&=\num{#5}\tikzmark{C-\theNbequa}\\
- \tikzmark{B-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{#5}}{\num{#2}}\tikzmark{D-\theNbequa}%\\
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}$}%
- \rightcomment{C-\theNbequa}{D-\theNbequa}{D-\theNbequa}{$\div\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}$}%
- }{%
- \ifboolKV[ClesEquation]{FlecheDiv}{%
- \Leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}$}%
- \Rightcomment{C-\theNbequa}{D-\theNbequa}{D-\theNbequa}{$\div\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}$}%
- }{}%
- }%%
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{#5}{#2}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{#5}{#2}}{}%\\
- }{}
- }{}
- \ifboolKV[ClesEquation]{Fleches}{%
- \stepcounter{Nbequa}}%
- {\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}
- }
- \end{align*}
- \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}=\num{#5}}{\num{#2}\useKV[ClesEquation]{Lettre}=\num{#5}}$ a une unique solution : $\displaystyle\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\opdiv*{#5}{#2}{numequa}{resteequa}\opcmp{resteequa}{0}\ifopeq\opexport{numequa}{\numequa}\num{\numequa}\else\ifboolKV[ClesEquation]{Simplification}{\SSimplifie{#5}{#2}}{\frac{\num{#5}}{\num{#2}}}\fi$.%
- }{}
- }
- }
- \fi
-}
-
-\newcommand{\EquaDeuxSoustraction}[5][]{%type ax+b=d ou b=cx+d$
- \useKVdefault[ClesEquation]%
- \setKV[ClesEquation]{#1}%
- \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide
- \EquaDeuxSoustraction[#1]{#4}{#5}{#2}{#3}
- \else%cas ax+b=d
- \xintifboolexpr{#2=0}{%
- \xintifboolexpr{#3=#5}{%b=d
- L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
- {%b<>d
- L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
- }%
- }{%ELSE
- \xintifboolexpr{#3=0}{%ax+b=d
- \EquaBase[#1]{#2}{}{}{#5}%
- }{%ax+b=d$ Ici
- \begin{align*}
- \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\tikzmark{E-\theNbequa}\\
- \ifboolKV[ClesEquation]{Decomposition}{%
- \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}&=\num{#5}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\
- }{}%
- \tikzmark{C-\theNbequa}\xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}
- \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa=1}{}{\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}}}{}
- \xintifboolexpr{\Coeffa=1}{}{\\}
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{A-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
- \rightcomment{E-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
- }{}
- \xintifboolexpr{\Coeffa=1}{%
- }{%\ifnum\cmtd>1
- \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{%ICI ?
- \ifboolKV[ClesEquation]{FlecheDiv}{%
- \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{}
- }
- }
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
- }{}
- }{}
- \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
- \end{align*}
- \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.
- }{}
- }
- }
- \fi
-}
-
-\newcommand{\EquaTroisSoustraction}[5][]{%ax+b=cx ou ax=cx+d
- \useKVdefault[ClesEquation]%
- \setKV[ClesEquation]{#1}%
- \ifx\bla#3\bla%on inverse en faisant attention à la boucle #3<->#5
- \ifx\bla#5\bla%
- %% paramètre oublié
- \else
- \EquaTroisSoustraction[#1]{#4}{#5}{#2}{}%
- \fi
- \else
- \xintifboolexpr{#2=0}{%b=cx
- \EquaBase[#1]{#4}{}{}{#3}
- }{%
- \xintifboolexpr{#4=0}{%ax+b=0
- \EquaDeuxSoustraction[#1]{#2}{#3}{}{0}
- }{%ax+b=cx
- \xintifboolexpr{#2=#4}{%
- \xintifboolexpr{#3=0}{%ax=ax
- L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solutions.}%
- {%ax+b=ax
- L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.%
- }%
- }{%% Cas délicat
- \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c
- \begin{align*}
- \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\
- \ifboolKV[ClesEquation]{Decomposition}{%
- \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\\
- }{}
- \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\tikzmark{F-\theNbequa}\\
- \ifboolKV[ClesEquation]{Decomposition}{%
- \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}&=0\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\tikzmark{F-\theNbequa}\\
- }{}%
- \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
- %eric
- \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa=1}{}{\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}}}{}
- % eric
- \xintifboolexpr{\Coeffa=1}{}{\\}
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
- \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
- \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
- \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
- }{}
- \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
- \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{
- \ifboolKV[ClesEquation]{FlecheDiv}{%
- \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{}
- }
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
- }{}
- }{}
- }
- \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
- \end{align*}
- \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}
- }{%ax+b=cx+d avec a<c % Autre cas délicat
- \begin{align*}%
- \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\
- \ifboolKV[ClesEquation]{Decomposition}{%
- \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\\
- }{}
- \tikzmark{B-\theNbequa}\xdef\Coeffb{#3}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{F-\theNbequa}
- \xintifboolexpr{\Coeffa=1}{}{\\}
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
- \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
- }{}
- % eric
- \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa=1}{}{\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}&=\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}}}{}
- % eric
- \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
- \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{B-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{
- \ifboolKV[ClesEquation]{FlecheDiv}{%
- \leftcomment{B-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{}
- }
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
- }{}
- }{}
- }
- \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
- \end{align*}
- \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}%
- }%
- }%
- }%
- }%
- \fi
- }%
-
-
-\newcommand{\ResolEquationSoustraction}[5][]{%
- \useKVdefault[ClesEquation]%
- \setKV[ClesEquation]{#1}%
- \xintifboolexpr{#2=0}{%
- \xintifboolexpr{#4=0}{%
- \xintifboolexpr{#3=#5}{%b=d
- L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
- {%b<>d
- L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
- }%
- }%
- {%0x+b=cx+d$
- \EquaDeuxSoustraction[#1]{#4}{#5}{}{#3}%
- }%
- }{%
- \xintifboolexpr{#4=0}{%ax+b=0x+d
- \EquaDeuxSoustraction[#1]{#2}{#3}{}{#5}%
- }
- {%ax+b=cx+d$
- \xintifboolexpr{#3=0}{%
- \xintifboolexpr{#5=0}{%ax=cx
- \EquaTroisSoustraction[#1]{#2}{0}{#4}{}%
- }%
- {%ax=cx+d
- \EquaTroisSoustraction[#1]{#4}{#5}{#2}{}%
- }%
- }%
- {\xintifboolexpr{#5=0}{%ax+b=cx
- \EquaTroisSoustraction[#1]{#2}{#3}{#4}{}%
- }%
- {%ax+b=cx+d -- ici
- \xintifboolexpr{#2=#4}{%
- \xintifboolexpr{#3=#5}{%b=d
- L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solutions.}%
- {%b<>d
- L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.%
- }%
- }{
- %% Cas délicat
- \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c
- \begin{align*}
- \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\
- \ifboolKV[ClesEquation]{Decomposition}{%
- \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
- }{}
- \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\tikzmark{F-\theNbequa}\\
- \ifboolKV[ClesEquation]{Decomposition}{%
- \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}&=\num{#5}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\
- }{}%
- \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
- % eric
- \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa=1}{}{\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}}}{}
- % eric
- \xintifboolexpr{\Coeffa=1}{}{\\}
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
- \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
- \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
- \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
- }{}
- \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
- \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{
- \ifboolKV[ClesEquation]{FlecheDiv}{%
- \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{}
- }
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
- }{}
- }{}
- }
- \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
- \end{align*}
- \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
- }{}
- }{%ax+b=cx+d avec a<c % Autre cas délicat
- \begin{align*}%
- \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\
- \ifboolKV[ClesEquation]{Decomposition}{%
- \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
- }{}
- \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{F-\theNbequa}\\
- \ifboolKV[ClesEquation]{Decomposition}{%
- \num{#3}\mathcolor{Cdecomp}{\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\mathcolor{Cdecomp}{\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}}\\
- }{}%
- \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#3-#5}}\num{\Coeffb}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{G-\theNbequa}%\\
- % eric
- \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa=1}{}{\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}&=\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}}}{}
- % eric
- \xintifboolexpr{\Coeffa=1}{}{\\}
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
- \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
- \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}%
- \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}%
- }{}
- \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
- \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{
- \ifboolKV[ClesEquation]{FlecheDiv}{%
- \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{}
- }
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
- }{}
- }{}
- }
- \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
- \end{align*}
- \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
- }{}%
- }%
- }%
- }%
- }%
- }%
- }%
-}%
-
-
Deleted: trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationSymbole1.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationSymbole1.tex 2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationSymbole1.tex 2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,225 +0,0 @@
-% Licence : Released under the LaTeX Project Public License v1.3c
-% or later, see http://www.latex-project.org/lppl.txtf
-\newcommand{\EquaBaseSymbole}[5][]{%type ax=d ou b=cx
- \useKVdefault[ClesEquation]%
- \setKV[ClesEquation]{#1}%
- \setKV[ClesEquation]{Fleches=false,FlecheDiv=false,Terme=false,Decomposition=false}
- \ifx\bla#2\bla%on teste si le paramètre #2 est vide:
- % si oui, on est dans le cas b=cx. Eh bien on échange :)
- % Mais attention si les deux paramètres a et c sont vides...
- \ifx\bla#4\bla
- %% il manque un paramètre
- \else
- \EquaBaseSymbole[#1]{#4}{}{}{#3}
- \fi
- \else
- % si non, on est dans le cas ax=d
- \xintifboolexpr{#2=0}{%
- \xintifboolexpr{#5=0}{%
- L'équation $0\times\useKV[ClesEquation]{Lettre}=0$ a une infinité de solution.}{L'équation $0\times\useKV[ClesEquation]{Lettre}=\num{#5}$ n'a aucune solution.}%
- }{%\else
- \xintifboolexpr{#5=0}{L'équation $\num{#2}\times\useKV[ClesEquation]{Lettre}=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.}{%\else
- \begin{align*}%
- \xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}&=\num{#5}\\
- \useKV[ClesEquation]{Lettre}&=\frac{\num{#5}}{\num{#2}}%\\
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{#5}{#2}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{#5}{#2}}{}%\\
- }{}
- }{}
- \end{align*}
- }
- }
- \fi
-}
-
-\newcommand{\EquaDeuxSymbole}[5][]{%type ax+b=d ou b=cx+d$
- \useKVdefault[ClesEquation]%
- \setKV[ClesEquation]{#1}%
- \setKV[ClesEquation]{Fleches=false,FlecheDiv=false,Terme=false,Decomposition=false}
- \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide
- \EquaDeuxSymbole[#1]{#4}{#5}{#2}{#3}
- \else%cas ax+b=d
- \xintifboolexpr{#2=0}{%
- \xintifboolexpr{#3=#5}{%b=d
- L'équation $\num{#3}=\num{#5}$ a une infinité de solution.}%
- {%b<>d
- L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
- }%
- }{%ELSE
- \xintifboolexpr{#3=0}{%ax+b=d
- \EquaBaseSymbole[#1]{#2}{}{}{#5}%
- }{%ax+b=d$ Ici
- \begin{align*}
- \xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\\
- \ifboolKV[ClesEquation]{Bloc}{\Fdash{$\xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}$}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\\}{}%
- \xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}&=\num{\Coeffb}%\\
- \xintifboolexpr{\Coeffa=1}{%
- }{%\ifnum\cmtd>1
- \\
- \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
- }{}
- }{}
- }
- \end{align*}
- }
- }
- \fi
-}
-
-\newcommand{\EquaTroisSymbole}[5][]{%ax+b=cx ou ax=cx+d
- \useKVdefault[ClesEquation]%
- \setKV[ClesEquation]{#1}%
- \setKV[ClesEquation]{Fleches=false,FlecheDiv=false,Terme=false,Decomposition=false}
- \ifx\bla#3\bla%on inverse en faisant attention à la boucle #3<->#5
- \ifx\bla#5\bla%
- %% paramètre oublié
- \else
- \EquaTroisSymbole[#1]{#4}{#5}{#2}{}%
- \fi
- \else
- \xintifboolexpr{#2=0}{%b=cx
- \EquaBaseSymbole[#1]{#4}{}{}{#3}
- }{%
- \xintifboolexpr{#4=0}{%ax+b=0
- \EquaDeuxSymbole[#1]{#2}{#3}{}{0}
- }{%ax+b=cx
- \xintifboolexpr{#2=#4}{%
- \xintifboolexpr{#3=0}{%ax=ax
- L'équation $\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}=\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}$ a une infinité de solution.}%
- {%ax+b=ax
- L'équation $\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.%
- }%
- }{%% Cas délicat
- \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c
- \begin{align*}
- \multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\\
- \mathcolor{Csymbole}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{#4-1}}{+\useKV[ClesEquation]{Lettre}}}\multido{\i=1+1}{\fpeval{#2-#4}}{+\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Csymbole}{\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}\\
- \xdef\Coeffa{\fpeval{#2-#4}}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\\
- \ifboolKV[ClesEquation]{Bloc}{\Fdash{\mathcolor{Csymbole!30}{$\multido{\i=1+1}{\fpeval{\Coeffa-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}$}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\\}{}
- \xdef\Coeffb{\fpeval{0-#3}}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}%\\
- \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
- \\\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
- }{}
- }{}
- }
- \end{align*}
- }{%ax+b=cx+d avec a<c % Autre cas délicat
- \begin{align*}%
- \multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\\
- \mathcolor{Csymbole}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{#2-1}}{+\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Csymbole}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{#2-1}}{+\useKV[ClesEquation]{Lettre}}}\multido{\i=1+1}{\fpeval{#4-#2}}{+\useKV[ClesEquation]{Lettre}}\\
- \xdef\Coeffb{#3}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\multido{\i=1+1}{\fpeval{\Coeffa-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}% \\
- \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
- \\\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}%\\
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
- }{}
- }{}
- }
- \end{align*}
- }%
- }%
- }%
- }%
- \fi
- }%
-
-
-\newcommand{\ResolEquationSymbole}[5][]{%
- \useKVdefault[ClesEquation]%
- \setKV[ClesEquation]{#1}%
- \setKV[ClesEquation]{Fleches=false,FlecheDiv=false,Terme=false,Decomposition=false}
- \xintifboolexpr{#2=0}{%
- \xintifboolexpr{#4=0}{%
- \xintifboolexpr{#3=#5}{%b=d
- L'équation $\num{#3}=\num{#5}$ a une infinité de solution.}%
- {%b<>d
- L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
- }%
- }%
- {%0x+b=cx+d$
- \EquaDeuxSymbole[#1]{#4}{#5}{#2}{#3}%
- }%
- }{%
- \xintifboolexpr{#4=0}{%ax+b=0x+d
- \EquaDeuxSymbole[#1]{#2}{#3}{}{#5}%
- }
- {%ax+b=cx+d$
- \xintifboolexpr{#3=0}{%
- \xintifboolexpr{#5=0}{%ax=cx
- \EquaTroisSymbole[#1]{#2}{0}{#4}{}%
- }%
- {%ax=cx+d
- \EquaTroisSymbole[#1]{#4}{#5}{#2}{}%
- }%
- }%
- {\xintifboolexpr{#5=0}{%ax+b=cx
- \EquaTroisSymbole[#1]{#2}{#3}{#4}{}%
- }%
- {%ax+b=cx+d -- ici
- \xintifboolexpr{#2=#4}{%
- \xintifboolexpr{#3=#5}{%b=d
- L'équation $\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solution.}%
- {%b<>d
- L'équation $\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.%
- }%
- }{
- %% Cas délicat
- \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c
- \begin{align*}
- \multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
- \mathcolor{Csymbole}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{#4-1}}{+\useKV[ClesEquation]{Lettre}}}\multido{\i=1+1}{\fpeval{#2-#4}}{+\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Csymbole}{\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
- \xdef\Coeffa{\fpeval{#2-#4}}\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{+\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\\
- \ifboolKV[ClesEquation]{Bloc}{%
- \Fdash{$\mathcolor{Csymbole!30}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{+\useKV[ClesEquation]{Lettre}}}$}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\\
- }{}%
- \xdef\Coeffb{\fpeval{#5-#3}}\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{+\useKV[ClesEquation]{Lettre}}&=\num{\Coeffb}%\\
- \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
- \\\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
- }{}
- }{}
- }
- \end{align*}
- }{%ax+b=cx+d avec a<c % Autre cas délicat
- \begin{align*}%
- \multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
- \mathcolor{Csymbole}{\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Csymbole}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{#2-1}}{+\useKV[ClesEquation]{Lettre}}}\multido{\i=1+1}{\fpeval{#4-#2}}{+\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
- \xdef\Coeffa{\fpeval{#4-#2}}\num{#3}&=\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{+\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
- \ifboolKV[ClesEquation]{Bloc}{%
- \num{#3}&=\Fdash{$\mathcolor{Csymbole!30}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{+\useKV[ClesEquation]{Lettre}}}$}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
- }{}%
- \xdef\Coeffb{\fpeval{#3-#5}}\num{\Coeffb}&=\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{+\useKV[ClesEquation]{Lettre}}%\\
- \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
- \\\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}%\\
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
- }{}
- }{}
- }
- \end{align*}
- }%
- }%
- }%
- }%
- }%
- }%
-}%
-
-
Deleted: trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationTerme1.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationTerme1.tex 2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationTerme1.tex 2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,276 +0,0 @@
-% Licence : Released under the LaTeX Project Public License v1.3c
-% or later, see http://www.latex-project.org/lppl.txtf
-\newcommand{\EquaDeuxTerme}[5][]{%type ax+b=d ou b=cx+d$
- \useKVdefault[ClesEquation]%
- \setKV[ClesEquation]{#1}%
- \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide
- \EquaDeuxTerme[#1]{#4}{#5}{#2}{#3}
- \else%cas ax+b=d
- \xintifboolexpr{#2=0}{%
- \xintifboolexpr{#3=#5}{%b=d
- L'équation $\num{#3}=\num{#5}$ a une infinité de solution.}%
- {%b<>d
- L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
- }%
- }{%ELSE
- \xintifboolexpr{#3=0}{%ax+b=d
- \EquaBase[#1]{#2}{}{}{#5}%
- }{%ax+b=d$ Ici
- \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Cterme}{\useKV[ClesEquation]{CouleurTerme}}}{}
- \begin{align*}
- \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\tikzmark{E-\theNbequa}\\
- \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}&=\num{#5}\mathcolor{Cterme}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\
- \tikzmark{C-\theNbequa}\xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
- \xintifboolexpr{\Coeffa=1}{}{\\}
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{A-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
- \rightcomment{E-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
- }{}
- \xintifboolexpr{\Coeffa=1}{%
- }{%\ifnum\cmtd>1
- \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{%ICI ?
- \ifboolKV[ClesEquation]{FlecheDiv}{%
- \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{}
- }
- }
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
- }{}
- }{}
- \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
- \end{align*}
- \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.
- }{}
- }
- }
- \fi
-}
-
-\newcommand{\EquaTroisTerme}[5][]{%ax+b=cx ou ax=cx+d
- \useKVdefault[ClesEquation]%
- \setKV[ClesEquation]{#1}%
- \ifx\bla#3\bla%on inverse en faisant attention à la boucle #3<->#5
- \ifx\bla#5\bla%
- %% paramètre oublié
- \else
- \EquaTroisTerme[#1]{#4}{#5}{#2}{}%
- \fi
- \else
- \xintifboolexpr{#2=0}{%b=cx
- \EquaBase[#1]{#4}{}{}{#3}
- }{%
- \xintifboolexpr{#4=0}{%ax+b=0
- \EquaDeuxTerme[#1]{#2}{#3}{}{0}
- }{%ax+b=cx
- \xintifboolexpr{#2=#4}{%
- \xintifboolexpr{#3=0}{%ax=ax
- L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solution.}%
- {%ax+b=ax
- L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.%
- }%
- }{%% Cas délicat
- \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c
- \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Cterme}{\useKV[ClesEquation]{CouleurTerme}}}{}
- \begin{align*}
- \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\
- \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cterme}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\\
- \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\tikzmark{F-\theNbequa}\\
- \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=0\mathcolor{Cterme}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\
- \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
- \xintifboolexpr{\Coeffa=1}{}{\\}
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
- \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
- \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
- \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
- }{}
- \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
- \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{
- \ifboolKV[ClesEquation]{FlecheDiv}{%
- \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{}
- }
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
- }{}
- }{}
- }
- \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
- \end{align*}
- \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}
- }{%ax+b=cx+d avec a<c % Autre cas délicat
- \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Cterme}{\useKV[ClesEquation]{CouleurTerme}}}{}
- \begin{align*}%
- \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\
- \xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cterme}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\\
- \tikzmark{B-\theNbequa}\xdef\Coeffb{#3}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{F-\theNbequa}
- \xintifboolexpr{\Coeffa=1}{}{\\}
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
- \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
- }{}
- \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
- \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{B-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{
- \ifboolKV[ClesEquation]{FlecheDiv}{%
- \leftcomment{B-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{}
- }
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
- }{}
- }{}
- }
- \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
- \end{align*}
- \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}%
- }%
- }%
- }%
- }%
- \fi
- }%
-
-\newcommand{\ResolEquationTerme}[5][]{%
- \useKVdefault[ClesEquation]%
- \setKV[ClesEquation]{#1}%
- \xintifboolexpr{#2=0}{%
- \xintifboolexpr{#4=0}{%
- \xintifboolexpr{#3=#5}{%b=d
- L'équation $\num{#3}=\num{#5}$ a une infinité de solution.}%
- {%b<>d
- L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
- }%
- }%
- {%0x+b=cx+d$
- \EquaDeuxTerme[#1]{#4}{#5}{#2}{#3}%
- }%
- }{%
- \xintifboolexpr{#4=0}{%ax+b=0x+d
- \EquaDeuxTerme[#1]{#2}{#3}{}{#5}%
- }
- {%ax+b=cx+d$
- \xintifboolexpr{#3=0}{%
- \xintifboolexpr{#5=0}{%ax=cx
- \EquaTroisTerme[#1]{#2}{0}{#4}{}%
- }%
- {%ax=cx+d
- \EquaTroisTerme[#1]{#4}{#5}{#2}{}%
- }%
- }%
- {\xintifboolexpr{#5=0}{%ax+b=cx
- \EquaTroisTerme[#1]{#2}{#3}{#4}{}%
- }%
- {%ax+b=cx+d -- ici
- \xintifboolexpr{#2=#4}{%
- \xintifboolexpr{#3=#5}{%b=d
- L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solution.}%
- {%b<>d
- L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.%
- }%
- }{
- %% Cas délicat
- \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c
- \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Cterme}{\useKV[ClesEquation]{CouleurTerme}}}{}
- \begin{align*}
- \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\
- \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cterme}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#5>0}{\num{#5}}{-\num{\fpeval{0-#5}}}\\
- \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\tikzmark{F-\theNbequa}\tikzmark{F-\theNbequa}\\
- \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{#5}\mathcolor{Cterme}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\
- \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
- \xintifboolexpr{\Coeffa=1}{}{\\}
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
- \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
- \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
- \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
- }{}
- \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
- \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{
- \ifboolKV[ClesEquation]{FlecheDiv}{%
- \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{}
- }
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
- }{}
- }{}
- }
- \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
- \end{align*}
- \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
- }{}
- }{%ax+b=cx+d avec a<c % Autre cas délicat
- \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Cterme}{\useKV[ClesEquation]{CouleurTerme}}}{}
- \begin{align*}%
- \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\
- \xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cterme}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
- \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{F-\theNbequa}\\
- \num{#3}\mathcolor{Cterme}{\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\\
- \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#3-#5}}\num{\Coeffb}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{G-\theNbequa}%\\
- \xintifboolexpr{\Coeffa=1}{}{\\}
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
- \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
- \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}%
- \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}%
- }{}
- \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
- \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\
- \ifboolKV[ClesEquation]{Fleches}{%
- \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{
- \ifboolKV[ClesEquation]{FlecheDiv}{%
- \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
- }{}
- }
- \ifboolKV[ClesEquation]{Entier}{%
- \SSimpliTest{\Coeffb}{\Coeffa}%
- \ifboolKV[ClesEquation]{Simplification}{%
- \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
- }{}
- }{}
- }
- \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
- \end{align*}
- \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
- }{}%
- }%
- }%
- }%
- }%
- }%
- }%
-}%
-
-
Modified: trunk/Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty 2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty 2021-04-23 20:37:20 UTC (rev 58973)
@@ -3,7 +3,7 @@
% or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ProfCollege}[2021/04/09 v0.99 Aide pour l'utilisation de LaTeX au collège]
+\ProvidesPackage{ProfCollege}[2021/04/09 v0.99-a Aide pour l'utilisation de LaTeX au collège]
\RequirePackage{verbatim}
@@ -30,6 +30,7 @@
\DeclareSIUnit{\quintal}{q}
\DeclareSIUnit{\octet}{o}
\DeclareSIUnit{\fahrenheit}{\degree F}
+\DeclareSIUnit{\EuRo}{€}
\RequirePackage[table,svgnames]{xcolor}%Gestion des couleurs
\RequirePackage{xstring}%Gestion de chaines de caractères
@@ -42,9 +43,16 @@
\DeclareOption{nonshellescape}{\@shellescapefalse}
\ProcessOptions\relax
+\RequirePackage{iftex}
+
+\ifluatex
+\RequirePackage{luamplib}
+\everymplib{input PfCSvgnames; input PfCConstantes; input PfCGeometrie; input PfCAfficheur; beginfig(1);}
+\everyendmplib{endfig;}
+\else
\if at shellescape
\RequirePackage[shellescape,latex]{gmp}%inclusion de figures metapost "à la volée"%
-\gmpoptions{everymp={prologues:=3; input PfC-LaTeX; input PfC-Svgnames; input PfC-Constantes; input PfC-Geometrie; input PfC-Afficheur;}}
+\gmpoptions{everymp={prologues:=3; input PfCLaTeX; input PfCSvgnames; input PfCConstantes; input PfCGeometrie; input PfCAfficheur;}}
\usempxclass{article}
\usempxpackage{ProfCollege}
\usempxpackage[utf8]{inputenc}
@@ -54,7 +62,7 @@
\usempxpackage{pifont}
\else
\RequirePackage[latex]{gmp}%inclusion de figures metapost "à la volée"%
-\gmpoptions{everymp={prologues:=3; input PfC-LaTeX; input PfC-Svgnames; input PfC-Constantes; input PfC-Geometrie; input PfC-Afficheur;}}
+\gmpoptions{everymp={prologues:=3; input PfCLaTeX; input PfCSvgnames; input PfCConstantes; input PfCGeometrie; input PfCAfficheur;}}
\usempxclass{article}
\usempxpackage{ProfCollege}
\usempxpackage[utf8]{inputenc}
@@ -63,6 +71,7 @@
\usempxpackage[french]{babel}
\usempxpackage{pifont}
\fi
+\fi
\RequirePackage{xintexpr}
\RequirePackage{listofitems}%pour définir simplement la liste des données.
@@ -70,7 +79,7 @@
\RequirePackage{multido}
\RequirePackage{xlop}%Pour effectuer les calculs nécessaires.
-\opset{decimalsepsymbol={,}}%
+%\opset{decimalsepsymbol={,}}%
\RequirePackage{xfp}%Pour les calculs trigonométriques
@@ -87,8 +96,6 @@
\RequirePackage{hhline}% Pour la cohabitation de cline avec les couleurs
-\RequirePackage{iftex}
-
\RequirePackage{stackengine}
\RequirePackage[thicklines]{cancel}
@@ -98,12 +105,6 @@
\RequirePackage{environ}
%
-\ifluatex
-\RequirePackage{luamplib}
-\everymplib{input PfC-Svgnames; input PfC-Constantes; input PfC-Geometrie; input PfC-Afficheur; beginfig(1);}
-\everyendmplib{endfig;}
-\fi
-
%%%%% Quelques besoins particuliers
\def\bla{}%JCC :) Pour les tests sur arguments vides
@@ -316,7 +317,7 @@
%%%
\setKVdefault[Tables]{Addition=false,Multiplication=true,Seul=false,Debut=0,Fin=10,Couleur=white}
-% pour mémoire
+% pour m\'emoire
\newcommand\TableMultiplicationComplete{%
\xdef\NbColTabMul{\fpeval{\useKV[Tables]{Fin}+1-\useKV[Tables]{Debut}}}%
\begin{tabular}{|>{\columncolor{gray!15}\centering\arraybackslash}p{1.5em}|*{\NbColTabMul}{>{\centering\arraybackslash}p{1.5em}|}}%
@@ -429,12 +430,12 @@
\ifboolKV[ClesRgt]{Fraction}{%
\setsepchar[*]{,*/}%\ignoreemptyitems%
\readlist*\ListeRgt{#2}%
- % on cherche le dénominateur commun
+ % on cherche le d\'enominateur commun
\ppcm=1\relax
\foreachitem\x\in\ListeRgt{%
\PPCM{\fpeval{\ListeRgt[\xcnt,2]}}{\fpeval{\the\ppcm}}%
}%
- % On crée la liste des rangements.
+ % On cr\'ee la liste des rangements.
\DTLcleardb{mtnumedb}%
% on les trie pour les ranger par ordre croissant
\foreachitem\x\in\ListeRgt{%
@@ -461,7 +462,7 @@
}{%
\setsepchar{,}\ignoreemptyitems%
\readlist*\ListeRgt{#2}%
- % on crée la base de données des valeurs
+ % on cr\'ee la base de donn\'ees des valeurs
\DTLcleardb{mtdb}%
% on les trie pour les ranger par ordre croissant
\foreachitem\x\in\ListeRgt{%
@@ -521,7 +522,7 @@
}%
}%
% fin des cadres
- % on dessine les flèches
+ % on dessine les fl\`eches
\ifboolKV[Labyrinthe]{SensImpose}{%
%verticales
\foreach \compteurv in {1,...,\fpeval{\useKV[Labyrinthe]{Lignes}-1}}{%
@@ -613,11 +614,11 @@
}%
}%
}%
- % fin des flèches
+ % fin des fl\`eches
}
\end{tikzpicture}
}{\textbf{! Le nombre d'informations n'est pas compatible avec les
- définitions de {\ttfamily Colonnes} et {\ttfamily Lignes} !}}%
+ d\'efinitions de {\ttfamily Colonnes} et {\ttfamily Lignes} !}}%
}
%%%
@@ -730,15 +731,15 @@
}
\def\MPCalculatrice#1#2#3{
- % #1 Calcul %2 réponse
+ % #1 Calcul %2 r\'eponse
\ifluatex
\mplibforcehmode%
\begin{mplibcode}%
- input PfC-Calculatrice;
+ input PfCCalculatrice;
LCD(#1)(#2)(#3);
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={input PfC-Calculatrice;}]
+ \begin{mpost}[mpsettings={input PfCCalculatrice;}]
LCD(#1)(#2);
\end{mpost}
\fi
@@ -851,7 +852,7 @@
draw Hor;
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+ \begin{mpost}[mpsettings={input PfCGeometrie;}]
marque_horloge=1;
save Hor;
picture Hor;
@@ -904,7 +905,7 @@
\end{tcolorbox}
\ifboolKV[ClesFlash]{Pause}{\pause}{}
\begin{tcolorbox}[ExpressionSerie2]
- $\square$ \textbf{Le chiffre \ListeFlash[1,3] représente le
+ $\square$ \textbf{Le chiffre \ListeFlash[1,3] repr\'esente le
chiffre des :}
\tcbox[BoiteExpression]{\phantom{1500000}}
\end{tcolorbox}
@@ -958,7 +959,7 @@
\end{tcolorbox}
\ifboolKV[ClesFlash]{Pause}{\pause}{}
\begin{tcolorbox}[ExpressionSerie2]
- $\square$ \textbf{Elle peut aussi s'écrire \ListeFlash[1,3] }
+ $\square$ \textbf{Elle peut aussi s'\'ecrire \ListeFlash[1,3] }
\tcbox[BoiteExpression]{\phantom{1500000000}}
\end{tcolorbox}
\ifboolKV[ClesFlash]{Pause}{\pause}{}
@@ -968,7 +969,7 @@
\end{tcolorbox}
\ifboolKV[ClesFlash]{Pause}{\pause}{}
\begin{tcolorbox}[ExpressionSerie4]
- $\square$ \textbf{Enlève-lui \ListeFlash[1,5] :}
+ $\square$ \textbf{Enl\`eve-lui \ListeFlash[1,5] :}
\tcbox[BoiteExpression]{\phantom{\hbox to5em{1500000}}}
\end{tcolorbox}
\end{CadreNombre}
@@ -1012,7 +1013,7 @@
\tcbox[BoiteExpression]{\num{\ListeFlash[1,1]}}
\ifboolKV[ClesFlash]{Pause}{\pause}{}
\begin{tcolorbox}[ExpressionSerie1]
- $\square$ \textbf{\'Ecris-le en fraction décimale :}
+ $\square$ \textbf{\'Ecris-le en fraction d\'ecimale :}
\tcbox[BoiteExpression]{$\dfrac{\phantom{1000000}}{\phantom{1000000}}$}
\end{tcolorbox}
\ifboolKV[ClesFlash]{Pause}{\pause}{}
@@ -1019,12 +1020,12 @@
\begin{tcolorbox}[ExpressionSerie2]
$\square$ \begin{tabular}{c}
\textbf{Partie}\\
- \textbf{entière}
+ \textbf{enti\`ere}
\end{tabular} \textbf{: }
\tcbox[BoiteExpression]{\phantom{100000}}\hfill%
$\square$ \begin{tabular}{c}
\textbf{Partie}\\
- \textbf{décimale}
+ \textbf{d\'ecimale}
\end{tabular} \textbf{: }
\tcbox[BoiteExpression]{\phantom{100000}}
\end{tcolorbox}
@@ -1399,10 +1400,10 @@
\setKVdefault[ClesFraction]{Rayon=2cm,Disque,Regulier=false,Segment=false,Rectangle=false,Longueur=5cm,Largeur=2cm,Cotes=5,Triangle=false,Parts=3,Couleur=green,Reponse=false,Multiple=1,Hachures=false,Epaisseur=1}
\def\MPFractionTriangle#1#2#3#4#5{
- % #1 longueur du côté
- % #2 partage sur le côté
+ % #1 longueur du c\^ot\'e
+ % #2 partage sur le c\^ot\'e
% #3 num
- % #4 déno (attention : = #2^2)
+ % #4 d\'eno (attention : = #2^2)
% #5 couleur
\ifluatex
\mplibforcehmode
@@ -1493,12 +1494,12 @@
}
\def\MPFractionTriangleH#1#2#3#4#5#6{
- % #1 longueur du côté
- % #2 partage sur le côté
+ % #1 longueur du c\^ot\'e
+ % #2 partage sur le c\^ot\'e
% #3 num
- % #4 déno (attention : = #2^2)
+ % #4 d\'eno (attention : = #2^2)
% #5 couleur
- % #6 épaisseur
+ % #6 \'epaisseur
\ifluatex
\mplibforcehmode
\begin{mplibcode}
@@ -1596,7 +1597,7 @@
\def\MPFractionRegulier#1#2#3#4#5{%
- % #1 rayon, #2 nb côtés, #3 num, #4 deno, #5 couleur
+ % #1 rayon, #2 nb c\^ot\'es, #3 num, #4 deno, #5 couleur
\ifluatex
\mplibforcehmode
\begin{mplibcode}
@@ -1648,7 +1649,7 @@
}
\def\MPFractionRegulierH#1#2#3#4#5#6{%
- % #1 rayon, #2 nb côtés, #3 num, #4 deno, #5 couleur
+ % #1 rayon, #2 nb c\^ot\'es, #3 num, #4 deno, #5 couleur
\ifluatex
\mplibforcehmode
\begin{mplibcode}
@@ -2077,7 +2078,7 @@
}%
%%%
-% Réponses à relier
+% R\'eponses \`a relier
%%%
\setKVdefault[ClesRelie]{Solution=false,LargeurG=5cm,LargeurD=2cm,Stretch=1.5,Ecart=2cm}
@@ -2138,7 +2139,7 @@
%%%
% QCM
%%%
-\setKVdefault[ClesQCM]{Reponses=3,Solution=false,Stretch=1,Largeur=2cm,Couleur=gray!15,Titre=false,Nom=Réponse,NomV=Vrai,NomF=Faux,Alph=false,AlphT=false,VF=false,Depart=1,Alterne=false,Noms={A/B/C},Multiple=false}
+\setKVdefault[ClesQCM]{Reponses=3,Solution=false,Stretch=1,Largeur=2cm,Couleur=gray!15,Titre=false,Nom=R\'eponse,NomV=Vrai,NomF=Faux,Alph=false,AlphT=false,VF=false,Depart=1,Alterne=false,Noms={A/B/C},Multiple=false}
\newlength{\LargeurQCM}
\newcounter{QuestionQCM}
\newcounter{TitreQCM}
@@ -2216,31 +2217,31 @@
\def\MPFigureSommeAngle#1#2#3#4#5#6#7{
% #1 Premier sommet
- % #2 Deuxième sommet
- % #3 Troisième sommet
+ % #2 Deuxi\`eme sommet
+ % #3 Troisi\`eme sommet
% #4 1er angle
% #5 2eme angle
- % #6 0 isocèle / 1 pas isocèle
+ % #6 0 isoc\`ele / 1 pas isoc\`ele
\ifluatex
\mplibcodeinherit{enable}
\mplibforcehmode
\begin{mplibcode}
pair A,B,C,O,I;%
- % On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+ % On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
A=u*(1,1);
B-A=u*(4,0);
C=(A--2[A,B rotatedabout(A,45)]) intersectionpoint (B--2[B,A rotatedabout(B,-60)]);
- % On définit le centre du cercle circonscrit
+ % On d\'efinit le centre du cercle circonscrit
O - .5[A,B] = whatever * (B-A) rotated 90;
O - .5[B,C] = whatever * (C-B) rotated 90;
- % On tourne pour éventuellement moins de lassitude :)
+ % On tourne pour \'eventuellement moins de lassitude :)
A:=A rotatedabout(O,#7);
B:=B rotatedabout(O,#7);
C:=C rotatedabout(O,#7);
- % On définit le centre du cercle inscrit
+ % On d\'efinit le centre du cercle inscrit
(I-C) rotated ((angle(A-C)-angle(B-C))/2) shifted C=whatever[A,C];
(I-B) rotated ((angle(C-B)-angle(A-B))/2) shifted B=whatever[B,C];
- % on dessine à main levée :)
+ % on dessine \`a main lev\'ee :)
path triangle;
triangle=A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)}--B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)}--C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)}--cycle;
% pour marquer les angles
@@ -2286,24 +2287,24 @@
\mplibcodeinherit{disable}
\else
\begin{mpost}
- input PfC-Geometrie;
+ input PfCGeometrie;
u:=1cm;
pair A,B,C,O,I;%
- % On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+ % On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
A=u*(1,1);
B-A=u*(4,0);
C=(A--2[A,B rotatedabout(A,45)]) intersectionpoint (B--2[B,A rotatedabout(B,-60)]);
- % On définit le centre du cercle circonscrit
+ % On d\'efinit le centre du cercle circonscrit
O - .5[A,B] = whatever * (B-A) rotated 90;
O - .5[B,C] = whatever * (C-B) rotated 90;
- % On tourne pour éventuellement moins de lassitude :)
+ % On tourne pour \'eventuellement moins de lassitude :)
A:=A rotatedabout(O,#7);
B:=B rotatedabout(O,#7);
C:=C rotatedabout(O,#7);
- % On définit le centre du cercle inscrit
+ % On d\'efinit le centre du cercle inscrit
(I-C) rotated ((angle(A-C)-angle(B-C))/2) shifted C=whatever[A,C];
(I-B) rotated ((angle(C-B)-angle(A-B))/2) shifted B=whatever[B,C];
- % on dessine à main levée :)
+ % on dessine \`a main lev\'ee :)
path triangle;
triangle=A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)}--B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)}--C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)}--cycle;
% pour marquer les angles
@@ -2358,7 +2359,7 @@
% la macro calculant la mesure de l'angle pCpApB
\useKVdefault[ClesSommeAngle]%obligatoire car la macro n'est pas dans un groupe.
\setKV[ClesSommeAngle]{#1}%On lit les arguments optionnels
- % On récupère les noms des sommets.
+ % On r\'ecup\`ere les noms des sommets.
\StrMid{#2}{1}{1}[\NomA]%
\StrMid{#2}{2}{2}[\NomB]%
\StrMid{#2}{3}{3}[\NomC]%
@@ -2366,8 +2367,8 @@
\xdef\NomSommetB{\NomB}%
\xdef\NomSommetA{\NomA}%
\xdef\NomSommetC{\NomC}%
- % On rédige
- \ifboolKV[ClesSommeAngle]{Perso}{\RedactionSomme}{Dans le triangle $\NomA\NomB\NomC$,\ifboolKV[ClesSommeAngle]{Isocele}{ isocèle en \NomA,}{} on a :}%
+ % On r\'edige
+ \ifboolKV[ClesSommeAngle]{Perso}{\RedactionSomme}{Dans le triangle $\NomA\NomB\NomC$,\ifboolKV[ClesSommeAngle]{Isocele}{ isoc\`ele en \NomA,}{} on a :}%
\ifboolKV[ClesSommeAngle]{Isocele}{%
\ifx\bla#4\bla%
\begin{align*}%
@@ -2409,7 +2410,7 @@
% la macro calculant la mesure de l'angle pCpApB
\useKVdefault[ClesSommeAngle]%obligatoire car la macro n'est pas dans un groupe.
\setKV[ClesSommeAngle]{#1}%On lit les arguments optionnels
- % On récupère les noms des sommets.
+ % On r\'ecup\`ere les noms des sommets.
\StrMid{#2}{1}{1}[\NomA]%
\StrMid{#2}{2}{2}[\NomB]%
\StrMid{#2}{3}{3}[\NomC]%
@@ -2428,7 +2429,7 @@
}{%
\ifboolKV[ClesSommeAngle]{Figure}{%
\begin{multicols}{2}%
- {\em La figure est donnée à titre indicatif.}%
+ {\em La figure est donn\'ee \`a titre indicatif.}%
\ifx\bla#3\bla%
\xdef\Intermed{\fpeval{0.5*(180-#4)}}%
\[\MPFigureSommeAngle{\NomA}{\NomB}{\NomC}{#4}{\Intermed}{0}{\useKV[ClesSommeAngle]{Angle}}\]%
@@ -2440,10 +2441,10 @@
\fi%
\fi%
\par\columnbreak\par%
- % on rédige
+ % on r\'edige
\RedactionSom[#1]{#2}{#3}{#4}%
\end{multicols}%
- }{% on rédige
+ }{% on r\'edige
\RedactionSom[#1]{#2}{#3}{#4}%
}%
}%
@@ -2450,15 +2451,15 @@
}%
%%%
-% Le théorème de Pythagore
+% Le th\'eor\`eme de Pythagore
%%%
\setKVdefault[ClesPythagore]{Exact=false,AvantRacine=false,Racine=false,Entier=false,Egalite=false,Precision=2,Soustraction=false,Figure=false,FigureSeule=false,Angle=0,Reciproque=false,ReciColonnes=false,Faible=false,Unite=cm,EnchaineA=false,EnchaineB=false,EnchaineC=false,ValeurA=0,ValeurB=0,ValeurC=0,Perso=false}
-% On définit les figures à utiliser
+% On d\'efinit les figures \`a utiliser
\def\MPFigurePytha#1#2#3#4#5#6{%
% #1 Premier sommet
% #2 Sommet de l'angle droit
- % #3 troisième sommet
+ % #3 troisi\`eme sommet
% #4 1ere longueur
% #5 2eme longueur
% #6 angle de rotation de la figure
@@ -2470,15 +2471,15 @@
O=u*(2.5,2.5);
path cc;
cc=(fullcircle scaled 4u) shifted O;
- % On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+ % On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
A=point(0.9*length cc) of cc;
B=A rotatedabout(O,-120);
C=2[A,O];
- % On tourne pour éventuellement moins de lassitude :)
+ % On tourne pour \'eventuellement moins de lassitude :)
A:=A rotatedabout(O,#6);
B:=B rotatedabout(O,#6);
C:=C rotatedabout(O,#6);
- % On définit l'angle droit
+ % On d\'efinit l'angle droit
D-B=7*unitvector(C-B);
F-B=7*unitvector(A-B);
E-D=F-B;
@@ -2516,15 +2517,15 @@
O=u*(2.5,2.5);
path cc;
cc=(fullcircle scaled 4u) shifted O;
- % On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+ % On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
A=point(0.9*length cc) of cc;
B=A rotatedabout(O,-120);
C=2[A,O];
- % On tourne pour éventuellement moins de lassitude :)
+ % On tourne pour \'eventuellement moins de lassitude :)
A:=A rotatedabout(O,#6);
B:=B rotatedabout(O,#6);
C:=C rotatedabout(O,#6);
- % On définit l'angle droit
+ % On d\'efinit l'angle droit
D-B=7*unitvector(C-B);
F-B=7*unitvector(A-B);
E-D=F-B;
@@ -2561,7 +2562,7 @@
\def\MPFigureReciPytha#1#2#3#4#5#6#7{%
% #1 Premier sommet
% #2 Sommet de l'angle droit
- % #3 troisième sommet
+ % #3 troisi\`eme sommet
% #4 1ere longueur
% #5 2eme longueur
% #6 3eme longueur
@@ -2574,11 +2575,11 @@
O=u*(2.5,2.5);
path cc;
cc=(fullcircle scaled 4u) shifted O;
- % On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+ % On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
A=point(0.8*length cc) of cc;
B=A rotatedabout(O,-100);
C=2[A,O];
- % On tourne pour éventuellement moins de lassitude :)
+ % On tourne pour \'eventuellement moins de lassitude :)
A:=A rotatedabout(O,#7);
B:=B rotatedabout(O,#7);
C:=C rotatedabout(O,#7);
@@ -2606,11 +2607,11 @@
O=u*(2.5,2.5);
path cc;
cc=(fullcircle scaled 4u) shifted O;
- % On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+ % On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
A=point(0.8*length cc) of cc;
B=A rotatedabout(O,-100);
C=2[A,O];
- % On tourne pour éventuellement moins de lassitude :)
+ % On tourne pour \'eventuellement moins de lassitude :)
A:=A rotatedabout(O,#7);
B:=B rotatedabout(O,#7);
C:=C rotatedabout(O,#7);
@@ -2637,11 +2638,11 @@
\newcommand\RedactionPythagore{}
\newcommand{\Pythagore}[5][]{%
- % #1 Paramètres sous forme de clés
+ % #1 Param\`etres sous forme de cl\'es
% #2 Nom "complet" du triangle : ABC par exemple
- % #3 Première longueur
- % #4 Deuxième longueur
- % #5 Troisième longueur (éventuellement vide)
+ % #3 Premi\`ere longueur
+ % #4 Deuxi\`eme longueur
+ % #5 Troisi\`eme longueur (\'eventuellement vide)
\useKVdefault[ClesPythagore]%obligatoire car la macro n'est pas dans un groupe.
\setKV[ClesPythagore]{#1}%On lit les arguments optionnels
\ifboolKV[ClesPythagore]{Reciproque}{%
@@ -2649,7 +2650,7 @@
\StrMid{#2}{1}{1}[\NomA]%
\StrMid{#2}{2}{2}[\NomB]%
\StrMid{#2}{3}{3}[\NomC]%
- % on stocke les valeurs données
+ % on stocke les valeurs donn\'ees
\opcopy{#3}{A1}%
\opcopy{#4}{A2}%
\opcopy{#5}{A3}%
@@ -2659,11 +2660,11 @@
}{%
\ifboolKV[ClesPythagore]{Figure}{%Utilisation obligatoire de l'option --shell-escape de la compilation
\begin{multicols}{2}
- {\em La figure est donnée à titre indicatif.}%
+ {\em La figure est donn\'ee \`a titre indicatif.}%
\[\MPFigureReciPytha{\NomA}{\NomB}{\NomC}{#3}{#4}{#5}{\useKV[ClesPythagore]{Angle}}\]%
\par\columnbreak\par%
- % on rédige
- Dans le triangle $#2$, $[\NomA\NomC]$ est le plus grand côté.%
+ % on r\'edige
+ Dans le triangle $#2$, $[\NomA\NomC]$ est le plus grand c\^ot\'e.%
\ifboolKV[ClesPythagore]{ReciColonnes}{%
\[
\begin{array}{cccc|cccc}
@@ -2684,17 +2685,17 @@
\]
}
\ifboolKV[ClesPythagore]{Egalite}{%
- \opcmp{a1}{a4}\ifopeq Comme $\NomA\NomC^2=\NomA\NomB^2+\NomB\NomC^2$, alors l'égalité de Pythagore est vérifiée. Donc le triangle $#2$ est rectangle en $\NomB$.\fi%
- \opcmp{a1}{a4}\ifopneq Comme $\NomA\NomC^2\not=\NomA\NomB^2+\NomB\NomC^2$, alors l'égalité de Pythagore n'est pas vérifiée. Donc le triangle $#2$ n'est pas rectangle.\fi%
+ \opcmp{a1}{a4}\ifopeq Comme $\NomA\NomC^2=\NomA\NomB^2+\NomB\NomC^2$, alors l'\'egalit\'e de Pythagore est v\'erifi\'ee. Donc le triangle $#2$ est rectangle en $\NomB$.\fi%
+ \opcmp{a1}{a4}\ifopneq Comme $\NomA\NomC^2\not=\NomA\NomB^2+\NomB\NomC^2$, alors l'\'egalit\'e de Pythagore n'est pas v\'erifi\'ee. Donc le triangle $#2$ n'est pas rectangle.\fi%
}{%
\opcmp{a1}{a4}\ifopeq Comme $\NomA\NomC^2=\NomA\NomB^2+\NomB\NomC^2$, alors le triangle $#2$ est rectangle
- en $\NomB$ d'après la réciproque du théorème de Pythagore.\fi%
+ en $\NomB$ d'apr\`es la r\'eciproque du th\'eor\`eme de Pythagore.\fi%
\opcmp{a1}{a4}\ifopneq Comme $\NomA\NomC^2\not=\NomA\NomB^2+\NomB\NomC^2$, alors le
- triangle $#2$ n'est pas rectangle\ifboolKV[ClesPythagore]{Faible}{.}{ d'après la contraposée du théorème de Pythagore.}\fi%
+ triangle $#2$ n'est pas rectangle\ifboolKV[ClesPythagore]{Faible}{.}{ d'apr\`es la contrapos\'ee du th\'eor\`eme de Pythagore.}\fi%
}
\end{multicols}
}{%
- Dans le triangle $#2$, $[\NomA\NomC]$ est le plus grand côté.%
+ Dans le triangle $#2$, $[\NomA\NomC]$ est le plus grand c\^ot\'e.%
\ifboolKV[ClesPythagore]{ReciColonnes}{%
\[
\begin{array}{cccc|cccc}
@@ -2715,18 +2716,18 @@
\]
}%
\ifboolKV[ClesPythagore]{Egalite}{%
- \opcmp{a1}{a4}\ifopeq Comme $\NomA\NomC^2=\NomA\NomB^2+\NomB\NomC^2$, alors l'égalité de Pythagore est vérifiée. Donc le triangle $#2$ est rectangle en $\NomB$.\fi%
- \opcmp{a1}{a4}\ifopneq Comme $\NomA\NomC^2\not=\NomA\NomB^2+\NomB\NomC^2$, alors l'égalité de Pythagore n'est pas vérifiée. Donc le triangle $#2$ n'est pas rectangle.\fi%
+ \opcmp{a1}{a4}\ifopeq Comme $\NomA\NomC^2=\NomA\NomB^2+\NomB\NomC^2$, alors l'\'egalit\'e de Pythagore est v\'erifi\'ee. Donc le triangle $#2$ est rectangle en $\NomB$.\fi%
+ \opcmp{a1}{a4}\ifopneq Comme $\NomA\NomC^2\not=\NomA\NomB^2+\NomB\NomC^2$, alors l'\'egalit\'e de Pythagore n'est pas v\'erifi\'ee. Donc le triangle $#2$ n'est pas rectangle.\fi%
}{%
\opcmp{a1}{a4}\ifopeq Comme $\NomA\NomC^2=\NomA\NomB^2+\NomB\NomC^2$, alors le triangle $#2$ est rectangle
- en $\NomB$ d'après la réciproque du théorème de Pythagore.\fi%
+ en $\NomB$ d'apr\`es la r\'eciproque du th\'eor\`eme de Pythagore.\fi%
\opcmp{a1}{a4}\ifopneq Comme $\NomA\NomC^2\not=\NomA\NomB^2+\NomB\NomC^2$, alors le
- triangle $#2$ n'est pas rectangle\ifboolKV[ClesPythagore]{Faible}{.}{ d'après la contraposée du théorème de Pythagore.}\fi%
+ triangle $#2$ n'est pas rectangle\ifboolKV[ClesPythagore]{Faible}{.}{ d'apr\`es la contrapos\'ee du th\'eor\`eme de Pythagore.}\fi%
}%
}%
}%
}{%
- % [xlop] paramètres de calcul
+ % [xlop] param\`etres de calcul
\opcopy{#3}{A1}%
\opcopy{#4}{A2}%
\opcopy{\useKV[ClesPythagore]{Precision}}{pres}%
@@ -2744,11 +2745,11 @@
}{%
\ifboolKV[ClesPythagore]{Figure}{%Utilisation obligatoire de l'option --shell-escape de la compilation
\begin{multicols}{2}%
- {\em La figure est donnée à titre indicatif.}%
+ {\em La figure est donn\'ee \`a titre indicatif.}%
\[\MPFigurePytha{\NomA}{\NomB}{\NomC}{#3}{#4}{\useKV[ClesPythagore]{Angle}}\]
\par\columnbreak\par%
- % On démarre la résolution
- \ifboolKV[ClesPythagore]{Perso}{\RedactionPythagore}{\ifboolKV[ClesPythagore]{Egalite}{Comme le triangle $#2$ est rectangle en $\NomB$, alors l'égalité de Pythagore est vérifiée :}{Dans le triangle $#2$ rectangle en $\NomB$, le th\'eor\`eme de Pythagore permet d'\'ecrire :%
+ % On d\'emarre la r\'esolution
+ \ifboolKV[ClesPythagore]{Perso}{\RedactionPythagore}{\ifboolKV[ClesPythagore]{Egalite}{Comme le triangle $#2$ est rectangle en $\NomB$, alors l'\'egalit\'e de Pythagore est v\'erifi\'ee :}{Dans le triangle $#2$ rectangle en $\NomB$, le th\'eor\`eme de Pythagore permet d'\'ecrire :%
}%
}%
\xintifboolexpr{#3<#4 || #3=#4}{%\ifnum#3<#4%
@@ -2780,8 +2781,8 @@
}%\fi%
\end{multicols}
}{%
- % On démarre la résolution
- \ifboolKV[ClesPythagore]{Perso}{\RedactionPythagore}{\ifboolKV[ClesPythagore]{Egalite}{Comme le triangle $#2$ est rectangle en $\NomB$, alors l'égalité de Pythagore est vérifiée :}{Dans le triangle $#2$ rectangle en $\NomB$, le th\'eor\`eme de Pythagore permet d'\'ecrire :%
+ % On d\'emarre la r\'esolution
+ \ifboolKV[ClesPythagore]{Perso}{\RedactionPythagore}{\ifboolKV[ClesPythagore]{Egalite}{Comme le triangle $#2$ est rectangle en $\NomB$, alors l'\'egalit\'e de Pythagore est v\'erifi\'ee :}{Dans le triangle $#2$ rectangle en $\NomB$, le th\'eor\`eme de Pythagore permet d'\'ecrire :%
}}%
\xintifboolexpr{#3<#4 || #3=#4}{%\ifnum#3<#4%
\xdef\ResultatPytha{\fpeval{round(sqrt(#3^2+#4^2),\useKV[ClesPythagore]{Precision})}}%
@@ -2828,7 +2829,7 @@
}%
%%%
-% Distributivité
+% Distributivit\'e
%%%
% https://tex.stackexchange.com/questions/168972/draw-arrows-to-show-multiplication-pattern-distributive-property/169278?noredirect=1
\newcommand{\Tikzmark}[1]{%
@@ -2863,7 +2864,7 @@
\newcounter{NbDistri}%
\setcounter{NbDistri}{0}%
-\newcounter{NbCalculDistri}%Pour compter combien de distributivité il
+\newcounter{NbCalculDistri}%Pour compter combien de distributivit\'e il
% y a dans un "seul calcul".
\setcounter{NbCalculDistri}{0}
@@ -2917,8 +2918,8 @@
\xdef\Multij{\fpeval{#2*#3}}%
\xdef\Multik{\fpeval{#3*#2}}%
\xdef\Multil{\fpeval{#3*#3}}%
- %% ils sont redéfinis pour pouvoir envisager la somme de deux
- %% expressions à développer
+ %% ils sont red\'efinis pour pouvoir envisager la somme de deux
+ %% expressions \`a d\'evelopper
\xdef\Multim{\fpeval{#2*#3+#3*#2}}%
\ifboolKV[ClesDistributivite]{Oppose}{%
\xdef\Multi{\fpeval{-\Multi}}%
@@ -2937,8 +2938,8 @@
\xdef\Multij{\fpeval{#2*#5}}%
\xdef\Multik{\fpeval{#3*#4}}%
\xdef\Multil{\fpeval{#3*#5}}%
- %% ils sont redéfinis pour pouvoir envisager la somme de deux
- %% expressions à développer
+ %% ils sont red\'efinis pour pouvoir envisager la somme de deux
+ %% expressions \`a d\'evelopper
\xdef\Multim{\fpeval{#2*#5+#3*#4}}%
\ifboolKV[ClesDistributivite]{Oppose}{%
\xdef\Multi{\fpeval{-\Multi}}%
@@ -3035,8 +3036,8 @@
\xdef\Multij{\fpeval{#2*#5}}%
\xdef\Multik{\fpeval{#3*#4}}%
\xdef\Multil{\fpeval{#3*#5}}%
- %% ils sont redéfinis pour pouvoir envisager la somme de deux
- %% expressions à développer
+ %% ils sont red\'efinis pour pouvoir envisager la somme de deux
+ %% expressions \`a d\'evelopper
\xintifboolexpr{\theNbCalculDistri>1}{\xintifboolexpr{\Multi<0}{(\Affichage{\Multi}{0}{0})}{\Affichage{\Multi}{0}{0}}}{\Affichage{\Multi}{0}{0}}%
\ifboolKV[ClesDistributivite]{Reduction}{\mathunderline{DCReduction}{%
\xintifboolexpr{\Multij=0}{}{\xintifboolexpr{\Multi=0}{}{{}+}\xintifboolexpr{\Multij<0}{(}{}\Affichage{0}{\Multij}{0}\xintifboolexpr{\Multij<0}{)}{}}%
@@ -3054,8 +3055,8 @@
\xdef\Multij{\fpeval{#2*#5}}%
\xdef\Multik{\fpeval{#3*#4}}%
\xdef\Multil{\fpeval{#3*#5}}%
- %% ils sont redéfinis pour pouvoir envisager la somme de deux
- %% expressions à développer
+ %% ils sont red\'efinis pour pouvoir envisager la somme de deux
+ %% expressions \`a d\'evelopper
\xdef\Multim{\fpeval{#2*#5+#3*#4}}%
\xintifboolexpr{\theNbCalculDistri>1}{\setcounter{NbCalculDistri}{0}}{}%
\stepcounter{NbCalculDistri}%
@@ -3139,8 +3140,8 @@
\xdef\Multij{\fpeval{#2*#3}}%
\xdef\Multik{\fpeval{#3*#2}}%
\xdef\Multil{\fpeval{#3*#3}}%
- %% ils sont redéfinis pour pouvoir envisager la somme de deux
- %% expressions à développer
+ %% ils sont red\'efinis pour pouvoir envisager la somme de deux
+ %% expressions \`a d\'evelopper
\xdef\Multim{\fpeval{#2*#3+#3*#2}}%
\ifboolKV[ClesDistributivite]{Oppose}{%
\xdef\Multi{\fpeval{-\Multi}}%
@@ -3159,8 +3160,8 @@
\xdef\Multij{\fpeval{#2*#5}}%
\xdef\Multik{\fpeval{#3*#4}}%
\xdef\Multil{\fpeval{#3*#5}}%
- %% ils sont redéfinis pour pouvoir envisager la somme de deux
- %% expressions à développer
+ %% ils sont red\'efinis pour pouvoir envisager la somme de deux
+ %% expressions \`a d\'evelopper
\xdef\Multim{\fpeval{#2*#5+#3*#4}}%
\ifboolKV[ClesDistributivite]{Oppose}{%
\xdef\Multi{\fpeval{-\Multi}}%
@@ -3172,7 +3173,7 @@
}{%
\AffichageEchange{\Multi}{\Multim}{\Multil}%
}
- % à faire
+ % \`a faire
\ifboolKV[ClesDistributivite]{Somme}{\xdef\SommeA{\fpeval{\SommeA+#3*#5}}\xdef\SommeB{\fpeval{\SommeB+#2*#5+#3*#4}}\xdef\SommeC{\fpeval{\SommeC+#2*#4}}}{}%
\ifboolKV[ClesDistributivite]{Difference}{\xdef\SommeA{\fpeval{\SommeA-#3*#5}}\xdef\SommeB{\fpeval{\SommeB-#2*#5-#3*#4}}\xdef\SommeC{\fpeval{\SommeC-#2*#4}}}{}%
%
@@ -3328,8 +3329,8 @@
\xdef\Multij{\fpeval{#2*#5}}%
\xdef\Multik{\fpeval{#3*#4}}%
\xdef\Multil{\fpeval{#3*#5}}%
- %% ils sont redéfinis pour pouvoir envisager la somme de deux
- %% expressions à développer
+ %% ils sont red\'efinis pour pouvoir envisager la somme de deux
+ %% expressions \`a d\'evelopper
\xintifboolexpr{\useKV[ClesDistributivite]{Echange}=1}{%
\xintifboolexpr{\theNbCalculDistri>1}{\xintifboolexpr{\Multi<0}{(\AffichageEchange{0}{\Multi}{0})}{\AffichageEchange{0}{\Multi}{0}}}{\AffichageEchange{0}{\Multi}{0}}%
\xintifboolexpr{\Multij=0}{}{\xintifboolexpr{\Multi=0}{}{+}\xintifboolexpr{\Multij<0}{(}{}\AffichageEchange{\Multij}{0}{0}\xintifboolexpr{\Multij<0}{)}{}}%
@@ -3364,8 +3365,8 @@
\xdef\Multij{\fpeval{#2*#5}}%
\xdef\Multik{\fpeval{#3*#4}}%
\xdef\Multil{\fpeval{#3*#5}}%
- %% ils sont redéfinis pour pouvoir envisager la somme de deux
- %% expressions à développer
+ %% ils sont red\'efinis pour pouvoir envisager la somme de deux
+ %% expressions \`a d\'evelopper
\xintifboolexpr{\theNbCalculDistri>1}{\setcounter{NbCalculDistri}{0}}{}%
\stepcounter{NbCalculDistri}%
\xintifboolexpr{\useKV[ClesDistributivite]{Echange}=1}{%
@@ -3855,13 +3856,13 @@
\newcount\premier
-\newcommand{\NombrePremier}[1]{%écrire la décomposition complète
- % #1 le nombre premier à tester
+\newcommand{\NombrePremier}[1]{%\'ecrire la d\'ecomposition compl\`ete
+ % #1 le nombre premier \`a tester
\newcount\anp\newcount\bnp\newcount\cnp%\newcount\e\newcount\f%
\anp=#1\relax
\bnp=2\relax
\premier=-1\relax
- % Pour déterminer le nombre d'étapes
+ % Pour d\'eterminer le nombre d'\'etapes
\whiledo{\anp > 1}{%
\modulo{\the\anp}{\the\bnp}
\ifnum\remainder=0\relax
@@ -3881,13 +3882,13 @@
\fi
}
-\newcommand{\NombrePremierVertical}[1]{%écrire la décomposition complète
- % #1 le nombre premier à tester
+\newcommand{\NombrePremierVertical}[1]{%\'ecrire la d\'ecomposition compl\`ete
+ % #1 le nombre premier \`a tester
\newcount\anpv\newcount\bnpv\newcount\cnpv%\newcount\e\newcount\f%
\anpv=#1\relax
\bnpv=2\relax
\premier=-1\relax
- % Pour déterminer le nombre d'étapes
+ % Pour d\'eterminer le nombre d'\'etapes
\whiledo{\anpv > 1}{%
\modulo{\the\anpv}{\the\bnpv}
\ifnum\remainder=0\relax
@@ -3910,8 +3911,8 @@
}
\newcommand{\PremierDiviseurVide}[2]{%
- %#1 : le nombre entier à tester
- %#2 : le nombre d'étapes à effectuer
+ %#1 : le nombre entier \`a tester
+ %#2 : le nombre d'\'etapes \`a effectuer
\newcount\anpvv\newcount\bnpvv\newcount\cnpvv\newcount\dnpvv%
\ensuremath{%
\anpvv=#1\relax
@@ -3935,8 +3936,8 @@
}
\newcommand{\PremierMultipleVide}[2]{%
- %#1 : le nombre entier à tester
- %#2 : le nombre d'étapes à effectuer
+ %#1 : le nombre entier \`a tester
+ %#2 : le nombre d'\'etapes \`a effectuer
\newcount\anpmv\newcount\bnpmv\newcount\cnpmv\newcount\dnpmv%
\ensuremath{%
\anpmv=#1\relax
@@ -3959,13 +3960,13 @@
}
}
-\newcommand{\NombrePremierVerticalVide}[1]{%écrire la décomposition complète
- % #1 le nombre premier à tester
+\newcommand{\NombrePremierVerticalVide}[1]{%\'ecrire la d\'ecomposition compl\`ete
+ % #1 le nombre premier \`a tester
\newcount\anpv\newcount\bnpv\newcount\cnpv%\newcount\e\newcount\f%
\anpv=#1\relax
\bnpv=2\relax
\premier=-1\relax
- % Pour déterminer le nombre d'étapes
+ % Pour d\'eterminer le nombre d'\'etapes
\whiledo{\anpv > 1}{%
\modulo{\the\anpv}{\the\bnpv}
\ifnum\remainder=0\relax
@@ -3991,14 +3992,14 @@
\fi
}
-\newcommand{\NombrePremierExposant}[1]{%écrire la décomposition
- % complète
+\newcommand{\NombrePremierExposant}[1]{%\'ecrire la d\'ecomposition
+ % compl\`ete
\newcount\anp\newcount\bnp\newcount\cnp%\newcount\e\newcount\f%
- % #1 le nombre premier à tester
+ % #1 le nombre premier \`a tester
\anp=#1\relax%
\bnp=2\relax%
\premier=-1\relax%
- % Pour déterminer le nombre d'étapes
+ % Pour d\'eterminer le nombre d'\'etapes
\whiledo{\anp > 1}{%
\modulo{\the\anp}{\the\bnp}
\ifnum\remainder=0\relax%
@@ -4020,8 +4021,8 @@
}%
\newcommand{\PremierEtape}[2]{%
- %#1 : le nombre entier à tester
- %#2 : le nombre d'étapes à effectuer
+ %#1 : le nombre entier \`a tester
+ %#2 : le nombre d'\'etapes \`a effectuer
\newcount\anp\newcount\bnp\newcount\cnp\newcount\dnp%
\ensuremath{%
\anp=#1\relax
@@ -4046,7 +4047,7 @@
}
\newcommand{\PremierExposant}[1]{%
- %#1 : le nombre entier à tester
+ %#1 : le nombre entier \`a tester
\ensuremath{%
\newcount\anp\newcount\bnp\newcount\cnp%
\newcount\pileb\newcount\exposant%
@@ -4076,7 +4077,7 @@
}%
\newcommand{\PremierLong}[1]{%
- %#1 : le nombre entier à tester
+ %#1 : le nombre entier \`a tester
\ensuremath{%
\newcount\anpl\newcount\bnpl\newcount\cnpl%
\newcount\pilebl%
@@ -4097,7 +4098,7 @@
}
}
-\newcommand{\ListeDiviseur}[1]{%#1 : le nombre entier à tester
+\newcommand{\ListeDiviseur}[1]{%#1 : le nombre entier \`a tester
\newcount\anp\newcount\bnp%
\anp=#1%
\bnp=2\relax%
@@ -4114,7 +4115,7 @@
\newcount\anpT\newcount\bnpT\newcount\cnpT\newcount\dnpT%
-\newcommand\ListeDiviseurT[1]{%#1 : le nombre entier à tester
+\newcommand\ListeDiviseurT[1]{%#1 : le nombre entier \`a tester
\anpT=#1%
\bnpT=2\relax%
%On compte les diviseurs propres.
@@ -4144,8 +4145,8 @@
}
\newcommand\DiviseurNumero[2]{%
- % #1 nb entier à tester
- % #2 no du diviseur (à part 1 et #1)
+ % #1 nb entier \`a tester
+ % #2 no du diviseur (\`a part 1 et #1)
\anpT=#1%
\bnpT=2\relax%
%On compte les diviseurs propres.
@@ -4183,7 +4184,7 @@
\makeatother
\def\SSimplifie#1#2{%
- % Simplification d'une écriture #1/#2
+ % Simplification d'une \'ecriture #1/#2
\ensuremath{
\newcount\numerateur\newcount\denominateur\newcount\valabsnum\newcount\valabsdeno
\numerateur=\number#1
@@ -4223,7 +4224,7 @@
\divide\denominateur by\pgcd%
\frac{\num{\the\numerateur}}{\num{\the\denominateur}}
}
- \else%%%comme on est avec les négatifs, on doit regarder si la valeur absolue est égale à 1
+ \else%%%comme on est avec les n\'egatifs, on doit regarder si la valeur absolue est \'egale \`a 1
\ifnum\valabsdeno=1\relax
\divide\numerateur by \denominateur\num{\the\numerateur}
\else
@@ -4237,7 +4238,7 @@
\newcommand{\SSimpli}[2]{%
- % Décomposition d'une simplification de #1/#2
+ % D\'ecomposition d'une simplification de #1/#2
\newcount\numerateur\newcount\denominateur\newcount\valabsnum\newcount\valabsdeno%
\numerateur=\number#1
\denominateur=\number#2
@@ -4291,7 +4292,7 @@
\newcount\DivCom
\newcommand\DiviseurCommun[2]{%
% #1 : le premier nombre entier
- % #2 : le deuxième nombre entier
+ % #2 : le deuxi\`eme nombre entier
% nombre 1 vaut #1 - Nombre 2 vaut #2
\anpdc=#1%
\cnpdc=#2%
@@ -4385,11 +4386,11 @@
\setKVdefault[ClesThales]{Calcul=true,Droites=false,Propor=false,Segment=false,Figure=false,FigureSeule=false,Figurecroisee=false,FigurecroiseeSeule=false,Angle=0,Precision=2,Entier=false,Unite=cm,Reciproque=false,Produit=false,ChoixCalcul=0,Simplification,Redaction=false,Remediation=false}
-%On définit la figure à utiliser
+%On d\'efinit la figure \`a utiliser
\def\MPFigThales#1#2#3#4#5#6{
% #1 Premier sommet
- % #2 Deuxième sommet
- % #3 Troisième sommet
+ % #2 Deuxi\`eme sommet
+ % #3 Troisi\`eme sommet
% #4 point sur le segment #1#2
% #5 point sur le segment #1#3
\ifluatex
@@ -4398,18 +4399,18 @@
\begin{mplibcode}
u:=1cm;
pair A,B,C,M,N,O;%
- %On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+ %On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
A=u*(1,1);
B-A=u*(4,0);
C=(A--2[A,B rotatedabout(A,45)]) intersectionpoint (B--2[B,A rotatedabout(B,-60)]);
- % On définit le centre du cercle circonscrit
+ % On d\'efinit le centre du cercle circonscrit
O - .5[A,B] = whatever * (B-A) rotated 90;
O - .5[B,C] = whatever * (C-B) rotated 90;
- % On tourne pour éventuellement moins de lassitude :)
+ % On tourne pour \'eventuellement moins de lassitude :)
A:=A rotatedabout(O,#6);
B:=B rotatedabout(O,#6);
C:=C rotatedabout(O,#6);
- % on dessine à main levée :)
+ % on dessine \`a main lev\'ee :)
path cotes[];
cotes1=A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)};
cotes2=B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)};
@@ -4447,18 +4448,18 @@
\begin{mpost}
u:=1cm;
pair A,B,C,M,N,O;%
- %On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+ %On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
A=u*(1,1);
B-A=u*(4,0);
C=(A--2[A,B rotatedabout(A,45)]) intersectionpoint (B--2[B,A rotatedabout(B,-60)]);
- % On définit le centre du cercle circonscrit
+ % On d\'efinit le centre du cercle circonscrit
O - .5[A,B] = whatever * (B-A) rotated 90;
O - .5[B,C] = whatever * (C-B) rotated 90;
- % On tourne pour éventuellement moins de lassitude :)
+ % On tourne pour \'eventuellement moins de lassitude :)
A:=A rotatedabout(O,#6);
B:=B rotatedabout(O,#6);
C:=C rotatedabout(O,#6);
- % on dessine à main levée :)
+ % on dessine \`a main lev\'ee :)
path cotes[];
cotes1=A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)};
cotes2=B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)};
@@ -4494,11 +4495,11 @@
\fi
}
-%On définit la figure à utiliser
+%On d\'efinit la figure \`a utiliser
\def\MPFigReciThales#1#2#3#4#5#6{
% #1 Premier sommet
- % #2 Deuxième sommet
- % #3 Troisième sommet
+ % #2 Deuxi\`eme sommet
+ % #3 Troisi\`eme sommet
% #4 point sur le segment #1#2
% #5 point sur le segment #1#3
\ifluatex
@@ -4507,18 +4508,18 @@
\begin{mplibcode}
u:=1cm;
pair A,B,C,M,N,O;%
- %On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+ %On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
A=u*(1,1);
B-A=u*(4,0);
C=(A--2[A,B rotatedabout(A,45)]) intersectionpoint (B--2[B,A rotatedabout(B,-60)]);
- % On définit le centre du cercle circonscrit
+ % On d\'efinit le centre du cercle circonscrit
O - .5[A,B] = whatever * (B-A) rotated 90;
O - .5[B,C] = whatever * (C-B) rotated 90;
- % On tourne pour éventuellement moins de lassitude :)
+ % On tourne pour \'eventuellement moins de lassitude :)
A:=A rotatedabout(O,#6);
B:=B rotatedabout(O,#6);
C:=C rotatedabout(O,#6);
- % on dessine à main levée :)
+ % on dessine \`a main lev\'ee :)
path cotes[];
cotes1=A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)};
cotes2=B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)};
@@ -4544,18 +4545,18 @@
\begin{mpost}
u:=1cm;
pair A,B,C,M,N,O;%
- %On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+ %On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
A=u*(1,1);
B-A=u*(4,0);
C=(A--2[A,B rotatedabout(A,45)]) intersectionpoint (B--2[B,A rotatedabout(B,-60)]);
- % On définit le centre du cercle circonscrit
+ % On d\'efinit le centre du cercle circonscrit
O - .5[A,B] = whatever * (B-A) rotated 90;
O - .5[B,C] = whatever * (C-B) rotated 90;
- % On tourne pour éventuellement moins de lassitude :)
+ % On tourne pour \'eventuellement moins de lassitude :)
A:=A rotatedabout(O,#6);
B:=B rotatedabout(O,#6);
C:=C rotatedabout(O,#6);
- % on dessine à main levée :)
+ % on dessine \`a main lev\'ee :)
path cotes[];
cotes1=A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)};
cotes2=B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)};
@@ -4579,11 +4580,11 @@
\fi
}
-%On définit la deuxième figure à utiliser
+%On d\'efinit la deuxi\`eme figure \`a utiliser
\def\MPFigThalesCroisee#1#2#3#4#5#6{%
% #1 Premier sommet
- % #2 Deuxième sommet
- % #3 Troisième sommet
+ % #2 Deuxi\`eme sommet
+ % #3 Troisi\`eme sommet
% #4 point sur la droite #1#2
% #5 point sur la droite #1#3
\ifluatex
@@ -4595,15 +4596,15 @@
O=(2.5u,2.5u);
path cc;
cc=(fullcircle scaled 3u) shifted O;
- %On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+ %On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
A=point(0.1*length cc) of cc;
B=A rotatedabout(O,130);
C=(A--2[A,B rotatedabout(A,45)]) intersectionpoint (B--2[B,A rotatedabout(B,-60)]);
- % On tourne pour éventuellement moins de lassitude :)
+ % On tourne pour \'eventuellement moins de lassitude :)
A:=A rotatedabout(O,#6);
B:=B rotatedabout(O,#6);
C:=C rotatedabout(O,#6);
- % on dessine à main levée :)
+ % on dessine \`a main lev\'ee :)
M=1.4[B,A];
N=1.4[C,A];
path cotes[];
@@ -4617,7 +4618,7 @@
draw cotes[k];
endfor;
pair I;
- % On définit le centre du cercle inscrit à AMC
+ % On d\'efinit le centre du cercle inscrit \`a AMC
(I-C) rotated ((angle(A-C)-angle(M-C))/2) shifted C=whatever[A,C];
(I-M) rotated ((angle(C-M)-angle(A-M))/2) shifted M=whatever[M,C];
%on labelise
@@ -4649,15 +4650,15 @@
O=(2.5u,2.5u);
path cc;
cc=(fullcircle scaled 3u) shifted O;
- %On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+ %On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
A=point(0.1*length cc) of cc;
B=A rotatedabout(O,130);
C=(A--2[A,B rotatedabout(A,45)]) intersectionpoint (B--2[B,A rotatedabout(B,-60)]);
- % On tourne pour éventuellement moins de lassitude :)
+ % On tourne pour \'eventuellement moins de lassitude :)
A:=A rotatedabout(O,#6);
B:=B rotatedabout(O,#6);
C:=C rotatedabout(O,#6);
- % on dessine à main levée :)
+ % on dessine \`a main lev\'ee :)
M=1.4[B,A];
N=1.4[C,A];
path cotes[];
@@ -4671,7 +4672,7 @@
draw cotes[k];
endfor;
pair I;
- % On définit le centre du cercle inscrit à AMC
+ % On d\'efinit le centre du cercle inscrit \`a AMC
(I-C) rotated ((angle(A-C)-angle(M-C))/2) shifted C=whatever[A,C];
(I-M) rotated ((angle(C-M)-angle(A-M))/2) shifted M=whatever[M,C];
%on labelise
@@ -4698,11 +4699,11 @@
\fi
}
-%On définit la deuxième figure à utiliser
+%On d\'efinit la deuxi\`eme figure \`a utiliser
\def\MPFigReciThalesCroisee#1#2#3#4#5#6{%
% #1 Premier sommet
- % #2 Deuxième sommet
- % #3 Troisième sommet
+ % #2 Deuxi\`eme sommet
+ % #3 Troisi\`eme sommet
% #4 point sur la droite #1#2
% #5 point sur la droite #1#3
\ifluatex
@@ -4714,15 +4715,15 @@
O=(2.5u,2.5u);
path cc;
cc=(fullcircle scaled 3u) shifted O;
- %On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+ %On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
A=point(0.1*length cc) of cc;
B=A rotatedabout(O,130);
C=(A--2[A,B rotatedabout(A,45)]) intersectionpoint (B--2[B,A rotatedabout(B,-60)]);
- % On tourne pour éventuellement moins de lassitude :)
+ % On tourne pour \'eventuellement moins de lassitude :)
A:=A rotatedabout(O,#6);
B:=B rotatedabout(O,#6);
C:=C rotatedabout(O,#6);
- % on dessine à main levée :)
+ % on dessine \`a main lev\'ee :)
M=1.4[B,A];
N=1.4[C,A];
path cotes[];
@@ -4736,7 +4737,7 @@
draw cotes[k];
endfor;
pair I;
- % On définit le centre du cercle inscrit à AMC
+ % On d\'efinit le centre du cercle inscrit \`a AMC
(I-C) rotated ((angle(A-C)-angle(M-C))/2) shifted C=whatever[A,C];
(I-M) rotated ((angle(C-M)-angle(A-M))/2) shifted M=whatever[M,C];
%on labelise
@@ -4758,15 +4759,15 @@
O=(2.5u,2.5u);
path cc;
cc=(fullcircle scaled 3u) shifted O;
- %On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+ %On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
A=point(0.1*length cc) of cc;
B=A rotatedabout(O,130);
C=(A--2[A,B rotatedabout(A,45)]) intersectionpoint (B--2[B,A rotatedabout(B,-60)]);
- % On tourne pour éventuellement moins de lassitude :)
+ % On tourne pour \'eventuellement moins de lassitude :)
A:=A rotatedabout(O,#6);
B:=B rotatedabout(O,#6);
C:=C rotatedabout(O,#6);
- % on dessine à main levée :)
+ % on dessine \`a main lev\'ee :)
M=1.4[B,A];
N=1.4[C,A];
path cotes[];
@@ -4780,7 +4781,7 @@
draw cotes[k];
endfor;
pair I;
- % On définit le centre du cercle inscrit à AMC
+ % On d\'efinit le centre du cercle inscrit \`a AMC
(I-C) rotated ((angle(A-C)-angle(M-C))/2) shifted C=whatever[A,C];
(I-M) rotated ((angle(C-M)-angle(A-M))/2) shifted M=whatever[M,C];
%on labelise
@@ -4802,7 +4803,7 @@
\useKVdefault[ClesThales]%
\setKV[ClesThales]{#1}%
\ifboolKV[ClesThales]{Droites}{%
- Les droites \ifboolKV[ClesThales]{Remediation}{\pointilles[2cm]}{$(#3#5)$} et \ifboolKV[ClesThales]{Remediation}{\pointilles[2cm]}{$(#4#6)$} sont sécantes en \ifboolKV[ClesThales]{Remediation}{\pointilles[2cm]}{$#2$}.%
+ Les droites \ifboolKV[ClesThales]{Remediation}{\pointilles[2cm]}{$(#3#5)$} et \ifboolKV[ClesThales]{Remediation}{\pointilles[2cm]}{$(#4#6)$} sont s\'ecantes en \ifboolKV[ClesThales]{Remediation}{\pointilles[2cm]}{$#2$}.%
}{%
Dans le triangle \ifboolKV[ClesThales]{Remediation}{\pointilles[2cm]}{$#2#3#4$}, \ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{$#5$} est un point \ifboolKV[ClesThales]{Segment}{du segment}{de la
droite}
@@ -4811,7 +4812,7 @@
point \ifboolKV[ClesThales]{Segment}{du segment}{de la droite}
\ifboolKV[ClesThales]{Remediation}{\pointilles[2cm]}{\ifboolKV[ClesThales]{Segment}{$[#2#4]$}{$(#2#4)$}}.%
}
- \\Comme les droites \ifboolKV[ClesThales]{Remediation}{\pointilles[2cm]}{$(#5#6)$} et \ifboolKV[ClesThales]{Remediation}{\pointilles[2cm]}{$(#3#4)$} sont parallèles, alors \ifboolKV[ClesThales]{Propor}{le tableau%
+ \\Comme les droites \ifboolKV[ClesThales]{Remediation}{\pointilles[2cm]}{$(#5#6)$} et \ifboolKV[ClesThales]{Remediation}{\pointilles[2cm]}{$(#3#4)$} sont parall\`eles, alors \ifboolKV[ClesThales]{Propor}{le tableau%
\[\begin{array}{c|c|c}
\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{#2#5}&\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{#2#6}&\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{#5#6}\\
\hline
@@ -4818,9 +4819,9 @@
\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{#2#3}&\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{#2#4}&\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{#3#4}\\
\end{array}
\]
- est un tableau de proportionnalité\ifboolKV[ClesThales]{Segment}{.}{ d'après le théorème de Thalès.}%
+ est un tableau de proportionnalit\'e\ifboolKV[ClesThales]{Segment}{.}{ d'apr\`es le th\'eor\`eme de Thal\`es.}%
}{%
- \ifboolKV[ClesThales]{Segment}{on a :}{le théorème de Thalès permet d'écrire :}%
+ \ifboolKV[ClesThales]{Segment}{on a :}{le th\'eor\`eme de Thal\`es permet d'\'ecrire :}%
\[\frac{\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{#2#5}}{\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{#2#3}}=\frac{\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{#2#6}}{\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{#2#4}}=\frac{\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{#5#6}}{\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{#3#4}}\]%
}
}
@@ -4827,7 +4828,7 @@
\newcommand{\TThalesCalculsD}[8][]{%
\setKV[ClesThales]{#1}%
- \newcount\zzz\newcount\yyy\newcount\xxx%Pour se rappeller des calculs à faire et combien en faire%
+ \newcount\zzz\newcount\yyy\newcount\xxx%Pour se rappeller des calculs \`a faire et combien en faire%
\def\Nomx{}%
\def\Nomy{}%
\def\Nomz{}%
@@ -4966,7 +4967,7 @@
}{%
\[\frac{\IfDecimal{#3}{\num{#3}}{#3}}{\IfDecimal{#6}{\num{#6}}{#6}}=\frac{\IfDecimal{#4}{\num{#4}}{#4}}{\IfDecimal{#7}{\num{#7}}{#7}}=\frac{\IfDecimal{#5}{\num{#5}}{#5}}{\IfDecimal{#8}{\num{#8}}{#8}}\]
}%
- % On choisit éventuellement le calcul à faire s'il y en a plusieurs.
+ % On choisit \'eventuellement le calcul \`a faire s'il y en a plusieurs.
\xdef\CompteurCalcul{\useKV[ClesThales]{ChoixCalcul}}%
\xintifboolexpr{\CompteurCalcul>0}{\xintifboolexpr{\CompteurCalcul=1}{\xdef\cmya{0}\xdef\cmza{0}}{\xintifboolexpr{\CompteurCalcul=2}{\xdef\cmxa{0}\xdef\cmza{0}}{\xdef\cmxa{0}\xdef\cmya{0}}}}{}%
%%on fait les calculs
@@ -4975,7 +4976,7 @@
\ifnum\cmxa>0
\Nomx\uppercase{&}=\frac{\opexport{valx}{\valx}\num{\valx}\times\opexport{Valx}{\Valx}\num{\Valx}}{\opexport{denox}{\denox}\num{\denox}}\relax%\global\numx=\numexpr\opprint{valx}*\opprint{Valx}\relax
\fi
- % % Deuxième compteur \yyy
+ % % Deuxi\`eme compteur \yyy
\ifnum\cmya>0
\ifnum\cmxa=0
\else
@@ -4983,7 +4984,7 @@
\fi%
\Nomy\uppercase{&}=\frac{\opexport{valy}{\valy}\num{\valy}\times\opexport{Valy}{\Valy}\num{\Valy}}{\opexport{denoy}{\denoy}\num{\denoy}}\relax%\global\numy=\numexpr\opprint{valy}*\opprint{Valy}\relax
\fi
- % Troisième compteur \zzz
+ % Troisi\`eme compteur \zzz
\ifnum\cmza>0
\ifnum\cmxa=0
\ifnum\cmya=0
@@ -4997,12 +4998,12 @@
\fi
\fi
\\
-% % 2eme ligne du tableau : calcul des numérateurs
+% % 2eme ligne du tableau : calcul des num\'erateurs
% %Premier compteur \xxx
\ifnum\cmxa>0
- \Nomx\uppercase{&}=\frac{\opmul*{valx}{Valx}{numx}\opexport{numx}{\numx}\num{\numx}}{\opprint{denox}}
+ \Nomx\uppercase{&}=\frac{\opmul*{valx}{Valx}{numx}\opexport{numx}{\numx}\num{\numx}}{\opexport{denox}{\denox}\num{\denox}}
\fi
- % % Deuxième compteur \yyy
+ % % Deuxi\`eme compteur \yyy
\ifnum\cmya>0
\ifnum\cmxa=0
%
@@ -5009,9 +5010,9 @@
\else
\uppercase{&}
\fi
- \Nomy\uppercase{&}=\frac{\opmul*{valy}{Valy}{numy}\opexport{numy}{\numy}\num{\numy}}{\opprint{denoy}}%
+ \Nomy\uppercase{&}=\frac{\opmul*{valy}{Valy}{numy}\opexport{numy}{\numy}\num{\numy}}{\opexport{denoy}{\denoy}\num{\denoy}}%
\fi
-% %Troisième compteur \zzz
+% %Troisi\`eme compteur \zzz
\ifnum\cmza>0
\ifnum\cmxa=0
\ifnum\cmya=0
@@ -5019,17 +5020,17 @@
\else
\uppercase{&}
\fi
- \Nomz\uppercase{&}=\frac{\opmul*{valz}{Valz}{numz}\opexport{numz}{\numz}\num{\numz}}{\opprint{denoz}}
+ \Nomz\uppercase{&}=\frac{\opmul*{valz}{Valz}{numz}\opexport{numz}{\numz}\num{\numz}}{\opexport{denoz}{\denoz}\num{\denoz}}
\else
- \uppercase{&}\Nomz\uppercase{&}=\frac{\opmul*{valz}{Valz}{numz}\opexport{numz}{\numz}\num{\numz}}{\opprint{denoz}}
+ \uppercase{&}\Nomz\uppercase{&}=\frac{\opmul*{valz}{Valz}{numz}\opexport{numz}{\numz}\num{\numz}}{\opexport{denoz}{\denoz}\num{\denoz}}
\fi
\fi
\\
% % 3eme ligne : Calculs
\ifnum\cmxa>0
- \Nomx\uppercase{&}\opdiv*{numx}{denox}{resultatx}{restex}\opcmp{restex}{0}\ifopeq=\opprint{resultatx}~\text{\useKV[ClesThales]{Unite}}\else\approx\opround{resultatx}{\useKV[ClesThales]{Precision}}{resultatx}\opprint{resultatx}~\text{\useKV[ClesThales]{Unite}}\fi\opexport{resultatx}{\resultatx}%\xdef\ResultatThalesx{\num{\resultatx}}%
+ \Nomx\uppercase{&}\opdiv*{numx}{denox}{resultatx}{restex}\opcmp{restex}{0}\ifopeq=\num{\ResultatThalesx}\else\approx\num{\fpeval{round(\ResultatThalesx,\useKV[ClesThales]{Precision})}}\fi~\text{\useKV[ClesThales]{Unite}}%
\fi
- % % Deuxième compteur \yyy
+ % % Deuxi\`eme compteur \yyy
\ifnum\cmya>0
\ifnum\cmxa=0
%
@@ -5036,9 +5037,9 @@
\else
\uppercase{&}
\fi
- \Nomy\uppercase{&}\opdiv*{numy}{denoy}{resultaty}{restey}\opcmp{restey}{0}\ifopeq=\opprint{resultaty}~\text{\useKV[ClesThales]{Unite}}\else\approx\opround{resultaty}{\useKV[ClesThales]{Precision}}{resultaty}\opprint{resultaty}~\text{\useKV[ClesThales]{Unite}}\fi\opexport{resultaty}{\resultaty}%\xdef\ResultatThalesy{\num{\resultaty}}
+ \Nomy\uppercase{&}\opdiv*{numy}{denoy}{resultaty}{restey}\opcmp{restey}{0}\ifopeq=\num{\ResultatThalesy}\else\approx\num{\fpeval{round(\ResultatThalesy,\useKV[ClesThales]{Precision})}}\fi~\text{\useKV[ClesThales]{Unite}}%
\fi
-% %Troisième compteur \zzz
+% %Troisi\`eme compteur \zzz
\ifnum\cmza>0
\ifnum\cmxa=0
\ifnum\cmya=0
@@ -5046,9 +5047,9 @@
\else
\uppercase{&}
\fi
- \Nomz\uppercase{&}\opdiv*{numz}{denoz}{resultatz}{restez}\opcmp{restez}{0}\ifopeq=\opprint{resultatz}~\text{\useKV[ClesThales]{Unite}}\else\approx\opround{resultatz}{\useKV[ClesThales]{Precision}}{resultatz}\opprint{resultatz}~\text{\useKV[ClesThales]{Unite}}\fi\opexport{resultatz}{\resultatz}%\xdef\ResultatThalesz{\num{\resultatz}}
+ \Nomz\uppercase{&}\opdiv*{numz}{denoz}{resultatz}{restez}\opcmp{restez}{0}\ifopeq=\num{\ResultatThalesz}\else\approx\num{\fpeval{round(\ResultatThalesz,\useKV[ClesThales]{Precision})}}\fi~\text{\useKV[ClesThales]{Unite}}%
\else
- \uppercase{&}\Nomz\uppercase{&}\opdiv*{numz}{denoz}{resultatz}{restez}\opcmp{restez}{0}\ifopeq=\opprint{resultatz}~\text{\useKV[ClesThales]{Unite}}\else\approx\opround{resultatz}{\useKV[ClesThales]{Precision}}{resultatz}\opprint{resultatz}~\text{\useKV[ClesThales]{Unite}}\fi\opexport{resultatz}{\resultatz}%\xdef\ResultatThalesz{\num{\resultatz}}
+ \uppercase{&}\Nomz\uppercase{&}\opdiv*{numz}{denoz}{resultatz}{restez}\opcmp{restez}{0}\ifopeq=\num{\ResultatThalesz}\else\approx\num{\fpeval{round(\ResultatThalesz,\useKV[ClesThales]{Precision})}}\fi~\text{\useKV[ClesThales]{Unite}}%
\fi
\fi
\end{align*}
@@ -5057,7 +5058,7 @@
\newcommand{\TThalesCalculsE}[8][]{%
\setKV[ClesThales]{#1}%
- \newcount\zzz\newcount\yyy\newcount\xxx%Pour se rappeller des calculs à faire et combien en faire%
+ \newcount\zzz\newcount\yyy\newcount\xxx%Pour se rappeller des calculs \`a faire et combien en faire%
\newcount\valx\newcount\Valx%
\newcount\valy\newcount\Valy%
\newcount\valz\newcount\Valz%
@@ -5183,7 +5184,7 @@
}{%
\[\frac{\IfDecimal{#3}{\num{#3}}{#3}}{\IfDecimal{#6}{\num{#6}}{#6}}=\frac{\IfDecimal{#4}{\num{#4}}{#4}}{\IfDecimal{#7}{\num{#7}}{#7}}=\frac{\IfDecimal{#5}{\num{#5}}{#5}}{\IfDecimal{#8}{\num{#8}}{#8}}\]
}%
- % On choisit éventuellement le calcul à faire s'il y en a plusieurs.
+ % On choisit \'eventuellement le calcul \`a faire s'il y en a plusieurs.
\xdef\CompteurCalcul{\useKV[ClesThales]{ChoixCalcul}}%
\xintifboolexpr{\CompteurCalcul>0}{\xintifboolexpr{\CompteurCalcul=1}{\xdef\cmya{0}\xdef\cmza{0}}{\xintifboolexpr{\CompteurCalcul=2}{\xdef\cmxa{0}\xdef\cmza{0}}{\xdef\cmxa{0}\xdef\cmya{0}}}}%
%%on fait les calculs
@@ -5192,7 +5193,7 @@
\ifnum\cmxa>0
\Nomx\uppercase{&}=\frac{\the\valx\times\the\Valx}{\the\denox}\global\numx=\numexpr\the\valx*\the\Valx\relax
\fi
- % % Deuxième compteur \yyy
+ % % Deuxi\`eme compteur \yyy
\ifnum\cmya>0
\ifnum\cmxa=0
\else
@@ -5203,7 +5204,7 @@
% \uppercase{&}\Nomy\uppercase{&}=\frac{\the\valy\times\the\Valy}{\the\denoy}\global\numy=\numexpr\the\valy*\the\Valy\relax
% \fi
\fi
- % Troisième compteur \zzz
+ % Troisi\`eme compteur \zzz
\ifnum\cmza>0
\ifnum\cmxa=0
\ifnum\cmya=0
@@ -5217,12 +5218,12 @@
\fi
\fi
\\
- % 2eme ligne du tableau : calcul des numérateurs
+ % 2eme ligne du tableau : calcul des num\'erateurs
%Premier compteur \xxx
\ifnum\cmxa>0
\Nomx\uppercase{&}=\frac{\num{\the\numx}}{\num{\the\denox}}
\fi
- % % Deuxième compteur \yyy
+ % % Deuxi\`eme compteur \yyy
\ifnum\cmya>0
\ifnum\cmxa=0
%\Nomy\uppercase{&}=\frac{\num{\the\numy}}{\num{\the\denoy}}
@@ -5231,7 +5232,7 @@
\fi
\Nomy\uppercase{&}=\frac{\num{\the\numy}}{\num{\the\denoy}}%
\fi
- %Troisième compteur \zzz
+ %Troisi\`eme compteur \zzz
\ifnum\cmza>0
\ifnum\cmxa=0
\ifnum\cmya=0
@@ -5255,7 +5256,7 @@
\uppercase{&}
\fi
\fi
- % % Deuxième compteur \yyy
+ % % Deuxi\`eme compteur \yyy
\ifnum\cmya>0
\PGCD{\the\numy}{\the\denoy}
\ifnum\cmxa=0
@@ -5272,7 +5273,7 @@
\fi
\fi
\fi
- %Troisième compteur \zzz
+ %Troisi\`eme compteur \zzz
\ifnum\cmza>0
\PGCD{\the\numz}{\the\denoz}
\ifnum\cmxa=0
@@ -5312,7 +5313,7 @@
\uppercase{&}
\fi
\fi
- % % Deuxième compteur \yyy
+ % % Deuxi\`eme compteur \yyy
\ifnum\cmya>0
\PGCD{\the\numy}{\the\denoy}
\ifnum\cmxa=0
@@ -5337,7 +5338,7 @@
\fi
\fi
\fi
- %Troisième compteur \zzz
+ %Troisi\`eme compteur \zzz
\ifnum\cmza>0
\PGCD{\the\numz}{\the\denoz}
\ifnum\cmxa=0
@@ -5389,7 +5390,7 @@
\ifboolKV[ClesThales]{Figure}{%
\StrMid{#2}{1}{1}[\NomA]\StrMid{#2}{2}{2}[\NomB]\StrMid{#2}{3}{3}[\NomC]\StrMid{#2}{4}{4}[\NomM]\StrMid{#2}{5}{5}[\NomN]%
\begin{multicols}{2}%
- {\em La figure est donnée à titre indicatif.}%
+ {\em La figure est donn\'ee \`a titre indicatif.}%
\[\MPFigThales{\NomA}{\NomB}{\NomC}{\NomM}{\NomN}{\useKV[ClesThales]{Angle}}\]%
\par\columnbreak\par%
\ifboolKV[ClesThales]{Entier}{\TThalesCalculsE[#1]{#2}{#3}{#4}{#5}{#6}{#7}{#8}}{\TThalesCalculsD[#1]{#2}{#3}{#4}{#5}{#6}{#7}{#8}}%
@@ -5397,7 +5398,7 @@
}{\ifboolKV[ClesThales]{Figurecroisee}{%
\StrMid{#2}{1}{1}[\NomA]\StrMid{#2}{2}{2}[\NomB]\StrMid{#2}{3}{3}[\NomC]\StrMid{#2}{4}{4}[\NomM]\StrMid{#2}{5}{5}[\NomN]%
\begin{multicols}{2}%
- {\em La figure est donnée à titre indicatif.}%
+ {\em La figure est donn\'ee \`a titre indicatif.}%
\[\MPFigThalesCroisee{\NomA}{\NomB}{\NomC}{\NomM}{\NomN}{\useKV[ClesThales]{Angle}}\]%
\par\columnbreak\par%
\ifboolKV[ClesThales]{Entier}{\TThalesCalculsE[#1]{#2}{#3}{#4}{#5}{#6}{#7}{#8}}{\TThalesCalculsD[#1]{#2}{#3}{#4}{#5}{#6}{#7}{#8}}%
@@ -5411,7 +5412,7 @@
\newcommand{\ReciThales}[6][]{%
\ifboolKV[ClesThales]{Droites}{%
- Les droites $(#3#5)$ et $(#4#6)$ sont sécantes en $#2$.
+ Les droites $(#3#5)$ et $(#4#6)$ sont s\'ecantes en $#2$.
}{%
Dans le triangle $#2#3#4$, $#5$ est un point
\ifboolKV[ClesThales]{Segment}{du segment $[#2#3]$}{de la
@@ -5424,7 +5425,7 @@
\hline
#2#3#4\\
\end{array}
- $ est-il un tableau de proportionnalité ?
+ $ est-il un tableau de proportionnalit\'e ?
}{%
}
}
@@ -5444,10 +5445,10 @@
\num{#3}\times\num{#6}&=\num{\fpeval{#3*#6}}&&&\num{#4}\times\num{#5}&=\num{\fpeval{#4*#5}}
\end{align*}
\xintifboolexpr{\NumA = \NumB}{Comme les produits en croix sont
- égaux, alors
+ \'egaux, alors
$\dfrac{\NomA\NomM}{\NomA\NomB}=\dfrac{\NomA\NomN}{\NomA\NomC}$.\\[0.5em]%
}{%
- Comme les produits en croix sont différents, alors
+ Comme les produits en croix sont diff\'erents, alors
$\dfrac{\NomA\NomM}{\NomA\NomB}\not=\dfrac{\NomA\NomN}{\NomA\NomC}$.\\%
}%
}{%
@@ -5479,25 +5480,25 @@
\hline
\NomA\NomB&\NomA\NomC\\
\end{array}
- $ est bien un tableau de proportionnalité.\\De plus, les points
- $\NomA$, $\NomM$, $\NomB$ sont alignés dans le même ordre que les
+ $ est bien un tableau de proportionnalit\'e.\\De plus, les points
+ $\NomA$, $\NomM$, $\NomB$ sont align\'es dans le m\^eme ordre que les
points $\NomA$, $\NomN$, $\NomC$. Donc les droites $(\NomM\NomN)$
- et $(\NomB\NomC)$ sont parallèles d'après la réciproque du
- théorème de Thalès.\else%
- Donc les droites $(\NomM\NomN)$ et $(\NomB\NomC)$ ne sont pas parallèles.\fi
+ et $(\NomB\NomC)$ sont parall\`eles d'apr\`es la r\'eciproque du
+ th\'eor\`eme de Thal\`es.\else%
+ Donc les droites $(\NomM\NomN)$ et $(\NomB\NomC)$ ne sont pas parall\`eles.\fi
}{%
\xintifboolexpr{\NumA=\NumB}{%
- De plus, les points $\NomA$, $\NomM$, $\NomB$ sont alignés dans
- le même ordre que les points $\NomA$, $\NomN$, $\NomC$. Donc les
- droites $(\NomM\NomN)$ et $(\NomB\NomC)$ sont parallèles d'après
- la réciproque du théorème de Thalès.}{%
+ De plus, les points $\NomA$, $\NomM$, $\NomB$ sont align\'es dans
+ le m\^eme ordre que les points $\NomA$, $\NomN$, $\NomC$. Donc les
+ droites $(\NomM\NomN)$ et $(\NomB\NomC)$ sont parall\`eles d'apr\`es
+ la r\'eciproque du th\'eor\`eme de Thal\`es.}{%
Donc les droites $(\NomM\NomN)$ et $(\NomB\NomC)$ ne sont pas
- parallèles.}
+ parall\`eles.}
}
}
\newcommand\ReciproqueThales[8][]{%
- % #1 Clés
+ % #1 Cl\'es
% #2 NomTriangle + Points ABCEF pour droite (BC)//(EF)
% #3 longueur AE
% #4 longueur AB
@@ -5513,7 +5514,7 @@
\ifboolKV[ClesThales]{Figure}{%
\StrMid{#2}{1}{1}[\NomA]\StrMid{#2}{2}{2}[\NomB]\StrMid{#2}{3}{3}[\NomC]\StrMid{#2}{4}{4}[\NomM]\StrMid{#2}{5}{5}[\NomN]%
\begin{multicols}{2}
- {\em La figure est donnée à titre indicatif.}
+ {\em La figure est donn\'ee \`a titre indicatif.}
\[\MPFigReciThales{\NomA}{\NomB}{\NomC}{\NomM}{\NomN}{\useKV[ClesThales]{Angle}}\]
\par\columnbreak\par
\ReciThales[#1]{\StrMid{#2}{1}{1}}{\StrMid{#2}{2}{2}}{\StrMid{#2}{3}{3}}{\StrMid{#2}{4}{4}}{\StrMid{#2}{5}{5}}\par
@@ -5522,7 +5523,7 @@
}{\ifboolKV[ClesThales]{Figurecroisee}{%
\StrMid{#2}{1}{1}[\NomA]\StrMid{#2}{2}{2}[\NomB]\StrMid{#2}{3}{3}[\NomC]\StrMid{#2}{4}{4}[\NomM]\StrMid{#2}{5}{5}[\NomN]
\begin{minipage}{0.4\linewidth}
- {\em La figure est donnée à titre indicatif.}
+ {\em La figure est donn\'ee \`a titre indicatif.}
\[\MPFigReciThalesCroisee{\NomA}{\NomB}{\NomC}{\NomM}{\NomN}{\useKV[ClesThales]{Angle}}\]
\end{minipage}
\hfill
@@ -5556,7 +5557,7 @@
\ifboolKV[ClesThales]{Figure}{%
\StrMid{#2}{1}{1}[\NomA]\StrMid{#2}{2}{2}[\NomB]\StrMid{#2}{3}{3}[\NomC]\StrMid{#2}{4}{4}[\NomM]\StrMid{#2}{5}{5}[\NomN]%
\begin{multicols}{2}
- {\em La figure est donnée à titre indicatif.}%
+ {\em La figure est donn\'ee \`a titre indicatif.}%
\[\MPFigThales{\NomA}{\NomB}{\NomC}{\NomM}{\NomN}{\useKV[ClesThales]{Angle}}\]%
\par\columnbreak\par%
\TTThales[#1]{\StrMid{#2}{1}{1}}{\StrMid{#2}{2}{2}}{\StrMid{#2}{3}{3}}{\StrMid{#2}{4}{4}}{\StrMid{#2}{5}{5}}%
@@ -5565,7 +5566,7 @@
\ifboolKV[ClesThales]{Figurecroisee}{%
\StrMid{#2}{1}{1}[\NomA]\StrMid{#2}{2}{2}[\NomB]\StrMid{#2}{3}{3}[\NomC]\StrMid{#2}{4}{4}[\NomM]\StrMid{#2}{5}{5}[\NomN]%
\begin{multicols}{2}
- {\em La figure est donnée à titre indicatif.}%
+ {\em La figure est donn\'ee \`a titre indicatif.}%
\[\MPFigThalesCroisee{\NomA}{\NomB}{\NomC}{\NomM}{\NomN}{\useKV[ClesThales]{Angle}}\]%
\par\columnbreak\par%
\TTThales[#1]{\StrMid{#2}{1}{1}}{\StrMid{#2}{2}{2}}{\StrMid{#2}{3}{3}}{\StrMid{#2}{4}{4}}{\StrMid{#2}{5}{5}}%
@@ -5583,7 +5584,7 @@
}%
%%%
-% Trigonométrie
+% Trigonom\'etrie
%%%
\def\MPFigTrigo#1#2#3#4#5#6#7#8{%
\ifluatex
@@ -5592,24 +5593,24 @@
\begin{mplibcode}
u:=\useKV[ClesTrigo]{Echelle};
pair A,B,C,O,I,D,E,F;%
- % On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+ % On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
A=u*(1,1);
B-A=u*(3,0);
C=(A--2[A,B rotatedabout(A,50)]) intersectionpoint (B--2[B,A rotatedabout(B,-90)]);
- % On définit le centre du cercle circonscrit
+ % On d\'efinit le centre du cercle circonscrit
O - .5[A,B] = whatever * (B-A) rotated 90;
O - .5[B,C] = whatever * (C-B) rotated 90;
- % On tourne pour éventuellement moins de lassitude :)
+ % On tourne pour \'eventuellement moins de lassitude :)
A:=A rotatedabout(O,#8);
B:=B rotatedabout(O,#8);
C:=C rotatedabout(O,#8);
- % On définit le centre du cercle inscrit
+ % On d\'efinit le centre du cercle inscrit
(I-C) rotated ((angle(A-C)-angle(B-C))/2) shifted C=whatever[A,C];
(I-B) rotated ((angle(C-B)-angle(A-B))/2) shifted B=whatever[B,C];
- % on dessine à main levée :)
+ % on dessine \`a main lev\'ee :)
path triangle;
triangle=A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)}--B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)}--C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)}--cycle;
- % on définit l'angle droit
+ % on d\'efinit l'angle droit
D-B=7*unitvector(C-B);
F-B=7*unitvector(A-B);
E-D=F-B;
@@ -5688,24 +5689,24 @@
\begin{mpost}
u:=1cm;
pair A,B,C,O,I,D,E,F;%
- % On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+ % On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
A=u*(1,1);
B-A=u*(3,0);
C=(A--2[A,B rotatedabout(A,50)]) intersectionpoint (B--2[B,A rotatedabout(B,-90)]);
- % On définit le centre du cercle circonscrit
+ % On d\'efinit le centre du cercle circonscrit
O - .5[A,B] = whatever * (B-A) rotated 90;
O - .5[B,C] = whatever * (C-B) rotated 90;
- % On tourne pour éventuellement moins de lassitude :)
+ % On tourne pour \'eventuellement moins de lassitude :)
A:=A rotatedabout(O,#8);
B:=B rotatedabout(O,#8);
C:=C rotatedabout(O,#8);
- % On définit le centre du cercle inscrit
+ % On d\'efinit le centre du cercle inscrit
(I-C) rotated ((angle(A-C)-angle(B-C))/2) shifted C=whatever[A,C];
(I-B) rotated ((angle(C-B)-angle(A-B))/2) shifted B=whatever[B,C];
- % on dessine à main levée :)
+ % on dessine \`a main lev\'ee :)
path triangle;
triangle=A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)}--B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)}--C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)}--cycle;
- % on définit l'angle droit
+ % on d\'efinit l'angle droit
D-B=7*unitvector(C-B);
F-B=7*unitvector(A-B);
E-D=F-B;
@@ -5798,24 +5799,24 @@
\begin{mplibcode}
u:=\useKV[ClesTrigo]{Echelle};
pair A,B,C,O,I,D,E,F;%
- % On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+ % On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
A=u*(1,1);
B-A=u*(3,0);
C=(A--2[A,B rotatedabout(A,50)]) intersectionpoint (B--2[B,A rotatedabout(B,-90)]);
- % On définit le centre du cercle circonscrit
+ % On d\'efinit le centre du cercle circonscrit
O - .5[A,B] = whatever * (B-A) rotated 90;
O - .5[B,C] = whatever * (C-B) rotated 90;
- % On tourne pour éventuellement moins de lassitude :)
+ % On tourne pour \'eventuellement moins de lassitude :)
A:=A rotatedabout(O,#7);
B:=B rotatedabout(O,#7);
C:=C rotatedabout(O,#7);
- % On définit le centre du cercle inscrit
+ % On d\'efinit le centre du cercle inscrit
(I-C) rotated ((angle(A-C)-angle(B-C))/2) shifted C=whatever[A,C];
(I-B) rotated ((angle(C-B)-angle(A-B))/2) shifted B=whatever[B,C];
- %on dessine à main levée :)
+ %on dessine \`a main lev\'ee :)
path triangle;
triangle=A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)}--B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)}--C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)}--cycle;
- %on définit l'angle droit
+ %on d\'efinit l'angle droit
D-B=7*unitvector(C-B);
F-B=7*unitvector(A-B);
E-D=F-B;
@@ -5860,24 +5861,24 @@
\begin{mpost}
u:=1cm;
pair A,B,C,O,I,D,E,F;%
- %On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+ %On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
A=u*(1,1);
B-A=u*(3,0);
C=(A--2[A,B rotatedabout(A,50)]) intersectionpoint (B--2[B,A rotatedabout(B,-90)]);
- % On définit le centre du cercle circonscrit
+ % On d\'efinit le centre du cercle circonscrit
O - .5[A,B] = whatever * (B-A) rotated 90;
O - .5[B,C] = whatever * (C-B) rotated 90;
- % On tourne pour éventuellement moins de lassitude :)
+ % On tourne pour \'eventuellement moins de lassitude :)
A:=A rotatedabout(O,#7);
B:=B rotatedabout(O,#7);
C:=C rotatedabout(O,#7);
- % On définit le centre du cercle inscrit
+ % On d\'efinit le centre du cercle inscrit
(I-C) rotated ((angle(A-C)-angle(B-C))/2) shifted C=whatever[A,C];
(I-B) rotated ((angle(C-B)-angle(A-B))/2) shifted B=whatever[B,C];
- %on dessine à main levée :)
+ %on dessine \`a main lev\'ee :)
path triangle;
triangle=A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)}--B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)}--C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)}--cycle;
- %on définit l'angle droit
+ %on d\'efinit l'angle droit
D-B=7*unitvector(C-B);
F-B=7*unitvector(A-B);
E-D=F-B;
@@ -5926,12 +5927,12 @@
\newcommand\TrigoCalculs[5][]{%
\setKV[ClesTrigo]{#1}%
- % #1 Clés
+ % #1 Cl\'es
% #2 Nom du triangle ABC, rectangle en B, angle connu ou pas : BAC
% #3 Longueur
% #4 Longueur
% #5 angle
- % On définit les points
+ % On d\'efinit les points
\StrMid{#2}{1}{1}[\NomA]%
\StrMid{#2}{2}{2}[\NomB]%
\StrMid{#2}{3}{3}[\NomC]%
@@ -5946,7 +5947,7 @@
Dans le triangle $\NomA\NomB\NomC$, rectangle en $\NomB$, on a :%
}%
\ifboolKV[ClesTrigo]{Cosinus}{%
- \ifx\bla#3\bla%on calcule le côté adjacent
+ \ifx\bla#3\bla%on calcule le c\^ot\'e adjacent
\xdef\ResultatTrigo{\fpeval{round(\fpeval{#4*cosd(#5)},\useKV[ClesTrigo]{Precision})}}%
\ifboolKV[ClesTrigo]{Propor}{%
\begin{align*}
@@ -5963,7 +5964,7 @@
\end{align*}
}%
\else%
- \ifx\bla#4\bla%on calcule l'hypothénuse
+ \ifx\bla#4\bla%on calcule l'hypoth\'enuse
\xdef\ResultatTrigo{\fpeval{round(\fpeval{#3/cosd(#5)},\useKV[ClesTrigo]{Precision})}}%
\ifboolKV[ClesTrigo]{Propor}{%
\begin{align*}
@@ -6000,7 +6001,7 @@
\fi%
}{}%
\ifboolKV[ClesTrigo]{Sinus}{%
- \ifx\bla#3\bla%on calcule le côté opposé
+ \ifx\bla#3\bla%on calcule le c\^ot\'e oppos\'e
\xdef\ResultatTrigo{\fpeval{round(\fpeval{#4*sind(#5)},\useKV[ClesTrigo]{Precision})}}%
\ifboolKV[ClesTrigo]{Propor}{%
\begin{align*}
@@ -6017,7 +6018,7 @@
\end{align*}%
}%
\else
- \ifx\bla#4\bla%on calcule l'hypothénuse
+ \ifx\bla#4\bla%on calcule l'hypoth\'enuse
\xdef\ResultatTrigo{\fpeval{round(\fpeval{#3/sind(#5)},\useKV[ClesTrigo]{Precision})}}%
\ifboolKV[ClesTrigo]{Propor}{%
\begin{align*}
@@ -6054,7 +6055,7 @@
\fi%
}{}%
\ifboolKV[ClesTrigo]{Tangente}{%
- \ifx\bla#3\bla%on calcule le côté opposé
+ \ifx\bla#3\bla%on calcule le c\^ot\'e oppos\'e
\xdef\ResultatTrigo{\fpeval{round(\fpeval{#4*tand(#5)},\useKV[ClesTrigo]{Precision})}}%
\ifboolKV[ClesTrigo]{Propor}{%
\begin{align*}
@@ -6112,16 +6113,16 @@
\newcommand\Trigo[5][]{%
\useKVdefault[ClesTrigo]%
\setKV[ClesTrigo]{#1}%
- % #1 Clés
+ % #1 Cl\'es
% #2 Nom du triangle ABC, rectangle en B, angle connu ou pas : BAC
% #3 Longueur
% #4 Longueur
% #5 angle
- % On définit les points
+ % On d\'efinit les points
\StrMid{#2}{1}{1}[\NomA]%
\StrMid{#2}{2}{2}[\NomB]%
\StrMid{#2}{3}{3}[\NomC]%
- % On rédige
+ % On r\'edige
\ifboolKV[ClesTrigo]{FigureSeule}{%
\ifx\bla#5\bla%
\ifboolKV[ClesTrigo]{Cosinus}{%
@@ -6159,7 +6160,7 @@
}{%
\ifboolKV[ClesTrigo]{Figure}{%
\begin{multicols}{2}%
- {\em La figure est donnée à titre indicatif.}%
+ {\em La figure est donn\'ee \`a titre indicatif.}%
\ifx\bla#5\bla%
\ifboolKV[ClesTrigo]{Cosinus}{%
\begin{center}
@@ -6254,7 +6255,7 @@
\rowcolor{\useKV[ClesStat]{CouleurTab}}\the\tabtoksa\\\hline%
\ifnum\number\numexpr\useKV[ClesStat]{ColVide}<1%
\ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&}}{\the\tabtoksb}\\\hline%
- \ifboolKV[ClesStat]{Frequence}{Fréquence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}\\\hline}{}%
+ \ifboolKV[ClesStat]{Frequence}{Fr\'equence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}\\\hline}{}%
\ifboolKV[ClesStat]{Angle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}\\\hline}{}%
\ifboolKV[ClesStat]{SemiAngle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}\\\hline}{}%
\ifboolKV[ClesStat]{ECC}{E.C.C.\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}\\\hline}{}%
@@ -6262,7 +6263,7 @@
\else%
\ifnum\number\numexpr\useKV[ClesStat]{ColVide}>\ListeCompletelen%
\ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&}}{\the\tabtoksb}\\\hline%
- \ifboolKV[ClesStat]{Frequence}{Fréquence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}\\\hline}{}%
+ \ifboolKV[ClesStat]{Frequence}{Fr\'equence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}\\\hline}{}%
\ifboolKV[ClesStat]{Angle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}\\\hline}{}%
\ifboolKV[ClesStat]{SemiAngle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}\\\hline}{}%
\ifboolKV[ClesStat]{ECC}{E.C.C.\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}\\\hline}{}%
@@ -6270,7 +6271,7 @@
\else%
\ifnum\number\numexpr\useKV[ClesStat]{ColVide}=1%
\ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&}}{\useKV[ClesStat]{Effectif}&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ListeComplete[##1,2]}}\\\hline%
- \ifboolKV[ClesStat]{Frequence}{Fréquence (\%)&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}\\\hline}{}%
+ \ifboolKV[ClesStat]{Frequence}{Fr\'equence (\%)&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}\\\hline}{}%
\ifboolKV[ClesStat]{Angle}{Angle (\si{\degree})&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}\\\hline}{}%
\ifboolKV[ClesStat]{SemiAngle}{Angle (\si{\degree})&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}\\\hline}{}%
\ifboolKV[ClesStat]{ECC}{E.C.C.&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}\\\hline}{}%
@@ -6278,7 +6279,7 @@
\else%
\ifnum\number\numexpr\useKV[ClesStat]{ColVide}=\ListeCompletelen%
\ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&}}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ListeComplete[##1,2]}}&\\\hline%
- \ifboolKV[ClesStat]{Frequence}{Fréquence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\\\hline}{}%
+ \ifboolKV[ClesStat]{Frequence}{Fr\'equence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\\\hline}{}%
\ifboolKV[ClesStat]{Angle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}&\\\hline}{}%
\ifboolKV[ClesStat]{SemiAngle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}&\\\hline}{}%
\ifboolKV[ClesStat]{ECC}{E.C.C.\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}&\\\hline}{}%
@@ -6285,7 +6286,7 @@
\end{tabular}
\else%
\ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&}}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\number\numexpr\useKV[ClesStat]{ColVide}-1}}\do{&\ListeComplete[##1,2]}&\xintFor* ##1 in {\xintSeq {\number\numexpr\useKV[ClesStat]{ColVide}+1}{\ListeCompletelen}}\do{&\ListeComplete[##1,2]}}\\\hline%
- \ifboolKV[ClesStat]{Frequence}{Fréquence (\%)\xintFor* ##1 in {\xintSeq {1}{\number\numexpr\useKV[ClesStat]{ColVide}-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\xintFor* ##1 in {\xintSeq {\number\numexpr\useKV[ClesStat]{ColVide}+1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}\\\hline}{}%
+ \ifboolKV[ClesStat]{Frequence}{Fr\'equence (\%)\xintFor* ##1 in {\xintSeq {1}{\number\numexpr\useKV[ClesStat]{ColVide}-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\xintFor* ##1 in {\xintSeq {\number\numexpr\useKV[ClesStat]{ColVide}+1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}\\\hline}{}%
\ifboolKV[ClesStat]{Angle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\number\numexpr\useKV[ClesStat]{ColVide}-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}&\xintFor* ##1 in {\xintSeq {\number\numexpr\useKV[ClesStat]{ColVide}+1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculAngle{##1}}}}\\\hline}{}%
\ifboolKV[ClesStat]{SemiAngle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\number\numexpr\useKV[ClesStat]{ColVide}-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}&\xintFor* ##1 in {\xintSeq {\number\numexpr\useKV[ClesStat]{ColVide}+1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculSemiAngle{##1}}}}\\\hline}{}%
\ifboolKV[ClesStat]{ECC}{E.C.C.\xintFor* ##1 in {\xintSeq {1}{\number\numexpr\useKV[ClesStat]{ColVide}-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}&\xintFor* ##1 in {\xintSeq {\number\numexpr\useKV[ClesStat]{ColVide}+1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}\\\hline}{}%
@@ -6308,7 +6309,7 @@
\rowcolor{\useKV[ClesStat]{CouleurTab}}\the\tabtoksa&Total\\\hline%
\ifnum\number\numexpr\useKV[ClesStat]{ColVide}<1%
\ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen+1}}\do{&}}{\the\tabtoksb&\ifboolKV[ClesStat]{TotalVide}{}{\num{\EffectifTotal}}}\\\hline%
- \ifboolKV[ClesStat]{Frequence}{Fréquence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{100}}}\\\hline}{}%
+ \ifboolKV[ClesStat]{Frequence}{Fr\'equence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{100}}}\\\hline}{}%
\ifboolKV[ClesStat]{Angle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{360}}}\\\hline}{}%
\ifboolKV[ClesStat]{SemiAngle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{180}}}\\\hline}{}%
\ifboolKV[ClesStat]{ECC}{E.C.C.\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\num{\EffectifTotal}}}}\\\hline}{}%
@@ -6316,7 +6317,7 @@
\else%
\ifnum\number\numexpr\useKV[ClesStat]{ColVide}>\ListeCompletelen%
\ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen+1}}\do{&}}{\the\tabtoksb&\ifboolKV[ClesStat]{TotalVide}{}{\num{\EffectifTotal}}}\\\hline%
- \ifboolKV[ClesStat]{Frequence}{Fréquence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{100}}}\\\hline}{}%
+ \ifboolKV[ClesStat]{Frequence}{Fr\'equence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{100}}}\\\hline}{}%
\ifboolKV[ClesStat]{Angle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{360}}}\\\hline}{}%
\ifboolKV[ClesStat]{SemiAngle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{180}}}\\\hline}{}%
\ifboolKV[ClesStat]{ECC}{E.C.C.\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\num{\EffectifTotal}}}}\\\hline}{}%
@@ -6324,7 +6325,7 @@
\else%
\ifnum\number\numexpr\useKV[ClesStat]{ColVide}=1%
\ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen+1}}\do{&}}{\useKV[ClesStat]{Effectif}&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ListeComplete[##1,2]}&\ifboolKV[ClesStat]{TotalVide}{}{\num{\EffectifTotal}}}\\\hline%
- \ifboolKV[ClesStat]{Frequence}{Fréquence (\%)&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{100}}}\\\hline}{}%
+ \ifboolKV[ClesStat]{Frequence}{Fr\'equence (\%)&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{100}}}\\\hline}{}%
\ifboolKV[ClesStat]{Angle}{Angle (\si{\degree})&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{360}}}\\\hline}{}%
\ifboolKV[ClesStat]{SemiAngle}{Angle (\si{\degree})&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{180}}}\\\hline}{}%
\ifboolKV[ClesStat]{ECC}{E.C.C.&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\num{\EffectifTotal}}}}\\\hline}{}%
@@ -6332,7 +6333,7 @@
\else%
\ifnum\number\numexpr\useKV[ClesStat]{ColVide}=\ListeCompletelen%
\ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen+1}}\do{&}}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ListeComplete[##1,2]}&&\ifboolKV[ClesStat]{TotalVide}{}{\num{\EffectifTotal}}}\\\hline%
- \ifboolKV[ClesStat]{Frequence}{Fréquence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{100}}}\\\hline}{}%
+ \ifboolKV[ClesStat]{Frequence}{Fr\'equence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{100}}}\\\hline}{}%
\ifboolKV[ClesStat]{Angle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}&&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{360}}}\\\hline}{}%
\ifboolKV[ClesStat]{SemiAngle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}&&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{180}}}\\\hline}{}%
\ifboolKV[ClesStat]{ECC}{E.C.C.\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}&&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\num{\EffectifTotal}}}}\\\hline}{}%
@@ -6339,7 +6340,7 @@
\end{tabular}
\else%
\ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen+1}}\do{&}}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\number\numexpr\useKV[ClesStat]{ColVide}-1}}\do{&\ListeComplete[##1,2]}&\xintFor* ##1 in {\xintSeq {\number\numexpr\useKV[ClesStat]{ColVide}+1}{\ListeCompletelen}}\do{&\ListeComplete[##1,2]}&\ifboolKV[ClesStat]{TotalVide}{}{\num{\EffectifTotal}}}\\\hline%
- \ifboolKV[ClesStat]{Frequence}{Fréquence (\%)\xintFor* ##1 in {\xintSeq {1}{\number\numexpr\useKV[ClesStat]{ColVide}-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\xintFor* ##1 in {\xintSeq {\number\numexpr\useKV[ClesStat]{ColVide}+1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{100}}}\\\hline}{}%
+ \ifboolKV[ClesStat]{Frequence}{Fr\'equence (\%)\xintFor* ##1 in {\xintSeq {1}{\number\numexpr\useKV[ClesStat]{ColVide}-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\xintFor* ##1 in {\xintSeq {\number\numexpr\useKV[ClesStat]{ColVide}+1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{100}}}\\\hline}{}%
\ifboolKV[ClesStat]{Angle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\number\numexpr\useKV[ClesStat]{ColVide}-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}&\xintFor* ##1 in {\xintSeq {\number\numexpr\useKV[ClesStat]{ColVide}+1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{360}}}\\\hline}{}%
\ifboolKV[ClesStat]{SemiAngle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\number\numexpr\useKV[ClesStat]{ColVide}-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}&\xintFor* ##1 in {\xintSeq {\number\numexpr\useKV[ClesStat]{ColVide}+1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{180}}}\\\hline}{}%
\ifboolKV[ClesStat]{ECC}{E.C.C.\xintFor* ##1 in {\xintSeq {1}{\number\numexpr\useKV[ClesStat]{ColVide}-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}&\xintFor* ##1 in {\xintSeq {\number\numexpr\useKV[ClesStat]{ColVide}+1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\num{\EffectifTotal}}}}\\\hline}{}%
@@ -6413,7 +6414,7 @@
}%
}%
-%% calcul des fréquences
+%% calcul des fr\'equences
\newcommand\CalculFrequence[1]{%
\fpeval{round(\ListeComplete[#1,2]*100/\EffectifTotal,0)}
}
@@ -6626,7 +6627,7 @@
ang[0]:=0;
path cc;
cc=(fullcircle scaled (2*#1));
- % on récupère les couleurs
+ % on r\'ecup\`ere les couleurs
color Col[];
n:=0;
for p_=#5:
@@ -6671,7 +6672,7 @@
if #4=1: withcolor 0.5white fi;
fi;
draw A[n-1]--O--A[n] if #6=1: withpen pencircle scaled2 fi;
- % Affichage des angles associés
+ % Affichage des angles associ\'es
if #4=1:
if round(p_*(#3/total[N]))>15:
if (n mod 2)=0:
@@ -6742,7 +6743,7 @@
toto(#2);
\end{mplibcode}
\else
- \begin{mpost}%[mpsettings={input PfC-Geometrie;}]
+ \begin{mpost}%[mpsettings={input PfCGeometrie;}]
pair A[],O,B[],C[],D[];
O=(0,0);
n:=0;
@@ -6751,7 +6752,7 @@
ang[0]:=0;
path cc;
cc=(fullcircle scaled (2*#1));
- % on récupère les couleurs
+ % on r\'ecup\`ere les couleurs
color Col[];
n:=0;
for p_=#5:
@@ -6796,7 +6797,7 @@
if #4=1: withcolor 0.5white fi;
fi;
draw A[n-1]--O--A[n] if #6=1: withpen pencircle scaled2 fi;
- % Affichage des angles associés
+ % Affichage des angles associ\'es
if #4=1:
if round(p_*(#3/total[N]))>15:
if (n mod 2)=0:
@@ -6869,7 +6870,7 @@
\fi
}
-%Pour la médiane.
+%Pour la m\'ediane.
\DTLgnewdb{mtdb}%
\dtlexpandnewvalue%
\newcount\nbdonnees%
@@ -6931,7 +6932,7 @@
\xdef\listEEa{\the\tabtoksEEb}%
\ignoreemptyitems%
\setsepchar{,}%
- \readlist*\ListeSansDoublonsEE\listEEa% %%% Enlève tous les élements
+ \readlist*\ListeSansDoublonsEE\listEEa% %%% Enl\`eve tous les \'elements
%%% identiques de Liste
}{}%
}%
@@ -6941,7 +6942,7 @@
\ifthenelse{\equal{\nba}{\nbb}}{\cmptEE=\numexpr\cmptEE+1\relax}{}%
}%
\expandafter\AjoutListEEab\nba\nil%
- \expandafter\AjoutListEEaa\the\cmptEE\nil% %%% Compte tous les élements
+ \expandafter\AjoutListEEaa\the\cmptEE\nil% %%% Compte tous les \'elements
%%% identiques de Liste
}%
\xdef\listEEb{\the\tabtoksEEa}
@@ -6952,7 +6953,7 @@
\ifthenelse{\equal{\the\PasNumEE}{0}}{\setKV[ClesStat]{Quantitatif}}{\setKV[ClesStat]{Qualitatif}}%
}{%
\ifboolKV[ClesStat]{Qualitatif}{%
- % % on lit la liste écrite sous la forme valeur/effectif
+ % % on lit la liste \'ecrite sous la forme valeur/effectif
\setsepchar[*]{,*/}\ignoreemptyitems%
\readlist*\ListeComplete{#2}%
}{% Dans le qualitatif, on trie d'abord les valeurs.
@@ -6979,9 +6980,9 @@
\setsepchar[*]{,*/}
\readlist*\ListeComplete\listEE%
}}}
- % on crée la base de données des valeurs dans le cas qualitatif
+ % on cr\'ee la base de donn\'ees des valeurs dans le cas qualitatif
\DTLcleardb{mtdb}%
- % on les trie pour la médiane dans le cas qualitatif % Touhami / Texnique.fr
+ % on les trie pour la m\'ediane dans le cas qualitatif % Touhami / Texnique.fr
\foreachitem\x\in\ListeComplete{%
\DTLnewrow{mtdb}%
\itemtomacro\ListeComplete[\xcnt,2]\y%
@@ -6988,7 +6989,7 @@
\DTLnewdbentry{mtdb}{Numeric}{\y}%
}%
\dtlsort{Numeric}{mtdb}{\dtlicompare}%
- % % on réinitialise les valeurs des critères de position et de
+ % % on r\'einitialise les valeurs des crit\`eres de position et de
% dispersion
\renewcommand\NbDonnees{}
\renewcommand\SommeDonnees{}%
@@ -6999,16 +7000,16 @@
\renewcommand\DonneeMax{0}%
\renewcommand\EffectifMax{0}%
\renewcommand\DonneeMin{999999999}%
- \ifboolKV[ClesStat]{Qualitatif}{%Début qualitatif
+ \ifboolKV[ClesStat]{Qualitatif}{%D\'ebut qualitatif
% Calculs
- % %% celui de la somme des données
+ % %% celui de la somme des donn\'ees
\foreachitem\don\in\ListeComplete{\xdef\SommeDonnees{\fpeval{\SommeDonnees+\ListeComplete[\doncnt,2]}}}%
% %% celui de l'effectif total
\ifboolKV[ClesStat]{EffectifTotal}{%
- \ifboolKV[ClesStat]{Liste}{L'effectif total de la série est
+ \ifboolKV[ClesStat]{Liste}{L'effectif total de la s\'erie est
\num{\ListeCompletelen}.\par}{
\foreachitem\don\in\ListeComplete{\xdef\EffectifTotal{\fpeval{\EffectifTotal+\ListeComplete[\doncnt,2]}}}%
- L'effectif total de la série est : \[\ListeComplete[1,2]\xintFor* ##1 in
+ L'effectif total de la s\'erie est : \[\ListeComplete[1,2]\xintFor* ##1 in
{\xintSeq {2}{\ListeCompletelen}}\do{%
+\ListeComplete[##1,2]}=\num{\EffectifTotal}\]}
}{}%
@@ -7017,7 +7018,7 @@
\xdef\Moyenne{\fpeval{\SommeDonnees/\ListeCompletelen}}%
\ifboolKV[ClesStat]{Moyenne}{%
\ifboolKV[ClesStat]{Liste}{%
- La somme des données de la série est :%
+ La somme des donn\'ees de la s\'erie est :%
\xintifboolexpr{\ListeCompletelen<\useKV[ClesStat]{Coupure}}{%
\[
\num{\ListeComplete[1,2]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{%
@@ -7031,8 +7032,8 @@
}=\num{\SommeDonnees}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}%
\]%
}%
- \ifboolKV[ClesStat]{SET}{}{Le nombre de données de la série est \num{\ListeCompletelen}.\\}%
- Donc la moyenne de la série est égale à :%
+ \ifboolKV[ClesStat]{SET}{}{Le nombre de donn\'ees de la s\'erie est \num{\ListeCompletelen}.\\}%
+ Donc la moyenne de la s\'erie est \'egale \`a :%
\[\frac{\num{\SommeDonnees}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}}{\num{\ListeCompletelen}}%\IfInteger{\fpeval{round(\fpeval{\SommeDonnees/\ListeCompletelen},\useKV[ClesStat]{Precision})}}{=}{\approx}
\opdiv*{\SommeDonnees}{\ListeCompletelen}{resultatmoy}{restemoy}%
\opround{resultatmoy}{\useKV[ClesStat]{Precision}}{resultatmoy1}%
@@ -7039,8 +7040,8 @@
\opcmp{resultatmoy}{resultatmoy1}\ifopeq=\else\approx\fi%
\num{\fpeval{round(\fpeval{\SommeDonnees/\ListeCompletelen},\useKV[ClesStat]{Precision})}}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}.}{.}%
\]%
- }{Pas de moyenne possible pour une série de données à caractère qualitatif.}}{}%
- % % %% celui de l'étendue
+ }{Pas de moyenne possible pour une s\'erie de donn\'ees \`a caract\`ere qualitatif.}}{}%
+ % % %% celui de l'\'etendue
\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{%
\xintifboolexpr{\ListeComplete[##1,2]>\DonneeMax}{%
\xdef\DonneeMax{\ListeComplete[##1,2]}%
@@ -7053,11 +7054,11 @@
\xdef\Etendue{\fpeval{\DonneeMax-\DonneeMin}}%
\ifboolKV[ClesStat]{Etendue}{%
\ifboolKV[ClesStat]{Liste}{%
- L'étendue de la série est égale à $\num{\DonneeMax}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}-\num{\DonneeMin}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}=\num{\Etendue}$\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}%
- }{Pas d'étendue possible pour une série de données à caractère qualitatif.}}{}%
+ L'\'etendue de la s\'erie est \'egale \`a $\num{\DonneeMax}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}-\num{\DonneeMin}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}=\num{\Etendue}$\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}%
+ }{Pas d'\'etendue possible pour une s\'erie de donn\'ees \`a caract\`ere qualitatif.}}{}%
\ifboolKV[ClesStat]{Mediane}{%
\ifboolKV[ClesStat]{Liste}{%
- On range les données par ordre croissant :%
+ On range les donn\'ees par ordre croissant :%
\nbdonnees=0%
\xintifboolexpr{\ListeCompletelen<\useKV[ClesStat]{Coupure}}{%
\[\DTLforeach{mtdb}{\numeroDonnee=Numeric}{\num{\numeroDonnee}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}\DTLiflastrow{.}{;}}\]%
@@ -7075,45 +7076,45 @@
\newcount\meda%
\ifodd\number\ListeCompletelen%odd impair
\med=\fpeval{(\ListeCompletelen+1)/2}\relax%
- L'effectif total de la série est \num{\ListeCompletelen}. Or, $\num{\ListeCompletelen}=\num{\fpeval{\med-1}}+1+\num{\fpeval{\med-1}}$.\\
+ L'effectif total de la s\'erie est \num{\ListeCompletelen}. Or, $\num{\ListeCompletelen}=\num{\fpeval{\med-1}}+1+\num{\fpeval{\med-1}}$.\\
\else% pair
\med=\fpeval{\ListeCompletelen/2}\relax
\meda=\numexpr\med+1\relax
- L'effectif total de la série est \num{\ListeCompletelen}. Or, $\num{\ListeCompletelen}=\num{\the\med}+\num{\the\med}$.\\
+ L'effectif total de la s\'erie est \num{\ListeCompletelen}. Or, $\num{\ListeCompletelen}=\num{\the\med}+\num{\the\med}$.\\
\fi%
\newcount\k%
\k=0%
\DTLforeach{mtdb}{\numeroDonnee=Numeric}{\k=\numexpr\k+1\relax%
- \ifnum\k=\med %La médiane vaut \numeroDonnee\fi
+ \ifnum\k=\med %La m\'ediane vaut \numeroDonnee\fi
\ifodd\number\ListeCompletelen%
- La médiane de la série est la \the\med\ieme{} donnée.\\Donc la médiane de la série est \num{\numeroDonnee}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}%
+ La m\'ediane de la s\'erie est la \the\med\ieme{} donn\'ee.\\Donc la m\'ediane de la s\'erie est \num{\numeroDonnee}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}%
\else%
- La \the\med\ieme{} donnée est \num{\numeroDonnee}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}\xdef\Mediane{\numeroDonnee} %
+ La \the\med\ieme{} donn\'ee est \num{\numeroDonnee}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}\xdef\Mediane{\numeroDonnee} %
\fi
\fi
\ifnum\k=\meda
- La \the\meda\ieme{} donnée est \num{\numeroDonnee}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.} Donc la médiane de la série est \xdef\Mediane{\fpeval{(\Mediane+\numeroDonnee)/2}}\num{\Mediane}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}
+ La \the\meda\ieme{} donn\'ee est \num{\numeroDonnee}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.} Donc la m\'ediane de la s\'erie est \xdef\Mediane{\fpeval{(\Mediane+\numeroDonnee)/2}}\num{\Mediane}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}
\fi
}
%%%%%%%%%%%%%%%%%%%%%%%%
- }{Pas de médiane possible pour une série de données à caractère qualitatif.}}{}
+ }{Pas de m\'ediane possible pour une s\'erie de donn\'ees \`a caract\`ere qualitatif.}}{}
% Construction du tableau
\ifboolKV[ClesStat]{Tableau}{%
- \ifboolKV[ClesStat]{Liste}{Pas de tableau possible avec la clé Liste.\\Utilisez plutôt la clé Sondage si vous voulez un tableau avec cette liste.}{%
+ \ifboolKV[ClesStat]{Liste}{Pas de tableau possible avec la cl\'e Liste.\\Utilisez plut\^ot la cl\'e Sondage si vous voulez un tableau avec cette liste.}{%
\ifboolKV[ClesStat]{Total}{\buildtabt}{\buildtab}}}%
{}%
% Construction du graphique
\ifboolKV[ClesStat]{Graphique}{%
- \ifboolKV[ClesStat]{Liste}{Pas de graphique possible avec la clé Liste.\\Utilisez plutôt la clé Sondage si vous voulez un graphique avec cette liste.}{%
+ \ifboolKV[ClesStat]{Liste}{Pas de graphique possible avec la cl\'e Liste.\\Utilisez plut\^ot la cl\'e Sondage si vous voulez un graphique avec cette liste.}{%
\ifboolKV[ClesStat]{Angle}{\buildgraphcq{360}}{\ifboolKV[ClesStat]{SemiAngle}{\buildgraphcq{180}}{\buildgraphq[#1]}}%
}}{}
- }{%%%%%%%%%%%%%%%%%%%%%Début quantitatif
+ }{%%%%%%%%%%%%%%%%%%%%%D\'ebut quantitatif
% % on effectue les calculs
- % %% celui de la somme des données
+ % %% celui de la somme des donn\'ees
\foreachitem\don\in\ListeComplete{\xdef\SommeDonnees{\fpeval{\SommeDonnees+\ListeComplete[\doncnt,1]*\ListeComplete[\doncnt,2]}}}%
% %% celui de l'effectif total
\foreachitem\don\in\ListeComplete{\xdef\EffectifTotal{\fpeval{\EffectifTotal+\ListeComplete[\doncnt,2]}}}%
- % %% celui de l'étendue
+ % %% celui de l'\'etendue
\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{%
\xintifboolexpr{\ListeComplete[##1,1]>\DonneeMax}{%
\xdef\DonneeMax{\ListeComplete[##1,1]}%
@@ -7127,12 +7128,12 @@
% %% celui de la moyenne
\xdef\Moyenne{\fpeval{\SommeDonnees/\EffectifTotal}}%
\ifboolKV[ClesStat]{EffectifTotal}{%
- L'effectif total de la série est : \[\ListeComplete[1,2]\xintFor* ##1 in
+ L'effectif total de la s\'erie est : \[\ListeComplete[1,2]\xintFor* ##1 in
{\xintSeq {2}{\ListeCompletelen}}\do{%
+\ListeComplete[##1,2]}=\num{\EffectifTotal}\]
}{}%
\ifboolKV[ClesStat]{Moyenne}{%
- La somme des données de la série est :%
+ La somme des donn\'ees de la s\'erie est :%
\xintifboolexpr{\ListeCompletelen<\useKV[ClesStat]{Coupure}}{%
\[
\ifnum\ListeComplete[1,2]=1\else\num{\ListeComplete[1,2]}\times\fi\num{\ListeComplete[1,1]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{%
@@ -7148,7 +7149,7 @@
}=\num{\SommeDonnees}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}
\]
}
- \ifboolKV[ClesStat]{SET}{}{L'effectif total de la série est :%
+ \ifboolKV[ClesStat]{SET}{}{L'effectif total de la s\'erie est :%
\ifboolKV[ClesStat]{Liste}{ \num{\EffectifTotal}\\}{%
\[\num{\ListeComplete[1,2]}\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{%
+\num{\ListeComplete[##1,2]}
@@ -7156,7 +7157,7 @@
\]%
}%
}
- Donc la moyenne de la série est égale à :%
+ Donc la moyenne de la s\'erie est \'egale \`a :%
\[\frac{\num{\SommeDonnees}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}}{\num{\EffectifTotal}}%
\opdiv*{\SommeDonnees}{\EffectifTotal}{resultatmoy}{restemoy}%
\opround{resultatmoy}{\useKV[ClesStat]{Precision}}{resultatmoy1}%
@@ -7165,10 +7166,10 @@
\num{\fpeval{round(\SommeDonnees/\EffectifTotal,\useKV[ClesStat]{Precision})}}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}.}{.}
\]%
}{}%
- % % Affichage des réponses.
- % %% pour l'étendue
- \ifboolKV[ClesStat]{Etendue}{L'étendue de la série est égale à $\num{\ListeComplete[\ListeCompletelen,1]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}-\num{\ListeComplete[1,1]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}=\num{\Etendue}$\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}}{}%
- % %% pour la médiane
+ % % Affichage des r\'eponses.
+ % %% pour l'\'etendue
+ \ifboolKV[ClesStat]{Etendue}{L'\'etendue de la s\'erie est \'egale \`a $\num{\ListeComplete[\ListeCompletelen,1]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}-\num{\ListeComplete[1,1]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}=\num{\Etendue}$\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}}{}%
+ % %% pour la m\'ediane
\ifboolKV[ClesStat]{Mediane}{%
\newcount\med%
@@ -7175,11 +7176,11 @@
\newcount\meda%
\ifodd\number\EffectifTotal%odd impair
\med=\fpeval{(\EffectifTotal+1)/2}\relax%
- L'effectif total de la série est \num{\EffectifTotal}. Or, $\num{\EffectifTotal}=\num{\fpeval{\med-1}}+1+\num{\fpeval{\med-1}}$. %
+ L'effectif total de la s\'erie est \num{\EffectifTotal}. Or, $\num{\EffectifTotal}=\num{\fpeval{\med-1}}+1+\num{\fpeval{\med-1}}$. %
\else% pair
\med=\fpeval{\EffectifTotal/2}\relax%
\meda=\numexpr\med+1\relax%
- L'effectif total de la série est \num{\EffectifTotal}. Or, $\num{\EffectifTotal}=\num{\fpeval{\med}}+\num{\fpeval{\med}}$. %
+ L'effectif total de la s\'erie est \num{\EffectifTotal}. Or, $\num{\EffectifTotal}=\num{\fpeval{\med}}+\num{\fpeval{\med}}$. %
\fi%
\newcount\k%
\k=0%
@@ -7188,13 +7189,13 @@
\k=\numexpr\k+1\relax%
\ifnum\k=\med%
\ifodd\number\EffectifTotal%
- La médiane de la série est la \the\med\ieme{} donnée. Donc la médiane de la série est \num{\ListeComplete[##1,1]}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}%
+ La m\'ediane de la s\'erie est la \the\med\ieme{} donn\'ee. Donc la m\'ediane de la s\'erie est \num{\ListeComplete[##1,1]}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}%
\else%
- La \the\med\ieme{} donnée est \num{\ListeComplete[##1,1]}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}. }{. }\xdef\Mediane{\ListeComplete[##1,1]}%
+ La \the\med\ieme{} donn\'ee est \num{\ListeComplete[##1,1]}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}. }{. }\xdef\Mediane{\ListeComplete[##1,1]}%
\fi%
\fi%
\ifnum\k=\meda%
- La \the\meda\ieme{} valeur est \num{\ListeComplete[##1,1]}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}\\Donc la médiane de la série est \xdef\Mediane{\fpeval{(\Mediane+\ListeComplete[##1,1])/2}}\num{\Mediane}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}%
+ La \the\meda\ieme{} valeur est \num{\ListeComplete[##1,1]}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}\\Donc la m\'ediane de la s\'erie est \xdef\Mediane{\fpeval{(\Mediane+\ListeComplete[##1,1])/2}}\num{\Mediane}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}%
\fi%
}%
}%
@@ -7213,7 +7214,7 @@
%%%
\setKVdefault[ClesRadar]{Rayon=3cm,Reference=20,MoyenneClasse=false,Disciplines=false,Pas=5}
-\newtoks\toklisteradara%pour la moyenne de l'élève
+\newtoks\toklisteradara%pour la moyenne de l'\'el\`eve
\newtoks\toklisteradarb%pour la discipline
\newtoks\toklisteradarc%pour la moyenne de classe
@@ -7254,7 +7255,7 @@
label.lrt(TEX(p_),1.025[O,pointarc(cc,N[p])]);
fi;
endfor;
- % tracé des pas:
+ % trac\'e des pas:
pas=#4/#3;
for k=1 upto pas-1:
trace (k/pas)[O,pointarc(cc,N[1])] for l=2 upto n: --(k/pas)[O,pointarc(cc,N[l])] endfor
@@ -7265,7 +7266,7 @@
% etiquettage des pas
dotlabel.urt(btex \tiny #4 etex,pointarc(cc,0));
dotlabel.urt(btex \tiny #3 etex,(1/pas)[O,pointarc(cc,0)]);
- % tracé des résultats élèves
+ % trac\'e des r\'esultats \'el\`eves
pair El[];
el=0;
for p_=#5:
@@ -7274,7 +7275,7 @@
endfor;
trace El[1] for p=2 upto n:--El[p] endfor --cycle withpen
pencircle scaled 1.5 withcolor blue;
- % tracé des résultats classe
+ % trac\'e des r\'esultats classe
pair Cl[];
cl=0;
for p_=#6:
@@ -7314,7 +7315,7 @@
label.lrt(TEX(p_),1.025[O,pointarc(cc,N[p])]);
fi;
endfor;
- % tracé des pas:
+ % trac\'e des pas:
pas=#4/#3;
for k=1 upto pas-1:
trace (k/pas)[O,pointarc(cc,N[1])] for l=2 upto n: --(k/pas)[O,pointarc(cc,N[l])] endfor
@@ -7325,7 +7326,7 @@
% etiquettage des pas
dotlabel.top(LATEX("\noexpand\tiny"&decimal(#4)&"") rotated -90,pointarc(cc,0));
dotlabel.urt(LATEX("\noexpand\tiny"&decimal(#3)&""),(1/pas)[O,pointarc(cc,0)]);
- % tracé des résultats élèves
+ % trac\'e des r\'esultats \'el\`eves
pair El[];
el=0;
for p_=#5:
@@ -7334,7 +7335,7 @@
endfor;
trace El[1] for p=2 upto n:--El[p] endfor --cycle withpen
pencircle scaled 1.5 withcolor blue;
- % tracé des résultats classe
+ % trac\'e des r\'esultats classe
pair Cl[];
cl=0;
for p_=#6:
@@ -7347,8 +7348,8 @@
}
\newcommand\Radar[2][]{%
- % 1 les paramètres
- % 2 la répartition des notes
+ % 1 les param\`etres
+ % 2 la r\'epartition des notes
\useKVdefault[ClesRadar]%
\setKV[ClesRadar]{#1}%
\ignoreemptyitems%
@@ -7370,7 +7371,7 @@
%%%
% Barres de niveaux
%%%
-\setKVdefault[ClesBarre]{Niveau=false,LimiteI=25,LimiteF=50,LimiteS=75,TexteOrigine=0,TexteReference=100,CouleurGraduation=white,CouleurFond=gray!50,CouleurBarre=black,Graduation=false,Nom=Défaut,Pas=10,CouleurI=red,CouleurF=orange,CouleurS=yellow,CouleurM=green}
+\setKVdefault[ClesBarre]{Niveau=false,LimiteI=25,LimiteF=50,LimiteS=75,TexteOrigine=0,TexteReference=100,CouleurGraduation=white,CouleurFond=gray!50,CouleurBarre=black,Graduation=false,Nom=D\'efaut,Pas=10,CouleurI=red,CouleurF=orange,CouleurS=yellow,CouleurM=green}
\newlength{\barrewidth}
@@ -7479,9 +7480,9 @@
\setcounter{Nbequa}{0}
%CT
-\newdimen\fdashwidth \fdashwidth = 0.8pt % épaisseur traits
-\newdimen\fdashlength \fdashlength = 0.5mm % longueur des pointillés et séparation entre pointillés
-\newdimen\fdashsep \fdashsep = 3pt % séparateur entre contenu et traits
+\newdimen\fdashwidth \fdashwidth = 0.8pt % \'epaisseur traits
+\newdimen\fdashlength \fdashlength = 0.5mm % longueur des pointill\'es et s\'eparation entre pointill\'es
+\newdimen\fdashsep \fdashsep = 3pt % s\'eparateur entre contenu et traits
\def\fdash#1{%
\leavevmode\begingroup%
@@ -7551,12 +7552,12 @@
\definecolor{Cfleches}{RGB}{100,100,100}%
-\input{PfC-EquationSoustraction2}%
-\input{PfC-EquationTerme1}%
-\input{PfC-EquationComposition2}%
-\input{PfC-EquationPose1}%
-\input{PfC-EquationSymbole1}%
-\input{PfC-EquationLaurent1}
+\input{PfCEquationSoustraction2}%
+\input{PfCEquationTerme1}%
+\input{PfCEquationComposition2}%
+\input{PfCEquationPose1}%
+\input{PfCEquationSymbole1}%
+\input{PfCEquationLaurent1}
\newcommand{\ResolEquation}[5][]{%
\useKVdefault[ClesEquation]%
@@ -7601,11 +7602,11 @@
\newcommand\ResolEquationCarre[2][]{%
\setKV[ClesEquation]{#1}%
\xintifboolexpr{#2<0}{%
- Comme $\num{#2}$ est négatif, alors l'équation $\useKV[ClesEquation]{Lettre}^2=\num{#2}$ n'a aucune solution.%
+ Comme $\num{#2}$ est n\'egatif, alors l'\'equation $\useKV[ClesEquation]{Lettre}^2=\num{#2}$ n'a aucune solution.%
}{\xintifboolexpr{#2=0}{%
- L'équation $\useKV[ClesEquation]{Lettre}^2=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.%
+ L'\'equation $\useKV[ClesEquation]{Lettre}^2=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.%
}{%
- Comme \num{#2} est positif, alors l'équation $\useKV[ClesEquation]{Lettre}^2=\num{#2}$ a deux solutions :%
+ Comme \num{#2} est positif, alors l'\'equation $\useKV[ClesEquation]{Lettre}^2=\num{#2}$ a deux solutions :%
\begin{align*}
\useKV[ClesEquation]{Lettre}&=\sqrt{\num{#2}}&&\text{et}&\useKV[ClesEquation]{Lettre}&=-\sqrt{\num{#2}}%\\
\ifboolKV[ClesEquation]{Exact}{\\%
@@ -7674,7 +7675,7 @@
}
\end{align*}
}%
- \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#3=0}{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}}{(\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}})}\xintifboolexpr{#5=0}{\times\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}{(\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}})}=0$ a deux solutions : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$ et \opdiv*{\Coeffd}{\Coeffc}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffd}{\Coeffc}}{\frac{\num{\Coeffd}}{\num{\Coeffc}}}\fi$.
+ \ifboolKV[ClesEquation]{Solution}{L'\'equation $\xintifboolexpr{#3=0}{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}}{(\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}})}\xintifboolexpr{#5=0}{\times\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}{(\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}})}=0$ a deux solutions : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$ et \opdiv*{\Coeffd}{\Coeffc}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffd}{\Coeffc}}{\frac{\num{\Coeffd}}{\num{\Coeffc}}}\fi$.
}{}%
}
@@ -7689,15 +7690,14 @@
\end{align*}
\xdef\Testa{\fpeval{#2*\useKV[ClesEquation]{Nombre}+#3}}\xdef\Testb{\fpeval{#4*\useKV[ClesEquation]{Nombre}+#5}}
\ifboolKV[ClesEquation]{Egalite}{%
- Comme \xintifboolexpr{\Testa=\Testb}{$\num{\Testa}=\num{\Testb}$}{$\num{\Testa}\not=\num{\Testb}$}, alors l'égalité $\xintifboolexpr{#2=0}{\num{#3}}{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3=0}{}{\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}}=\xintifboolexpr{#4=0}{\num{#5}}{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5=0}{}{\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}}}$ \xintifboolexpr{\Testa=\Testb}{ est vérifiée }{ n'est pas vérifiée } pour $\useKV[ClesEquation]{Lettre}=\num{\useKV[ClesEquation]{Nombre}}$.%
- }{\xintifboolexpr{\Testa=\Testb}{Comme $\num{\Testa}=\num{\Testb}$, alors $\useKV[ClesEquation]{Lettre}=\num{\useKV[ClesEquation]{Nombre}}$ est bien }{Comme $\num{\Testa}\not=\num{\Testb}$, alors $\useKV[ClesEquation]{Lettre}=\num{\useKV[ClesEquation]{Nombre}}$ n'est pas }une solution de l'équation $\xintifboolexpr{#2=0}{\num{#3}}{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3=0}{}{\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}}=\xintifboolexpr{#4=0}{\num{#5}}{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5=0}{}{\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}}}$.}
+ Comme \xintifboolexpr{\Testa=\Testb}{$\num{\Testa}=\num{\Testb}$}{$\num{\Testa}\not=\num{\Testb}$}, alors l'\'egalit\'e $\xintifboolexpr{#2=0}{\num{#3}}{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3=0}{}{\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}}=\xintifboolexpr{#4=0}{\num{#5}}{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5=0}{}{\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}}}$ \xintifboolexpr{\Testa=\Testb}{ est v\'erifi\'ee }{ n'est pas v\'erifi\'ee } pour $\useKV[ClesEquation]{Lettre}=\num{\useKV[ClesEquation]{Nombre}}$.%
+ }{\xintifboolexpr{\Testa=\Testb}{Comme $\num{\Testa}=\num{\Testb}$, alors $\useKV[ClesEquation]{Lettre}=\num{\useKV[ClesEquation]{Nombre}}$ est bien }{Comme $\num{\Testa}\not=\num{\Testb}$, alors $\useKV[ClesEquation]{Lettre}=\num{\useKV[ClesEquation]{Nombre}}$ n'est pas }une solution de l'\'equation $\xintifboolexpr{#2=0}{\num{#3}}{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3=0}{}{\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}}=\xintifboolexpr{#4=0}{\num{#5}}{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5=0}{}{\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}}}$.}
}
%%%
-% Proportionnalité
+% Proportionnalit\'e
%%%
-\setKVdefault[ClesPropor]{GrandeurA=Grandeur A,GrandeurB=Grandeur B,Largeur=1cm,Math=false,Stretch=1,ColorFill=white,CouleurTab=gray!15}%Tableau=false :
- %inutile ?
+\setKVdefault[ClesPropor]{GrandeurA=Grandeur A,GrandeurB=Grandeur B,Largeur=1cm,Math=false,Stretch=1,ColorFill=white,CouleurTab=gray!15}%
\def\Updatetoksmath#1/#2\nil{\addtotok\tabtoksa{}\addtotok\tabtoksb{}}%
@@ -7789,7 +7789,7 @@
\setKV[ClesPropor]{#1}%
\xdef\colorfill{\useKV[ClesPropor]{ColorFill}}%
\xdef\EcartLargeur{\useKV[ClesPropor]{Largeur}}
-% %on lit la liste écrite sous la forme valeur/effectif
+% %on lit la liste \'ecrite sous la forme valeur/effectif
\setsepchar[*]{,*/}\ignoreemptyitems%
\readlist*\ListeValeur{#2}%
\buildtabpropor%
@@ -7857,10 +7857,10 @@
\setKV[ClesPourcentage]{#1}%
\ifboolKV[ClesPourcentage]{Reduire}{%
\ifboolKV[ClesPourcentage]{Formule}{%
- Réduire une quantité de \num{#2}~\%, cela revient à multiplier cette quantité par $1-\dfrac{\num{#2}}{100}$. Par conséquent, si on réduit \num{#3}\ifboolKV[ClesPourcentage]{Concret}{~\useKV[ClesPourcentage]{Unite}}{} de \num{#2}~\%, cela donne :
+ R\'eduire une quantit\'e de \num{#2}~\%, cela revient \`a multiplier cette quantit\'e par $1-\dfrac{\num{#2}}{100}$. Par cons\'equent, si on r\'eduit \num{#3}\ifboolKV[ClesPourcentage]{Concret}{~\useKV[ClesPourcentage]{Unite}}{} de \num{#2}~\%, cela donne :
\[\num{#3}\ifboolKV[ClesPourcentage]{Concret}{~\text{\useKV[ClesPourcentage]{Unite}}}{}\times\left(1-\frac{\num{#2}}{100}\right)=\num{#3}\ifboolKV[ClesPourcentage]{Concret}{~\text{\useKV[ClesPourcentage]{Unite}}}{}\times(1-\num{\fpeval{#2/100}})=\num{#3}\ifboolKV[ClesPourcentage]{Concret}{~\text{\useKV[ClesPourcentage]{Unite}}}{}\times\num{\fpeval{(1-#2/100)}}=\num{\fpeval{#3*(1-#2/100)}}\ifboolKV[ClesPourcentage]{Concret}{~\text{\useKV[ClesPourcentage]{Unite}}}{}\]
}{%
- Calculons ce que représente la \useKV[ClesPourcentage]{MotReduction} de \num{#2}~\%.
+ Calculons ce que repr\'esente la \useKV[ClesPourcentage]{MotReduction} de \num{#2}~\%.
\ifboolKV[ClesPourcentage]{AideTableau}{%
\xdef\NomA{\useKV[ClesPourcentage]{GrandeurA}}%
\xdef\NomB{\useKV[ClesPourcentage]{GrandeurB}}%
@@ -7877,10 +7877,10 @@
}{%
\ifboolKV[ClesPourcentage]{Augmenter}{%
\ifboolKV[ClesPourcentage]{Formule}{%
- Augmenter de \num{#2}~\% une quantité, cela revient à multiplier cette quantité par $1+\dfrac{\num{#2}}{100}$. Par conséquent, si on augmente \num{#3}\ifboolKV[ClesPourcentage]{Concret}{~\useKV[ClesPourcentage]{Unite}}{} de \num{#2}~\%, cela donne :
+ Augmenter de \num{#2}~\% une quantit\'e, cela revient \`a multiplier cette quantit\'e par $1+\dfrac{\num{#2}}{100}$. Par cons\'equent, si on augmente \num{#3}\ifboolKV[ClesPourcentage]{Concret}{~\useKV[ClesPourcentage]{Unite}}{} de \num{#2}~\%, cela donne :
\[\num{#3}\ifboolKV[ClesPourcentage]{Concret}{~\text{\useKV[ClesPourcentage]{Unite}}}{}\times\left(1+\frac{\num{#2}}{100}\right)=\num{#3}\ifboolKV[ClesPourcentage]{Concret}{~\text{\useKV[ClesPourcentage]{Unite}}}{}\times(1+\num{\fpeval{#2/100}})=\num{#3}\ifboolKV[ClesPourcentage]{Concret}{~\text{\useKV[ClesPourcentage]{Unite}}}{}\times\num{\fpeval{(1+#2/100)}}=\num{\fpeval{#3*(1+#2/100)}}\ifboolKV[ClesPourcentage]{Concret}{~\text{\useKV[ClesPourcentage]{Unite}}}{}\]
}{%
- Calculons ce que représente l'augmentation de \num{#2}~\%. %
+ Calculons ce que repr\'esente l'augmentation de \num{#2}~\%. %
\ifboolKV[ClesPourcentage]{AideTableau}{%
\xdef\NomA{\useKV[ClesPourcentage]{GrandeurA}}%
\xdef\NomB{\useKV[ClesPourcentage]{GrandeurB}}%
@@ -7915,19 +7915,19 @@
%%%
% Lien : ratio
%%%
-\setKVdefault[ClesRatio]{Figure=false,Longueur=5cm,TexteTotal=quantité,TextePart=part,Tableau=false,GrandeurA=Grandeur A,GrandeurB=Part(s),Largeur=1cm,Stretch=1,Nom=false,CouleurUn=gris,CouleurDeux=0.5gris+0.5blanc,CouleurTrois=white,CouleurTab=gray!15}
+\setKVdefault[ClesRatio]{Figure=false,Longueur=5cm,TexteTotal=quantit\'e,TextePart=part,Tableau=false,GrandeurA=Grandeur A,GrandeurB=Part(s),Largeur=1cm,Stretch=1,Nom=false,CouleurUn=gris,CouleurDeux=0.5gris+0.5blanc,CouleurTrois=white,CouleurTab=gray!15}
\newcommand\MPTest[9][]{%
- % #2 : Longueur de la barre unité
+ % #2 : Longueur de la barre unit\'e
% #3 : premier nombre
- % #4 : deuxième nombre
- % #5 : troisième nombre
+ % #4 : deuxi\`eme nombre
+ % #5 : troisi\`eme nombre
% #6 : Valeurs du ratio
- % #7 à #9: Couleurs de remplissage
+ % #7 \`a #9: Couleurs de remplissage
\ifluatex
\mplibforcehmode
\begin{mplibcode}
- vardef RatioTrois(expr long)(text t)=%longueur de la barre / quantité à partager / textepart :) / t le ratio
+ vardef RatioTrois(expr long)(text t)=%longueur de la barre / quantit\'e \`a partager / textepart :) / t le ratio
pair A,B,C,D;
A=u*(1,1);
B-A=(long,0);
@@ -7934,7 +7934,7 @@
C-B=u*(0,0.5);
D-C=A-B;
n:=0;%n pour savoir si le ratio est a:b ou a:b:c
- numeric N[];%Pour sauvegarder les éléments du ratio
+ numeric N[];%Pour sauvegarder les \'el\'ements du ratio
for p_=t:
n:=n+1;
N[n]=p_;
@@ -8001,11 +8001,11 @@
\end{mplibcode}
\else
\mpxcommands{%
- \setKVdefault[ClesRatio]{TexteTotal=quantité,TextePart=part}
+ \setKVdefault[ClesRatio]{TexteTotal=quantit\'e,TextePart=part}
\setKV[ClesRatio]{#1}
}
\begin{mpost}
- vardef RatioTrois(expr long)(text t)=%longueur de la barre / quantité à partager / textepart :) / t le ratio
+ vardef RatioTrois(expr long)(text t)=%longueur de la barre / quantit\'e \`a partager / textepart :) / t le ratio
pair A,B,C,D;
A=u*(1,1);
B-A=(long,0);
@@ -8012,7 +8012,7 @@
C-B=u*(0,0.5);
D-C=A-B;
n:=0;%n pour savoir si le ratio est a:b ou a:b:c
- numeric N[];%Pour sauvegarder les éléments du ratio
+ numeric N[];%Pour sauvegarder les \'el\'ements du ratio
for p_=t:
n:=n+1;
N[n]=p_;
@@ -8184,7 +8184,7 @@
}
%%%
-% Pptés des droites (6eme)
+% Ppt\'es des droites (6eme)
%%%
\setKVdefault[ClesDroites]{Brouillon=false,CitePropriete=false,Num=1,Figure=false,Remediation=false}
@@ -8192,33 +8192,33 @@
\ifboolKV[ClesDroites]{Remediation}{%
\xintifboolexpr{\useKV[ClesDroites]{Num}=1}{%
\ifboolKV[ClesDroites]{CitePropriete}{%
- Les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parallèles. Les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parallèles.%
+ Les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parall\`eles. Les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parall\`eles.%
- Or, si deux droites sont parallèles, alors toute droite parallèle à l'une est parallèle à l'autre.%
+ Or, si deux droites sont parall\`eles, alors toute droite parall\`ele \`a l'une est parall\`ele \`a l'autre.%
- Donc les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parallèles.%
+ Donc les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parall\`eles.%
}{%
- Comme les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont toutes les deux parallèles à la même droite $(\hbox to2em{\dotfill})$, alors les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parallèles.%
+ Comme les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont toutes les deux parall\`eles \`a la m\^eme droite $(\hbox to2em{\dotfill})$, alors les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parall\`eles.%
}
}{\xintifboolexpr{\useKV[ClesDroites]{Num}=2}{%
\ifboolKV[ClesDroites]{CitePropriete}{%
Les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont perpendiculaires. Les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont perpendiculaires.%
- Or, si deux droites sont perpendiculaires à une même droite, alors elles sont parallèles.%
+ Or, si deux droites sont perpendiculaires \`a une m\^eme droite, alors elles sont parall\`eles.%
Donc les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont perpendiculaires.
}{%
- Comme les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont toutes les deux perpendiculaires à la même droite $(\hbox to2em{\dotfill})$, alors les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parallèles.
+ Comme les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont toutes les deux perpendiculaires \`a la m\^eme droite $(\hbox to2em{\dotfill})$, alors les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parall\`eles.
}
}{%
\ifboolKV[ClesDroites]{CitePropriete}{%
- Les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parallèles. Les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont perpendiculaires.%
+ Les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parall\`eles. Les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont perpendiculaires.%
- Or, si deux droites sont parallèles, alors toute droite droite perpendiculaire à l'une est perpendiculaire à l'autre.%
+ Or, si deux droites sont parall\`eles, alors toute droite droite perpendiculaire \`a l'une est perpendiculaire \`a l'autre.%
Donc les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont perpendiculaires.
}{%
- Comme les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parallèles, alors la droite $(\hbox to2em{\dotfill})$ qui est perpendiculaire à $(\hbox to2em{\dotfill})$ est également perpendiculaire à la droite $(\hbox to2em{\dotfill})$.
+ Comme les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parall\`eles, alors la droite $(\hbox to2em{\dotfill})$ qui est perpendiculaire \`a $(\hbox to2em{\dotfill})$ est \'egalement perpendiculaire \`a la droite $(\hbox to2em{\dotfill})$.
}
}
}%
@@ -8225,33 +8225,33 @@
}{%
\xintifboolexpr{\useKV[ClesDroites]{Num}=1}{%
\ifboolKV[ClesDroites]{CitePropriete}{%
- Les droites $(#2)$ et $(#4)$ sont parallèles. Les droites $(#3)$ et $(#4)$ sont parallèles.%
+ Les droites $(#2)$ et $(#4)$ sont parall\`eles. Les droites $(#3)$ et $(#4)$ sont parall\`eles.%
- Or, si deux droites sont parallèles, alors toute droite parallèle à l'une est parallèle à l'autre.%
+ Or, si deux droites sont parall\`eles, alors toute droite parall\`ele \`a l'une est parall\`ele \`a l'autre.%
- Donc les droites $(#2)$ et $(#3)$ sont parallèles.
+ Donc les droites $(#2)$ et $(#3)$ sont parall\`eles.
}{%
- Comme les droites $(#2)$ et $(#3)$ sont toutes les deux parallèles à la même droite $(#4)$, alors les droites $(#2)$ et $(#3)$ sont parallèles.
+ Comme les droites $(#2)$ et $(#3)$ sont toutes les deux parall\`eles \`a la m\^eme droite $(#4)$, alors les droites $(#2)$ et $(#3)$ sont parall\`eles.
}
}{\xintifboolexpr{\useKV[ClesDroites]{Num}=2}{%
\ifboolKV[ClesDroites]{CitePropriete}{%
Les droites $(#2)$ et $(#4)$ sont perpendiculaires. Les droites $(#3)$ et $(#4)$ sont perpendiculaires.%
- Or, si deux droites sont perpendiculaires à une même droite, alors elles sont parallèles.%
+ Or, si deux droites sont perpendiculaires \`a une m\^eme droite, alors elles sont parall\`eles.%
Donc les droites $(#2)$ et $(#3)$ sont perpendiculaires.
}{%
- Comme les droites $(#2)$ et $(#3)$ sont toutes les deux perpendiculaires à la même droite $(#4)$, alors les droites $(#2)$ et $(#3)$ sont parallèles.
+ Comme les droites $(#2)$ et $(#3)$ sont toutes les deux perpendiculaires \`a la m\^eme droite $(#4)$, alors les droites $(#2)$ et $(#3)$ sont parall\`eles.
}
}{%
\ifboolKV[ClesDroites]{CitePropriete}{%
- Les droites $(#2)$ et $(#4)$ sont parallèles. Les droites $(#3)$ et $(#4)$ sont perpendiculaires.%
+ Les droites $(#2)$ et $(#4)$ sont parall\`eles. Les droites $(#3)$ et $(#4)$ sont perpendiculaires.%
- Or, si deux droites sont parallèles, alors toute droite droite perpendiculaire à l'une est perpendiculaire à l'autre.%
+ Or, si deux droites sont parall\`eles, alors toute droite droite perpendiculaire \`a l'une est perpendiculaire \`a l'autre.%
Donc les droites $(#2)$ et $(#3)$ sont perpendiculaires.
}{%
- Comme les droites $(#2)$ et $(#4)$ sont parallèles, alors la droite $(#3)$ qui est perpendiculaire à $(#4)$ est également perpendiculaire à la droite $(#2)$.
+ Comme les droites $(#2)$ et $(#4)$ sont parall\`eles, alors la droite $(#3)$ qui est perpendiculaire \`a $(#4)$ est \'egalement perpendiculaire \`a la droite $(#2)$.
}%
}%
}%
@@ -8383,7 +8383,7 @@
d4=G--H;
picture reste;
reste=image(
- %tracés des droites
+ %trac\'es des droites
draw d1;
if #1=2:
draw d2;
@@ -8395,7 +8395,7 @@
elseif #2=4:
draw d4;
fi;
- % tracés des codes
+ % trac\'es des codes
if (#1=2) and (#2=3):
draw Codepara1; draw Codepara2;
fi;
@@ -8467,7 +8467,7 @@
d4=G--H;
picture reste;
reste=image(
- %tracés des droites
+ %trac\'es des droites
draw d1;
if #1=2:
draw d2;
@@ -8479,7 +8479,7 @@
elseif #2=4:
draw d4;
fi;
- % tracés des codes
+ % trac\'es des codes
if (#1=2) and (#2=3):
draw Codepara1; draw Codepara2;
fi;
@@ -8534,10 +8534,10 @@
\newcommand\FonctionAffine[5][]{%
% #1 nombre ou abscisse premier point
- % #2 a ou ordonnée premier point
- % #3 b ou abscisse deuxième point
- % #4 {} ou ordonnée deuxième point
- \useKVdefault[ClesAffine]%A supprimer car appel récursif avec Redaction
+ % #2 a ou ordonn\'ee premier point
+ % #3 b ou abscisse deuxi\`eme point
+ % #4 {} ou ordonn\'ee deuxi\`eme point
+ \useKVdefault[ClesAffine]%A supprimer car appel r\'ecursif avec Redaction
\setKV[ClesAffine]{#1}%
\ifboolKV[ClesAffine]{Image}{%
\ifboolKV[ClesAffine]{Ligne}{%
@@ -8560,7 +8560,7 @@
}%
}{\ifboolKV[ClesAffine]{Antecedent}{%
\ifboolKV[ClesAffine]{ProgCalcul}{%
- La fonction affine $\useKV[ClesAffine]{Nom}$ est définie par :
+ La fonction affine $\useKV[ClesAffine]{Nom}$ est d\'efinie par :
\begin{align*}
\useKV[ClesAffine]{Nom}&:\useKV[ClesAffine]{Variable}\stackrel{\times\xintifboolexpr{#3<0}{(\num{#3})}{\num{#3}}}{\longrightarrow}\num{#3}\useKV[ClesAffine]{Variable}\xintifboolexpr{#4=0}{}{\xintifboolexpr{#4>0}{\stackrel{+\num{#4}}{\longrightarrow}}{\stackrel{\num{#4}}{\longrightarrow}}\num{#3}\useKV[ClesAffine]{Variable}\xintifboolexpr{#4=0}{}{\xintifboolexpr{#4>0}{+\num{#4}}{\num{#4}}}}
\end{align*}
@@ -8569,14 +8569,14 @@
\useKV[ClesAffine]{Nom}&:\frac{\num{\fpeval{#2-#4}}}{\num{#3}}\stackrel{\div\xintifboolexpr{#3<0}{(\num{#3})}{\num{#3}}}{\longleftarrow}\num{\fpeval{#2-#4}}\xintifboolexpr{#4=0}{}{\xintifboolexpr{#4>0}{\stackrel{-\num{#4}}{\longleftarrow}}{\stackrel{+\num{\fpeval{0-#4}}}{\longleftarrow}}\num{#2}}
\end{align*}
}{%
- On cherche l'antécédent de $\num{#2}$ par la fonction
- $\useKV[ClesAffine]{Nom}$, c'est-à-dire le nombre
+ On cherche l'ant\'ec\'edent de $\num{#2}$ par la fonction
+ $\useKV[ClesAffine]{Nom}$, c'est-\`a-dire le nombre
$\useKV[ClesAffine]{Variable}$ tel que
$\useKV[ClesAffine]{Nom}(\useKV[ClesAffine]{Variable})=\num{#2}$. Or,
- la fonction $\useKV[ClesAffine]{Nom}$ est définie par : \[%
+ la fonction $\useKV[ClesAffine]{Nom}$ est d\'efinie par : \[%
\useKV[ClesAffine]{Nom}(\useKV[ClesAffine]{Variable})=\xintifboolexpr{#3=0}{}{\num{#3}\useKV[ClesAffine]{Variable}}\xintifboolexpr{#3=0}{\num{#4}}{\xintifboolexpr{#4=0}{}{\xintifboolexpr{#4>0}{+\num{#4}}{-\num{\fpeval{0-#4}}}}}
\]
- Par conséquent, on a :
+ Par cons\'equent, on a :
\begin{align*}
\num{#3}\useKV[ClesAffine]{Variable}\xintifboolexpr{#4=0}{}{\xintifboolexpr{#4>0}{+\num{#4}}{-\num{\fpeval{0-#4}}}}&=\num{#2}\\
\xintifboolexpr{#4=0}{\useKV[ClesAffine]{Variable}\uppercase{&}=\frac{\num{#2}}{\num{#3}}%\\
@@ -8587,8 +8587,8 @@
}%
}{%
\ifboolKV[ClesAffine]{Retrouve}{%
- On sait que $\useKV[ClesAffine]{Nom}$ est une fonction affine. Donc elle s'écrit sous la forme : \[\useKV[ClesAffine]{Nom}(\useKV[ClesAffine]{Variable})=a\useKV[ClesAffine]{Variable}+b\]
- Or, $\useKV[ClesAffine]{Nom}(\num{#2})=\num{#3}$ et $\useKV[ClesAffine]{Nom}(\num{#4})=\num{#5}$. Par conséquent, d'après la propriété des accroissements :
+ On sait que $\useKV[ClesAffine]{Nom}$ est une fonction affine. Donc elle s'\'ecrit sous la forme : \[\useKV[ClesAffine]{Nom}(\useKV[ClesAffine]{Variable})=a\useKV[ClesAffine]{Variable}+b\]
+ Or, $\useKV[ClesAffine]{Nom}(\num{#2})=\num{#3}$ et $\useKV[ClesAffine]{Nom}(\num{#4})=\num{#5}$. Par cons\'equent, d'apr\`es la propri\'et\'e des accroissements :
\begin{align*}
a&=\frac{\useKV[ClesAffine]{Nom}(\num{#2})-\useKV[ClesAffine]{Nom}(\num{#4})}{\num{#2}-\xintifboolexpr{#4<0}{(\num{#4})}{\num{#4}}}\\
a&=\frac{\num{#3}-\xintifboolexpr{#5<0}{(\num{#5})}{\num{#5}}}{\num{\fpeval{#2-#4}}}\\
@@ -8595,7 +8595,7 @@
a&=\frac{\num{\fpeval{#3-#5}}}{\num{\fpeval{#2-#4}}}%\\
\SSimpliTest{\fpeval{#3-#5}}{\fpeval{#2-#4}}\ifthenelse{\boolean{Simplification}}{\\a&=\SSimplifie{\fpeval{#3-#5}}{\fpeval{#2-#4}}}{}%
\end{align*}
- La fonction $\useKV[ClesAffine]{Nom}$ s'écrit alors sous la forme $\displaystyle\useKV[ClesAffine]{Nom}(\useKV[ClesAffine]{Variable})=\SSimplifie{\fpeval{#3-#5}}{\fpeval{#2-#4}}\useKV[ClesAffine]{Variable}+b$.
+ La fonction $\useKV[ClesAffine]{Nom}$ s'\'ecrit alors sous la forme $\displaystyle\useKV[ClesAffine]{Nom}(\useKV[ClesAffine]{Variable})=\SSimplifie{\fpeval{#3-#5}}{\fpeval{#2-#4}}\useKV[ClesAffine]{Variable}+b$.
\\De plus, comme $\useKV[ClesAffine]{Nom}(\num{#2})=\num{#3}$, alors :
\begin{align*}
\SSimplifie{\fpeval{#3-#5}}{\fpeval{#2-#4}}\times\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}+b&=\num{#3}\\
@@ -8603,7 +8603,7 @@
b&=\num{\fpeval{#3-(#3-#5)*#2/(#2-#4)}}
\end{align*}
\xdef\OrdOrigine{\fpeval{#3-(#3-#5)*#2/(#2-#4)}}
- La fonction affine $\useKV[ClesAffine]{Nom}$ cherchée est :
+ La fonction affine $\useKV[ClesAffine]{Nom}$ cherch\'ee est :
\[\useKV[ClesAffine]{Nom}:\useKV[ClesAffine]{Variable}\mapsto\SSimplifie{\fpeval{#3-#5}}{\fpeval{#2-#4}}\useKV[ClesAffine]{Variable}\xintifboolexpr{\OrdOrigine=0}{}{\xintifboolexpr{\OrdOrigine>0}{+\num{\OrdOrigine}}{-\num{\fpeval{0-\OrdOrigine}}}}\]
}{%
%
@@ -8618,10 +8618,10 @@
}{}%
\ifboolKV[ClesAffine]{Redaction}{%
\xintifboolexpr{#2=0}{Comme la fonction $\useKV[ClesAffine]{Nom}$
- est une fonction constante, alors sa représentation graphique est une droite parallèle à l'axe des abscisses passant par le point de coordonnées $(0;\num{#3})$.}%
- {\xintifboolexpr{#3=0}{Comme la fonction $\useKV[ClesAffine]{Nom}$ est une fonction linéaire, alors sa représentation graphique est une droite passant par l'origine du repère.\\Je choisis $\useKV[ClesAffine]{Variable}=\num{#4}$. Son image est \xdef\NomFonctionA{\useKV[ClesAffine]{Nom}}\FonctionAffine[Nom=\NomFonctionA,Image,Ligne]{#4}{#2}{#3}{#5}. On place le point de coordonnées $(\num{#4};\num{\fpeval{#2*#4+#3}})$.
+ est une fonction constante, alors sa repr\'esentation graphique est une droite parall\`ele \`a l'axe des abscisses passant par le point de coordonn\'ees $(0;\num{#3})$.}%
+ {\xintifboolexpr{#3=0}{Comme la fonction $\useKV[ClesAffine]{Nom}$ est une fonction lin\'eaire, alors sa repr\'esentation graphique est une droite passant par l'origine du rep\`ere.\\Je choisis $\useKV[ClesAffine]{Variable}=\num{#4}$. Son image est \xdef\NomFonctionA{\useKV[ClesAffine]{Nom}}\FonctionAffine[Nom=\NomFonctionA,Image,Ligne]{#4}{#2}{#3}{#5}. On place le point de coordonn\'ees $(\num{#4};\num{\fpeval{#2*#4+#3}})$.
}{%
- Comme $\useKV[ClesAffine]{Nom}$ est une fonction affine, alors sa représentation graphique est une droite.\\Je choisis $\useKV[ClesAffine]{Variable}=\num{#4}$. Son image est \xdef\NomVariable{\useKV[ClesAffine]{Variable}}\xdef\NomFonction{\useKV[ClesAffine]{Nom}}\FonctionAffine[Nom=\NomFonction,Image,Ligne]{#4}{#2}{#3}{#5}. On place le point de coordonnées $(\num{#4};\num{\fpeval{#2*#4+#3}})$.\\Je choisis \setKV[ClesAffine]{Variable=\NomVariable}$\useKV[ClesAffine]{Variable}=\num{#5}$. Son image est \FonctionAffine[Nom=\NomFonction,Image,Ligne]{#5}{#2}{#3}{#4}. On place le point de coordonnées $(\num{#5};\num{\fpeval{#2*#5+#3}})$.%
+ Comme $\useKV[ClesAffine]{Nom}$ est une fonction affine, alors sa repr\'esentation graphique est une droite.\\Je choisis $\useKV[ClesAffine]{Variable}=\num{#4}$. Son image est \xdef\NomVariable{\useKV[ClesAffine]{Variable}}\xdef\NomFonction{\useKV[ClesAffine]{Nom}}\FonctionAffine[Nom=\NomFonction,Image,Ligne]{#4}{#2}{#3}{#5}. On place le point de coordonn\'ees $(\num{#4};\num{\fpeval{#2*#4+#3}})$.\\Je choisis \setKV[ClesAffine]{Variable=\NomVariable}$\useKV[ClesAffine]{Variable}=\num{#5}$. Son image est \FonctionAffine[Nom=\NomFonction,Image,Ligne]{#5}{#2}{#3}{#4}. On place le point de coordonn\'ees $(\num{#5};\num{\fpeval{#2*#5+#3}})$.%
}%
}%
}%
@@ -8634,7 +8634,7 @@
% #1 Unitex #2 Unitey
% #2 a pour f1 - #4 b pour f1
% #5 abscisse du premier point
- % #6 abscisse du deuxième point
+ % #6 abscisse du deuxi\`eme point
\ifluatex
\mplibforcehmode
\begin{mplibcode}
@@ -8762,7 +8762,7 @@
\end{mplibcode}
\else
\begin{mpost}
- % On définit les constantes
+ % On d\'efinit les constantes
XMin=-2;
XMax=2;
if #5<XMin:
@@ -8903,9 +8903,9 @@
% #1 la liste des points
% #2: pas en x
% #3: pas en y
- % #4: unité en x
- % #5: unité en y
- % #6 : prolongement avant et après les premier et dernier points ?
+ % #4: unit\'e en x
+ % #5: unit\'e en y
+ % #6 : prolongement avant et apr\`es les premier et dernier points ?
\ifluatex
\mplibforcehmode
\begin{mplibcode}
@@ -9281,7 +9281,7 @@
%%%
% Formules
%%%
-\setKVdefault[ClesFormule]{Perimetre=false,Aire=false,Volume=false,Surface=carré,Solide=pavé,Angle=0,Ancre={(0,0)},Largeur=5cm,Couleur=white}
+\setKVdefault[ClesFormule]{Perimetre=false,Aire=false,Volume=false,Surface=carr\'e,Solide=pav\'e,Angle=0,Ancre={(0,0)},Largeur=5cm,Couleur=white}
\def\MPFigureCarre{%
\ifluatex
@@ -9304,7 +9304,7 @@
draw appelation(A,B,-3mm,btex $c$ etex);
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+ \begin{mpost}[mpsettings={input PfCGeometrie;}]
pair A,B,C,D;
A=u*(1,1);
B-A=u*(2,0);
@@ -9338,7 +9338,7 @@
draw polygone(A,B,C,D,E,F);
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+ \begin{mpost}[mpsettings={input PfCGeometrie;}]
pair A,B,C,D,E,F;
A=u*(1,1);
B-A=u*(2,0);
@@ -9354,7 +9354,23 @@
\def\MPFigureParallelogramme{%
\ifluatex
\mplibforcehmode
- \begin{mplibcode}
+ \begin{mplibcode}
+ vardef marque_para(expr dd,ee,pa)=
+ save im;
+ picture im;
+ pair kk,ll,mn,mo;
+ kk=point(pa*length dd) of dd;
+ ll=projection(kk,point(0.25*length ee) of ee,point(0.5*length ee) of ee);
+ mn=iso(kk,ll);
+ mo=(mn--kk) intersectionpoint cercles(mn,3mm);
+ im=image(
+ drawarrow mo--kk;
+ drawarrow symetrie(mo,mn)--ll;
+ label(btex $//$ etex,mn);
+ );
+ im
+ enddef;
+
drawoptions( dashed dashpattern(on1cm));
Figure(-5u,-5u,5u,5u);
pair A,B,C,D;
@@ -9373,7 +9389,23 @@
drawoptions();
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+ \begin{mpost}[mpsettings={input PfCGeometrie;}]
+ vardef marque_para(expr dd,ee,pa)=
+ save im;
+ picture im;
+ pair kk,ll,mn,mo;
+ kk=point(pa*length dd) of dd;
+ ll=projection(kk,point(0.25*length ee) of ee,point(0.5*length ee) of ee);
+ mn=iso(kk,ll);
+ mo=(mn--kk) intersectionpoint cercles(mn,3mm);
+ im=image(
+ drawarrow mo--kk;
+ drawarrow symetrie(mo,mn)--ll;
+ label(btex $//$ etex,mn);
+ );
+ im
+ enddef;
+
Figure(-5u,-5u,5u,5u);
pair A,B,C,D;
A=u*(1,1);
@@ -9421,7 +9453,7 @@
draw codeperp(B,J,A,5);
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+ \begin{mpost}[mpsettings={input PfCGeometrie;}]
Figure(-5u,-5u,10u,5u);
pair A,B,C,D,I,J;
A=u*(1,1);
@@ -9472,7 +9504,7 @@
marque_p:="non";
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+ \begin{mpost}[mpsettings={input PfCGeometrie;}]
typetrace:="3D";
Figure(-10u,-10u,10u,10u);
Initialisation(5,0,10,500);
@@ -9509,12 +9541,12 @@
draw segment(A,B);
draw segment(E,F);
draw segment(A,F);
- draw appelation(A,B,-2mm,\btex $\ell$ etex);
- draw appelation(F,E,2mm,\btex $p$ etex);
- draw appelation(A,F,2mm,\btex $h$ etex);
+ draw appelation(A,B,-2mm,btex $\ell$ etex);
+ draw appelation(F,E,2mm,btex $p$ etex);
+ draw appelation(A,F,2mm,btex $h$ etex);
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+ \begin{mpost}[mpsettings={input PfCGeometrie;}]
typetrace:="3D";
typerepre:="persp";
Figure(-10u,-10u,10u,10u);
@@ -9579,7 +9611,7 @@
draw appelation(A,E,3mm,btex hauteur etex);
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+ \begin{mpost}[mpsettings={input PfCGeometrie;}]
typetrace:="3D";
typerepre:="persp";
Figure(-10u,-10u,10u,10u);
@@ -9659,7 +9691,7 @@
marque_p:="non";
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+ \begin{mpost}[mpsettings={input PfCGeometrie;}]
typetrace:="3D";
typerepre:="persp";
Figure(-10u,-10u,10u,10u);
@@ -9719,7 +9751,7 @@
marque_p:="non";
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+ \begin{mpost}[mpsettings={input PfCGeometrie;}]
typetrace:="3D";
typerepre:="persp";
Figure(-10u,-10u,10u,10u);
@@ -9772,7 +9804,7 @@
draw codeperp(z7,z6,z5,8);
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+ \begin{mpost}[mpsettings={input PfCGeometrie;}]
Figure(-10u,-10u,10u,10u);
u:=0.5cm;
z0=(-0.5,0)*u;
@@ -9813,7 +9845,7 @@
draw appelation(E,H,2mm,btex $a$ etex);
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+ \begin{mpost}[mpsettings={input PfCGeometrie;}]
typetrace:="3D";
typerepre:="persp";
Figure(-10u,-10u,10u,10u);
@@ -9844,7 +9876,7 @@
draw appelation(A,B,-3mm,btex $c$ etex);
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+ \begin{mpost}[mpsettings={input PfCGeometrie;}]
Figure(-5u,-5u,5u,5u);
pair A,B,C,D;
A=u*(1,1);
@@ -9879,7 +9911,7 @@
marque_s:=marque_s*3;
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+ \begin{mpost}[mpsettings={input PfCGeometrie;}]
Figure(-5u,-5u,5u,5u);
pair A,B,C,D;
A=u*(1,1);
@@ -9919,7 +9951,7 @@
label.lft(btex $\ell$ etex,iso(A,D));
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+ \begin{mpost}[mpsettings={input PfCGeometrie;}]
pair A,B,C,D;
A=u*(1,1);
B-A=u*(3,0);
@@ -9953,7 +9985,7 @@
draw polygone(A,B,C);
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+ \begin{mpost}[mpsettings={input PfCGeometrie;}]
Figure(-5u,-5u,5u,5u);
pair A,B,C;
A=u*(1,1);
@@ -9980,10 +10012,10 @@
draw segment(B,C);
marque_p:="croix";
pointe(A);
- draw appelation(B,C,3mm,\btex diamètre etex);
+ draw appelation(B,C,3mm,btex diam\`etre etex);
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+ \begin{mpost}[mpsettings={input PfCGeometrie;}]
Figure(-5u,-5u,5u,5u);
pair A,B,C;
A=u*(2.5,2.5);
@@ -9995,7 +10027,7 @@
draw segment(B,C);
marque_p:="croix";
pointe(A);
- draw appelation(B,C,3mm,\btex diamètre etex);
+ draw appelation(B,C,3mm,\btex diam\`etre etex);
\end{mpost}
\fi
}
@@ -10016,10 +10048,10 @@
draw segment(A,C);
marque_p:="croix";
pointe(A);
- draw appelation(A,C,3mm,\btex rayon $r$ etex);
+ draw appelation(A,C,3mm,btex rayon $r$ etex);
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+ \begin{mpost}[mpsettings={input PfCGeometrie;}]
Figure(-5u,-5u,5u,5u);
pair A,B,C;
A=u*(2.5,2.5);
@@ -10077,7 +10109,7 @@
drawoptions();
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+ \begin{mpost}[mpsettings={input PfCGeometrie;}]
Figure(-5u,-5u,5u,5u);
pair A,B,C,H,I,J;
A=u*(0.5,1);
@@ -10126,44 +10158,44 @@
\begin{tikzpicture}[remember picture, overlay]
\node[draw,fill=\ColorFill,dashed,rounded corners,rotate={\useKV[ClesFormule]{Angle}}] (test) at \useKV[ClesFormule]{Ancre} {\begin{minipage}{\RoundedBoxWidth}%
\IfStrEqCase{\useKV[ClesFormule]{Surface}}{%
- {carré}{\begin{center}
+ {carre}{\begin{center}
\MPFigureCarre\par
- Périmètre d'un carré :\par$4\times c$
+ P\'erim\`etre d'un carr\'e :\par$4\times c$
\end{center}}%
{polygone}{%
\begin{center}
\MPFigurePolygone\par
- Périmètre d'un polygone : \par$\text{Somme des côtés}$
+ P\'erim\`etre d'un polygone : \par$\text{Somme des c\^ot\'es}$
\end{center}
}%
{rectangle}{%
\begin{center}
\MPFigureRectangle\par
- Périmètre d'un rectangle : \par$2\times(L+\ell)$
+ P\'erim\`etre d'un rectangle : \par$2\times(L+\ell)$
\end{center}
}%
{losange}{%
\begin{center}
\MPFigureLosange\par
- Périmètre d'un losange : \par$4\times c$
+ P\'erim\`etre d'un losange : \par$4\times c$
\end{center}
}%
{triangle}{%
\begin{center}
\MPFigureTriangle\par
- Périmètre d'un triangle : \par Somme des côtés
+ P\'erim\`etre d'un triangle : \par Somme des c\^ot\'es
\end{center}
}%
{cercle}{%
\begin{center}
\MPFigureCercle\par
- Périmètre d'un cercle : \par$\pi\times\text{diamètre}$
+ P\'erim\`etre d'un cercle : \par$\pi\times\text{diam\`etre}$
\end{center}
}%
- {parallélogramme}{%
+ {parallelogramme}{%
\begin{center}
\MPFigureParallelogramme\par
- Périmètre d'un parallélogramme : \par Somme des côtés
+ P\'erim\`etre d'un parall\'elogramme : \par Somme des c\^ot\'es
\end{center}
}}
\end{minipage}};
@@ -10172,9 +10204,9 @@
\begin{tikzpicture}[remember picture, overlay]
\node[draw,fill=\ColorFill,dashed,rounded corners=2,rotate={\useKV[ClesFormule]{Angle}}] (test) at \useKV[ClesFormule]{Ancre} {\begin{minipage}{\RoundedBoxWidth}%
\IfStrEqCase{\useKV[ClesFormule]{Surface}}{%
- {carré}{\begin{center}
+ {carr\'e}{\begin{center}
\MPFigureCarre\par
- Aire d'un carré :\par$c\times c$
+ Aire d'un carr\'e :\par$c\times c$
\end{center}}%
{rectangle}{%
\begin{center}
@@ -10191,7 +10223,7 @@
{triangle}{%
\begin{center}
\MPFigureTriangleAire\par\vspace{1em}\par
- Aire d'un triangle : $\displaystyle\frac{\text{côté}\times\text{hauteur relative à ce côté}}{2}$
+ Aire d'un triangle : $\displaystyle\frac{\text{c\^ot\'e}\times\text{hauteur relative \`a ce c\^ot\'e}}{2}$
\end{center}
}%
{disque}{%
@@ -10200,16 +10232,16 @@
Aire d'un disque :\par$\pi\times r\times r$
\end{center}
}%
- {parallélogramme}{%
+ {parallelogramme}{%
\begin{center}
\MPFigureParallelogrammeAire\par
- Aire d'un parallélogramme : $\text{côté}\times\text{hauteur relative à ce côté}$
+ Aire d'un parall\'elogramme : $\text{c\^ot\'e}\times\text{hauteur relative \`a ce c\^ot\'e}$
\end{center}
}
- {sphère}{%
+ {sphere}{%
\begin{center}
\MPFigureSphere\par
- Aire d'une sphère : $4\times\pi\times r^2$
+ Aire d'une sph\`ere : $4\times\pi\times r^2$
\end{center}
}}
\end{minipage}};
@@ -10228,10 +10260,10 @@
Volume d'une cube : $a^3\quad(a\times a\times a)$
\end{center}
}%
- {pavé}{%
+ {pave}{%
\begin{center}
\MPFigurePave\par
- Volume d'un pavé droit : $\ell\times h\times p$
+ Volume d'un pav\'e droit : $\ell\times h\times p$
\end{center}
}
{prisme}{%
@@ -10243,7 +10275,7 @@
{cylindre}{%
\begin{center}
\MPFigureCylindre\par
- Volume d'un cylindre de révolution : $\pi\times r^2\times h$
+ Volume d'un cylindre de r\'evolution : $\pi\times r^2\times h$
\end{center}
}
{pyramide}{%
@@ -10252,10 +10284,10 @@
Volume d'une pyramide : $\dfrac{\text{Aire de la base}\times\text{hauteur}}{3}$
\end{center}
}
- {cône}{%
+ {cone}{%
\begin{center}
\MPFigureCone\par
- Volume d'un cône de révolution : $\displaystyle\dfrac{\pi\times r^2\times h}{3}$
+ Volume d'un c\^one de r\'evolution : $\displaystyle\dfrac{\pi\times r^2\times h}{3}$
\end{center}
}
}
@@ -10275,7 +10307,7 @@
\newtoks\toklistepointproba
-% Pour construire l'arbre de probabilité
+% Pour construire l'arbre de probabilit\'e
\def\buildarbreproba{%
\toklistepointproba{}%
\foreachitem\compteur\in\ListeProba{\expandafter\Updatetoksproba\compteur\nil}%
@@ -10282,7 +10314,7 @@
\MPArbreProba{\useKV[ClesProba]{Branche}}{\useKV[ClesProba]{Angle}}{\the\toklistepointproba}{\useKV[ClesProba]{Rayon}}%
}
-% Pour construire l'échelle de probabilité
+% Pour construire l'\'echelle de probabilit\'e
\def\buildechelleproba{%
\toklistepointproba{}%
\foreachitem\compteur\in\ListeProba{\expandafter\Updatetoksprobaechelle\compteur\nil}%
@@ -10290,10 +10322,10 @@
}
\def\MPEchelleProbaUn#1#2#3#4{%
- % #1:longueur du segment représentant l'échelle
- % #2:Liste des évènements/proba
- % #3: pour l'affichage des labels (0 : rien, 1: fleches, 2 : fleches+evènements, 3: fleches+proba, 4 : tout)
- % #4 : dimension de "la grille" associée
+ % #1:longueur du segment repr\'esentant l'\'echelle
+ % #2:Liste des \'ev\`enements/proba
+ % #3: pour l'affichage des labels (0 : rien, 1: fleches, 2 : fleches+ev\`enements, 3: fleches+proba, 4 : tout)
+ % #4 : dimension de "la grille" associ\'ee
\ifluatex
\begin{mplibcode}
pair A,B,C[],D[];%les noeuds de l'arbre
@@ -10354,7 +10386,7 @@
toto(#2);
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+ \begin{mpost}[mpsettings={input PfCGeometrie;}]
pair A,B,C[],D[];%les noeuds de l'arbre
Figure(-10u,-10u,10u,10u);
A=u*(1,1);
@@ -10403,7 +10435,7 @@
dotlabel.top("",C[k]);
fi;
if (#3>2):
- label.bot(LATEX("$\noexpand\frac{"&decimal(num)&"}{"&decimal(deno)&"}$"),C[k]-u*(0,0.5));%Le \noexpand est nécessaire pour éviter un problème à la compilation, dû à l'expansion du \frac par gmp.
+ label.bot(LATEX("$\noexpand\frac{"&decimal(num)&"}{"&decimal(deno)&"}$"),C[k]-u*(0,0.5));%Le \noexpand est n\'ecessaire pour \'eviter un probl\`eme \`a la compilation, dû \`a l'expansion du \frac par gmp.
fi;
k:=k+1;
fi;
@@ -10417,8 +10449,8 @@
\def\MPArbreProba#1#2#3#4{%
% #1:longueur d'une branche
- % #2:angle entre deux branches de même origine
- % #3:Liste des évènements/proba
+ % #2:angle entre deux branches de m\^eme origine
+ % #3:Liste des \'ev\`enements/proba
\ifluatex
\begin{mplibcode}
pair A[],B[];%les noeuds de l'arbre
@@ -10441,7 +10473,7 @@
endfor;
n:=1;%compter les informations
k:=1;% compter les informations noeud pour les placer
- l:=1;% compter les informations "numériques"
+ l:=1;% compter les informations "num\'eriques"
vardef toto(text t)=
for p_=t:
if (n mod 2)=1:
@@ -10467,7 +10499,7 @@
toto(#3);
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+ \begin{mpost}[mpsettings={input PfCGeometrie;}]
pair A[],B[];%les noeuds de l'arbre
Figure(-10u,-10u,10u,10u);
A0=u*(1,1);
@@ -10488,7 +10520,7 @@
endfor;
n:=1;%compter les informations
k:=1;% compter les informations noeud pour les placer
- l:=1;% compter les informations "numériques"
+ l:=1;% compter les informations "num\'eriques"
vardef toto(text t)=
for p_=t:
if (n mod 2)=1:
@@ -10513,7 +10545,7 @@
\newcommand\Proba[2][]{%
\useKVdefault[ClesProba]%
\setKV[ClesProba]{#1}%
- % On liste les différents éléments sous la forme Evènement/proba
+ % On liste les diff\'erents \'el\'ements sous la forme Ev\`enement/proba
\setsepchar[*]{,*/}\ignoreemptyitems%
\readlist*\ListeProba{#2}
\ifboolKV[ClesProba]{Echelle}{%
@@ -10528,7 +10560,7 @@
% Reperage
%%%
\setKVdefault[ClesReperage]{Unitex=1,Pasx=1,Unitey=1,Pasy=1,Unitez=1,Pasz=1,DemiDroite=false,Droite=false,Plan=false,Trace=false,ListeSegment={},Espace=false,Sphere=false,AffichageNom=false,AffichageGrad=false,AffichageAbs=0,AffichageCoord=false,LectureCoord=false,ValeurUnitex=1,ValeurUnitey=1,ValeurOrigine=0,NomOrigine=O,EchelleEspace=50,CouleurCoord=black}
-% ValeurOrigine permet de faire des morceaux de demi-droite graduée en passant par droite :)
+% ValeurOrigine permet de faire des morceaux de demi-droite gradu\'ee en passant par droite :)
\def\Updatetoksdroite#1/#2\nil{\addtotok\toklistepointdroite{#1,"#2",}}
\def\Updatetoksrepere#1/#2/#3\nil{\addtotok\toklistepointrepere{#1,#2,"#3",}}
@@ -10538,7 +10570,7 @@
\newtoks\toklistepointdroite%
\newtoks\toklistepointespace%
-% Pour construire le repère de l'espace
+% Pour construire le rep\`ere de l'espace
\def\buildespace{%
\toklistepointespace{}%
\ifboolKV[ClesReperage]{Sphere}{%
@@ -10614,7 +10646,7 @@
vardef tata(text t)=
n:=1;%pour compter combien de points
k:=0;%pour garder l'abscisse
- l:=0;%pour garder l'ordonnée
+ l:=0;%pour garder l'ordonn\'ee
m:=0;%pour garder l'altitude
if #8>0:
for p_=t:
@@ -10650,7 +10682,7 @@
vardef toto(text t)=
n:=1;%pour compter combien de points
k:=0;%pour garder l'abscisse
- l:=0;%pour garder l'ordonnée
+ l:=0;%pour garder l'ordonn\'ee
m:=0;%pour garder l'altitude
if #8>0:
for p_=t:
@@ -10692,7 +10724,7 @@
draw Pave(A,B,C,D,E,F,G,H)(#1,#3,#5);
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+ \begin{mpost}[mpsettings={input PfCGeometrie;}]
typetrace:="3D";
typerepre:="persp";
Figure(-20u,-20u,20u,20u);
@@ -10737,7 +10769,7 @@
vardef tata(text t)=
n:=1;%pour compter combien de points
k:=0;%pour garder l'abscisse
- l:=0;%pour garder l'ordonnée
+ l:=0;%pour garder l'ordonn\'ee
m:=0;%pour garder l'altitude
if #8>0:
for p_=t:
@@ -10773,7 +10805,7 @@
vardef toto(text t)=
n:=1;%pour compter combien de points
k:=0;%pour garder l'abscisse
- l:=0;%pour garder l'ordonnée
+ l:=0;%pour garder l'ordonn\'ee
m:=0;%pour garder l'altitude
if #8>0:
for p_=t:
@@ -10817,7 +10849,7 @@
\fi
}%
-% Pour construire le repère du plan
+% Pour construire le rep\`ere du plan
\def\buildreperenew{%
\toklistepointrepere{}%
\foreachitem\compteur\in\ListePointRepere{\expandafter\Updatetoksrepere\compteur\nil}%
@@ -10836,8 +10868,8 @@
%#2 : unitey, pasy
%#3 : liste de points
%#4 : Affichage nom + lecture graphique
- %#5 : Affichage des (abscisses/ordonnées)
- %#6 : Graduation complète ?
+ %#5 : Affichage des (abscisses/ordonn\'ees)
+ %#6 : Graduation compl\`ete ?
%#7 : (unitex,unitey)
\ifluatex
\begin{mplibcode}
@@ -10905,7 +10937,7 @@
endfor;
drawarrow (B+(-0.75*unitpx,0))--(C+(0.75*unitpx,0));
drawarrow (D+(0,-0.75*unitpy))--(E+(0,0.75*unitpy));
- % graduation complète ou pas ?
+ % graduation compl\`ete ou pas ?
label.llft(btex \footnotesize 0 etex,A);
if #6>0:
for k=minx upto maxx:
@@ -10932,8 +10964,8 @@
vardef tata(text t)=%on place les points
if #4>0:
n:=1;
- k:=0;%pour retenir la coordonnée en x
- l:=0;%pour retenir la coordonnée en y
+ k:=0;%pour retenir la coordonn\'ee en x
+ l:=0;%pour retenir la coordonn\'ee en y
for p_=t:
if (n mod 3)=1:
if numeric p_:
@@ -10984,8 +11016,8 @@
fi;
if #5=2:
n:=1;
- k:=0;%pour retenir la coordonnée en x
- l:=0;%pour retenir la coordonnée en y
+ k:=0;%pour retenir la coordonn\'ee en x
+ l:=0;%pour retenir la coordonn\'ee en y
for p_=t:
if (n mod 3)=1:
if numeric p_:
@@ -11016,8 +11048,8 @@
endfor;
elseif #5=1:
n:=1;
- k:=0;%pour retenir la coordonnée en x
- l:=0;%pour retenir la coordonnée en y
+ k:=0;%pour retenir la coordonn\'ee en x
+ l:=0;%pour retenir la coordonn\'ee en y
for p_=t:
if (n mod 3)=1:
if numeric p_:
@@ -11108,7 +11140,7 @@
endfor;
drawarrow (B+(-0.75*unitpx,0))--(C+(0.75*unitpx,0));
drawarrow (D+(0,-0.75*unitpy))--(E+(0,0.75*unitpy));
- % graduation complète ou pas ?
+ % graduation compl\`ete ou pas ?
label.llft(btex \noexpand\footnotesize 0 etex,A);
if #6>0:
for k=minx upto maxx:
@@ -11135,8 +11167,8 @@
vardef tata(text t)=%on place les points
if #4>0:
n:=1;
- k:=0;%pour retenir la coordonnée en x
- l:=0;%pour retenir la coordonnée en y
+ k:=0;%pour retenir la coordonn\'ee en x
+ l:=0;%pour retenir la coordonn\'ee en y
for p_=t:
if (n mod 3)=1:
if numeric p_:
@@ -11187,8 +11219,8 @@
fi;
if #5=2:
n:=1;
- k:=0;%pour retenir la coordonnée en x
- l:=0;%pour retenir la coordonnée en y
+ k:=0;%pour retenir la coordonn\'ee en x
+ l:=0;%pour retenir la coordonn\'ee en y
for p_=t:
if (n mod 3)=1:
if numeric p_:
@@ -11219,8 +11251,8 @@
endfor;
elseif #5=1:
n:=1;
- k:=0;%pour retenir la coordonnée en x
- l:=0;%pour retenir la coordonnée en y
+ k:=0;%pour retenir la coordonn\'ee en x
+ l:=0;%pour retenir la coordonn\'ee en y
for p_=t:
if (n mod 3)=1:
if numeric p_:
@@ -11324,8 +11356,8 @@
vardef tata(text t)=%on place les points
if #6>0:
n:=1;
- k:=0;%pour retenir la coordonnée en x
- l:=0;%pour retenir la coordonnée en y
+ k:=0;%pour retenir la coordonn\'ee en x
+ l:=0;%pour retenir la coordonn\'ee en y
for p_=t:
if (n mod 3)=1:
if numeric p_:
@@ -11398,7 +11430,7 @@
Tracage(#5)(#9);
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+ \begin{mpost}[mpsettings={input PfCGeometrie;}]
maxx:=-4000;
minx=4000;
unitex:=#1*cm;
@@ -11472,8 +11504,8 @@
vardef tata(text t)=%on place les points
if #6>0:
n:=1;
- k:=0;%pour retenir la coordonnée en x
- l:=0;%pour retenir la coordonnée en y
+ k:=0;%pour retenir la coordonn\'ee en x
+ l:=0;%pour retenir la coordonn\'ee en y
for p_=t:
if (n mod 3)=1:
if numeric p_:
@@ -11551,10 +11583,10 @@
\def\MPDEMIGraduee#1#2#3#4#5#6#7#8{%
% #1 : unite
% #2 : pas
- % #3 : liste des points à placer en pas. pour gérer le cas des repérages fractionnaires
+ % #3 : liste des points \`a placer en pas. pour g\'erer le cas des rep\'erages fractionnaires
% #4 : on affiche le nom des points ou pas
- % #5 : quelle est la valeur de la longueur unité ?
- % #6 : la valeur de l'unité (ne sert à rien ici, mais en prévision
+ % #5 : quelle est la valeur de la longueur unit\'e ?
+ % #6 : la valeur de l'unit\'e (ne sert \`a rien ici, mais en pr\'evision
% de Droite)
% #7 : on affiche les abscisses ou pas : 0 non, 1 oui, 2 fraction
% #8 : on affiche tous les multiples de la graduation "principale"
@@ -11564,8 +11596,8 @@
maxx:=0;
unitex:=#1*cm;
pasx:=#2;
- unitp:=unitex/pasx;%unité de déplacement
- vardef toto(text t)=%On détermine le nombre "d'unités" à placer
+ unitp:=unitex/pasx;%unit\'e de d\'eplacement
+ vardef toto(text t)=%On d\'etermine le nombre "d'unit\'es" \`a placer
for p_=t:
if numeric p_:
if p_>maxx:
@@ -11657,8 +11689,8 @@
maxx:=0;
unitex:=#1*cm;
pasx:=#2;
- unitp:=unitex/pasx;%unité de déplacement
- vardef toto(text t)=%On détermine le nombre "d'unités" à placer
+ unitp:=unitex/pasx;%unit\'e de d\'eplacement
+ vardef toto(text t)=%On d\'etermine le nombre "d'unit\'es" \`a placer
for p_=t:
if numeric p_:
if p_>maxx:
@@ -11748,7 +11780,7 @@
\fi
}
-% Pour construire les droite/demi-droite graduée
+% Pour construire les droite/demi-droite gradu\'ee
\def\builddemidroitenew{%
\toklistepointdroite{}%
\foreachitem\compteur\in\ListePointDroite{\expandafter\Updatetoksdroite\compteur\nil}%
@@ -11766,10 +11798,10 @@
\def\MPDROITEGraduee#1#2#3#4#5#6#7#8{%
% #1 : unite
% #2 : pas
- % #3 : liste des points à placer en pas. pour gérer le cas des repérages fractionnaires
+ % #3 : liste des points \`a placer en pas. pour g\'erer le cas des rep\'erages fractionnaires
% #4 : on affiche le nom des points ou pas
- % #5 : quelle est la valeur de la longueur unité ?
- % #6 : la valeur de l'unité
+ % #5 : quelle est la valeur de la longueur unit\'e ?
+ % #6 : la valeur de l'unit\'e
% #7 : on affiche les abscisses ou pas : 0 non, 1 oui, 2 fraction
% #8 : on affiche tous les multiples de la graduation "principale"
\ifluatex
@@ -11779,8 +11811,8 @@
minx:=4000;
unitex:=#1*cm;
pasx:=#2;
- unitp:=unitex/pasx;%unité de déplacement
- vardef toto(text t)=%On détermine le nombre "d'unités" à placer
+ unitp:=unitex/pasx;%unit\'e de d\'eplacement
+ vardef toto(text t)=%On d\'etermine le nombre "d'unit\'es" \`a placer
for p_=t:
if numeric p_:
if p_>maxx:
@@ -11894,8 +11926,8 @@
minx:=4000;
unitex:=#1*cm;
pasx:=#2;
- unitp:=unitex/pasx;%unité de déplacement
- vardef toto(text t)=%On détermine le nombre "d'unités" à placer
+ unitp:=unitex/pasx;%unit\'e de d\'eplacement
+ vardef toto(text t)=%On d\'etermine le nombre "d'unit\'es" \`a placer
for p_=t:
if numeric p_:
if p_>maxx:
@@ -12037,9 +12069,9 @@
}
%%%
-% Ecritures d'unités
+% Ecritures d'unit\'es
%%%
-\setKVdefault[Unites]{m=false,km=false,hm=false,ha=false,dam=false,a=false,dm=false,cm=true,mm=false,um=false,nm=false,g=true,t=false,q=false,kg=false,hg=false,dag=false,dg=false,cg=false,mg=false,ug=false,ng=false,kmh=true,kms=false,ms=false,kgm=false,gcm=true,L=true,kL=false,hL=false,daL=false,dL=false,cL=false,mL=false,l=true,kl=false,hl=false,dal=false,dl=false,cl=false,ml=false,Go=true,Mo=false,ko=false,To=false,o=false,kWh=true,C=true,K=false,F=false}
+\setKVdefault[Unites]{m=false,km=false,hm=false,ha=false,dam=false,a=false,dm=false,cm=true,mm=false,um=false,nm=false,g=true,t=false,q=false,kg=false,hg=false,dag=false,dg=false,cg=false,mg=false,ug=false,ng=false,kmh=true,kms=false,ms=false,mh=false,kgm=false,gcm=true,L=true,kL=false,hL=false,daL=false,dL=false,cL=false,mL=false,l=true,kl=false,hl=false,dal=false,dl=false,cl=false,ml=false,Go=true,Mo=false,ko=false,To=false,o=false,kWh=true,C=true,K=false,F=false}
%D'apres https://tex.stackexchange.com/questions/38905/time-of-the-day-or-time-period-using-the-package-siunitx
\ExplSyntaxOn
@@ -12116,6 +12148,10 @@
\SI{#2}{\kWh}%
}
+\newcommand\Prix[2][]{%
+ \SI[round-mode=places,round-precision=2]{#2}{\EuRo}%
+}
+
\newcommand\Octet[2][]{%
\useKVdefault[Unites]%
\setKV[Unites]{#1}%
@@ -12284,13 +12320,17 @@
\newcommand\Vitesse[2][]{%
\useKVdefault[Unites]%
\setKV[Unites]{#1}%
- \ifboolKV[Unites]{ms}{%
- \SI[per-mode=symbol]{#2}{\meter\per\second}%
+ \ifboolKV[Unites]{mh}{%
+ \SI[per-mode=symbol]{#2}{\meter\per\hour}%
}{%
- \ifboolKV[Unites]{kms}{%
- \SI[per-mode=symbol]{#2}{\kilo\meter\per\second}%
+ \ifboolKV[Unites]{ms}{%
+ \SI[per-mode=symbol]{#2}{\meter\per\second}%
}{%
- \SI[per-mode=symbol]{#2}{\kilo\meter\per\hour}%
+ \ifboolKV[Unites]{kms}{%
+ \SI[per-mode=symbol]{#2}{\kilo\meter\per\second}%
+ }{%
+ \SI[per-mode=symbol]{#2}{\kilo\meter\per\hour}%
+ }%
}%
}%
}%
@@ -12306,7 +12346,7 @@
}%
%%%
-% Tableaux d'unités
+% Tableaux d'unit\'es
%%%
\setKVdefault[ClesTableaux]{Virgule=true,Entiers=false,Decimaux=false,Milliards=false,Millions=false,Micro=false,Nano=false,Partie=false,CouleurG=gray!15,CouleurM=gray!15,Couleurm=gray!15,Couleuru=gray!15,Classes=false,Nombres=false,Puissances=false,NbLignes=2,Metre=false,Are=false,Capacite=false,Carre=false,Cube=false,Litre=false,Gramme=false,Fleches=false,FlechesB=false,FlechesH=false,Colonnes=false,Prefixes=false}
@@ -12314,7 +12354,7 @@
\useKVdefault[ClesTableaux]%
\setKV[ClesTableaux]{#1}%
%
- %%% Clé Prefixes
+ %%% Cl\'e Prefixes
%
\ifboolKV[ClesTableaux]{Prefixes}{%
\setlength{\tabcolsep}{0.01\tabcolsep}%
@@ -12330,21 +12370,21 @@
}}%
{>{\centering\arraybackslash}m{3.25em}|}}%
%
- %%% Prise en compte de la clé Partie
+ %%% Prise en compte de la cl\'e Partie
%
\ifboolKV[ClesTableaux]{Partie}{%
\multicolumn{%
\ifboolKV[ClesTableaux]{Milliards}{12}{%
\ifboolKV[ClesTableaux]{Millions}{9}{6}%
- }}{c}{\bfseries Partie entière}
+ }}{c}{\bfseries Partie enti\`ere}
&\multicolumn{1}{c}{\cellcolor{gray!15}\ifboolKV[ClesTableaux]{Virgule}{,}{}}%
&\multicolumn{%
\ifboolKV[ClesTableaux]{Micro}{6}{%
\ifboolKV[ClesTableaux]{Nano}{9}{3}%
}}%
- {c}{\bfseries Partie décimale}\\}{}%
+ {c}{\bfseries Partie d\'ecimale}\\}{}%
%
- %%% Prise en compte de la clé Classes
+ %%% Prise en compte de la cl\'e Classes
%
\ifboolKV[ClesTableaux]{Classes}{%
\hline
@@ -12364,7 +12404,7 @@
{\cellcolor{\useKV[ClesTableaux]{Couleurm}}Classe
des milliers}%
&\multicolumn{3}{c|}{\cellcolor{\useKV[ClesTableaux]{Couleuru}}Classe
- des unités}%
+ des unit\'es}%
&\ifboolKV[ClesTableaux]{Virgule}{,}{}%
&\multicolumn{%
\ifboolKV[ClesTableaux]{Micro}{6}{%
@@ -12372,7 +12412,7 @@
}}%
{c|}{}\\}{}%
%
- %%% Valeurs par défaut
+ %%% Valeurs par d\'efaut
%
\hline%
\ifboolKV[ClesTableaux]{Milliards}{%
@@ -12380,12 +12420,12 @@
&\fontsize{8.5}{8.5}\selectfont giga%
&%
&%
- &\fontsize{8.5}{8.5}\selectfont méga%
+ &\fontsize{8.5}{8.5}\selectfont m\'ega%
&%
}{%
\ifboolKV[ClesTableaux]{Millions}{%
&%
- &\fontsize{8.5}{8.5}\selectfont méga%
+ &\fontsize{8.5}{8.5}\selectfont m\'ega%
&%
}{%
}}%
@@ -12392,8 +12432,8 @@
&%
&\fontsize{8.5}{8.5}\selectfont kilo%
&\fontsize{8.5}{8.5}\selectfont hecto%
- &\fontsize{8.5}{8.5}\selectfont déca%
- &\fontsize{8.5}{8.5}\selectfont unités%
+ &\fontsize{8.5}{8.5}\selectfont d\'eca%
+ &\fontsize{8.5}{8.5}\selectfont unit\'es%
&\ifboolKV[ClesTableaux]{Virgule}{,}{}%
&\fontsize{8.5}{8.5}\selectfont deci%
&\fontsize{8.5}{8.5}\selectfont centi%
@@ -12409,7 +12449,7 @@
&\fontsize{8.5}{8.5}\selectfont nano\\}{\\}%
}%
%
- %%% Prise en compte de la clé Nombres
+ %%% Prise en compte de la cl\'e Nombres
%
\ifboolKV[ClesTableaux]{Nombres}{%
\ifboolKV[ClesTableaux]{Milliards}{%
@@ -12452,7 +12492,7 @@
}{}%
}{}\\}{}%
%
- %%% Prise en compte de la clé Puissances
+ %%% Prise en compte de la cl\'e Puissances
%
\ifboolKV[ClesTableaux]{Puissances}{%
\ifboolKV[ClesTableaux]{Milliards}{%
@@ -12512,7 +12552,7 @@
\setlength{\tabcolsep}{100\tabcolsep}%
}{}%
%
- %%% Clé Entiers
+ %%% Cl\'e Entiers
%
\ifboolKV[ClesTableaux]{Entiers}{%
\setlength{\tabcolsep}{0.01\tabcolsep}%
@@ -12531,29 +12571,29 @@
\ifboolKV[ClesTableaux]{Millions}{\multicolumn{3}{|c}{\cellcolor{\useKV[ClesTableaux]{CouleurM}}Classe des millions}&}{}
\multicolumn{3}{|c|}{\cellcolor{\useKV[ClesTableaux]{Couleurm}}Classe
des milliers}%
- &\multicolumn{3}{c|}{\cellcolor{\useKV[ClesTableaux]{Couleuru}}Classe des unités}\\}{}
+ &\multicolumn{3}{c|}{\cellcolor{\useKV[ClesTableaux]{Couleuru}}Classe des unit\'es}\\}{}
\hline
\ifboolKV[ClesTableaux]{Milliards}{%
\fontsize{4.5}{4.5}\selectfont centaines de milliards%
&\fontsize{4.5}{4.5}\selectfont dizaines de milliards%
- &\fontsize{4.5}{4.5}\selectfont unités de milliards%
+ &\fontsize{4.5}{4.5}\selectfont unit\'es de milliards%
&\fontsize{4.5}{4.5}\selectfont centaines de millions%
&\fontsize{4.5}{4.5}\selectfont dizaines de millions%
- &\fontsize{4.5}{4.5}\selectfont unités de millions%
+ &\fontsize{4.5}{4.5}\selectfont unit\'es de millions%
&
}{}
\ifboolKV[ClesTableaux]{Millions}{%
\fontsize{4.5}{4.5}\selectfont centaines de millions%
&\fontsize{4.5}{4.5}\selectfont dizaines de millions%
- &\fontsize{4.5}{4.5}\selectfont unités de millions%
+ &\fontsize{4.5}{4.5}\selectfont unit\'es de millions%
&
}{}
\fontsize{4.5}{4.5}\selectfont centaines de milliers%
&\fontsize{4.5}{4.5}\selectfont dizaines de milliers%
- &\fontsize{4.5}{4.5}\selectfont unités de milliers%
+ &\fontsize{4.5}{4.5}\selectfont unit\'es de milliers%
&\fontsize{4.5}{4.5}\selectfont centaines%
&\fontsize{4.5}{4.5}\selectfont dizaines%
- &\fontsize{4.5}{4.5}\selectfont unités\\%
+ &\fontsize{4.5}{4.5}\selectfont unit\'es\\%
\ifboolKV[ClesTableaux]{Nombres}{%
\ifboolKV[ClesTableaux]{Milliards}{%
\fontsize{4.5}{4.5}\selectfont\num{100000000000}%
@@ -12579,7 +12619,7 @@
\\
}{}
%
- %%% Prise en compte de la clé Puissances
+ %%% Prise en compte de la cl\'e Puissances
%
\ifboolKV[ClesTableaux]{Puissances}{%
\ifboolKV[ClesTableaux]{Milliards}{%
@@ -12618,7 +12658,7 @@
\setlength{\tabcolsep}{100\tabcolsep}%
}{}%
%
- %%% Clé Decimaux
+ %%% Cl\'e Decimaux
%
\ifboolKV[ClesTableaux]{Decimaux}{%
\setlength{\tabcolsep}{0.01\tabcolsep}%
@@ -12631,18 +12671,18 @@
}}{>{\centering\arraybackslash}m{4.75em}|}>{\columncolor{gray!15}}{c}|*{3}%
{>{\centering\arraybackslash}m{4.75em}|}}%
%
- %%% Prise en compte de la clé Partie
+ %%% Prise en compte de la cl\'e Partie
%
\ifboolKV[ClesTableaux]{Partie}{%
\ifboolKV[ClesTableaux]{Milliards}{%
- \multicolumn{12}{c}{\bfseries Partie entière}}{%
+ \multicolumn{12}{c}{\bfseries Partie enti\`ere}}{%
\ifboolKV[ClesTableaux]{Millions}{%
- \multicolumn{9}{c}{\bfseries Partie entière}}{%
- \multicolumn{6}{c}{\bfseries Partie entière}}}%
+ \multicolumn{9}{c}{\bfseries Partie enti\`ere}}{%
+ \multicolumn{6}{c}{\bfseries Partie enti\`ere}}}%
&\multicolumn{1}{c}{\cellcolor{gray!15}\ifboolKV[ClesTableaux]{Virgule}{,}{}}%
- &\multicolumn{3}{c}{\bfseries Partie décimale}\\}{}
+ &\multicolumn{3}{c}{\bfseries Partie d\'ecimale}\\}{}
%
- %%% Prise en compte de la clé Classes
+ %%% Prise en compte de la cl\'e Classes
%
\ifboolKV[ClesTableaux]{Classes}{%
\hline%
@@ -12657,37 +12697,37 @@
{\cellcolor{\useKV[ClesTableaux]{Couleurm}}Classe
des milliers}%
&\multicolumn{3}{c|}{\cellcolor{\useKV[ClesTableaux]{Couleuru}}Classe
- des unités}%
+ des unit\'es}%
&\ifboolKV[ClesTableaux]{Virgule}{,}{}&\multicolumn{3}{c|}{}\\}{}
%
- %%% Valeurs ci-dessous par défaut
+ %%% Valeurs ci-dessous par d\'efaut
%
\hline
\ifboolKV[ClesTableaux]{Milliards}{%
\fontsize{4.5}{4.5}\selectfont centaines de milliards%
&\fontsize{4.5}{4.5}\selectfont dizaines de milliards%
- &\fontsize{4.5}{4.5}\selectfont unités de milliards%
+ &\fontsize{4.5}{4.5}\selectfont unit\'es de milliards%
&\fontsize{4.5}{4.5}\selectfont centaines de millions%
&\fontsize{4.5}{4.5}\selectfont dizaines de millions%
- &\fontsize{4.5}{4.5}\selectfont unités de millions%
+ &\fontsize{4.5}{4.5}\selectfont unit\'es de millions%
&
}{}
\ifboolKV[ClesTableaux]{Millions}{%
\fontsize{4.5}{4.5}\selectfont centaines de millions%
&\fontsize{4.5}{4.5}\selectfont dizaines de millions%
- &\fontsize{4.5}{4.5}\selectfont unités de millions%
+ &\fontsize{4.5}{4.5}\selectfont unit\'es de millions%
&
}{}
\fontsize{4.5}{4.5}\selectfont centaines de milliers%
&\fontsize{4.5}{4.5}\selectfont dizaines de milliers%
- &\