Jimmy: Zahlenspielereien mit JavaScript

Hallo!

Mit folgendem Programm möchte ich die Summe der Zahlen von 1 bis 12
jeweils mit Zwischensumme ausgeben, warum funktioniert das nicht?
Wie könnte man das lösen?

-Danke-
Jimmy

<html>
<head>
<title>dirkpohlers-aufgabe1-1</title>
<script language="JavaScript">
<!--
  a = 1;
  for (i=1;i<13;i++) {
         document.write (z = a*(i+1) + "<br>");
         a = z;
  }
  //-->
</script>
<noscript>
</noscript>
</head>
<body bgcolor="red">
</body>
</html>

  1. Hallo,

    document.write (z = a*(i+1) + "<br>");

    weil du hier den Rückgabewert des Zuweisungweisungsoperators z=[..] schreibst und nicht a*(i+1).
    versuch mal:
    <script language="JavaScript">
      var a = 1;
      var z=0;
      for (i=1;i<13;i++) {
     z = a*(i+1);
            document.write (z + "<br>");
            a = z;
      }
    </script>

    gruss

    --
    no strict;
    no warnings;
    Über eine Rückmeldung freut sich später jeder, der das gleiche Problem hat und im Archiv nach einer Lösung sucht.
  2. Ola,

    Mit dem folgenden Programm sollen die ersten 20 ungeraden Zahlen »» berechnet
    und in einem einzigen alert-Fenster ausgegeben werden.
    Wie komme ich hier weiter?

    ...

    for (i=1;i<=20;i++) {

    if(i%2){

    alert (i);

    }

    }

    ...
    Hint

    1. NAbend,

      wie kann ich die Zahlen aber nun in einem einzigen Alert-Fenster darstellen?? Das heißt die einzelnen Ergebnisse der Schleife?

      mein Fragment:

      <html>
      <head>
      <title></title>
      <form name="meins">
       <input type="button" value="Ungerade Zahlen" name="ungerade"
        onClick="alert(h);"

      >
       <input type="button" value="Quadratzahlen" name="quadrat"
        onClick="alert(x);"

      >
      </form>

      <script language="JavaScript">
      <!--

      for (h=1;h<=20;h++) {

      if (h%2)
               { alert(h); }

      }

      for (i=1;i<=20;i++) {

      x = i * i;

      }

      //-->
      </script>
      <noscript>
      </noscript>
      </head>
      <body bgcolor="red">
      </body>
      </html>

      1. Ola,

        NAbend,

        wie kann ich die Zahlen aber nun in einem einzigen Alert-Fenster darstellen?? Das heißt die einzelnen Ergebnisse der Schleife?

        Speichere sie irgendwohin.
        Ein Array (arrDein.push(deinWert) oder
        Ein String (deinString += deinWert\n(nix <br> in enem Alert))
        Wenn du alles beisammenhast: ausgeben mit alert eben.

        Hint

        1. NAbend,

          eigentlich müßte es auch mit einfacheren Befehlen funktionieren, hier schon mal mein nächster Schritt. Ich versuchs weiter......

          <html>
          <head>
          <title></title>
          <form name="meins">
           <input type="button" value="Ungerade Zahlen" name="ungerade"
            onClick="for (h=1;h<=20;h++) {
                 if (h%2)
                         { alert(h); }
              }"

          >
           <input type="button" value="Quadratzahlen" name="quadrat"
            onClick="for (i=1;i<=20;i++) {
                     if (i<21)
                     { alert(i*i); }
            }"

          >
          </form>

          <script language="JavaScript">
          <!--

          //-->
          </script>
          <noscript>
          </noscript>
          </head>
          <body bgcolor="red">
          </body>
          </html>

          1. <html>

            Hier fehlt ein DOCTYPE.

            <head>
            <title></title>

            Ebenso wie ein Content Type

            <form name="meins">
            <input type="button" value="Ungerade Zahlen" name="ungerade"
              onClick="for (h=1;h<=20;h++) {
                   if (h%2)
                           { alert(h); }
                }"

            <input type="button" value="Quadratzahlen" name="quadrat"
              onClick="for (i=1;i<=20;i++) {
                       if (i<21)
                       { alert(i*i); }
              }"

            </form>

            Du kannst kein Formular in den Header packen, aber ohne Probleme ein Skript in den Body.

            <script language="JavaScript">

            Hier fehlt das Type Attribut.

            <!--

            //-->
            </script>
            <noscript>
            </noscript>
            </head>
            <body bgcolor="red">

            Dass heißt deine ganzen Skripte gehören hierhin!

            Darüber sind deine Funktionen nicht durchdacht.

            1. Summer aller ungeraden Zahlen:

            • fange mit eins an und erhöhe den Schleifenzähler um zwei.

            var sum = 0;
            for(var i = 1; i < end; i += 2) sum += i;

            um die Ausgabe zu sammeln nimmst du einfach eine Variabel, füllst diese und gibst sie erst aus wenn die Schleife durchlaufen ist.

            Struppi.