Afficher les tables de multiplication en ligne de commande


Calculatrice
Avec les lignes de commande, on peut tout faire, même afficher les tables de multiplication ! Pratique uniquement si vous avez un trou de mémoire et pas envie de sortir la calculatrice.

Cours de math

La commande à utiliser :

seq 9 | sed 'H;g' | awk -v RS='' '{for(i=1;i<=NF;i++)printf("%dx%d=%d%s", i, NR, i*NR, i==NR?"\n":"\t")}'

La même chose en perl (par Crabuchon) :

perl -e 'print join "\n", map {$a=$_;join "\t",map {$_."x$a=".$a*$_} (1 .. $a) } (1 .. 9)'

La version Python (par skaa) :

python -c 'print "\n".join(["\t".join(["%dx%d=%d"%(x,y,x*y) for x in range(1,y+1)]) for y in range(1,10)])'

La version Bash (par fredt) :

for i in {1..9}; do for j in $(seq 1 $i); do echo -ne $i×$j=$((i*j))\\t;done; echo;done

Et le résultat :

1x1=1
1x2=2	2x2=4
1x3=3	2x3=6	3x3=9
1x4=4	2x4=8	3x4=12	4x4=16
1x5=5	2x5=10	3x5=15	4x5=20	5x5=25
1x6=6	2x6=12	3x6=18	4x6=24	5x6=30	6x6=36
1x7=7	2x7=14	3x7=21	4x7=28	5x7=35	6x7=42	7x7=49
1x8=8	2x8=16	3x8=24	4x8=32	5x8=40	6x8=48	7x8=56	8x8=64
1x9=9	2x9=18	3x9=27	4x9=36	5x9=45	6x9=54	7x9=63	8x9=72	9x9=81

12 Commentaires pour "Afficher les tables de multiplication en ligne de commande"

Flux des commentaires de cet article Ajouter un commentaire
  •  

    J'aurais moins de mal à retenir les tables que la commande permettant de les afficher ! :D

    RépondreRépondre
    JackDaniels93 , le 28 octobre 2011 à 11:29
  •  

    combien de temps tu as mis pour écrire cette ligne de commande ?

    seq 9 | sed 'H;g' | awk -v RS='' '{for(i=1;i<=NF;i++)printf("%dx%d=%d%s", i, NR, i*NR, i==NR?"\n":"\t")}'

    ..... faut être calé quand même

    RépondreRépondre
    Nwobhm , le 28 octobre 2011 à 11:59
  •  

    @JackDaniels93 : moi aussi.

    @Nwobhm : ce n'est pas moi l'auteur original, mais faut l'avouer elle est complexe.

    RépondreRépondre
    pti-seb , le 28 octobre 2011 à 14:00
  •  

    heu

    bc est plus utile a mon sens
    echo 'scale=30;(1+sqrt(5))/2' |bc

    voila

    RépondreRépondre
    mx , le 28 octobre 2011 à 18:26
  •  

    Serais-je banné? Aucun moyen de poster le moindre commentaire depuis ce matin...

    J'avais commenté ce matin, pensant que j'avais oublié de valider j'ai recommenté il y a 10 secondes. Pas mieux. Il semble que le système jette à la poubelle mes commentaires s'ils contiennent une adresse internet (pas de conversion annoncée dans les notes).

    Je disais donc, qu'en plus d'avoir découvert la commande seq, ton astuce de geek m'avait permis aussi de découvrir le site originel en cherchant la source de ton astuce.

    A découvrir et parcourir, plein d'astuces, même si la plus populaire est assez décevante dans sa banalité, même si il est vrai très utilisée : sudo !!

    (après moultes galipettes, dont édition progressive du message jusqu'à détection du contenu, citer le site originel fait apparaître le message suivant : Votre commentaire a été marqué comme spam. Si ceci est une erreur, contactez l\'administrateur)

    RépondreRépondre
    makidoko , le 28 octobre 2011 à 19:35
  •  

    @makidoko : je sais pas trop ce qui se passe, Askimet à marqué comme spam tout tes commentaires, sauf celui-ci...

    RépondreRépondre
    pti-seb , le 28 octobre 2011 à 19:52
  •  

    Il classe en spam dès que je met le nom du site. Même si je ne met pas le protocole, même si je ne met pas le [point com] et autres, juste le nom du site, hop poubelle.

    RépondreRépondre
    makidoko , le 28 octobre 2011 à 22:12
  •  

    La version python:

    python -c 'print "\n".join(["\t".join(["%dx%d=%d"%(x,y,x*y) for x in range(1,y+1)]) for y in range(1,10)])'

    RépondreRépondre
    skaa , le 30 octobre 2011 à 02:37
  •  

    En bash, sans passer par awk et sed :
    version «complète» :
    for i in {1..9}; do for j in {1..9}; do echo -ne $i×$j=$((i*j))\\t;done; echo;done
    version «triangle» :
    for i in {1..9}; do for j in $(seq 1 $i); do echo -ne $i×$j=$((i*j))\\t;done; echo;done
    (note: × n'est pas x)

    RépondreRépondre
    fredt , le 30 octobre 2011 à 23:33
  •  

    @skaa @fredt : c'est ajouté.

    RépondreRépondre
    pti-seb , le 5 novembre 2011 à 16:13
  •  

    Pas mal !

    RépondreRépondre
    RegardezVous , le 5 novembre 2011 à 17:31
  •  

    Sous Arch Linux, Python 3 est utilisé par défaut. Pour la commande python, il faut donc utiliser python2 au lieu de python. Ou rajouter des parenthèses.

    RépondreRépondre
    Ipos , le 12 décembre 2011 à 16:00
 

Ajouter un commentaire

actualité android apache apple astuce astuces bash bilboblog blog boot chrome clavier commande commandes conky date debian Desktop développement elementary exploit faille fedora firefox flash gimp gnome google graphique Graphisme hack hacking Hardware humour intel internet iphone jailbreak Jeux Kde kernel libre Linux log logiciels Logiciels Libres lucid lynx maemo mail maquette metasploit microsoft mobile mockup monitoring mozilla multi-touch musique mysql n900 nautilus nokia noyau openoffice open source password photos php Planet publicité redhat red hat rpm réseau screenshot script serveur serveurs shell sql ssh statistiques sysadmin system Sécurité thème tux-planet tv twitter ubuntu unity vidéo vidéos vlc voyage wallpaper windows wordpress yum