Calculateur simple en ligne de commande [fermé]


3

Il y a un an (sous Win 3.1 ou 95, je ne suis pas sûr). En tout cas, c'était un programme très simple. Est resté quelque part dans PATH et vous a permis de faire quelque chose d'un genre

calc 5 + 28.3*sqrt(12) 

et il crache le résultat.

Quelqu'un sait de tels ces jours-ci? N'a pas besoin de faire quelque chose d'extraordinaire ... peut-être que ce serait bien s'il supportait les exponentielles, mais c'est tout.

N'importe qui?

ps Pas intéressé par les solutions complètes telles que Python ou MATLAB.


Quel système d'exploitation utilisez-vous? De nombreux systèmes d'exploitation sont livrés avec Perl préinstallé (si vous utilisez Windows, vous pouvez utiliser Strawberry Perl, une distribution Perl très légère), puis créer un script shell ou un fichier de traitement par lots appelé "calc", expliqué à la page suivante. cette page Web (cette solution gèrera également des calculs mathématiques complexes): commandlinefu.com/commands/view/4400/…
Randolf Richardson

@RandolfRichardson - Désolé, oubliez toujours cette partie. Oui, c'est bien, mais je préférerais voir une solution pouvant aller jusqu'à deux Mo, si une telle solution existe toujours. Portable Perl est bien, mais 40Mb n'est guère léger pour un calcul.
Rook

40 Mo maintenant? Hou la la! C'est plutôt lourd juste pour une calculatrice. = O
Randolf Richardson

2
si je me souvenais comment coder ... cela pourrait être un simple projet d'après-midi dans la langue de calcul de mon choix; p
Journeyman Geek

Il y a dc.exe dans le paquet gnuwin32, un port de la ligne de commande de la notation polonaise inversée
calculé

Réponses:



0

Vous pouvez peut-être utiliser une sorte d'awk pour le faire - le lien suggère de créer une fonction comme calc(){ awk "BEGIN{ print $* }" ;}' and then using the new function with"équation ici" `calc -` vous pouvez obtenir une copie de awk depuis unxutils ou utiliser busybox . mb

Pour les additions / soustractions / multiplications de base et les divisions ... essayez la set /acommande - plus de détails ici et en utilisant l'option d'aide


0

Google lui-même effectuera ces calculs dans le champ de recherche ou ici . Je ne sais pas quelles limitations il a bien. Cela dépend de ce que vous voulez utiliser.


0

Cela a commencé comme un commentaire, mais c'est devenu trop long, alors je le poste comme une réponse.

Vous dites que vous ne voulez pas de Python, mais Python serait rapide et complet, et comparer Python et MATLAB dans un état "à part entière" est assez dur. Je crois que cela irait aussi bien en terme de vitesse comparé aux suggestions C # et Perl parmi les commentaires et les réponses.

J'utilise le one-liner:

python -ic "from __future__ import division; from math import *;"

que je suis lié à un raccourci clavier qui ouvre un terminal avec cette commande, ce qui me donne une calculatrice compétente ultra-rapide avec exp(), sqrt(), sin(), log(), pi, e, etc.

Si vous voulez juste une calc 5+7variante " ", la variété * nix serait:

python -c "from __future__ import division; from math import *; print $*"

et sur Windows, vous devez probablement remplacer $*par %*.

from __future__ import divisionoblige la division à utiliser la virgule flottante au lieu de la division entière comme valeur par défaut, ce qui est attendu d'une calculatrice. Ce n'est pas nécessaire si vous utilisez Python 3 (c'est ce que __future__signifie la partie).

from math import *importe toutes les fonctions mathématiques dans l'espace de noms principal afin que vous puissiez le faire à la sin(2*pi)place de math.sin(2*pi).


En rappel: avoir un script qui peut être lancé en mode interactif ou direct:

#!/bin/sh
if [ ${#} = 0 ]; then
    python -ic "from __future__ import division; from math import *;"
else
    python -c "from __future__ import division; from math import *; print ${*};"
fi

(très probablement trivialement converti en Windows).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.