diff options
Diffstat (limited to 'macros/latex/contrib/profcollege/latex/PfCPythagoreold.tex')
-rw-r--r-- | macros/latex/contrib/profcollege/latex/PfCPythagoreold.tex | 516 |
1 files changed, 516 insertions, 0 deletions
diff --git a/macros/latex/contrib/profcollege/latex/PfCPythagoreold.tex b/macros/latex/contrib/profcollege/latex/PfCPythagoreold.tex new file mode 100644 index 0000000000..c416595207 --- /dev/null +++ b/macros/latex/contrib/profcollege/latex/PfCPythagoreold.tex @@ -0,0 +1,516 @@ +%%% +% 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,Echelle=1cm,Reciproque=false,ReciColonnes=false,Faible=false,Unite=cm,EnchaineA=false,EnchaineB=false,EnchaineC=false,ValeurA=0,ValeurB=0,ValeurC=0,Perso=false,AllPerso=false,SansMots=false} + +% 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\`eme sommet + % #4 1ere longueur + % #5 2eme longueur + % #6 angle de rotation de la figure + \ifluatex + \mplibforcehmode + \begin{mplibcode} + u:=\useKV[ClesPythagore]{Echelle}; + pair A,B,C,O,D,E,F;%B est le sommet de l'angle droit + 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\`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 \'eventuellement moins de lassitude :) + A:=A rotatedabout(O,#6); + B:=B rotatedabout(O,#6); + C:=C rotatedabout(O,#6); + % On d\'efinit l'angle droit + D-B=7*unitvector(C-B); + F-B=7*unitvector(A-B); + E-D=F-B; + draw A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)}; + draw B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)}; + draw C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)}; + draw D--E--F; + numeric decalage; + decalage=3mm; + if (#4<#5) or (#4=#5) : + if ypart(B)>ypart(O) : + label(btex \num{#4} etex,1/2[C,B]-decalage*(unitvector(A-B))); + label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B))); + else: + label(btex \num{#4} etex,1/2[C,B]-decalage*(unitvector(A-B))); + label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B))); + fi + else: + if ypart(B)>ypart(O) : + label(btex \num{#4} etex,1/2[C,A]-decalage*(unitvector(C-A) rotated 90)); + label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B))); + else: + label(btex \num{#4} etex,1/2[A,C]+decalage*(unitvector(A-C) + rotated 90)); + label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B))); + fi; + fi; + label(btex #3 etex,1.2[O,A]); + label(btex #2 etex,1.2[O,B]); + label(btex #1 etex,1.2[O,C]); + \end{mplibcode} + \else + \begin{mpost}[mpsettings={u:=\useKV[ClesPythagore]{Echelle};}] + pair A,B,C,O,D,E,F;%B est le sommet de l'angle droit + 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\`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 \'eventuellement moins de lassitude :) + A:=A rotatedabout(O,#6); + B:=B rotatedabout(O,#6); + C:=C rotatedabout(O,#6); + % On d\'efinit l'angle droit + D-B=7*unitvector(C-B); + F-B=7*unitvector(A-B); + E-D=F-B; + draw A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)}; + draw B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)}; + draw C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)}; + draw D--E--F; + decalage=3mm; + if (#4<#5) or (#4=#5) : + if ypart(B)>ypart(O) : + label(btex \num{#4} etex,1/2[C,B]-decalage*(unitvector(A-B))); + label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B))); + else: + label(btex \num{#4} etex,1/2[C,B]-decalage*(unitvector(A-B))); + label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B))); + fi + else: + if ypart(B)>ypart(O) : + label(btex \num{#4} etex,1/2[C,A]-decalage*(unitvector(C-A) rotated 90)); + label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B))); + else: + label(btex \num{#4} etex,1/2[A,C]+decalage*(unitvector(A-C) + rotated 90)); + label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B))); + fi; + fi; + label(btex #3 etex,1.2[O,A]); + label(btex #2 etex,1.2[O,B]); + label(btex #1 etex,1.2[O,C]); + \end{mpost} + \fi +} + +\def\MPFigureReciPytha#1#2#3#4#5#6#7{% + % #1 Premier sommet + % #2 Sommet de l'angle droit + % #3 troisi\`eme sommet + % #4 1ere longueur + % #5 2eme longueur + % #6 3eme longueur + % #7 angle de rotation de la figure + \ifluatex + \mplibforcehmode + \begin{mplibcode} + u:=\useKV[ClesPythagore]{Echelle}; + pair A,B,C,O,D,E,F;%B est le sommet de l'angle droit + 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\`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 \'eventuellement moins de lassitude :) + A:=A rotatedabout(O,#7); + B:=B rotatedabout(O,#7); + C:=C rotatedabout(O,#7); + draw A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)}; + draw B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)}; + draw C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)}; + decalage=3mm; + if ypart(B)>ypart(O) : + label(btex \num{#4} etex,1/2[C,A]-decalage*(unitvector(C-A) rotated 90)); + label(btex \num{#5} etex,1/2[C,B]-decalage*(unitvector(C-B))); + label(btex \num{#6} etex,1/2[A,B]-decalage*(unitvector(C-B))); + else: + label(btex \num{#4} etex,1/2[A,C]+decalage*(unitvector(A-C) rotated 90)); + label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B))); + label(btex \num{#6} etex,1/2[C,B]-decalage*(unitvector(A-B))); + fi; + label(btex #1 etex,1.2[O,A]); + label(btex #2 etex,1.2[O,B]); + label(btex #3 etex,1.2[O,C]); + \end{mplibcode} + \else + \begin{mpost}[mpsettings={u:=\useKV[ClesPythagore]{Echelle};}] + pair A,B,C,O,D,E,F;%B est le sommet de l'angle droit + 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\`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 \'eventuellement moins de lassitude :) + A:=A rotatedabout(O,#7); + B:=B rotatedabout(O,#7); + C:=C rotatedabout(O,#7); + draw A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)}; + draw B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)}; + draw C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)}; + decalage=3mm; + if ypart(B)>ypart(O) : + label(LATEX("\num{"&decimal(#4)&"}") rotated angle(C-A),1/2[C,A]-decalage*(unitvector(C-A) rotated 90)); + label(LATEX("\num{"&decimal(#5)&"}") rotated(angle(C-B)),1/2[C,B]-decalage*(unitvector(C-B))); + label(LATEX("\num{"&decimal(#6)&"}") rotated(angle(B-A)),1/2[A,B]-decalage*(unitvector(C-B))); + else: + label(LATEX("\num{"&decimal(#4)&"}") rotated angle(A-C),1/2[A,C]+decalage*(unitvector(A-C) rotated 90)); + label(LATEX("\num{"&decimal(#5)&"}") rotated(angle(A-B)),1/2[A,B]-decalage*(unitvector(C-B))); + label(LATEX("\num{"&decimal(#6)&"}") rotated angle(C-B),1/2[C,B]-decalage*(unitvector(A-B))); + fi; + label(btex #1 etex,1.2[O,A]); + label(btex #2 etex,1.2[O,B]); + label(btex #3 etex,1.2[O,C]); + \end{mpost} + \fi +} + +\def\MPFigurePythaSansMots#1#2#3#4#5#6{% + % #1 Premier sommet + % #2 Sommet de l'angle droit + % #3 troisi\`eme sommet + % #4 1ere longueur + % #5 2eme longueur + % #6 angle de rotation de la figure + \ifluatex + \mplibforcehmode + \begin{mplibcode} + u:=\useKV[ClesPythagore]{Echelle}; + pair A,B,C,O,D,E,F,L[],M[],N[];%B est le sommet de l'angle droit + 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\`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 \'eventuellement moins de lassitude :) + A:=A rotatedabout(O,#6); + B:=B rotatedabout(O,#6); + C:=C rotatedabout(O,#6); + % On d\'efinit l'angle droit + D-B=7*unitvector(C-B); + F-B=7*unitvector(A-B); + E-D=F-B; + trace polygone(A,B,C); + draw D--E--F; + L1=rotation(B,A,90); + L2-L1=B-A; + trace chemin(A,L1,L2,B); + M1=rotation(C,B,90); + M2-M1=C-B; + trace chemin(B,M1,M2,C); + N1=rotation(A,C,90); + N2-N1=A-C; + trace chemin(C,N1,N2,A); + numeric decalage; + decalage=3mm; + if (#4<#5) or (#4=#5) : + if ypart(B)>ypart(O) : + label(btex \num{#4} etex,1/2[C,B]+decalage*(unitvector(A-B))); + label(btex \num{#5} etex,1/2[A,B]+decalage*(unitvector(C-B))); + label(TEX("\begin{tabular}{c}Aire\\$\num{#5}\times\num{#5}$\\$\num{\fpeval{#5*#5}}$\\\end{tabular}"),iso(A,L2)); + label(TEX("\begin{tabular}{c}Aire\\$\num{#4}\times\num{#4}$\\$\num{\fpeval{#4*#4}}$\\\end{tabular}"),iso(B,M2)); + label(TEX("\begin{tabular}{c}Aire\\$\num{\fpeval{#4*#4}}+\num{\fpeval{#5*#5}}$\\$\num{\fpeval{#4*#4+#5*#5}}$\\\end{tabular}"),iso(C,N2)); + else: + label(btex \num{#4} etex,1/2[C,B]+decalage*(unitvector(A-B))); + label(btex \num{#5} etex,1/2[A,B]+decalage*(unitvector(C-B))); + label(TEX("\begin{tabular}{c}Aire\\$\num{#5}\times\num{#5}$\\$\num{\fpeval{#5*#5}}$\\\end{tabular}"),iso(A,L2)); + label(TEX("\begin{tabular}{c}Aire\\$\num{#4}\times\num{#4}$\\$\num{\fpeval{#4*#4}}$\\\end{tabular}"),iso(B,M2)); + label(TEX("\begin{tabular}{c}Aire\\$\num{\fpeval{#4*#4}}+\num{\fpeval{#5*#5}}$\\$\num{\fpeval{#4*#4+#5*#5}}$\\\end{tabular}"),iso(C,N2)); + drawarrow 2/10[iso(A,L2),iso(C,N2)]--8/10[iso(A,L2),iso(C,N2)]; + drawarrow 2/10[iso(B,M2),iso(C,N2)]--8/10[iso(B,M2),iso(C,N2)]; + fi + else: + if ypart(B)>ypart(O) : + label(btex \num{#4} etex,1/2[C,A]-decalage*(unitvector(C-A) rotated 90)); + label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B))); + label(TEX("\begin{tabular}{c}Aire\\$\num{#5}\times\num{#5}$\\$\num{\fpeval{#5*#5}}$\\\end{tabular}"),iso(A,L2)); + label(TEX("\begin{tabular}{c}Aire\\$\num{#4}\times\num{#4}$\\$\num{\fpeval{#4*#4}}$\\\end{tabular}"),iso(C,N2)); + label(TEX("\begin{tabular}{c}Aire\\$\num{\fpeval{#4*#4}}-\num{\fpeval{#5*#5}}$\\$\num{\fpeval{#4*#4-#5*#5}}$\\\end{tabular}"),iso(B,M2)); + drawarrow 2/10[iso(A,L2),iso(B,M2)]--8/10[iso(A,L2),iso(B,M2)]; + drawarrow 2/10[iso(C,N2),iso(B,M2)]--8/10[iso(C,N2),iso(B,M2)]; + else: + label(btex \num{#4} etex,1/2[A,C]+decalage*(unitvector(A-C) rotated 90)); + label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B))); + label(TEX("\begin{tabular}{c}Aire\\$\num{#5}\times\num{#5}$\\$\num{\fpeval{#5*#5}}$\\\end{tabular}"),iso(A,L2)); + label(TEX("\begin{tabular}{c}Aire\\$\num{#4}\times\num{#4}$\\$\num{\fpeval{#4*#4}}$\\\end{tabular}"),iso(C,N2)); + label(TEX("\begin{tabular}{c}Aire\\$\num{\fpeval{#4*#4}}-\num{\fpeval{#5*#5}}$\\$\num{\fpeval{#4*#4-#5*#5}}$\\\end{tabular}"),iso(B,M2)); + drawarrow 2/10[iso(A,L2),iso(B,M2)]--8/10[iso(A,L2),iso(B,M2)]; + drawarrow 2/10[iso(C,N2),iso(B,M2)]--8/10[iso(C,N2),iso(B,M2)]; + fi; + fi; + label(btex #3 etex,1.2[O,A]); + label(btex #2 etex,1.2[O,B]); + label(btex #1 etex,1.2[O,C]); + \end{mplibcode} + \fi +} + +\newcommand\RedactionPythagore{}% +\newcommand\RedactionReciPythagore{}% +\newcommand\RedactionCalculsPythagore{}% +\newcommand\RedactionCalculsReciPythagore{}% +\newcommand\RedactionConclusionReciPythagore{}% + +% \newcommand\Pythagore[5][]{% +\NewDocumentCommand\Pythagore{o m m m m}{% + % #1 Param\`etres sous forme de cl\'es + % #2 Nom "complet" du triangle : ABC par exemple + % #3 Premi\`ere longueur + % #4 Deuxi\`eme longueur + % #5 Troisi\`eme longueur (\'eventuellement vide) + \useKVdefault[ClesPythagore]% + \setKV[ClesPythagore]{#1}% + \DeclareSIUnit{\PfCPythaUnit}{\useKV[ClesPythagore]{Unite}}% + \ifboolKV[ClesPythagore]{Reciproque}{% + % On retient les noms des sommets + \StrMid{#2}{1}{1}[\NomA]% + \StrMid{#2}{2}{2}[\NomB]% + \StrMid{#2}{3}{3}[\NomC]% + \xdef\NomTriangle{\NomA\NomB\NomC}% + % on stocke les valeurs donn\'ees + \opcopy{#3}{A1}% + \opcopy{#4}{A2}% + \opcopy{#5}{A3}% + \xdef\GrandCote{#3}% + \xdef\PetitCote{#4}% + \xdef\MoyenCote{#5}% + % On trace une figure ou pas ? + \ifboolKV[ClesPythagore]{FigureSeule}{% + \MPFigureReciPytha{\NomA}{\NomB}{\NomC}{#3}{#4}{#5}{\useKV[ClesPythagore]{Angle}}% + }{% + \ifboolKV[ClesPythagore]{Figure}{%Utilisation obligatoire de l'option --shell-escape de la compilation + \begin{multicols}{2} + {\em La figure est donn\'ee \`a titre indicatif.}% + \[\MPFigureReciPytha{\NomA}{\NomB}{\NomC}{#3}{#4}{#5}{\useKV[ClesPythagore]{Angle}}\]% + \par\columnbreak\par% + \ifboolKV[ClesPythagore]{AllPerso}{% + \RedactionReciPythagore% + \RedactionCalculsReciPythagore% + \RedactionConclusionReciPythagore% + }{% + % on r\'edige + \ifboolKV[ClesPythagore]{Perso}{% + \RedactionReciPythagore% + }{% + Dans le triangle $#2$, $[\NomA\NomC]$ est le plus grand c\^ot\'e.% + } + \ifboolKV[ClesPythagore]{ReciColonnes}{% + \[ + \begin{array}{cccc|cccc} + &&\NomA\NomC^2&&&\NomA\NomB^2&+&\NomB\NomC^2\\ + &&\opexport{A1}{\Aun}\num{\Aun}^2&&&\opexport{A2}{\Adeux}\num{\Adeux}^2&+&\opexport{A3}{\Atrois}\num{\Atrois}^2\\ + &&\opmul*{A1}{A1}{a1}&&&\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}&+&\opmul*{A3}{A3}{a3}\opexport{a3}{\Atrois}\num{\Atrois}\\ + &&\opexport{a1}{\Aun}\num{\Aun}&&&\multicolumn{3}{c}{\opadd*{a2}{a3}{a4}\opexport{a4}{\Aquatre}\num{\Aquatre}}\\ + \end{array} + \] + }{% + \[\left. + \begin{array}{l} + \NomA\NomC^2=\opexport{A1}{\Aun}\num{\Aun}^2=\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}\\ + \\ + \NomA\NomB^2+\NomB\NomC^2=\opexport{A2}{\Adeux}\num{\Adeux}^2+\opexport{A3}{\Atrois}\num{\Atrois}^2=\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}+\opmul*{A3}{A3}{a3}\opexport{a3}{\Atrois}\num{\Atrois}=\opadd*{a2}{a3}{a4}\opexport{a4}{\Aquatre}\num{\Aquatre}\\ + \end{array} + \right\}\opcmp{a1}{a4}\ifopeq\NomA\NomC^2=\NomA\NomB^2+\NomB\NomC^2\fi\opcmp{a1}{a4}\ifopneq\NomA\NomC^2\not=\NomA\NomB^2+\NomB\NomC^2\fi + \] + } + \ifboolKV[ClesPythagore]{Egalite}{% + \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\`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\`es la contrapos\'ee du th\'eor\`eme de Pythagore.}\fi% + } + } + \end{multicols} + }{% + \ifboolKV[ClesPythagore]{AllPerso}{% + \RedactionReciPythagore% + \RedactionCalculsReciPythagore% + \RedactionConclusionReciPythagore% + }{% + \ifboolKV[ClesPythagore]{Perso}{\RedactionReciPythagore}{% + Dans le triangle $#2$, $[\NomA\NomC]$ est le plus grand c\^ot\'e.% + } + \ifboolKV[ClesPythagore]{ReciColonnes}{% + \[ + \begin{array}{cccc|cccc} + &&\NomA\NomC^2&&&\NomA\NomB^2&+&\NomB\NomC^2\\ + &&\opexport{A1}{\Aun}\num{\Aun}^2&&&\opexport{A2}{\Adeux}\num{\Adeux}^2&+&\opexport{A3}{\Atrois}\num{\Atrois}^2\\ + &&\opmul*{A1}{A1}{a1}&&&\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}&+&\opmul*{A3}{A3}{a3}\opexport{a3}{\Atrois}\num{\Atrois}\\ + &&\opexport{a1}{\Aun}\num{\Aun}&&&\multicolumn{3}{c}{\opadd*{a2}{a3}{a4}\opexport{a4}{\Aquatre}\num{\Aquatre}}\\ + \end{array} + \] + }{% + \[\left. + \begin{array}{l} + \NomA\NomC^2=\opexport{A1}{\Aun}\num{\Aun}^2=\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}\\ + \\ + \NomA\NomB^2+\NomB\NomC^2=\opexport{A2}{\Adeux}\num{\Adeux}^2+\opexport{A3}{\Atrois}\num{\Atrois}^2=\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}+\opmul*{A3}{A3}{a3}\opexport{a3}{\Atrois}\num{\Atrois}=\opadd*{a2}{a3}{a4}\opexport{a4}{\Aquatre}\num{\Aquatre}\\ + \end{array} + \right\}\opcmp{a1}{a4}\ifopeq\NomA\NomC^2=\NomA\NomB^2+\NomB\NomC^2\fi\opcmp{a1}{a4}\ifopneq\NomA\NomC^2\not=\NomA\NomB^2+\NomB\NomC^2\fi + \] + }% + \ifboolKV[ClesPythagore]{Egalite}{% + \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\`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\`es la contrapos\'ee du th\'eor\`eme de Pythagore.}\fi% + }% + }% + }% + }% + }{% + % [xlop] param\`etres de calcul + \opcopy{#3}{A1}% + \opcopy{#4}{A2}% + \opcopy{\useKV[ClesPythagore]{Precision}}{pres}% + \xintifboolexpr{#3<#4 || #3==#4}{ + \xdef\PetitCote{#3}% + \xdef\MoyenCote{#4}% + \xdef\GrandCote{}% + }{% + \xdef\GrandCote{#3}% + \xdef\MoyenCote{#4}% + \xdef\PetitCote{}% Pour la personnalisation + } + % On retient les noms des sommets + \StrMid{#2}{1}{1}[\NomA]% + \StrMid{#2}{2}{2}[\NomB]% + \StrMid{#2}{3}{3}[\NomC]% + \xdef\NomTriangle{\NomA\NomB\NomC}% + \xdef\NomAngleDroit{\NomB}% + \xdef\NomSommetA{\NomA}% + \xdef\NomSommetC{\NomC}% + % On trace une figure ou pas ? + \ifboolKV[ClesPythagore]{FigureSeule}{% + \xintifboolexpr{#3<#4 || #3==#4}{% + \xdef\ResultatPytha{\fpeval{round(sqrt(#3^2+#4^2),\useKV[ClesPythagore]{Precision})}}% + }{% + \xdef\ResultatPytha{\fpeval{round(sqrt(#3^2-#4^2),\useKV[ClesPythagore]{Precision})}}% + }% + \MPFigurePytha{\NomA}{\NomB}{\NomC}{#3}{#4}{\useKV[ClesPythagore]{Angle}} + }{% + \ifboolKV[ClesPythagore]{Figure}{% + \begin{multicols}{2}% + {\em La figure est donn\'ee \`a titre indicatif.}% + \[\MPFigurePytha{\NomA}{\NomB}{\NomC}{#3}{#4}{\useKV[ClesPythagore]{Angle}}\] + \par\columnbreak\par% + % On d\'emarre la r\'esolution + \ifboolKV[ClesPythagore]{AllPerso}{% + \RedactionPythagore% + \RedactionCalculsPythagore% + }{% + \ifboolKV[ClesPythagore]{Perso}{% + \RedactionCalculsPythagore% + }{% + \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})}}% + \begin{align*} + \NomA\NomC^2&=\NomA\NomB^2+\NomB\NomC^2\\ + \NomA\NomC^2&=\ifboolKV[ClesPythagore]{EnchaineA}{\opcopy{\useKV[ClesPythagore]{ValeurA}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opexport{A1}{\Aun}\num{\Aun}^2}+\ifboolKV[ClesPythagore]{EnchaineB}{\opcopy{\useKV[ClesPythagore]{ValeurB}}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}{\opexport{A2}{\Adeux}\num{\Adeux}^2}\\ + \NomA\NomC^2&=\ifboolKV[ClesPythagore]{EnchaineA}{\opexport{a1}{\Aun}\num{\Aun}}{\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}}+\ifboolKV[ClesPythagore]{EnchaineB}{\opexport{a2}{\Adeux}\num{\Adeux}}{\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}\\ + \NomA\NomC^2&=\opadd*{a1}{a2}{a3}\opexport{a3}{\Atrois}\num{\Atrois}%\\ + \ifboolKV[ClesPythagore]{AvantRacine}{}{% + \ifboolKV[ClesPythagore]{Entier}{}{\\\NomA\NomC&=\sqrt{\opexport{a3}{\Atrois}\num{\Atrois}}} + \ifboolKV[ClesPythagore]{Racine}{}{\\\ifboolKV[ClesPythagore]{Exact}{\NomA\NomC&=\opsqrt[maxdivstep=3]{a3}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}{\NomA\NomC&\approx\opsqrt[maxdivstep=5]{a3}{a4}\opround{a4}{pres}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}}%\\ + }% + \end{align*} + }{%\else% + \xdef\ResultatPytha{\fpeval{round(sqrt(#3^2-#4^2),\useKV[ClesPythagore]{Precision})}}% + \begin{align*} + \NomA\NomC^2&=\NomA\NomB^2+\NomB\NomC^2\\ + \ifboolKV[ClesPythagore]{EnchaineC}{\opcopy{\useKV[ClesPythagore]{ValeurC}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opexport{A1}{\Aun}\num{\Aun}^2}&=\NomA\NomB^2+\ifboolKV[ClesPythagore]{EnchaineB}{\opcopy{\useKV[ClesPythagore]{ValeurB}}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}{\opexport{A2}{\Adeux}\num{\Adeux}^2}\\ + \ifboolKV[ClesPythagore]{EnchaineC}{\opcopy{\useKV[ClesPythagore]{ValeurC}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}}&=\NomA\NomB^2+\ifboolKV[ClesPythagore]{EnchaineB}{\opexport{a2}{\Adeux}\num{\Adeux}}{\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}\\ + \NomA\NomB^2&=\ifboolKV[ClesPythagore]{EnchaineC}{\opcopy{\useKV[ClesPythagore]{ValeurC}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}}-\ifboolKV[ClesPythagore]{EnchaineB}{\opexport{a2}{\Adeux}\num{\Adeux}}{\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}\\ + \NomA\NomB^2&=\opsub*{a1}{a2}{a3}\opexport{a3}{\Atrois}\num{\Atrois}%\\ + \ifboolKV[ClesPythagore]{AvantRacine}{}{% + \ifboolKV[ClesPythagore]{Entier}{}{\\\NomA\NomB&=\sqrt{\opexport{a3}{\Atrois}\num{\Atrois}}} + \ifboolKV[ClesPythagore]{Racine}{}{\\\ifboolKV[ClesPythagore]{Exact}{\NomA\NomB&=\opsqrt[maxdivstep=3]{a3}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}{\NomA\NomB&\approx\opsqrt[maxdivstep=5]{a3}{a4}\opround{a4}{pres}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}}%\\ + }% + \end{align*} + }%\fi% + } + \end{multicols} + }{% + % On d\'emarre la r\'esolution + \ifboolKV[ClesPythagore]{SansMots}{% + \MPFigurePythaSansMots{\NomA}{\NomB}{\NomC}{#3}{#4}{\useKV[ClesPythagore]{Angle}}% + }{% + \ifboolKV[ClesPythagore]{AllPerso}{% + \RedactionPythagore% + \RedactionCalculsPythagore% + }{% + \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})}}% + \begin{align*} + \NomA\NomC^2&=\NomA\NomB^2+\NomB\NomC^2\\ + \NomA\NomC^2&=\ifboolKV[ClesPythagore]{EnchaineA}{\opcopy{\useKV[ClesPythagore]{ValeurA}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opexport{A1}{\Aun}\num{\Aun}^2}+\ifboolKV[ClesPythagore]{EnchaineB}{\opcopy{\useKV[ClesPythagore]{ValeurB}}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}{\opexport{A2}{\Adeux}\num{\Adeux}^2}\\ + \NomA\NomC^2&=\ifboolKV[ClesPythagore]{EnchaineA}{\opexport{a1}{\Aun}\num{\Aun}}{\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}}+\ifboolKV[ClesPythagore]{EnchaineB}{\opexport{a2}{\Adeux}\num{\Adeux}}{\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}\\ + \NomA\NomC^2&=\opadd*{a1}{a2}{a3}\opexport{a3}{\Atrois}\num{\Atrois}%\\ + \ifboolKV[ClesPythagore]{AvantRacine}{}{% + \ifboolKV[ClesPythagore]{Entier}{}{\\\NomA\NomC&=\sqrt{\opexport{a3}{\Atrois}\num{\Atrois}}} + \ifboolKV[ClesPythagore]{Racine}{}{\\\ifboolKV[ClesPythagore]{Exact}{\NomA\NomC&=\opsqrt[maxdivstep=3]{a3}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}{\NomA\NomC&\approx\opsqrt[maxdivstep=5]{a3}{a4}\opround{a4}{pres}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}}%\\ + } + \end{align*} + }{%\else + \xdef\ResultatPytha{\fpeval{round(sqrt(#3^2-#4^2),\useKV[ClesPythagore]{Precision})}}% + \ifboolKV[ClesPythagore]{Soustraction}{% + \begin{align*} + \NomA\NomB^2&=\NomA\NomC^2-\NomB\NomC^2\\ + \NomA\NomB^2&=\ifboolKV[ClesPythagore]{EnchaineC}{\opcopy{\useKV[ClesPythagore]{ValeurC}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opexport{A1}{\Aun}\num{\Aun}^2}-\ifboolKV[ClesPythagore]{EnchaineB}{\opcopy{\useKV[ClesPythagore]{ValeurB}}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}{\opexport{A2}{\Adeux}\num{\Adeux}^2}\\ + \NomA\NomB^2&=\ifboolKV[ClesPythagore]{EnchaineC}{\opcopy{\useKV[ClesPythagore]{ValeurC}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}}-\ifboolKV[ClesPythagore]{EnchaineB}{\opexport{a2}{\Adeux}\num{\Adeux}}{\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}\\ + \NomA\NomB^2&=\opsub*{a1}{a2}{a3}\opexport{a3}{\Atrois}\num{\Atrois}%\\ + \ifboolKV[ClesPythagore]{AvantRacine}{}{% + \ifboolKV[ClesPythagore]{Entier}{}{\\\NomA\NomB&=\sqrt{\opexport{a3}{\Atrois}\num{\Atrois}}} + \ifboolKV[ClesPythagore]{Racine}{}{\\\ifboolKV[ClesPythagore]{Exact}{\NomA\NomB&=\opsqrt[maxdivstep=3]{a3}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}{\NomA\NomB&\approx\opsqrt[maxdivstep=5]{a3}{a4}\opround{a4}{pres}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}}%\\ + } + \end{align*} + }{% + \begin{align*} + \NomA\NomC^2&=\NomA\NomB^2+\NomB\NomC^2\\ + \ifboolKV[ClesPythagore]{EnchaineC}{\opcopy{\useKV[ClesPythagore]{ValeurC}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opexport{A1}{\Aun}\num{\Aun}^2}&=\NomA\NomB^2+\ifboolKV[ClesPythagore]{EnchaineB}{\opcopy{\useKV[ClesPythagore]{ValeurB}}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}{\opexport{A2}{\Adeux}\num{\Adeux}^2}\\ + \ifboolKV[ClesPythagore]{EnchaineC}{\opcopy{\useKV[ClesPythagore]{ValeurC}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}}&=\NomA\NomB^2+\ifboolKV[ClesPythagore]{EnchaineB}{\opexport{a2}{\Adeux}\num{\Adeux}}{\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}\\ + \NomA\NomB^2&=\ifboolKV[ClesPythagore]{EnchaineC}{\opcopy{\useKV[ClesPythagore]{ValeurC}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}}-\ifboolKV[ClesPythagore]{EnchaineB}{\opexport{a2}{\Adeux}\num{\Adeux}}{\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}\\ + \NomA\NomB^2&=\opsub*{a1}{a2}{a3}\opexport{a3}{\Atrois}\num{\Atrois}%\\ + \ifboolKV[ClesPythagore]{AvantRacine}{}{% + \ifboolKV[ClesPythagore]{Entier}{}{\\\NomA\NomB&=\sqrt{\opexport{a3}{\Atrois}\num{\Atrois}}}% + \ifboolKV[ClesPythagore]{Racine}{}{\\\ifboolKV[ClesPythagore]{Exact}{\NomA\NomB&=\opsqrt[maxdivstep=3]{a3}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}{\NomA\NomB&\approx\opsqrt[maxdivstep=5]{a3}{a4}\opround{a4}{pres}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}}%\\ + } + \end{align*} + }% + }%\fi% + }% + }% + }% + }% + }% +}%
\ No newline at end of file |