Le but du devoir est d'écrire une calculatrice qui prend des paramètres de la ligne de commande. La calculatrice supportera les opérations suivantes: absolute, addition, division, help, maximum, minimum, modulo, multiply, power, reverse, sort, sqrt, subtraction, unique, sinus, cosinus.
Un exemple de calcul de 3 à la puissance 2 est:
node main.js 3 2 pwr # cela écrira sur l'écran 9
| Op | Paramètres | Description | Exemple |
|---|---|---|---|
| aucun | Imprime sur l'écran le logo et la liste des opérations disponibles | node main.js | |
| help | aucun | Imprime sur l'écran le logo et la liste des opérations disponibles | node main.js help |
| + | une liste de nombres (minimum 2) | Ajoute les numéros | node main.js 2 4 3 5 6 7 3 + |
| - | une liste de nombres (minimum 2) | Soustrait les nombres | node main.js 2 4 3 5 6 7 3 - |
| mul | une liste de nombres (minimum 2) | Multiplie les nombres | node main.js 2 4 3 5 6 7 3 mul |
| div | une liste de nombres (minimum 2) | Divise les nombres | node main.js 2 4 3 5 6 7 3 div |
| mod | deux nombres | Calcule le modulo de a / b | node main.js 500 45 mod |
| sq | un nombre | Calcule la racine carrée du nombre | node main.js 600 sq |
| abs | un nombre | Calcule la valeur absolue du nombre | node main.js -700 abs |
| pwr | deux nombres | Calcule a à la puissance b | node main.js 30 9 pwr |
| sort | une liste de nombres (minimum 1) | Trie les nombres en ordre croissant | node main.js 2 4 3 5 6 7 3 sort |
| rev | une liste de nombres (minimum 1) | Trie les nombres en ordre décroissant | node main.js 2 4 3 5 6 7 3 rev |
| uniq | une liste de nombres (minimum 1) | Imprime tous les numéros une seule fois | node main.js 2 4 3 5 6 7 3 uniq |
| max | une liste de nombres (minimum 1) | Trouve la plus grande valeur | node main.js 2 4 3 5 6 7 3 max |
| min | une liste de nombres (minimum 1) | Trouve la plus petite valeur | node main.js 2 4 3 5 6 7 3 min |
| cos | un nombre | Calcule le cosinus d'un angle avec une valeur donnee | node main.js 45 cos |
| sin | un nombre | Calcule le sinus d'un angle avec une valeur donnee | node main.js 120 sin |
L'opération aide (cela signifie que vous exécutez votre programme avec le paramètre aide ou sans aucun paramètre) affiche la chaîne 'Calculator, Author: <votre nom ici, le même que celui de package.json>'.
Pour imprimer le logo, utilisez la bibliothèque cowsay .
Un exemple:
node main.js
# cela va imprimer:
_________________________
< Calculator, Author: ALF >
-------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
help
+
-
div
mul
mod
sq
abs
pwr
sort
rev
max
min
uniq
cos
sin
La calculatrice a deux erreurs possibles:
Si vous exécutez
node main.js list # cela va imprimer (exactement) ERROR: this command does not exist, use help to see available commands node main.js 10 mul # cela va imprimer (exactement) ERROR: mul command uses at least 2 parameters
Pour 0,25p points supplémentaires, implémentez la calculatrice pour des opérations avec des nombres complexes pour +, - et mul. Le format d'entrée sera:
#add a1+b1i with a2+b2i node main.js a1 b1 a2 b2 complex + #subtract a1+b1i with a2+b2i node main.js a1 b1 a2 b2 complex - #multiply a1+b1i with a2+b2i node main.js a1 b1 a2 b2 complex mul
Le devoir est individuel. Toute tentative de copie entraînera 0p pour les devoirs. Système anti-copie automatisé sera utilisé.
Si vous avez des questions concernant le devoir, posez-les en postant un issue sur le github repository avec le format [calculatrice] <le titre de votre question> . Vous aurez besoin d'un compte github pour cela.
Si vous souhaitez recevoir un e-mail lorsque des problèmes sont signalés ou lorsqu'il y a de nouveaux messages, accédez au site github repository et cliquez Watch.