From e178dd8e5072a961829b8d3e5ff93fb37dd76a35 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 13 Mar 2022 20:48:57 +0000 Subject: profcollege (13mar22) git-svn-id: svn://tug.org/texlive/trunk@62686 c570f23f-e606-0410-a88d-b1316a301751 --- .../metapost/profcollege/PfCArithmetique.mp | 237 +++++++++++++++++++++ .../metapost/profcollege/PfCScratchpdf.mp | 38 ++-- 2 files changed, 256 insertions(+), 19 deletions(-) create mode 100644 Master/texmf-dist/metapost/profcollege/PfCArithmetique.mp (limited to 'Master/texmf-dist/metapost/profcollege') diff --git a/Master/texmf-dist/metapost/profcollege/PfCArithmetique.mp b/Master/texmf-dist/metapost/profcollege/PfCArithmetique.mp new file mode 100644 index 00000000000..870049c0113 --- /dev/null +++ b/Master/texmf-dist/metapost/profcollege/PfCArithmetique.mp @@ -0,0 +1,237 @@ +% Fichier regroupant les macros pour les schémas des nombres premiers + +numeric retenirnb[]; + +vardef Estcepremier(expr NBa)= + boolean $; + c:=2; + departa:=NBa; + test:=1; + $=true; + if departa=1: + $:=false; + else: + forever: + if (departa mod c)=0: + departa:=departa div c; + test:=test+1; + else: + c:=c+1; + fi; + exitif departa=1; + endfor; + fi; + if test=2: + $:=true + else: + $:=false; + fi; + $ +enddef; + +vardef PremierSimple(expr NB)= + b:=2; + depart:=NB; + if Estcepremier(depart)=false: + forever: + if (depart mod b)=0: + Ancre[k+1]-Ancre[k]=(-decalage*0.5,-decalage); + Ancre[k+2]-Ancre[k+1]=(decalage,0); + depart:=depart div b; + retenirnb[k+1]=b; + retenirnb[k+2]=depart; + label(TEX("\num{"&decimal(b)&"}"),Ancre[k+1]); + label(TEX("\num{"&decimal(depart)&"}"),Ancre[k+2]); + draw 1/5[Ancre[k],Ancre[k+1]]--4/5[Ancre[k],Ancre[k+1]]; + draw 1/5[Ancre[k],Ancre[k+2]]--4/5[Ancre[k],Ancre[k+2]]; + k:=k+2; + racine:=depart; + depart:=1; + else: + b:=b+1; + fi; + exitif depart=1; + endfor; + else: + racine:=1; + fi; +enddef; + +vardef PremierSimplePdf(expr NB)= + b:=2; + depart:=NB; + if Estcepremier(depart)=false: + forever: + if (depart mod b)=0: + Ancre[k+1]-Ancre[k]=(-decalage*0.5,-decalage); + Ancre[k+2]-Ancre[k+1]=(decalage,0); + depart:=depart div b; + retenirnb[k+1]=b; + retenirnb[k+2]=depart; + label(LATEX("\num{"&decimal(b)&"}"),Ancre[k+1]); + label(LATEX("\num{"&decimal(depart)&"}"),Ancre[k+2]); + draw 1/5[Ancre[k],Ancre[k+1]]--4/5[Ancre[k],Ancre[k+1]]; + draw 1/5[Ancre[k],Ancre[k+2]]--4/5[Ancre[k],Ancre[k+2]]; + k:=k+2; + racine:=depart; + depart:=1; + else: + b:=b+1; + fi; + exitif depart=1; + endfor; + else: + racine:=1; + fi; +enddef; + +vardef PremierSimpleArbre(expr NB)= + b:=2; + depart:=NB; + if Estcepremier(depart)=false: + forever: + if (depart mod b)=0: + Ancre[k+1]-Ancre[k]=(-decalage*0.5,-decalage); + Ancre[k+2]-Ancre[k+1]=(decalage,0); + depart:=depart div b; + retenirnb[k+1]=b; + retenirnb[k+2]=depart; + draw Branche(Ancre[k],Ancre[k+1]); + draw Branche(Ancre[k],Ancre[k+2]); + k:=k+2; + racine:=depart; + depart:=1; + else: + b:=b+1; + fi; + exitif depart=1; + endfor; + else: + racine:=1; + fi; +enddef; + +vardef NbEtape(expr nb)= + b:=2; + depart:=nb; + etape:=0; + Stock[0][0]=depart; + forever: + if (depart mod b)=0: + etape:=etape+1; + if etape=1: + Stock[etape][0]=b; + Stock[etape][etape]:=depart div b; + else: + for k=0 upto etape-2: + Stock[etape][k]:=Stock[etape-1][k]; + endfor; + Stock[etape][etape-1]:=b; + Stock[etape][etape]:=depart div b; + fi; + depart:=depart div b; + else: + b:=b+1; + fi; + exitif depart=1; + endfor; + etape +enddef; + +vardef Positions(expr Step)= + for k=0 upto (Step-1): + for l=0 upto k: + N[k][l]=(-k*dx+(l+k*.5)*dx,-k*dy); + label(TEX("\num{"&decimal(Stock[k][l])&"}"),N[k][l]); + endfor; + for l=0 upto k-1: + label(btex $\times$ etex,1/2[N[k][l],N[k][l+1]]); + endfor; + endfor; + for k=0 upto (Step-1): + for l=0 upto (k-1): + draw 1/5[N[k][l],N[k-1][l]]--4/5[N[k][l],N[k-1][l]]; + endfor; + if k>0: + draw 1/5[N[k][k],N[k-1][k-1]]--4/5[N[k][k],N[k-1][k-1]]; + fi; + endfor; +enddef; + +vardef PositionsPdf(expr Step)= + for k=0 upto (Step-1): + for l=0 upto k: + N[k][l]=(-k*dx+(l+k*.5)*dx,-k*dy); + label(LATEX("\num{"&decimal(Stock[k][l])&"}"),N[k][l]); + endfor; + for l=0 upto k-1: + label(btex $\times$ etex,1/2[N[k][l],N[k][l+1]]); + endfor; + endfor; + for k=0 upto (Step-1): + for l=0 upto (k-1): + draw 1/5[N[k][l],N[k-1][l]]--4/5[N[k][l],N[k-1][l]]; + endfor; + if k>0: + draw 1/5[N[k][k],N[k-1][k-1]]--4/5[N[k][k],N[k-1][k-1]]; + fi; + endfor; +enddef; + +vardef PositionsVide(expr Step)= + for k=0 upto (Step-1): + for l=0 upto k: + N[k][l]=(-k*dx+(l+k*.5)*dx,-k*dy); + endfor; + for l=0 upto k-1: + label(btex $\times$ etex,1/2[N[k][l],N[k][l+1]]); + endfor; + endfor; + for k=0 upto (Step-1): + for l=0 upto (k-1): + draw 1/5[N[k][l],N[k-1][l]]--4/5[N[k][l],N[k-1][l]]; + endfor; + if k>0: + draw 1/5[N[k][k],N[k-1][k-1]]--4/5[N[k][k],N[k-1][k-1]]; + fi; + endfor; + label(TEX("\num{"&decimal(Stock[0][0])&"}"),N[0][0]); +enddef; + +vardef PositionsVidePdf(expr Step)= + for k=0 upto (Step-1): + for l=0 upto k: + N[k][l]=(-k*dx+(l+k*.5)*dx,-k*dy); + endfor; + for l=0 upto k-1: + label(btex $\times$ etex,1/2[N[k][l],N[k][l+1]]); + endfor; + endfor; + for k=0 upto (Step-1): + for l=0 upto (k-1): + draw 1/5[N[k][l],N[k-1][l]]--4/5[N[k][l],N[k-1][l]]; + endfor; + if k>0: + draw 1/5[N[k][k],N[k-1][k-1]]--4/5[N[k][k],N[k-1][k-1]]; + fi; + endfor; + label(LATEX("\num{"&decimal(Stock[0][0])&"}"),N[0][0]); +enddef; + +vardef Branche(expr nbd,nba)= + save $; + picture $; + pair UnitVector; + numeric AngleVector; + UnitVector=unitvector(nba-nbd) rotated 90; + AngleVector=angle(nba-nbd)+(-10+uniformdeviate(20)); + path branche; + branche=(nbd+UnitVector){dir AngleVector}..(nba+UnitVector)--reverse((nbd-UnitVector){dir AngleVector}..(nba-UnitVector))--cycle; + $=image( + fill branche withcolor gris; + draw branche; + ); + $ +enddef; + +endinput; diff --git a/Master/texmf-dist/metapost/profcollege/PfCScratchpdf.mp b/Master/texmf-dist/metapost/profcollege/PfCScratchpdf.mp index b9edf3873ff..94a37beccc1 100644 --- a/Master/texmf-dist/metapost/profcollege/PfCScratchpdf.mp +++ b/Master/texmf-dist/metapost/profcollege/PfCScratchpdf.mp @@ -319,7 +319,7 @@ 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"; + TTm=if print:ar&"\hbox to1em{\barre}$\blacktriangledown$" else: "\color{white}"&ar&"\hbox to1em{\barre}$\blacktriangledown$"; fi; path TAMC; TAMC=OvalBox(TTm); @@ -349,8 +349,8 @@ 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" + TTm=if print:ar&"\hbox to1em{\barre}$\blacktriangledown$" else: + "\color{white}"&ar&"\hbox to1em{\barre}\color{black}$\blacktriangledown$" fi; ta=OvalBox(TTm); $=image( @@ -364,7 +364,7 @@ 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"; + TTm=if print:ar&"\hbox to1em{\barre}$\blacktriangledown$" else: "\color{white}"&ar&"\hbox to1em{\barre}$\blacktriangledown$"; fi; ta=OvalBox(TTm); $=image( @@ -381,7 +381,7 @@ 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"; + TTm=if print:ar&"\hbox to1em{\barre}$\blacktriangledown$" else: "\color{white}"&ar&"\hbox to1em{\barre}$\blacktriangledown$"; fi; path TA; TA=OvalBox(TTm); @@ -397,7 +397,7 @@ 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"; + TTm=if print:ar&"\hbox to1em{\barre}$\blacktriangledown$" else: "\color{white}"&ar&"\hbox to1em{\barre}$\blacktriangledown$"; fi; path TA; TA=OvalBox(TTm); @@ -415,11 +415,11 @@ vardef OvalStylo(expr ar)= string TT,TTI; if string ar: if print: - TT=ar&"\hbox to1em{\barre}\blacktriangledown" + TT=ar&"\hbox to1em{\barre}$\blacktriangledown$" else: - TT=ar&"\hbox to1em{\barre}\color{white}\blacktriangledown" + TT=ar&"\hbox to1em{\barre}\color{white}$\blacktriangledown$" fi; - TTI=ar&"\hbox to1em{\barre}\phantom{\blacktriangledown}"; + TTI=ar&"\hbox to1em{\barre}\phantom{$\blacktriangledown$}"; path TA; TA=OvalBox(TT); $=image( @@ -452,7 +452,7 @@ 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"; + TTm=if print:ar&"\hbox to1em{\barre}$\blacktriangledown$" else: "\color{white}"&ar&"\hbox to1em{\barre}$\blacktriangledown$"; fi; path TA; TA=OvalBox(TTm); @@ -468,7 +468,7 @@ enddef; 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" + TTm=if print:ar&"\hbox to1em{\barre}$\blacktriangledown$" else: "\color{white}"&ar&"\hbox to1em{\barre}$\blacktriangledown$" fi; ta=RecBox(TTm); $=image( @@ -482,7 +482,7 @@ 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"; + TTm=if print:ar&"\hbox to1em{\barre}$\blacktriangledown$" else: "\color{white}"&ar&"\hbox to1em{\barre}$\blacktriangledown$"; fi; ta=RecBox(TTm); $=image( @@ -496,7 +496,7 @@ 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"; + TTm=if print:ar&"\hbox to1em{\barre}$\blacktriangledown$" else: "\color{white}"&ar&"\hbox to1em{\barre}$\blacktriangledown$"; fi; path TA; TA=RecBox(TTm); @@ -511,7 +511,7 @@ 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; + TTm=if print:ar&"\hbox to1em{\barre}$\blacktriangledown$" else: "\color{white}"&ar&"\hbox to1em{\barre}$\blacktriangledown$" fi; path TA; TA=RecBox(TTm); $=image( @@ -525,7 +525,7 @@ 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"; + TTm=if print:ar&"\hbox to1em{\barre}$\blacktriangledown$" else: "\color{white}"&ar&"\hbox to1em{\barre}$\blacktriangledown$"; fi; ta=RecBox(TTm); $=image( @@ -539,7 +539,7 @@ 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"; + TTm=if print:ar&"\hbox to1em{\barre}$\blacktriangledown$" else: "\color{white}"&ar&"\hbox to1em{\barre}$\blacktriangledown$"; fi; ta=RecBox(TTm); $=image( @@ -553,7 +553,7 @@ 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"; + TTm=if print:ar&"\hbox to1em{\barre}$\blacktriangledown$" else: "\color{white}"&ar&"\hbox to1em{\barre}$\blacktriangledown$"; fi; path TA; TA=RecBox(TTm); @@ -568,7 +568,7 @@ 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"; + TTm=if print:ar&"\hbox to1em{\barre}$\blacktriangledown$" else: "\color{white}"&ar&"\hbox to1em{\barre}$\blacktriangledown$"; fi; path TA; TA=RecBox(TTm); @@ -2005,7 +2005,7 @@ vardef Stop(expr nbpas)= 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"; + TTm=if print:nbpas&"\hbox to1em{\barre}$\blacktriangledown$" else:"\color{white}"&nbpas&"\hbox to1em{\barre}$\blacktriangledown$"; fi; texto=image( path ti; -- cgit v1.2.3