Ankündigung

Einklappen
Keine Ankündigung bisher.

Weizenkornlegende berechnen

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

  • Weizenkornlegende berechnen

    Hallo,

    ich bin neu hier und brauche eure Hilfe.
    Eventuell sogar noch häufiger.
    Ich habe mir HTML und CSS angeeignet und jetzt auch mit Javascript angefangen. Ich weiß nicht woran es liegt, aber irgendwie triggert mich die Sprache. Ich habe vor einigen Jahren schon kleine Programme mit Python und C geschrieben, da hatte ich nicht solche Startschwierigkeiten.
    Zu meinem aktuellen Problem.
    Ich möchte in einem Javascriptprogramm die Weizenkornlegende für eine Schach-Website berechnen lassen.
    Also sprich auf Feld eins kommt ein Weizenkorn und auf jedes weitere Feld das doppelte.
    Folgenden Code habe ich dazu geschrieben und es funktioniert nicht und ich erkenne den Fehler nicht. Wahrscheinlich ist nicht nur einer dabei.
    Ich danke euch vorab.

    <button onclick="weizenkornlegende()">Berechne</button>
    <p id="ausgabe"></p>
    <script>
    function weizenkornlegende() {
    var weizenkorn;
    for (weizenkorn = 1; weizenkorn < 65; weizenkorn * 2){
    var schachfeld = 1;
    document.getElementById("ausgabe").innerHTML = "In Feld "+schachfeld+" beträgt die Anzahl der Weizenkörner "+weizenkorn;
    schachfeld++;
    };
    }
    </script>

  • #2
    Hallo,

    Javascript ist nicht mein Ding, aber müsste da nicht schachfeld in der Schleife laufen, sonst sind die Weizenkörner auf 64 begrenzt.

    daniel5959
    FindeLinks.de - Kurzinfos mit Linkempfehlung
    Homepage-FAQs.de - bleibt als Archiv online

    Kommentar


    • #3
      Hi,
      in jedem Durchlauf wird schachfeld = 1 gesetzt und innerHTML der Schleifenzähler ausgegeben. So hast Du das programmiert.
      Du musst den Startwert vor der Schleife setzen und ihn in der Schleife dann verdoppeln und ausgeben.

      Gruß
      Ingo
      Ingo Webdesign

      Kommentar


      • #4
        Da mein Beitrag nach der Korrektur gesperrt wurde - hier nochmal.


        Mal eine theoretische Überlegung in PHP

        PHP-Code:
        <?php

        $weizenkorn
        =1;

        for(
        $schachfeld=1$schachfeld 65$schachfeld++) {

        if(
        $weizenkorn==1) { $texta=" liegt "$textb="Weizenkorn"; } else { $texta=" liegen "$textb="Weizenkörner"; }

        echo 
        "Auf Schachfeld Nr. ".$schachfeld.$texta.$weizenkorn.$textb."<br>";

        $weizenkorn $weizenkorn*2;

        }

        ?>
        @Ingo: Mein gesperrter Beitrag kann gelöscht werden.

        Und zum Javascript - das müsste doch schachbrett in die Schleife oder nicht?
        Zuletzt geändert von daniel5959; 15.03.2020, 22:22.
        FindeLinks.de - Kurzinfos mit Linkempfehlung
        Homepage-FAQs.de - bleibt als Archiv online

        Kommentar


        • #5
          Ich danke für die schnellen Antworten.
          okay, ich sehe meinen Programmierfehler von der Logik her...denke ich.
          Ich darf ja nicht Weizenkorn beschränken sondern muss Schachfeld begrenzen und den Wert von weizenkorn außerhalb der schleife definieren. So lese ich das zumindest aus dem PHP-Code.

          Trotzdem bleibt das Ursprungsproblem, dass mir in meinem Browser nichts angezeigt wird, sobald ich den erstellten Button klicke. Also muss ja irgendwo schon in der Connection zwischen dem Button und dem Script irgendwo der Wurm sein...

          Diese Lösung müsste von der Logik her jetzt richtig sein, oder?

          var weizenkorn=1;
          var schachfeld;
          for (schachfeld=1; schachfeld < 65; schachfeld++){
          document.getElementById("ausgabe").innerHTML = "Auf Schachfeld "+schachfeld+" liegt/liegen"+weizenkorn+" Weizenkörner.";
          weizenkorn = weizenkorn *2;
          ​​​​​​​}

          Kommentar


          • #6
            Hallo,

            meinen PHP-Code habe ich getestet, er funktioniert und gibt eine Liste mit den 64 Schachfelder aus.

            Leider fehlen mir die Kenntnisse, um ihn in Javascript umzuschreiben. Vielleicht hilft ein Forenuser.

            daniel5959

            FindeLinks.de - Kurzinfos mit Linkempfehlung
            Homepage-FAQs.de - bleibt als Archiv online

            Kommentar


            • #7
              Der Algorithmus in Posting #5 ist richtig.
              In dem Code aus #1 besteht das Problem, dass Du den Inhalt des Ausgabefelders immer wieder überschreibst. Du musst die neue Ausgabe mit += hinzu fügen.
              So funktioniert es dann:
              Code:
                  <button onclick="weizenkornlegende()">Berechne</button>
                  <p id="ausgabe"></p>
                  <script>
                      function weizenkornlegende() {
                          const output = document.getElementById("ausgabe");
                          for (let schachfeld = 1, weizenkorn = 1; schachfeld < 65; schachfeld++) {
                              output.innerHTML += "Auf Schachfeld " + schachfeld + " liegt/liegen" + weizenkorn + " Weizenkörner.<br>";
                              weizenkorn = weizenkorn * 2;
                          }
                      }
                  </script>

              Kommentar


              • #8
                Hi, vielen Dank,

                die Lösung funktioniert.
                Ich habe auch herausgefunden, warum mein Javascript Programm nicht funktioniert hat. Ich habe versucht, das extern über <script src="..."></script> einzubinden, allerdings scheint mein Editor das nicht zu unterstützen, also habe ich das Skript direkt in den html-Quellcode eingebunden und so hat das dann funktioniert.

                Kommentar

                homepage-forum.de - Hilfe für Webmaster! Statistiken

                Einklappen

                Themen: 56.688   Beiträge: 429.024   Mitglieder: 28.453   Aktive Mitglieder: 108
                Willkommen an unser neuestes Mitglied, paul99.

                Online-Benutzer

                Einklappen

                144 Benutzer sind jetzt online. Registrierte Benutzer: 0, Gäste: 144.

                Mit 3.502 Benutzern waren am 23.01.2020 um 17:20 die meisten Benutzer gleichzeitig online.

                Die neuesten Themen

                Einklappen

                Die neuesten Beiträge

                Einklappen

                Lädt...
                X