Taschenrechner..

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Taschenrechner..

    Ich möchte einen Taschenrechner programmieren,
    allerdings habe ich keinen Plan wie ich dabei vorgehen soll.

    Es soll nur ein Input- und ein Submit-Field geben.
    In das Inputfield kann dann eine beliebige Formel eingeben, die dann berechnet werden soll.

    Nun die Frage. Wie muss ich dabei vorgehen? Es muss schließlich nach einigen Regeln gehen. Erst Punkt-, dann Strichrechnung. Etc.

    Habt ihr soetwas schonmal gemacht?
    Ich bin über jede Hilfe dankbar.

    ps. ich nehme an, dass ich die Formel via Regex zerlegen muss, weiss aber nicht wie ich sinnvoll dabei vorgehen muss.

  • #2
    Re: Taschenrechner..

    Wie stellst du dir denn den aufbau vor ?
    Wenn du es wie einen richtigen Taschenrechner aufbauen möchtest empfielt sich Javascript sehr gut dazu mit seinen Eventhandlern etc.

    PS: Flash ist natürlich auch sehr gut dafür geeignet.


    Sers
    Der Boris

    Kommentar


    • #3
      Wir sind hier im PHP-Forum oder nicht?
      Und nein, ich möchte den Taschenrechner auch nicht in Assembler schreiben.

      Kommentar


      • #4
        Okay,
        ich frage lieber nochmal nach, nicht das dann erst nach 20 Postings sich rausstellt das du eigentlich was ganz anderes vor hattest

        Also was die regeln angeht wird das sicherlich aufwendig werden, if-else abfragen gepart mit regex mustern etc.

        Mir pers. wäre das zu aufwendig
        Wobei dieses vorhaben sicherlich auch eine herausforderung darstellt



        Sers
        Ders Boris

        Kommentar


        • #5
          weiss denn hier keiner was...

          Kommentar


          • #6
            Hallo uschi,

            ich würde folgendes versuchen:
            • zuerst alle Operatoren (+-*/ usw) die du zulassen möchtest definieren
            • dann anhand der Operatoren zerlegen und die jeweiligen Zahlen dazu sortieren
            • ein Array mit den Operatoren und ihrer Ausführungsreihenfolgen (Punkt-vor-Strich usw.) anlegen und dein zerlegtes Ergebnis danach sortieren
            • dann der Reihe nach auflösen

            Kommentar


            • #7
              Hallo uschi
              Hab' sowas schon mal gemacht.
              Aber nicht "richtig".
              Ich hab' gemogelt und einfach ein SQL-Command draus gemacht, z.B.:

              select 3*(4+5/6) as DasErgebnis

              Die ganze Zerpflückerei macht dann der SQL-Server

              Kommentar


              • #8
                also ich empfehle delphi und einen turbopascalbuilder
                dann kannste den als exe zu,m dl anbierten ^^

                Kommentar


                • #9
                  sol ldass ding denn nur ganz normal rechnen können doer auch noch quadrieren wurzel ziehen usw weil, dass was du wills find ich nicht grad schwer. Punkt vor strich hat man ja eigentlich sowieso......
                  ich finds echt net schwer und bin ein voll noob

                  Kommentar


                  • #10
                    @ florian1x
                    [X] Ich blick das Problem nicht
                    [X] Ich hab' im Delphi showmessage(floattostr(2+3*5)); geschrieben und es hat funktioniert
                    [X] Ich hab' ein ungeregeltes Mitteilungsbedürfnis

                    Kommentar


                    • #11
                      PHP-Code:
                      eval('$erg = ' $_POST['formel']); 
                      sollte klappen.

                      und uschi: Bitte n bisschen freundlicher.

                      Kommentar


                      • #12
                        Ach, ich mag grad keinen neuen Thread eröffnen zum selben Thema, also hier:
                        Könnt mir mal jemand sagen wo hier alles genau die Fehler sind? Das mit meinem Taschenrechner klappt nämlich nicht so ganz.
                        Hab erst seit einigen Woche meine ersten Schritte in Richtung PHP gemacht, darum verzeiht mir meine unfähigkeit.

                        Code:
                        <html>
                        <head>
                        <title>Taschenrechner PHP</title>
                        <style type="text/css">
                        <!--
                        .Stil1 {font-size: 10px}
                        .Stil4 {
                            font-size: 24px;
                            font-weight: bold;
                        }
                        .Stil5 {
                            font-size: 14px;
                            font-family: Verdana, Arial, Helvetica, sans-serif;
                        }
                        .Stil6 {
                            font-family: Verdana, Arial, Helvetica, sans-serif;
                            font-size: 12px;
                        }
                        -->
                        </style>
                        </head>
                        
                        
                        
                        <body bgcolor="black" text="white">
                        <center>
                        <span class="Stil4">Taschenrechner</span><br>
                        
                        <br>
                        <?PHP
                        if ($operator == "plus")
                            {
                            $ergebnis = $wer1 + $wer2;
                            }
                        else if ($operator == "minus")
                            {
                            $ergebnis = $wert1 - $wert2;
                            }
                        else($operator == "mal")
                            {
                            $ergebnis == $wert1 * $wert2;
                            }
                        if ($operator == "geteilt")
                            {
                            $ergebnis = $wert1 / $wert2;
                            }
                        
                        echo "(Ergebnis:" == $ergebnis")";
                        
                        ?>
                        
                        <form action method="post">
                        
                        <p>Zahl1: <input type="text" name="wert1" size=30 maxlength=50>
                        </p>
                        
                        <p>Zahl2: <input type="text" name="wert2" size=30 maxlength=50>
                        </p>
                        
                        <p>
                        <input type="submit" name="operator" value="+" />
                        <input type="submit" name="operator" value="-" /> 
                        <input type="submit" name="operator" value="*" /> 
                        <input type="submit" name="operator" value="/" /> 
                        </span>
                        </p>
                        
                        
                        </form></center>
                        
                        </body>
                        </hmtl>

                        Wäre echt nett, wenn mir da mal jemand das erklären könnte und mir gleich sagen könnt wie ich das machen muss, denn nach 2 Wochen bin ich echt genervt ab meiner eigenen unfähigkeit.
                        Zuletzt geändert von yael; 22.09.2006, 18:29.

                        Kommentar


                        • #13
                          @uschi
                          Warum denn nur in HTML und PHP ? Das würde doch mit JS wesentlich einfacher umzusetzen sein. V.a. weil du nicht immer einen Request an den Server schicken musst.
                          Also in php wie bereits von den Vorpostern geschrieben, in JS einfach mal http://de.selfhtml.org/javascript/be...henrechner.htm

                          Gruss

                          tobi
                          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                          Kommentar


                          • #14
                            Ähm meinst du die uschi oder mich? ^^

                            Kommentar


                            • #15
                              Ähm meinst du die uschi oder mich? ^^
                              Nö. Wenn ich dich gemeint hätte, hätte ich geschrieben:
                              "Was genau funzt denn nicht? Etwas ausführlicher dürftest du schon sein. Meine Glaskugel vermutet ein Problem mit register_globals. Dazu findest du bei der SuMa deiner Wahl sicherlich genügend Infos."

                              Gruss

                              tobi
                              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                              Kommentar

                              Lädt...
                              X