From 00abda4c22e1a32ae68e103e9bf15497afac9983 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sat, 24 Apr 2021 03:01:03 +0000 Subject: CTAN sync 202104240301 --- .../contrib/profcollege/doc/ProfCollege-doc.pdf | Bin 2755761 -> 2772127 bytes .../profcollege/latex/PfC-EquationComposition2.tex | 275 -- .../profcollege/latex/PfC-EquationLaurent1.tex | 226 -- .../profcollege/latex/PfC-EquationPose1.tex | 246 -- .../latex/PfC-EquationSoustraction2.tex | 345 -- .../profcollege/latex/PfC-EquationSymbole1.tex | 225 -- .../profcollege/latex/PfC-EquationTerme1.tex | 276 -- .../profcollege/latex/PfCEquationComposition2.tex | 275 ++ .../profcollege/latex/PfCEquationLaurent1.tex | 226 ++ .../contrib/profcollege/latex/PfCEquationPose1.tex | 246 ++ .../profcollege/latex/PfCEquationSoustraction2.tex | 345 ++ .../profcollege/latex/PfCEquationSymbole1.tex | 225 ++ .../profcollege/latex/PfCEquationTerme1.tex | 276 ++ .../contrib/profcollege/latex/ProfCollege.sty | 1272 ++++---- .../contrib/profcollege/metapost/PfC-Afficheur.mp | 182 -- .../profcollege/metapost/PfC-Calculatrice.mp | 201 -- .../profcollege/metapost/PfC-Calculatriceold.mp | 195 -- .../contrib/profcollege/metapost/PfC-Constantes.mp | 20 - .../contrib/profcollege/metapost/PfC-Geometrie.mp | 1206 ------- .../contrib/profcollege/metapost/PfC-LaTeX.mp | 15 - .../profcollege/metapost/PfC-Scratch-pdf.mp | 3378 -------------------- .../contrib/profcollege/metapost/PfC-Scratch.mp | 3346 ------------------- .../contrib/profcollege/metapost/PfC-Svgnames.mp | 153 - .../contrib/profcollege/metapost/PfCAfficheur.mp | 182 ++ .../profcollege/metapost/PfCCalculatrice.mp | 201 ++ .../contrib/profcollege/metapost/PfCConstantes.mp | 20 + .../contrib/profcollege/metapost/PfCGeometrie.mp | 1206 +++++++ .../latex/contrib/profcollege/metapost/PfCLaTeX.mp | 15 + .../contrib/profcollege/metapost/PfCScratch.mp | 3346 +++++++++++++++++++ .../contrib/profcollege/metapost/PfCScratchpdf.mp | 3378 ++++++++++++++++++++ .../contrib/profcollege/metapost/PfCSvgnames.mp | 153 + 31 files changed, 10752 insertions(+), 10903 deletions(-) delete mode 100644 macros/latex/contrib/profcollege/latex/PfC-EquationComposition2.tex delete mode 100644 macros/latex/contrib/profcollege/latex/PfC-EquationLaurent1.tex delete mode 100644 macros/latex/contrib/profcollege/latex/PfC-EquationPose1.tex delete mode 100644 macros/latex/contrib/profcollege/latex/PfC-EquationSoustraction2.tex delete mode 100644 macros/latex/contrib/profcollege/latex/PfC-EquationSymbole1.tex delete mode 100644 macros/latex/contrib/profcollege/latex/PfC-EquationTerme1.tex create mode 100644 macros/latex/contrib/profcollege/latex/PfCEquationComposition2.tex create mode 100644 macros/latex/contrib/profcollege/latex/PfCEquationLaurent1.tex create mode 100644 macros/latex/contrib/profcollege/latex/PfCEquationPose1.tex create mode 100644 macros/latex/contrib/profcollege/latex/PfCEquationSoustraction2.tex create mode 100644 macros/latex/contrib/profcollege/latex/PfCEquationSymbole1.tex create mode 100644 macros/latex/contrib/profcollege/latex/PfCEquationTerme1.tex delete mode 100644 macros/latex/contrib/profcollege/metapost/PfC-Afficheur.mp delete mode 100644 macros/latex/contrib/profcollege/metapost/PfC-Calculatrice.mp delete mode 100644 macros/latex/contrib/profcollege/metapost/PfC-Calculatriceold.mp delete mode 100644 macros/latex/contrib/profcollege/metapost/PfC-Constantes.mp delete mode 100644 macros/latex/contrib/profcollege/metapost/PfC-Geometrie.mp delete mode 100644 macros/latex/contrib/profcollege/metapost/PfC-LaTeX.mp delete mode 100644 macros/latex/contrib/profcollege/metapost/PfC-Scratch-pdf.mp delete mode 100644 macros/latex/contrib/profcollege/metapost/PfC-Scratch.mp delete mode 100644 macros/latex/contrib/profcollege/metapost/PfC-Svgnames.mp create mode 100644 macros/latex/contrib/profcollege/metapost/PfCAfficheur.mp create mode 100644 macros/latex/contrib/profcollege/metapost/PfCCalculatrice.mp create mode 100644 macros/latex/contrib/profcollege/metapost/PfCConstantes.mp create mode 100644 macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp create mode 100644 macros/latex/contrib/profcollege/metapost/PfCLaTeX.mp create mode 100644 macros/latex/contrib/profcollege/metapost/PfCScratch.mp create mode 100644 macros/latex/contrib/profcollege/metapost/PfCScratchpdf.mp create mode 100644 macros/latex/contrib/profcollege/metapost/PfCSvgnames.mp (limited to 'macros/latex/contrib/profcollege') diff --git a/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf b/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf index 73055fdf99..842e63c3ca 100644 Binary files a/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf and b/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf differ diff --git a/macros/latex/contrib/profcollege/latex/PfC-EquationComposition2.tex b/macros/latex/contrib/profcollege/latex/PfC-EquationComposition2.tex deleted file mode 100644 index 38493f8996..0000000000 --- a/macros/latex/contrib/profcollege/latex/PfC-EquationComposition2.tex +++ /dev/null @@ -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 a0}{+\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 a0}{+\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 diff --git a/macros/latex/contrib/profcollege/latex/PfC-EquationLaurent1.tex b/macros/latex/contrib/profcollege/latex/PfC-EquationLaurent1.tex deleted file mode 100644 index 347afc0e8d..0000000000 --- a/macros/latex/contrib/profcollege/latex/PfC-EquationLaurent1.tex +++ /dev/null @@ -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 a0}{\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 a0}{+\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 diff --git a/macros/latex/contrib/profcollege/latex/PfC-EquationPose1.tex b/macros/latex/contrib/profcollege/latex/PfC-EquationPose1.tex deleted file mode 100644 index e34d382a58..0000000000 --- a/macros/latex/contrib/profcollege/latex/PfC-EquationPose1.tex +++ /dev/null @@ -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 a0}{+\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 a0}{+\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$.% - }{}% - }% - }% - }% - }% - }% - }% -}% diff --git a/macros/latex/contrib/profcollege/latex/PfC-EquationSoustraction2.tex b/macros/latex/contrib/profcollege/latex/PfC-EquationSoustraction2.tex deleted file mode 100644 index f3ffd9453d..0000000000 --- a/macros/latex/contrib/profcollege/latex/PfC-EquationSoustraction2.tex +++ /dev/null @@ -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 a0}{+\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 a0}{+\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$.% - }{}% - }% - }% - }% - }% - }% - }% -}% - - diff --git a/macros/latex/contrib/profcollege/latex/PfC-EquationSymbole1.tex b/macros/latex/contrib/profcollege/latex/PfC-EquationSymbole1.tex deleted file mode 100644 index 4faec4767a..0000000000 --- a/macros/latex/contrib/profcollege/latex/PfC-EquationSymbole1.tex +++ /dev/null @@ -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 a0}{+\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 a0}{+\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*} - }% - }% - }% - }% - }% - }% -}% - - diff --git a/macros/latex/contrib/profcollege/latex/PfC-EquationTerme1.tex b/macros/latex/contrib/profcollege/latex/PfC-EquationTerme1.tex deleted file mode 100644 index f3930d0408..0000000000 --- a/macros/latex/contrib/profcollege/latex/PfC-EquationTerme1.tex +++ /dev/null @@ -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 a0}{+\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 a0}{+\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$.% - }{}% - }% - }% - }% - }% - }% - }% -}% - - diff --git a/macros/latex/contrib/profcollege/latex/PfCEquationComposition2.tex b/macros/latex/contrib/profcollege/latex/PfCEquationComposition2.tex new file mode 100644 index 0000000000..38493f8996 --- /dev/null +++ b/macros/latex/contrib/profcollege/latex/PfCEquationComposition2.tex @@ -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 a0}{+\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 a0}{+\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 diff --git a/macros/latex/contrib/profcollege/latex/PfCEquationLaurent1.tex b/macros/latex/contrib/profcollege/latex/PfCEquationLaurent1.tex new file mode 100644 index 0000000000..8bce1eb7c8 --- /dev/null +++ b/macros/latex/contrib/profcollege/latex/PfCEquationLaurent1.tex @@ -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 a0}{\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 a0}{+\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 diff --git a/macros/latex/contrib/profcollege/latex/PfCEquationPose1.tex b/macros/latex/contrib/profcollege/latex/PfCEquationPose1.tex new file mode 100644 index 0000000000..1137140d28 --- /dev/null +++ b/macros/latex/contrib/profcollege/latex/PfCEquationPose1.tex @@ -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 a0}{+\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 a0}{+\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$.% + }{}% + }% + }% + }% + }% + }% + }% +}% diff --git a/macros/latex/contrib/profcollege/latex/PfCEquationSoustraction2.tex b/macros/latex/contrib/profcollege/latex/PfCEquationSoustraction2.tex new file mode 100644 index 0000000000..f3ffd9453d --- /dev/null +++ b/macros/latex/contrib/profcollege/latex/PfCEquationSoustraction2.tex @@ -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 a0}{+\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 a0}{+\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$.% + }{}% + }% + }% + }% + }% + }% + }% +}% + + diff --git a/macros/latex/contrib/profcollege/latex/PfCEquationSymbole1.tex b/macros/latex/contrib/profcollege/latex/PfCEquationSymbole1.tex new file mode 100644 index 0000000000..3cc345c524 --- /dev/null +++ b/macros/latex/contrib/profcollege/latex/PfCEquationSymbole1.tex @@ -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 a0}{+\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 a0}{+\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*} + }% + }% + }% + }% + }% + }% +}% + + diff --git a/macros/latex/contrib/profcollege/latex/PfCEquationTerme1.tex b/macros/latex/contrib/profcollege/latex/PfCEquationTerme1.tex new file mode 100644 index 0000000000..3b4cc18f27 --- /dev/null +++ b/macros/latex/contrib/profcollege/latex/PfCEquationTerme1.tex @@ -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 a0}{+\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 a0}{+\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$.% + }{}% + }% + }% + }% + }% + }% + }% +}% + + diff --git a/macros/latex/contrib/profcollege/latex/ProfCollege.sty b/macros/latex/contrib/profcollege/latex/ProfCollege.sty index 8233385380..eb53ab6098 100644 --- a/macros/latex/contrib/profcollege/latex/ProfCollege.sty +++ b/macros/latex/contrib/profcollege/latex/ProfCollege.sty @@ -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@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,19 +1013,19 @@ \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}{} \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,25 +2441,25 @@ \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}% }% }% }% %%% -% 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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= } \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 @@ vardef Positions(expr Step)= } \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 @@ vardef Positions(expr Step)= } } -\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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= }% \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 @@ vardef Positions(expr Step)= } \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 @@ vardef Positions(expr Step)= }% \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 @@ vardef Positions(expr Step)= } } -\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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= } \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= 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 @@ vardef Positions(expr Step)= 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 @@ vardef Positions(expr Step)= 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 @@ vardef Positions(expr Step)= 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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= 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 @@ vardef Positions(expr Step)= 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 @@ vardef Positions(expr Step)= 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 @@ vardef Positions(expr Step)= 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 @@ vardef Positions(expr Step)= \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,23 +4812,23 @@ vardef Positions(expr Step)= 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 \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}}\]% } } \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 @@ vardef Positions(expr Step)= }{% \[\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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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,21 +4998,21 @@ vardef Positions(expr Step)= \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 % \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,26 +5020,26 @@ vardef Positions(expr Step)= \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 % \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= }{% \[\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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= % \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= }{\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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \hline #2#3#4\\ \end{array} - $ est-il un tableau de proportionnalité ? + $ est-il un tableau de proportionnalit\'e ? }{% } } @@ -5444,10 +5445,10 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= }{\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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= }% %%% -% Trigonométrie +% Trigonom\'etrie %%% \def\MPFigTrigo#1#2#3#4#5#6#7#8{% \ifluatex @@ -5592,24 +5593,24 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= 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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= \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 @@ vardef Positions(expr Step)= }{% \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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,14 +6279,14 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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}{}% \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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,14 +6333,14 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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}{}% \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl }% }% -%% calcul des fréquences +%% calcul des fr\'equences \newcommand\CalculFrequence[1]{% \fpeval{round(\ListeComplete[#1,2]*100/\EffectifTotal,0)} } @@ -6626,7 +6627,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \fi } -%Pour la médiane. +%Pour la m\'ediane. \DTLgnewdb{mtdb}% \dtlexpandnewvalue% \newcount\nbdonnees% @@ -6931,7 +6932,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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,16 +6980,16 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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% \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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,16 +7032,16 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl }=\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}% \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl % %% 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl }=\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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \]% }% } - 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,21 +7166,21 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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% \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl %%% \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl % 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl % 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl } \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl %%% % 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl } \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl }{% \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,26 +7915,26 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl %%% % 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); 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,18 +8001,18 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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); 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl } %%% -% Pptés des droites (6eme) +% Ppt\'es des droites (6eme) %%% \setKVdefault[ClesDroites]{Brouillon=false,CitePropriete=false,Num=1,Figure=false,Remediation=false} @@ -8192,66 +8192,66 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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})$. } } }% }{% \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl }% }{\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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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,15 +8587,15 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl }% }{% \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}}}\\ 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl }{}% \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl % #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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \end{mplibcode} \else \begin{mpost} - % On définit les constantes + % On d\'efinit les constantes XMin=-2; XMax=2; if #52): - 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl % 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl %#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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl } %%% -% 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl }% %%% -% 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \useKVdefault[ClesTableaux]% \setKV[ClesTableaux]{#1}% % - %%% Clé Prefixes + %%% Cl\'e Prefixes % \ifboolKV[ClesTableaux]{Prefixes}{% \setlength{\tabcolsep}{0.01\tabcolsep}% @@ -12330,21 +12370,21 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl }}% {>{\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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl {\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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl }}% {c|}{}\\}{}% % - %%% Valeurs par défaut + %%% Valeurs par d\'efaut % \hline% \ifboolKV[ClesTableaux]{Milliards}{% @@ -12380,20 +12420,20 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl &\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% &% }{% }}% &% &\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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl &\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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl }{}% }{}\\}{}% % - %%% 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \setlength{\tabcolsep}{100\tabcolsep}% }{}% % - %%% Clé Entiers + %%% Cl\'e Entiers % \ifboolKV[ClesTableaux]{Entiers}{% \setlength{\tabcolsep}{0.01\tabcolsep}% @@ -12531,29 +12571,29 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \\ }{} % - %%% 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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \setlength{\tabcolsep}{100\tabcolsep}% }{}% % - %%% Clé Decimaux + %%% Cl\'e Decimaux % \ifboolKV[ClesTableaux]{Decimaux}{% \setlength{\tabcolsep}{0.01\tabcolsep}% @@ -12631,18 +12671,18 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl }}{>{\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 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl {\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% - &\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]{Virgule}{,}{}% - &\fontsize{4.5}{4.5}\selectfont dixièmes% - &\fontsize{4.5}{4.5}\selectfont centièmes% - &\fontsize{4.5}{4.5}\selectfont millièmes\\ + &\fontsize{4.5}{4.5}\selectfont dixi\`emes% + &\fontsize{4.5}{4.5}\selectfont centi\`emes% + &\fontsize{4.5}{4.5}\selectfont milli\`emes\\ \ifboolKV[ClesTableaux]{Nombres}{% \ifboolKV[ClesTableaux]{Milliards}{% \fontsize{4.5}{4.5}\selectfont\num{100000000000}% @@ -12717,7 +12757,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \\ }{}% % - %%% Prise en compte de la clé Puissances + %%% Prise en compte de la cl\'e Puissances % \ifboolKV[ClesTableaux]{Puissances}{% \ifboolKV[ClesTableaux]{Milliards}{% @@ -12760,7 +12800,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \setlength{\tabcolsep}{100\tabcolsep}% }{}% % - %%% Prise en compte de la clé Metre + %%% Prise en compte de la cl\'e Metre % \ifboolKV[ClesTableaux]{Metre}{% \[\renewcommand{\arraystretch}{1.15}% @@ -12790,7 +12830,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl }% {}% % - %%% Prise en compte de la clé Carre + %%% Prise en compte de la cl\'e Carre % \ifboolKV[ClesTableaux]{Carre}{% \[\renewcommand{\arraystretch}{1.15}% @@ -12831,7 +12871,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \Conversion{100}% }{}% % - %%% Prise en compte de la clé Cube + %%% Prise en compte de la cl\'e Cube % \ifboolKV[ClesTableaux]{Cube}{% \setlength{\tabcolsep}{0.625\tabcolsep}% @@ -12875,7 +12915,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \Conversion{1000}% }{}% % - %%% Prise en compte de la clé Litre + %%% Prise en compte de la cl\'e Litre % \ifboolKV[ClesTableaux]{Litre}{% \[\renewcommand{\arraystretch}{1.15}% @@ -12903,7 +12943,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \Conversion{10}% }{}% % - %%% Prise en compte de la clé Gramme + %%% Prise en compte de la cl\'e Gramme % \ifboolKV[ClesTableaux]{Gramme}{% \[\renewcommand{\arraystretch}{1.15}% @@ -12977,7 +13017,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \coordinate[xshift=-3mm-(\largeurtitre/2)] (B2) at (B1); \node[rounded corners, draw=black, rectangle,minimum height=1cm,text width=\largeurtitre,fill=TrameCouleur] (T1) at (A2){}; \node[TexteCouleur] (T1a) at (T1){\Large #1}; - \node[yshift=-0.65cm] (T1b) at (T1){\tiny réponse précédente}; + \node[yshift=-0.65cm] (T1b) at (T1){\tiny r\'eponse pr\'ec\'edente}; \node[inner sep=0pt,rounded corners, rectangle, draw=black,minimum height=1cm,text width=\largeurtitre,fill=TrameCouleur] (T2) at (B2){}; \node[inner sep=0pt,TexteCouleur] (T2a) at (T2){ \begin{minipage}{\largeurtitre} @@ -13122,8 +13162,8 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \end{tikzpicture} } -\setKVdefault[Cards]{Largeur=59,Hauteur=89,HauteurTheme=15,Marge=4,Landscape=false,Couleur=Cornsilk,Theme=Théorème\\de - Pythagore,ThemeSol=Solution,Trame=false,Titre=false,NomTitre=Jeu 1,Loop,BackgroundAv=false,BackgroundAr=false,ImageAv=4813762.jpg,ImageAr=4813762.jpg} +\setKVdefault[Cards]{Largeur=59,Hauteur=89,HauteurTheme=15,Marge=4,Landscape=false,Couleur=Cornsilk,Theme=Th\'eor\`eme\\de + Pythagore,ThemeSol=Solution,Trame=false,Titre=false,NomTitre=Jeu 1,Loop,BackgroundAv=false,BackgroundAr=false,ImageAv=4813762.jpg,ImageAr=4813762.jpg,AffichageSolution=true} \newcommand\Cartes[2][]{% \useKVdefault[Cards]% @@ -13211,9 +13251,11 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \begin{MyboxSimpleAv}{\useKV[Cards]{Theme}}% \ListeCards[1,1]% \end{MyboxSimpleAv} + \ifboolKV[Cards]{AffichageSolution}{% \begin{MyboxSimpleAr}{\useKV[Cards]{ThemeSol}}% \ListeCards[1,2]% \end{MyboxSimpleAr} + }{}% }% }% } @@ -13229,9 +13271,9 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl %%% % Tableur %%% -\setKVdefault[Tableur]{Colonnes=4,Largeur=3,Formule={},Cellule=A1,Ligne=0,Colonne=0,PasL=1,PasC=1} +\setKVdefault[Tableur]{Colonnes=4,Largeur=3,LargeurUn=3,Bandeau=true,Formule={},Cellule=A1,Ligne=0,Colonne=0,PasL=1,PasC=1} -%Basé sur un code de Christian Télléchéa. +%Bas\'e sur un code de Christian T\'ell\'ech\'ea. \makeatletter \newcount\cntlin \newcount\cntcol @@ -13239,7 +13281,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \newtoks\t@b \long\def\ifremain@lines#1\\#2\@nil{% \csname @\ifx\@empty#2\@empty second\else first\fi oftwo\endcsname} -\long\def\subst@eol#1\\#2\@nil{\addtot@b{#1\\\hline}% +\long\def\subst@eol#1\\#2\@nil{\addtot@b{#1\\}% \ifremain@lines#2\\\@nil{\addtot@b&\subst@eol#2\@nil}{\addtot@b{#2\CodeAfter\xintifboolexpr{\useKV[Tableur]{Ligne}=0 || \useKV[Tableur]{Colonne}=0}{}{\tikz\draw[line width=2pt](row-\fpeval{\useKV[Tableur]{Ligne}+1}-|col-\fpeval{\useKV[Tableur]{Colonne}+1}) rectangle (row-\fpeval{\useKV[Tableur]{Ligne}+1+\useKV[Tableur]{PasL}}-|col-\fpeval{\useKV[Tableur]{Colonne}+1+\useKV[Tableur]{PasC}});}\end{NiceTabular}}}} \long\def\collectcp@body#1\end{\subst@eol#1\@nil\end} @@ -13253,34 +13295,36 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \useKVdefault[Tableur]% \setKV[Tableur]{#1}% \ttfamily% - \setlength{\LongInter}{\fpeval{(\useKV[Tableur]{Colonnes}-1)*\useKV[Tableur]{Largeur}-4}em+\fpeval{\useKV[Tableur]{Colonnes}*2-6}\tabcolsep+\fpeval{\useKV[Tableur]{Colonnes}-3}\arrayrulewidth} + \newcolumntype Y{>{\centering\arraybackslash}p{\useKV[Tableur]{LargeurUn}em}}% \newcolumntype X{>{\centering\arraybackslash}p{\useKV[Tableur]{Largeur}em}}% - \begin{tabular}{|p{\useKV[Tableur]{Largeur}em}|p{1em}|p{5em}|p{\LongInter}|} - \cline{1-2}\cline{4-4}% - \useKV[Tableur]{Cellule}&\centering\arraybackslash\scriptsize$\blacktriangledown$&$f_x$\hfill$\sum$~\scriptsize$\blacktriangledown$\hfill$=$&\useKV[Tableur]{Formule}\hfill\scriptsize$\blacktriangledown$\\ - \cline{1-2}\cline{4-4}% - \end{tabular} - + \ifboolKV[Tableur]{Bandeau}{% + \setlength{\LongInter}{\fpeval{\useKV[Tableur]{LargeurUn}+(\useKV[Tableur]{Colonnes}-2)*\useKV[Tableur]{Largeur}-4}em+\fpeval{\useKV[Tableur]{Colonnes}*2-6}\tabcolsep+\fpeval{\useKV[Tableur]{Colonnes}+1}\arrayrulewidth}% + \begin{NiceTabular}{p{\useKV[Tableur]{Largeur}em}p{1em}p{5em}p{\LongInter}}% + \Block[draw]{}{}\useKV[Tableur]{Cellule}&\Block[draw]{}{}\centering\arraybackslash\scriptsize$\blacktriangledown$&$f_x$\hfill$\sum$~\scriptsize$\blacktriangledown$\hfill$=$&\Block[draw]{}{}\useKV[Tableur]{Formule}\hfill\scriptsize$\blacktriangledown$\\ + %\cline{1-2}\cline{4-4}% + \end{NiceTabular}% + \nopagebreak + \\ + }{} \cntlin\z@ \t@b{% \begin{NiceTabular}{% - |>{% + >{% \columncolor{gray!15} - \global\cntcol\z@\global\advance\cntlin\@ne - \centering\arraybackslash - \ifnum\cntlin>\@ne\number\numexpr\cntlin-1\relax\fi} - p{2em}|*{\useKV[Tableur]{Colonnes}}{X|}}% - \hline + \global\cntcol\z@\global\advance\cntlin\@ne + \centering\arraybackslash + \ifnum\cntlin>\@ne\number\numexpr\cntlin-1\relax\fi} + p{2em}Y*{\fpeval{\useKV[Tableur]{Colonnes}-1}}{X}}[hvlines]% \rowcolor{gray!15}}% - \loop - \ifnum\cntcol<\useKV[Tableur]{Colonnes} - \advance\cntcol\@ne - \addtot@b{&}% - \edftot@b{{\noexpand\@Alph\the\cntcol}}% - \repeat - \addtot@b{\\\hline&}% + \loop + \ifnum\cntcol<\useKV[Tableur]{Colonnes} + \advance\cntcol\@ne + \addtot@b{&}% + \edftot@b{{\noexpand\@Alph\the\cntcol}}% + \repeat + \addtot@b{\\&}% \collectcp@body}{\the\t@b} -\makeatother + \makeatother %%% % Domino @@ -13419,8 +13463,8 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \setcounter{nbprog}{0}% \newcommand\ProgCalcul[2][]{% - % #1 : clés - % #2 : étapes + % #1 : cl\'es + % #2 : \'etapes \useKVdefault[ClesProg]% \setKV[ClesProg]{#1}% \setsepchar[*]{,* }\ignoreemptyitems% @@ -13850,7 +13894,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \mplibforcehmode% \myfontScratch% \begin{mplibcode}% - input PfC-Scratch;% + input PfCScratch;% print:=\useKV[Scratch]{Impression};% NumeroteLignes:=\useKV[Scratch]{Numerotation};% \BODY @@ -13863,7 +13907,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \else \NewEnviron{Scratch}[1][]{% \setKV[Scratch]{#1}% - \begin{mpost}[mpsettings={input PfC-Scratch-pdf;print:=\useKV[Scratch]{Impression};NumeroteLignes:=\useKV[Scratch]{Numerotation};Echelle:=\useKV[Scratch]{Echelle};}]% + \begin{mpost}[mpsettings={input PfCScratchpdf;print:=\useKV[Scratch]{Impression};NumeroteLignes:=\useKV[Scratch]{Numerotation};Echelle:=\useKV[Scratch]{Echelle};}]% \BODY picture recap;% recap:=currentpicture scaled Echelle;% diff --git a/macros/latex/contrib/profcollege/metapost/PfC-Afficheur.mp b/macros/latex/contrib/profcollege/metapost/PfC-Afficheur.mp deleted file mode 100644 index 166cd22979..0000000000 --- a/macros/latex/contrib/profcollege/metapost/PfC-Afficheur.mp +++ /dev/null @@ -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; - diff --git a/macros/latex/contrib/profcollege/metapost/PfC-Calculatrice.mp b/macros/latex/contrib/profcollege/metapost/PfC-Calculatrice.mp deleted file mode 100644 index 92d4d3057d..0000000000 --- a/macros/latex/contrib/profcollege/metapost/PfC-Calculatrice.mp +++ /dev/null @@ -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; diff --git a/macros/latex/contrib/profcollege/metapost/PfC-Calculatriceold.mp b/macros/latex/contrib/profcollege/metapost/PfC-Calculatriceold.mp deleted file mode 100644 index 0140e24b4d..0000000000 --- a/macros/latex/contrib/profcollege/metapost/PfC-Calculatriceold.mp +++ /dev/null @@ -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; diff --git a/macros/latex/contrib/profcollege/metapost/PfC-Constantes.mp b/macros/latex/contrib/profcollege/metapost/PfC-Constantes.mp deleted file mode 100644 index 02895dcf8c..0000000000 --- a/macros/latex/contrib/profcollege/metapost/PfC-Constantes.mp +++ /dev/null @@ -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; diff --git a/macros/latex/contrib/profcollege/metapost/PfC-Geometrie.mp b/macros/latex/contrib/profcollege/metapost/PfC-Geometrie.mp deleted file mode 100644 index 222df57419..0000000000 --- a/macros/latex/contrib/profcollege/metapost/PfC-Geometrie.mp +++ /dev/null @@ -1,1206 +0,0 @@ -%=============================================== -%% PfC-Geometrie -%% christophe.poulain@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)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)(-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; diff --git a/macros/latex/contrib/profcollege/metapost/PfC-LaTeX.mp b/macros/latex/contrib/profcollege/metapost/PfC-LaTeX.mp deleted file mode 100644 index 33d9848b63..0000000000 --- a/macros/latex/contrib/profcollege/metapost/PfC-LaTeX.mp +++ /dev/null @@ -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; diff --git a/macros/latex/contrib/profcollege/metapost/PfC-Scratch-pdf.mp b/macros/latex/contrib/profcollege/metapost/PfC-Scratch-pdf.mp deleted file mode 100644 index f3800b3d99..0000000000 --- a/macros/latex/contrib/profcollege/metapost/PfC-Scratch-pdf.mp +++ /dev/null @@ -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; - diff --git a/macros/latex/contrib/profcollege/metapost/PfC-Scratch.mp b/macros/latex/contrib/profcollege/metapost/PfC-Scratch.mp deleted file mode 100644 index 8da257901b..0000000000 --- a/macros/latex/contrib/profcollege/metapost/PfC-Scratch.mp +++ /dev/null @@ -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; - diff --git a/macros/latex/contrib/profcollege/metapost/PfC-Svgnames.mp b/macros/latex/contrib/profcollege/metapost/PfC-Svgnames.mp deleted file mode 100644 index 3aa2cf2386..0000000000 --- a/macros/latex/contrib/profcollege/metapost/PfC-Svgnames.mp +++ /dev/null @@ -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 diff --git a/macros/latex/contrib/profcollege/metapost/PfCAfficheur.mp b/macros/latex/contrib/profcollege/metapost/PfCAfficheur.mp new file mode 100644 index 0000000000..166cd22979 --- /dev/null +++ b/macros/latex/contrib/profcollege/metapost/PfCAfficheur.mp @@ -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; + diff --git a/macros/latex/contrib/profcollege/metapost/PfCCalculatrice.mp b/macros/latex/contrib/profcollege/metapost/PfCCalculatrice.mp new file mode 100644 index 0000000000..92d4d3057d --- /dev/null +++ b/macros/latex/contrib/profcollege/metapost/PfCCalculatrice.mp @@ -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; diff --git a/macros/latex/contrib/profcollege/metapost/PfCConstantes.mp b/macros/latex/contrib/profcollege/metapost/PfCConstantes.mp new file mode 100644 index 0000000000..02895dcf8c --- /dev/null +++ b/macros/latex/contrib/profcollege/metapost/PfCConstantes.mp @@ -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; diff --git a/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp b/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp new file mode 100644 index 0000000000..222df57419 --- /dev/null +++ b/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp @@ -0,0 +1,1206 @@ +%=============================================== +%% PfC-Geometrie +%% christophe.poulain@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)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)(-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; diff --git a/macros/latex/contrib/profcollege/metapost/PfCLaTeX.mp b/macros/latex/contrib/profcollege/metapost/PfCLaTeX.mp new file mode 100644 index 0000000000..33d9848b63 --- /dev/null +++ b/macros/latex/contrib/profcollege/metapost/PfCLaTeX.mp @@ -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; diff --git a/macros/latex/contrib/profcollege/metapost/PfCScratch.mp b/macros/latex/contrib/profcollege/metapost/PfCScratch.mp new file mode 100644 index 0000000000..75a0e0edcc --- /dev/null +++ b/macros/latex/contrib/profcollege/metapost/PfCScratch.mp @@ -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; + diff --git a/macros/latex/contrib/profcollege/metapost/PfCScratchpdf.mp b/macros/latex/contrib/profcollege/metapost/PfCScratchpdf.mp new file mode 100644 index 0000000000..f3800b3d99 --- /dev/null +++ b/macros/latex/contrib/profcollege/metapost/PfCScratchpdf.mp @@ -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; + diff --git a/macros/latex/contrib/profcollege/metapost/PfCSvgnames.mp b/macros/latex/contrib/profcollege/metapost/PfCSvgnames.mp new file mode 100644 index 0000000000..3aa2cf2386 --- /dev/null +++ b/macros/latex/contrib/profcollege/metapost/PfCSvgnames.mp @@ -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 -- cgit v1.2.3