mkzero: Taschenrechner

Folgendes:

Programmieren will ich einen Taschenrechner auf PHP/JS-Basis, der über Buttons zahlen in ein Eingabefeld schreibt(das habe ich bereits).
Dann sollen über weitere Buttons Operationen wie die Grundrechenarten, x², usw. und dann folgender erneuter Zahleneingabe die Rechnung ausgerechnet werden. Dabei sollen Punkt vor Strichrechnung beachtet werden.

Mein Problem ist, dass ich das nicht mit nur einem Feld realisiert bekomme und schon garnicht mit Punkt vor Strich..

Hier ist ein Teil des Quelltextes den ich bis jetzt habe(es geht danach weiter mit den Buttons und Formularfeldern)

include_once 'math.php';  
  
$task             = new Math;  
$ergebnis         = $_GET['ergebnis'];  
$zahla            = $_GET['zahla'];  
$op               = $_GET['op'];  
$zwischenergebnis = $_GET['zwischenergebnis'];  
$zwischenspeicher = $_GET['zwischenspeicher'];  
  
if(empty($op)) {      //erforderlich da sonst fehlermeldung  
    $op = no_op;  
}  
  
if(empty($ergebnis)) {  
    $ergebnis = $zahla;  
}  
  
if(empty($zwischenergebnis)) {  
    $zwischenergebnis = $zahla;  
    $ergebnis = $task->$op($zahla, $zwischenergebnis);  
} else {  
    $ergebnis = $task->$op($zahla, $zwischenergebnis);  
}
  1. Mit Javascript lässt sich das Problem einfach durch die Funktion eval() lösen.
    Du müsstest natürlich noch überprüfen, ob in das entsprechende Eingabefeld nicht irgendein Text anstatt ein Term eingegeben wurde.

    Den Term mit irgendwelchen Stringfunktionen in die einzelnen Bestandteile aufzulösen und alle mathematischen Regeln beim Ausrechnen zu beachten wird wesentlich komplizierter ;P

  2. Jetzt stellt sich die Frage ob du das "Just 4 Fun" machst, also eigen Projekt oder, du machst es für jemanden, was absolut nicht notwenig ist, da es 1 mio. self-made-calculatoren + tutorials im internet gibt.

    Fang langsam an, erstmal die Grundrechenarten, (+, -, * und /).
    Dann kannst du "tiefer" programmieren, indem du Punkt-Vor-Stricht beachtest usw.

    Tipp: Nimm liber JavaScript, da sind keine Requests zum Server notwenig, um die deine Formel zu berechnen, passiert alles lokal.

    1. Jetzt stellt sich die Frage ob du das "Just 4 Fun" machst, also eigen Projekt oder, du machst es für jemanden, was absolut nicht notwenig ist, da es 1 mio. self-made-calculatoren + tutorials im internet gibt.

      Fang langsam an, erstmal die Grundrechenarten, (+, -, * und /).
      Dann kannst du "tiefer" programmieren, indem du Punkt-Vor-Stricht beachtest usw.

      Tipp: Nimm liber JavaScript, da sind keine Requests zum Server notwenig, um die deine Formel zu berechnen, passiert alles lokal.

      Hab es als feste aufgabe bekommen den mit PHP(Rechnung an sich) und JS(Eingabe, also Buttons) zu programmieren und mischlösungen hab ich bis jetzt in der Art(vor allem mit nur einem Eingabefeld) noch nicht gefunden..

      1. Mahlzeit mkzero,

        Hab es als feste aufgabe bekommen den mit PHP(Rechnung an sich) und JS(Eingabe, also Buttons) zu programmieren

        Darf man fragen, von wem? Und in welchem Zusammenhang? Als "Lehrstück" oder tatsächlich für den produktiven Einsatz? Wenn letzteres: wer macht so detaillierte und unsinnige Vorgaben?

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. Darf man fragen, von wem? Und in welchem Zusammenhang? Als "Lehrstück" oder tatsächlich für den produktiven Einsatz? Wenn letzteres: wer macht so detaillierte und unsinnige Vorgaben?

          Ne, einfach als, wie du es so schön formuliert hast, "Lehrstück".

          1. Mahlzeit mkzero,

            Ne, einfach als, wie du es so schön formuliert hast, "Lehrstück".

            Dann soll es halt so sein. ;-)

            Ich würde mittels Javascript den Benutzer den Term an sich zusammenklicken lassen (natürlich mit entsprechenden Prüfungen, ob die Reihenfolge gültig ist usw.) und dann den Term per Formular an den Server schicken. Ich könnte mir vorstellen, dass es mehr als genug PHP-Bibliotheken/-Funktionen gibt, die aus einem String, der einen rechenregelkonformen Term enthält, eine korrekte Berechnung vornehmen können.

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
            1. »»Ich könnte mir vorstellen, dass es mehr als genug PHP-Bibliotheken/-Funktionen gibt, die aus einem String, der einen rechenregelkonformen Term enthält, eine korrekte Berechnung vornehmen können.

              Und genau da liegt mein Problem... Find mal sowas..-.-

              1. Mahlzeit mkzero,

                Und genau da liegt mein Problem... Find mal sowas..-.-

                Ob Du's glaubst oder nicht - aber genau dafür hat mal ein schlauer Mensch Suchmaschinen erfunden. Ich hab z.B. mit geeigneten Suchbegriffen sofort auf der ersten Seite das hier gefunden ...

                MfG,
                EKKi

                --
                sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                1. Ob Du's glaubst oder nicht - aber genau dafür hat mal ein schlauer Mensch Suchmaschinen erfunden. Ich hab z.B. mit geeigneten Suchbegriffen sofort auf der ersten Seite das hier gefunden ...

                  Wenn man privat und beruflich ca 18h am tag am rechner sitzt denkt man halt net mehr sooo klar das man geeignete begriffe findet, sry ;)

  3. Mahlzeit mkzero,

    $ergebnis         = $_GET['ergebnis'];
    $zahla            = $_GET['zahla'];
    $op               = $_GET['op'];
    $zwischenergebnis = $_GET['zwischenergebnis'];
    $zwischenspeicher = $_GET['zwischenspeicher'];

    Dieses Umkopieren ist unsinnig, überflüssig und gefährlich.

    Und wie lautet jetzt Deine Frage? Oder erwartest Du, dass Dir jemand Dein Projekt fertigprogrammiert? Solange Du den Kern Deines Projekts (Deine Datei math.php) Deinen Lesern vorenthältst, kannst Du nicht wirklich ernsthaft auf Hilfe hoffen ...

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|