Calculatrice en ligne de commandeAC/DC
Jul 25Niveau :
Résumé : bc -l ; dc
Oups BC/DC.
Bc et dc sont des calculatrices en ligne de commande disponibles un peu partout. Ils vous permettrons de faire un peu mieux que ce que propose le bash avec $ iy expr
$ echo $((142857*2)) >285714 $ expr 142857 '*' 2 >285714
bc
bc est une calculatrice standard qui ne gère que les nombres entiers par défaut. Utilisez l'option -l pour des calculs en virgule flottante.
Utilisez ctrl-d pour terminer vos commandes :
$ bc -l 142857*3 >428571
Bc supporte les variables :
a=142857 a*4 >571428
Dont last :
5291*27 >142857 last*5 >714285
Bc permet aussi les conversions de base grâce aux variables ibase et obase les bases d'affichage d'entrée et de sortie. Ex convertir de l'hexadécimal en décimal :
ibase=16 FF >255
Côté fonctions mathématiques, bc supporte le cosinus c(0.1), le sinus s(0.1), le logarithme l(0.1) ...
Et en lisant le manuel de bc(1) vous découvrirez qu'il contient un vrai langage de programmation.
Et pour ceux qui écrivent des scripts, le pipe fonctionne :
$ echo "142857*6" | bc >857142
dc
dc est une calculatrice en notation polonaise inversée, RPN pour les intimes. Cela rappellera de bons souvenirs aux possesseurs de calculatrice HP.
L'intérêt de cette notation (outre le fait de vous retourner le cerveau et d'optimiser le nombre de touches tapées) est qu'elle simplifie la programmation de calculs.
Pour ceux qui ne la connaissent pas, un rapide point. Il s'agit d'une pile (au sens informatique) et toutes les opérations agissent sur cette pile. Un nombre seul s'empile et une opération comme * dépile les 2 nombres du dessus et rempile le résultat.
Un petit exemple :
$ dc 142857 7 * p >999999
L'espace pouvant remplacer le retour à la ligne. On peut aussi abréger les commandes en une seule ligne :
$ dc 142 857+p >999
Outre les opérations mathématiques de base, dc supporte les quelques commandes suivantes :
- p : print
- P : pop
- n : print sans newline & pop
- f : affiche toute la pile (utile pour debug)
- c : clear
- d : duplique l'entrée du haut (dup)
- r : échange les 2 entrées du haut (swap)
# ^2 $ echo "142857d*p" | dc >20408122449 # addition $ echo "20408 122449+p" | dc >142857 # oh la belle propriété de ce nombre !
Attention, par défaut dc ne fait que des calculs sur les nombres entiers. Pour utiliser des nombres à virgule, il faut utiliser la commande k
$ dc 1 3/p >0 3k 1 3/p >.333
dc supporte aussi la notion de variable (à une lettre ou un chiffre uniquement) avec les commandes s et l.
123sa 456la* p >56088
dc supporte aussi des piles supplémentaires avec L et R ainsi qu'un certain support des chaînes de caractères.
Voila, un tour rapide, maintenant à vous de calculer l'orbite géostationnaire tout seuls comme des grands.
Comments