Il y a eu de nombreuses questions concernant les calculatrices; cependant, il ne semble pas que cela implique la mise en œuvre d'une calculatrice graphique.
Le défi
Vous devez écrire un programme complet qui prend plusieurs formules en entrée de STDIN et les représente graphiquement dans STDOUT. La saisie prendra la forme f1(x)=x^2-x-1
. Il y aura un f
suivi d'un nombre 0-9 (inclus), suivi de (x)=
, suivi de la formule à représenter graphiquement. Votre programme devrait être capable de prendre des entrées, des graphiques, de prendre plus d'entrées, des graphiques, etc.
C'est le golf de code.
Votre graphique doit avoir la plage de l'axe X de -5 à 5, avec une résolution d'au moins un point toutes les 1/2 unités. Les exigences de l'axe Y sont les mêmes. Cela peut sembler une petite plage par rapport aux calculatrices modernes, mais il sera très probablement insignifiant d'augmenter cela. Le graphique doit avoir l'axe dessiné sur eux, avec des graduations sous la forme de +
sur les entiers.
La formule doit être évaluée avec l'ordre normal de fonctionnement. Il n'y aura pas d'asymptotes verticales / régions indéfinies dans ces formules. La variable sera toujours x. Si deux formules sont entrées avec le même numéro d'équation, la plus ancienne doit être effacée et remplacée par la nouvelle formule. Les formules vides doivent être évaluées à zéro. Comme il est probable que la formule ne donne pas toujours un joli multiple de 1/2, vous devez arrondir au 1/2 le plus proche.
Lorsqu'une formule est représentée graphiquement, sa ligne doit être formée à partir du numéro de la formule. Lorsqu'une ligne croise un axe, l'axe doit être tracé en haut. Lorsque deux lignes se croisent, peu importe ce qui est affiché.
Exemple d'entrée
f1(x)=x+1
Production
+ 1
| 1
+ 1
| 1
+ 1
| 1
+ 1
|1
+
1|
+-+-+-+-+-+-+-+-+-+-+
1 |
1 +
1 |
1 +
1 |
1 +
1 |
1 +
|
+
Contribution
f2(x)=(x^2)^0.25
Production
+ 1
| 1
+ 1
| 1
+ 1
| 1
2222 + 1 2222
222 |1 222
22 + 22
2|2
+-+-+-+-+-+-+-+-+-+-+
1 |
1 +
1 |
1 +
1 |
1 +
1 |
1 +
|
+
Contribution
f1(x)=-x
(Remarque, il est acceptable que votre programme rejette cette entrée et uniquement à l'exception de 0-x ou x * -1, mais cela doit être documenté)
Production
1 +
1 |
1 +
1 |
1 +
1 |
2222 1 + 2222
2221 | 222
22 + 22
2|2
+-+-+-+-+-+-+-+-+-+-+
|1
+ 1
| 1
+ 1
| 1
+ 1
| 1
+ 1
| 1
+ 1
y*0.5
ày/2
et de se débarrasser de deux personnages? Je ne connais pas Ruby, donc je n'ai peut-être pas raison.y/2
fait une division entière.loop{}
place de()while 1
?Python 2: 320 caractères
Pourrait probablement être raccourci, mais je suis un peu novice dans ce domaine :)
Faire
N
une variable gaspille 9 caractères mais je l'aime mieux de cette façon.la source