This is an old revision of the document!
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:
java Main.java 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.