Ankündigung

Einklappen
Keine Ankündigung bisher.

ausrechnen einer Formel

Einklappen

Neue Werbung 2019

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

  • ausrechnen einer Formel

    angenommen ich habe den String "3*3+6/(1+2)*1+1" Wie könnte ich es schaffen dass "1" rauskommt(falls ich richtig gerechnet habe )???

  • #2
    warum möchtest du dass denn sinniger weise tun???

    Excel sagt es kommt 12 raus ...
    [FONT="Book Antiqua"][I]"Nobody is as smart as everybody" - Kevin Kelly[/I]
    — The best things in life aren't things[/FONT]

    Kommentar


    • #3
      Excel sagt es kommt 12 raus ...
      PHP auch ...

      Wie könnte ich es schaffen dass "1" rauskommt
      Hääää, es soll ein falsches Ergebnis rauskommen ?
      Verstehe ich nu nicht.

      Kommentar


      • #4
        rein mathematisch gesehen kannst du den string ja auch zerlegen
        und so in einzelnen schritten deine formel ausrechnen.

        PHP-Code:
        <?php

        // linker teil der gleichung
        $schritt1 3*;
        $schritt2 $schritt1 ;

        //rechter teil der gleichung
        $schritt3 1+;
        $schritt4 1+;
        $schritt5 $schritt3 $schritt4 ;

        // linker tei durch rechter teil
        $ergebnis $schritt2 $schritt5 ;

        ?>
        [FONT="Book Antiqua"][I]"Nobody is as smart as everybody" - Kevin Kelly[/I]
        — The best things in life aren't things[/FONT]

        Kommentar


        • #5
          ich sag ja "wenn ic richtig gerecghnet habe

          und der string ist leider nicht immer gleich...

          kennt vielleicht wer ein script, der solche formeln zerlegt, oder zumindest eine möglichkeit sowas zu bewerkstelligen?

          Kommentar


          • #6
            Wie könnte ich es schaffen dass "1" rauskommt(falls ich richtig gerechnet habe Wink )
            Excel sagt es kommt 12 raus ...
            Auweia, der eine rechnet falsch und der andere braucht schon Excel, um so einen Pipifax auszurechnen.

            Gruß
            phpfan

            Kommentar


            • #7
              und der string ist leider nicht immer gleich...
              Ja und ???????????????????
              Verstehe dein Anliegen immer weniger.

              Kommentar


              • #8
                Ich gehe einfach mal davon aus: Du hast dich verrechnet und willst einfach nur das korrekte Ergebnis der Formel als Zahl haben.
                In unserem Fall also 12.
                Sollte das dein Anliegen sein, geht das wohl so am schnellsten, schätze ich...:

                PHP-Code:
                <?php
                $string 
                "3*3+6/(1+2)*1+1";
                eval (
                "\$int = $string;");
                echo 
                $int;
                ?>
                Tutorials zum Thema Technik:
                https://pilabor.com
                https://www.fynder.de

                Kommentar


                • #9
                  ich kapier überhaupt nichts mehr ...

                  @phpfan:

                  Intel inside Idoit Outside
                  [FONT="Book Antiqua"][I]"Nobody is as smart as everybody" - Kevin Kelly[/I]
                  — The best things in life aren't things[/FONT]

                  Kommentar


                  • #10
                    danke...eval() habe ich gesucht

                    Kommentar


                    • #11
                      eval sollte man aber erst verwenden, nachdem man sichergestellt hat, dass in dem String nur Zahlen und +-*/() stehen.
                      mod = master of disaster

                      Kommentar


                      • #12
                        Zitat von Waq
                        eval sollte man aber erst verwenden, nachdem man sichergestellt hat, dass in dem String nur Zahlen und +-*/() stehen.
                        Selbst das reicht nicht aus, denn "Division by zero" kann dann immer noch passieren.

                        Zitat von phpdummi
                        @phpfan:
                        Intel inside Idoit Outside
                        Was soll ich jetzt dazu sagen? Selbst abschreiben klappt schon nicht: Idoit

                        Gruß
                        phpfan

                        Kommentar


                        • #13
                          Zitat von phpfan
                          "Division by zero" kann dann immer noch passieren.
                          Muss einem das Angst machen?
                          mod = master of disaster

                          Kommentar


                          • #14
                            Edit: ups, habe nicht gesehen, dass es noch eine zweite Seite gibt und das was ich geschrieben hab bereits sinngemäs gesagt wurde.
                            ----------------------------------------
                            aber achtung! wenn der string von einem Benutzer eingegeben wird musst du den string vorher gründlich untersuchen!
                            Wäre der String bei Andreas Beispiel "1; unlink('einDateiName')"
                            PHP-Code:
                            <?php
                            $string 
                            "1; unlink('einDateiName');"// Vorher: "3*3+6/(1+2)*1+1";
                            eval ("\$int = $string;");
                            echo 
                            $int;
                            ?>
                            würde eval folgenden code ausführen
                            PHP-Code:
                            <?php
                            $int 
                            1unlink('einDateiName');
                            ?>
                            und die Datei einDateiName wäre gelöscht. Es könnte natürlich auch jeder andere code sein!
                            Water Wars - Jetzt anmelden: http://waterwars.de

                            Kommentar


                            • #15
                              PHP-Code:
                              <?php
                              $string 
                              "3*3+6/(1+2)*1+1";
                              if(
                              preg_match("/^[1-9\+\-\*\/\(\)]+$/"$string)) {
                                  eval (
                              "\$int = $string;"); 
                              } else {
                                  
                              $int 0;
                              }
                              ?>
                              Ein Beispiel für eine Prüfung, allerdings ist hier zu beachten, dass 0 nicht erlaubt wird, um division by zero zu vermeiden. Solltest du die Ziffer 0 benötigen, musst du das gesondert behandeln.
                              Tutorials zum Thema Technik:
                              https://pilabor.com
                              https://www.fynder.de

                              Kommentar

                              Lädt...
                              X