Ergebnis 1 bis 11 von 11

Thema: Rechenscript mit Variable

  1. #1

    Rechenscript mit Variable

    da mir schon letztes mal so toll und so schnell geholfen wurde, wende ich mich mit meinem neuen anliegen lieber sofort an euch, als erst dutzende scriptarchive im netz zu durchstöbern

    ich suche ein simples rechenscript, das mir die formel 3,5 * x² + 70x + 500 (als beispiel) ausrechnet. x soll dabei vom benutzer eingegeben werden und darf nicht kleiner als 1 oder größer als 100 sein, anderfalls erscheint im ausgabefeld eine fehlermeldung. aussehen soll das ganze in etwa so:


    rechenbeispiele:
    x = 1
    ausgabe: 573

    x = 30
    ausgabe: 5750

    x = 60
    ausgabe: 17300

    x = 100
    ausgabe: 42500

    x > 101
    ausgabe: Fehler!

    x < 0
    ausgabe: Fehler!


    kriegt das jemand hin?

    Geändert von !ckS (06.10.2005 um 14:58 Uhr)

  2. #2
    ICh verusch es mal in Javascript zu bauen wenn mal wieder jemand schneller ist als ich >.>

  3. #3
    HTML-Code:
    <script type="text/javascript">
    function rechne()
    {
      var x = document.getElementById("x-input").value;
      
      if(x > 100 || x < 1)
      {
        var out = "Fehler!";
      } else
      {
        var out = 3.5 * (x*x) + 70 * x + 500;
      }
      document.getElementById("out").value = out;
    }
    </script>
    
    <input id="x-input" /><br />
    <input type="button" value="Berechnen" onclick="rechne();" /><br />
    <input id="out" readonly="readonly" />
    So in etwa?

  4. #4
    \o/

    jaaa, supi! ^^

    wäre es denn auch möglich, alle ergebnise mit nachkommastellen abzurunden, sodass nur ganze zahlen herauskommen?

    und kann man die fehlermeldung auch dann anzeigen lassen, wenn buchstaben, sonderzeichen und andere unerwünschte werte eingegeben werden?


    bis dahin entspricht das script aber genau meinen vorstellungen! sehr schön, danke!

  5. #5
    Klappt nun 1A ^^

    HTML-Code:
    <script language="JavaScript">
    function getX()
    {
     var x1 = document.getElementById("X").value ;
    
     var Z = Math.floor(((3,5 * (x1*x1)) + ((70 * x1) + 500))) ;
     
     if(x1 > 101 || x1 < 0)
     {
       Z = "Error 01" ;
     }
    
     document.getElementById("Z").value  = Z ;
    
    }
    
    </script>
    
    
    <input name="X"  /><br>
    <input id="Z" readonly="readonly" /><br>
    <input type="submit" value="Submit" onclick="getX()" />

    Geändert von dadie (06.10.2005 um 16:11 Uhr)

  6. #6
    *reicht dadie eine tasse kaffee*

    wenn x = 1 ist, kommt 573.5 raus. und da die ausgabe abgerundet werden soll, stimmt meine vorgabe 573

  7. #7
    Zitat Zitat von !ckS
    *reicht dadie eine tasse kaffee*

    wenn x = 1 ist, kommt 573.5 raus. und da die ausgabe abgerundet werden soll, stimmt meine vorgabe 573
    Jau O.O ahah erst0r bin fertig

  8. #8
    Ja, dadie. Dein Script glänzt echt durch Erweiterbarkeit. Und jetzt schreib das bitte so, dass das mit allen Zahlen von 1 - 1000000 funktioniert. Ohne Rundungsfehler.

    @ !cks:
    Änder in meinem Script die Zeile var out = 3.5 * (x*x) + 70 * x + 500; in var out = Math.floor(3.5 * (x*x) + 70 * x + 500); um, dann wird abgerundet.

    Edit:
    Vorher stand da aber was anderes (da hattest du den Eingabewert manuell geprüft und bei 1 auf 573 geändert. Ich fühl mich verarscht.
    Nya, Hauptsache, das Script tut. Is ja im Prinzip eh das gleiche.

    Edit 2:
    Ja, ich hab das mit dem abrunden auch erst später mitgekriegt. Nya, egal.

    Und noch was: man kann den Kram auch prima in eine Zeile quetschen, wenn man unübersichtlichen Code mag

    Geändert von Lukas (06.10.2005 um 16:15 Uhr)

  9. #9
    Zitat Zitat von masterquest
    Ja, dadie. Dein Script glänzt echt durch Erweiterbarkeit. Und jetzt schreib das bitte so, dass das mit allen Zahlen von 1 - 1000000 funktioniert. Ohne Rundungsfehler.

    @ !cks:
    Änder in meinem Script die Zeile var out = 3.5 * (x*x) + 70 * x + 500; in var out = Math.floor(3.5 * (x*x) + 70 * x + 500); um, dann wird abgerundet.
    Garnicht wahr ;_; ich habe das nur für die entsprechenden zahlen gemacht bevor ich was vom abrunden gehört habe da sonst eine flasche zahl rauskommt.

    auserdem
    muss du bedenken ich hasse Javascript ok nicht hassen aber ich kann es nett

    Edit: Ich 15 Zeilen du 17 Zeilen das Else spart zwar rechenleistung frisst aber datenspeicher

    edit2:

    War aber mal ein Nices duel
    sellten soviel spass gehabt 8)

    Geändert von dadie (06.10.2005 um 16:24 Uhr)

  10. #10
    Zitat Zitat von masterquest
    Vorher stand da aber was anderes (da hattest du den Eingabewert manuell geprüft und bei 1 auf 573 geändert. Ich fühl mich verarscht.
    i'm sorry! ich hatte die ergebnisse für 1, 30, 60 und 100 bereits abgerundet vorliegen und hab sie ganz arglos ohne große rücksicht auf eventuelle nachkommastellen in diesen thread übertragen...

    @dadie
    btw, dein script tut einen kleinen fehler haben und spuckt deshalb die falschen ergebnisse aus ^^
    im var out muss 3.5 statt 3,5 stehen. dann ergibt x=1 auch 573, und nicht 575


    trotzdem vielen vielen dank euch beiden für die scripts! =)

  11. #11
    Zitat Zitat von !ckS
    i'm sorry! ich hatte die ergebnisse für 1, 30, 60 und 100 bereits abgerundet vorliegen und hab sie ganz arglos ohne große rücksicht auf eventuelle nachkommastellen in diesen thread übertragen...
    Das bezog sich auf dadies Post. Dadie hatte in seinem Script erst manuell auf die Beispielwerte geprüft und den Output, den du wolltest, eingesetzt, und erst später die Rundung eingebaut. Darauf bezog sich auch der erste Teil meines Posts.
    Wie gesagt, ist ja auch egal.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •