Nochmal Nicole: Zahlenflg.

Hallo...!

Ich hab immer so drumherrum gefragt hier im Forum und dachte ich kann mein problem alleine lösen.
Aber dem ist nicht so.
Ich möchte Zahlenfolgen in ein Formular eingeben und dann in einem weiteren script ausrechnen lassen.
Das ganze hat folgendes aussehen:

an = 1/2 * n + 4

mein bisher von mir erstelltes script kann allerdings nur ZF's wie diese:

an = 1/2 oder
an = 6 usw.

Wie könnte ich das anstellen?

script1 - form:

<form action="calc.php" method="post">
Explizite ZF:<input type="text" size="30" name="an"><br>
Gliedanzahl:<input type="text" size="30" name="zv"><br>
Operator:<input type="text" size="30" name="operator"><br>
<input type="submit" value="submit">
</form>

script2 - calc:

<?

echo "<u><b>Ihre Eingaben:</b></u><p>";
  echo "<br>";
  echo "- | Wert = $an <br>";
  echo "- | Gliedanzahl = $zv <br>";
  echo "- | Operator = $operator <br>";
  echo "<br>";

for ($i=1; $i<=$zv; $i++)
 {

switch ($operator)
 {
   case '+':
      $erg = $an + $i;
      break;
   case '-':
      $erg = $an - $i;
      break;
 case '*':
      $erg = $an * $i;
      break;
   case '/':
      $erg = $an / $i;
      break;
   default:
     // fehler
      break;
 }

echo ("Zahlenfolge: $i ::: Wert: $erg <p>");

}

?>

  1. hi!

    Wie könnte ich das anstellen?

    Code aus dem String entfernen und per eval() ausführen. Vergiss aber nicht das entfernen von PHP Tags und Befehlen sonst kann man beliebigen Code ausführen. Keine schöne Lösung aber sie dürfte funktionieren.

    mfg floh

    1. Moin!

      Code aus dem String entfernen und per eval() ausführen. Vergiss aber nicht das entfernen von PHP Tags und Befehlen sonst kann man beliebigen Code ausführen. Keine schöne Lösung aber sie dürfte funktionieren.

      Hatten wir schon vorgeschlagen in [pref:t=63256&m=358451]. Ist aber wirklich nicht gut. Das Problem ist das "Code entfernen".

      - Sven Rautenberg

      --
      "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
      (fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)
  2. Moin!

    Ich möchte Zahlenfolgen in ein Formular eingeben und dann in einem weiteren script ausrechnen lassen.
    Das ganze hat folgendes aussehen:

    an = 1/2 * n + 4

    Mit anderen Worten: Du möchtest in einem Formular folgende Daten abfragen:
    1. Wertebereich für n
    2. Rechenvorschrift

    Frage: Kannst du Information 2 weiter aufdröseln? Ich meine: Formeln mit linearem n gibts ja nicht so viele verschiedene. Es kommen ja vielleicht nur bestimmte Arten in Frage:

    an =  K1 * n + K2

    Wenn du nur zwei Konstanten K1 und K2 abfragen mußt, macht das die Sache einfacher.

    Dumm nur: Hier sind gleich zwei Operatoren am Werk: + und *. Gibts dafür Regeln. Ist einer fest? Macht es Sinn, + oder - auszuwählen, wenn obige Grundformel zur Verfügung steht, oder kann man vom Benutzer erwarten, dass er die Vorberechnung "summiere den konstanten Faktor" selbst hinkriegt. an=2+n+4 ist ja nicht so schrecklich viel anders wie an=1*n+6 - Mit dem Vorteil, dass du nur noch die Unterscheidung "*" oder "/" machen müßtest.

    Was ich sagen will: Versuche, dein Problem erst mal mathematisch etwas einzugrenzen. Wenn du "alles" zulassen willst, also beispielsweise auch Exponentialfunktionen, Sinus oder Logarithmus, dann wird es kompliziert. Wenn sich deine Zahlenfolgen aber mit einer linearen, quadratischen, kubischen oder höheren Exponetialfunktion in der Form
    an = Kz * n^z + ... + K3 * n^3 + K2 * n^2 + K1 * n^1 + K0
    darstellen ließe, dann würde das der Berechnung ziemlich weiterhelfen.

    - Sven Rautenberg

    --
    "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
    (fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)