Es gab viele Fragen, die Taschenrechner betrafen; Es scheint jedoch nicht so, als würde ein Grafikrechner implementiert.
Die Herausforderung
Sie müssen ein vollständiges Programm schreiben, das mehrere Formeln als Eingabe von STDIN verwendet und diese in STDOUT grafisch darstellt. Die Eingabe erfolgt in der Form f1(x)=x^2-x-1
. Es wird ein f
gefolgt von einer Nummer 0-9 (einschließlich), gefolgt von(x)=
, gefolgt von der Formel, die grafisch dargestellt werden soll. Ihr Programm sollte in der Lage sein, Eingaben, Grafiken, mehr Eingaben, Grafiken usw. zu erfassen.
Das ist Code Golf.
Ihr Diagramm sollte einen X-Achsenbereich von -5 bis 5 mit einer Auflösung von mindestens einem Punkt pro 1/2 Einheit haben. Die Anforderungen an die Y-Achse sind gleich. Dies mag im Vergleich zu modernen Rechnern wie ein kleiner Bereich erscheinen, aber es wird höchstwahrscheinlich trivial sein, dies zu erhöhen. Auf dem Diagramm sollte die Achse mit Häkchen in Form von gezeichnet sein+
Ganzzahlen .
Die Formel sollte in der normalen Betriebsreihenfolge ausgewertet werden. In diesen Formeln gibt es keine vertikalen Asymptoten / undefinierten Regionen. Die Variable wird immer x sein. Wenn zwei Formeln mit derselben Gleichungsnummer eingegeben werden, sollte die älteste gelöscht und durch die neue Formel ersetzt werden. Leere Formeln sollten mit Null bewertet werden. Da es wahrscheinlich ist, dass die Formel nicht immer ein nettes Vielfaches von 1/2 ergibt, müssen Sie auf die nächste 1/2 runden.
Wenn eine Formel grafisch dargestellt wird, sollte ihre Linie aus der Nummer der Formel gebildet werden. Wenn eine Linie eine Achse kreuzt, sollte die Achse oben gezeichnet werden. Wenn sich zwei Linien kreuzen, spielt es keine Rolle, welche angezeigt wird.
Beispiel Eingabe
f1(x)=x+1
Ausgabe
+ 1
| 1
+ 1
| 1
+ 1
| 1
+ 1
|1
+
1|
+-+-+-+-+-+-+-+-+-+-+
1 |
1 +
1 |
1 +
1 |
1 +
1 |
1 +
|
+
Eingang
f2(x)=(x^2)^0.25
Ausgabe
+ 1
| 1
+ 1
| 1
+ 1
| 1
2222 + 1 2222
222 |1 222
22 + 22
2|2
+-+-+-+-+-+-+-+-+-+-+
1 |
1 +
1 |
1 +
1 |
1 +
1 |
1 +
|
+
Eingang
f1(x)=-x
(Beachten Sie, dass Ihr Programm diese Eingabe nur mit Ausnahme von 0-x oder x * -1 ablehnen kann. Dies sollte jedoch dokumentiert werden.)
Ausgabe
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
zuy/2
und werde zwei Charaktere loswerden? Ich kenne Ruby nicht, also kann ich nicht richtig liegen.y/2
tut ganzzahlige Division.loop{}
anstelle von verwenden()while 1
?Python 2: 320 Zeichen
Könnte wahrscheinlich kürzer gemacht werden, aber ich bin ein bisschen ein Neuling in diesem :)
Wenn man
N
eine Variable erstellt, werden 9 Zeichen verschwendet, aber so gefällt es mir besser.quelle