Huhu nochmal,
so, jetzt nochmal in ausführlich, nachdem es gestern Abend zeitlich etwas knapp war.
In welcher Sprache auch immer - das, was Du brauchst, dürfte nicht ganz trivial zu implementieren sein. Wenn ich das richtig verstehe („Gleichung als variable nehmen“), dann soll das ganze auf beliebigen Gleichungen operieren, die zu Beginn eingegeben werden. Um damit zu arbeiten, müßte zunächst ein Tokenizer über die (als „Text“) eingegebene Gleichung laufen, sie syntaktisch korrekt in Operanden und Operationen zerlegen und schließlich in einem Baum zur weiteren Verarbeitung anordnen, das ist schon eher was für einen Compilerbauer… will sagen: eine recht komplexe Sache.
Möglicherweise geht das mit funktionalen Sprachen (F#, Lisp, Clojure), da kenne ich mich allerdings nicht aus.
Mit einer fest vorgegebenen Gleichung (als Ausdruck im Programmcode vorliegend) ist das ganze dagegen kein Problem; die Schritte zur Lösung hast Du selbst schon beschrieben, das kann man 1:1 so umsetzen.
Beispiel in C#:
for (int x = -1000; x
Wenn das ganze tatsächlich auf unterschiedlichen Gleichungen arbeiten soll, wäre es möglich, objektorientiert vorzugehen - ich weiß nicht, inwieweit Du mit diesem Konzept vertraut bist, daher nur kurz umrissen: man kann eine Schnittstelle vorgeben, die eine Operation anbietet; unterschiedliche Gleichungen werden dann von unterschiedlichen Klassen repräsentiert, deren jede eine spezielle Gleichung implementiert. In der Verarbeitungsschleife oben (for...) wird dann nur noch über die Schnittstelle operiert.
Beispiel:
public interface Equation
{
double ComputeFor(int x);
}
public class SimpleEquation : Equation
{
public double ComputeFor(int x)
{
return x \* 3 / 7;
}
}
public class AnotherEquation : Equation
{
public double ComputeFor(int x)
{
return x / 8;
}
}
...
Equation equation = new SimpleEquation(); // ..oder jede andere Implementierung von Equation
for (int x = -1000; x
HTH,
Viele Grüße
Karsten