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
# pour compiler le programme javac org/example/*.java # pour executer le programme java org/example/Main.java # les arguments ici
| Op | Paramètres | Description | Exemple |
|---|---|---|---|
| aucun | Imprime sur l'écran le logo et la liste des opérations disponibles | java Main.java | |
| help | aucun | Imprime sur l'écran le logo et la liste des opérations disponibles | java Main.java help |
| + | une liste de nombres (minimum 2) | Ajoute les numéros | java Main.java 2 4 3 5 6 7 3 + |
| - | une liste de nombres (minimum 2) | Soustrait les nombres | java Main.java 2 4 3 5 6 7 3 - |
| mul | une liste de nombres (minimum 2) | Multiplie les nombres | java Main.java 2 4 3 5 6 7 3 mul |
| div | une liste de nombres (minimum 2) | Divise les nombres | java Main.java 2 4 3 5 6 7 3 div |
| mod | deux nombres | Calcule le modulo de a / b | java Main.java 500 45 mod |
| sq | un nombre | Calcule la racine carrée du nombre | java Main.java 600 sq |
| abs | un nombre | Calcule la valeur absolue du nombre | java Main.java -700 abs |
| pwr | deux nombres | Calcule a à la puissance b | java Main.java 30 9 pwr |
| sort | une liste de nombres (minimum 1) | Trie les nombres en ordre croissant | java Main.java 2 4 3 5 6 7 3 sort |
| rev | une liste de nombres (minimum 1) | Trie les nombres en ordre décroissant | java Main.java 2 4 3 5 6 7 3 rev |
| uniq | une liste de nombres (minimum 1) | Imprime tous les numéros une seule fois | java Main.java 2 4 3 5 6 7 3 uniq |
| max | une liste de nombres (minimum 1) | Trouve la plus grande valeur | java Main.java 2 4 3 5 6 7 3 max |
| min | une liste de nombres (minimum 1) | Trouve la plus petite valeur | java Main.java 2 4 3 5 6 7 3 min |
| cos | un nombre | Calcule le cosinus d'un angle avec une valeur donnee | java Main.java 45 cos |
| sin | un nombre | Calcule le sinus d'un angle avec une valeur donnee | java Main.java 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>'.
Utilisez la classe Cow donnee dans le projet. Pour imprimer le logo, utilisez la methode say(String message), où message est le texte pour afficher.
Un exemple:
java Main.java
# 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
java Main.java list # cela va imprimer (exactement) ERROR: this command does not exist, use help to see available commands java Main.java 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 + b1 * i with a2 + b2 * i java Main.java a1 b1 a2 b2 complex + #subtract a1 + b1 * i with a2 + b2 * i java Main.java a1 b1 a2 b2 complex - #multiply a1 + b1 * i with a2 + b2 * i java Main.java 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.