Page 1 sur 1

numéroter les lettres

Posté : dim. 2 déc. 2012, 19:27
par zariski
Bonsoir !
J'ai bidouillé un truc pour numéroter les mots d'une phrase ainsi que les blancs mais je pense qu'on peut faire mieux...
Aussi un coup de pouce serait le bienvenu, merci. :)

Figure asymptote cbd3ce38b2d7ec3a44e5d1b53f9b702b
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***

CODE ASYMPTOTE de la figure ci-dessus : Tout sélectionner
  1. usepackage("amsmath,amsfonts,amssymb");
  2. unitsize(1cm);
  3.  
  4. string s="Eric et Manon sont en voyage";
  5.  
  6. label("$\underset{0}{\mbox{E}}\underset{1}{\mbox{r}}\underset{2}{\mbox{i}}
  7. \underset{3}{\mbox{c}}\underset{4}{\mbox{ }}\underset{5}{\mbox{e}}
  8. \underset{6}{\mbox{t}}\underset{7}{\mbox{ }}\underset{8}{\mbox{M}}
  9. \underset{9}{\mbox{a}}\underset{10}{\mbox{n}}\underset{11}{\mbox{o}}
  10. \underset{12}{\mbox{n}}\underset{13}{\mbox{ }}\underset{14}{\mbox{s}}
  11. \underset{15}{\mbox{o}}\underset{16}{\mbox{n}}\underset{17}{\mbox{t}}
  12. \underset{18}{\mbox{ }}\underset{19}{\mbox{e}}\underset{20}{\mbox{n}}
  13. \underset{21}{\mbox{ }}\underset{22}{\mbox{v}}\underset{23}{\mbox{o}}
  14. \underset{24}{\mbox{y}}\underset{25}{\mbox{a}}\underset{26}{\mbox{g}}
  15. \underset{27}{\mbox{e}}$",(0,12),E);

Re: numéroter les lettres

Posté : dim. 2 déc. 2012, 20:23
par maurice
Bonsoir, c'est du vite fait mais bon :

Figure asymptote b7cd3dec10218f5245b9c0acf8bec2cd
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***

CODE ASYMPTOTE de la figure ci-dessus : Tout sélectionner
  1. unitsize(.35cm);
  2.  
  3. string s="Eric et Manon sont en voyage";
  4.  
  5. for(int i=0; i<length(s); ++i) {
  6. label(substr(s,i,1), (i,0), N);
  7. label(format("\tiny %i", i+1), (i,0), S);
  8. }


Bruno

Re: numéroter les lettres

Posté : dim. 2 déc. 2012, 20:28
par maurice
Salut, avec un void :

Figure asymptote 3d070f1b44aa4f888539fe5c1140646e
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***

CODE ASYMPTOTE de la figure ci-dessus : Tout sélectionner
  1. unitsize(.35cm);
  2.  
  3. string s="Eric et Manon sont en voyage";
  4. string t1="compter les lettres c'est bien ";
  5. string t2="mais si il y a plusieurs lignes ?";
  6.  
  7. void compter_lettres(string s, real ordonnee=0) {
  8. for(int i=0; i<length(s); ++i) {
  9. label(substr(s,i,1), (i,ordonnee), N);
  10. label(format("\tiny %i", i+1), (i,ordonnee), S);
  11. }
  12. }
  13.  
  14. compter_lettres(s);
  15. compter_lettres(t1,-5);
  16. compter_lettres(t2,-8);

On peut effectivement sophistiquer cette fonction (nombre de caractère par ligne, espace entre les lignes, ...)
Pour l'affichage de lettres bien toutes alignées, je ne sais pas.

Bruno

Re: numéroter les lettres

Posté : dim. 2 déc. 2012, 20:38
par GM
Bonsoir,

maurice a écrit :Pour l'affichage de lettres bien toutes alignées, je ne sais pas.


basealign ;-)

Figure asymptote 04c47b882213506b6c1f3f421e5348d5
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***

CODE ASYMPTOTE de la figure ci-dessus : Tout sélectionner
  1. unitsize(.35cm);
  2.  
  3. string s="Eric et Manon sont en voyage";
  4.  
  5. for(int i=0; i<length(s); ++i) {
  6. label(substr(s,i,1), (i,0), N, basealign);
  7. label(format("\tiny %i", i+1), (i,0), S);
  8. }

Re: numéroter les lettres

Posté : dim. 2 déc. 2012, 20:46
par maurice
Merci, pour basealign :

Figure asymptote 25b61bdd3fd13e91bfa7a8dd7be009b9
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***

CODE ASYMPTOTE de la figure ci-dessus : Tout sélectionner
  1. unitsize(.35cm);
  2.  
  3. string s="Eric et Manon sont en voyage";
  4. string t="compter les lettres c'est bien mais si il y a plusieurs lignes ?";
  5.  
  6. void compter_lettres(string s, real ordonnee=0,int longueur=35) {
  7. for(int i=0; i<length(s); ++i) {
  8. label(substr(s,i,1), (i-longueur*quotient(i,longueur),ordonnee-3*quotient(i,longueur)), N, basealign);
  9. label(format("\tiny %i", i+1), (i-longueur*quotient(i,longueur),ordonnee-3*quotient(i,longueur)), S);
  10. }
  11. }
  12.  
  13.  
  14. compter_lettres(s);
  15. compter_lettres(t,-5);
  16. compter_lettres(s,-12,5);


Bon j'arête là, j'ai du boulot !

Bruno

Re: numéroter les lettres

Posté : dim. 2 déc. 2012, 22:32
par zariski
génial, merci à vous !

Re: numéroter les lettres

Posté : lun. 3 déc. 2012, 00:13
par GM
Je viens de jeter au code (ce que je n'avais pas eu le temps de faire tout à l'heure) et j'y vais d'une suggestion :

Remplacer les :

Code : Tout sélectionner

i-longueur*quotient(i,longueur)

par :

Code : Tout sélectionner

i%longueur

Re: numéroter les lettres

Posté : lun. 3 déc. 2012, 04:19
par maurice
GM a écrit :Je viens de jeter au code (ce que je n'avais pas eu le temps de faire tout à l'heure) et j'y vais d'une suggestion :

Remplacer les :

Code : Tout sélectionner

i-longueur*quotient(i,longueur)

par :

Code : Tout sélectionner

i%longueur


Effectivement, ....

c'est ça d'écrire le code en live, on ne fait pas toujours le mieux.

Merci

Bruno