TeXgraph
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment :
Aliexpress : codes promo valables sur tout le site
Voir le deal

Table d'addition et de multiplication

2 participants

Aller en bas

Table d'addition et de multiplication Empty Table d'addition et de multiplication

Message  Joffrey Mar 24 Fév - 17:28

Bonjour,

J'ai un peu de temps aujourd'hui, j'en profite pour poster cette petite macro qui permet d'obtenir les tables d'addition, de multiplication d'entier positif puis les tables d'addition et de multiplication dans Z/nZ.

Code:
{table(dim, operation)}
[
dim:=%1, $op:=%2,

Marges(0,0,0,0),

{Quadrillage exterieur 1°ligne et 1°colonne}
Width:=8,
Ligne([-1+i, dim+i, dim-dim*i, -1-dim*i],1),
Ligne([-1, dim, jump, i, -dim*i],0),

{Quadrillage}
Width:=2,
Ligne([ for k from 1 to dim-1 do
              k+i, k-dim*i, jump
        od,
        for j from 1 to dim-1 do
              -1-j*i, dim-j*i,jump
        od
      ],0),

{Remplissage de la table}
if op=1 then
        Fenetre(-1+1*i, dim-dim*i,0.5+0.5*i),
        size(4*dim/5,1),
        Label(-0.5+0.5*i, ["$+$"]),
        for k from 1 to dim do
              Label(k-0.5+0.5*i, [" ",k," "]),
              Label(-0.5+(-k+0.5)*i,[" ",k," "]),
              for j from 1 to dim do
                    Label(k-0.5+(-j+0.5)*i,[" ",k+j," "]),
              od,
        od,
elif op=2 then
          Fenetre(-1+1*i, dim-dim*i,0.5+0.5*i),
          size(4*dim/5,1),
          Label(-0.5+0.5*i, ["$\times$"]),
          for k from 1 to dim do
                Label(k-0.5+0.5*i, [" ",k," "]),
                Label(-0.5+(-k+0.5)*i,[" ",k," "]),
                for j from 1 to dim do
                      Label(k-0.5+(-j+0.5)*i,[" ",k*j," "]),
                od,
          od,
elif op=3 then
          Fenetre(-1+1*i, dim-(dim+1)*i,0.5+0.5*i),
          size(4*dim/5,1),
          Label(-0.5+0.5*i, ["$+_{\text{E}}$"]),
          Label((-1+dim)/2-(dim+0.5)*i, ["$+_{\text{E}}$ est l'addition dans $\mathbb{Z}/",dim,"\mathbb{Z}$"]),
          for k from 0 to dim-1 do
                m3:=mod(k,dim),
                Label(k+0.5+0.5*i, [" $\overline{ ",m3," }$ "]),
                Label(-0.5+(-k-0.5)*i,[" $\overline{",m3,"}$ "]),
                for j from 0 to dim-1 do
                      m'3:=mod(j+k,dim),
                      Label(k+0.5+(-j-0.5)*i,[" $\overline{",m'3,"}$ "]),
                od,
          od,
elif op=4 then
          Fenetre(-1+1*i, dim-(dim+1)*i,0.5+0.5*i),
          size(4*dim/5,1),
          Label(-0.5+0.5*i, ["$\times_{\text{E}}$"]),
          Label((-1+dim)/2-(dim+0.5)*i, ["$\times_{\text{E}}$ est la multiplication dans $\mathbb{Z}/",dim,"\mathbb{Z}$"]),
          for k from 0 to dim-1 do
                m4:=mod(k,dim),
                Label(k+0.5+0.5*i, [" $\overline{ ",m4," }$ "]),
                Label(-0.5+(-k-0.5)*i,[" $\overline{",m4,"}$ "]),
                for j from 0 to dim-1 do
                      m'4:=mod(j*k,dim),
                      Label(k+0.5+(-j-0.5)*i,[" $\overline{",m'4,"}$ "]),
                od,
          od,
fi,

{Choix operateur
if op=1 then
  {table de multiplication}

  for k from 1 to col do
        for j from 1 to lig do
              Label( (k-0.5)-i*(j-0.5) , [" ",k*j," "] )
        od,
  od,
  elif op=2 then
  {table d'addition}
  Label(-0.5+0.5*i,["$\boldsymbol{+}$"]),
  for k from 1 to col do
        for j from 1 to lig do
              Label((k-0.5)-i*(j-0.5),[" ",k+j," "])
        od,
  od,
fi,}
]

Dans un élément utilisateur,
Code:
table(10,1)
donne
Table d'addition et de multiplication Table1
Dans un élément utilisateur,
Code:
table(10,2)
donne
Table d'addition et de multiplication Table2
Dans un élément utilisateur,
Code:
table(7,3)
donne
Table d'addition et de multiplication Table3
Dans un élément utilisateur,
Code:
table(7,4)
donne
Table d'addition et de multiplication Table4

La deuxième variable de la macro table est l'opération :
- 1 est l'addition;
- 2 est la multiplication;
- 3 est l'addition dans Z/(variable1)Z;
- 4 est la multiplication dans Z/(variable1)Z.

Bonne journée

Joffrey

Nombre de messages : 179
Age : 42
Localisation : Vichy(03) / Clermont-Ferrand(63)
Date d'inscription : 13/06/2008

http://mathex.servhome.org

Revenir en haut Aller en bas

Table d'addition et de multiplication Empty Re: Table d'addition et de multiplication

Message  P.Fradin Mar 24 Fév - 18:08

Bonjour Joffrey,

Et merci pour cette contribution, j'ai relevè une erreur de syntaxe: un commentaire mal fermé. D'autre part j'ai mis en facteur le calcul de la fenêtre et j'ai enlevé tous les espaces dans les affichages car chez moi les labels n'étaient pas parfaitement centrés sur les cases, maintenant c'est ok.

Code:

{table(dim, operation)}
[
dim:=%1, $op:=%2,
if op<3 then  view(-1,dim,-dim,1)else view(-1,dim,-dim-1,1) fi,
Marges(0,0,0,0), size(4*dim/5,1),

{Quadrillage exterieur 1°ligne et 1°colonne}
Width:=8,
Ligne([-1+i, dim+i, dim-dim*i, -1-dim*i],1),
Ligne([-1, dim, jump, i, -dim*i],0),

{Quadrillage}
Width:=2,
Ligne([ for k from 1 to dim-1 do
              k+i, k-dim*i, jump
        od,
        for j from 1 to dim-1 do
              -1-j*i, dim-j*i,jump
        od
      ],0),

{Remplissage de la table}
if op=1 then  {table de multiplication}
        Label(-0.5+0.5*i, ["$+$"]),
        for k from 1 to dim do
              Label(k-0.5+0.5*i, k),
              Label(-0.5+(-k+0.5)*i,k),
              for j from 1 to dim do
                    Label(k-0.5+(-j+0.5)*i,k+j),
              od,
        od,
elif op=2 then {table d'addition}
          Label(-0.5+0.5*i, ["$\times$"]),
          for k from 1 to dim do
                Label(k-0.5+0.5*i, k),
                Label(-0.5+(-k+0.5)*i,k),
                for j from 1 to dim do
                      Label(k-0.5+(-j+0.5)*i,k*j),
                od,
          od
elif op=3 then
          Label(-0.5+0.5*i, ["$+_{\text{E}}$"]),
          Label((-1+dim)/2-(dim+0.5)*i, ["$+_{\text{E}}$ est l'addition dans $\mathbb{Z}/",dim,"\mathbb{Z}$"]),
          for k from 0 to dim-1 do
                m3:=mod(k,dim),
                Label(k+0.5+0.5*i, ["$\overline{ ",m3," }$"]),
                Label(-0.5+(-k-0.5)*i,["$\overline{",m3,"}$"]),
                for j from 0 to dim-1 do
                      m'3:=mod(j+k,dim),
                      Label(k+0.5+(-j-0.5)*i,["$\overline{",m'3,"}$"]),
                od,
          od
elif op=4 then
          Label(-0.5+0.5*i, ["$\times_{\text{E}}$"]),
          Label((-1+dim)/2-(dim+0.5)*i, ["$\times_{\text{E}}$ est la multiplication dans $\mathbb{Z}/",dim,"\mathbb{Z}$"]),
          for k from 0 to dim-1 do
                m4:=mod(k,dim),
                Label(k+0.5+0.5*i, ["$\overline{ ",m4," }$"]),
                Label(-0.5+(-k-0.5)*i,["$\overline{",m4,"}$"]),
                for j from 0 to dim-1 do
                      m'4:=mod(j*k,dim),
                      Label(k+0.5+(-j-0.5)*i,["$\overline{",m'4,"}$"]),
                od,
          od,
fi
]
P.Fradin
P.Fradin
Admin

Nombre de messages : 1133
Age : 62
Date d'inscription : 19/01/2008

http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser