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.