- Offizieller Beitrag
Hallo,
Themenidee für Febraur:
Formelauswertung.
Es sollen also Formeln wie (3 + 45 - 2*sin(3*4)) / 2 ausgewertet werden können.
Außerdem soll es möglich sein - z.B. für einen Funktionsplotter - Funktionswerte zu berechnen, also eine Formel wie cos(3+4/(3*x)) + 9 für verschiedene x-Werte zu berechnen.
Funktionsrümpfe:
[autoit]_evaluate($string) ; berechnet den Wert der Formel (als String), gibt den Wert zurück
_evaluate_values($string, $start, $end, $step) ; berechnet den Wert der Formel (als String), gibt die Werte in einem nullbasierten Array zurück, $start ist der Startwert für x, $end der Endwert, $step die Schrittweite. Beispiel: _evaluate_values("cos (3 + 4)*x", 0, 10, 2)
Zu unterstützende Funktionen: +, -, *, /, sin, cos (Groß-/Kleinschreibung egal), ^ (Potenz)
Es muss nur der Standardwertebereich von AutoIt funktionieren.
Die Formeln können beliebige Whitespaces (Leertasten, Tabs, Umbrüche) enthalten, die keinen Einfluss auf das Ergebnis haben dürfen.
Die Verwendung von Eval, Execute und Konsorten ist natürlich verboten, sonst macht es ja keinen Spaß, sin, cos und exp dürfen aufgerufen werden ;).
Es wird wie letztes Mal die Länge des Skriptes in Bytes und zusätzlich (eigenes Skript erlaubt) die Geschwindigkeit gewertet. Wer mag, kann Testdaten schreiben, sonst muss ich das irgendwann machen...
peethebee
p.s. noch könnt ihr auch der Aufgabe widersprechen :D.