ceehot: Fakultät mit Javascript berechnen - HILFE!

Hallo,

ich habe als Hausaufgabe in Informatik aufbekommen, in Javascript die einer Zahl Fakultät zu berechnen bzw. ein Programm dafür schreiben.
Nun habe ich folgendes "gezaubert" und komme nicht wirklich weiter:

<html>
<head>
<title>Fakultät berechnen</title>
</head>
<body>
<h3> Fakultät </h3>

<script language="Javascript">

var n=0

n= prompt ("Welche Fakultät soll berechnet werden?","");

for(i=0 ; i<=n ; i++)

{
document.write("thead align=center>","<tr>");
document.write("<td>",i,"</td>");
document.write("<td><font color="red">"+ i*i+"</font></td>");
document.write("</tr>");
}

document.write("Es gilt:",n,"!=",i)

</script>
</body>
</html>

Ich bitte drigends um Hilfe :S
Wie kriege ich das nur hin?

  1. Hi,

    ich habe als Hausaufgabe in Informatik aufbekommen, in Javascript die einer Zahl Fakultät zu berechnen bzw. ein Programm dafür schreiben.
    Nun habe ich folgendes "gezaubert" und komme nicht wirklich weiter:

    Du berechnest eine Anzahl von Quadratzahlen, keine Fakultät. Wie ist Fakultät in der Mathematik definiert (gerne beschränkt auf natürliche Zahlen)?

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo,

      Wie ist Fakultät in der Mathematik definiert (gerne beschränkt auf natürliche Zahlen)?

      gibt es eine Definition, die nicht auf natürliche Zahlen beschränkt ist? Das wäre mir neu. Aber ich lerne gern dazu.

      So long,
       Martin

      --
      Man sollte keinen Senf von sich geben, wenn man nicht auch das Würstchen dazu liefern kann.
      1. Tach,

        Wie ist Fakultät in der Mathematik definiert (gerne beschränkt auf natürliche Zahlen)?

        gibt es eine Definition, die nicht auf natürliche Zahlen beschränkt ist? Das wäre mir neu. Aber ich lerne gern dazu.

        die Gammafunktion ist eine Erweiterung.

        mfg
        Woodfighter

  2. Hi,

    ich habe als Hausaufgabe in Informatik aufbekommen, in Javascript die einer Zahl Fakultät zu berechnen bzw. ein Programm dafür schreiben.
    Nun habe ich folgendes "gezaubert"

    ... und bist offensichtlich verflucht worden.

    Fangen wir mal mit der Berechnung an sich an. Die Fakultät von n ist das Produkt aller ganzen Zahlen von 1 bis einschließlich n.
    Das kann man auf zweierlei Weise machen: Iterativ oder rekursiv.

    Iterativ heißt: Man lässt eine Schleife von 1 bis n laufen und multipliziert das bisherige Ergebnis in jedem Schleifendurchlauf. Vorteil: Leicht zu durchschauen, braucht wenig Speicherplatz.

    Rekursiv heißt: Man berechne n!, indem man n mit (n-1)! multipliziert - vorausgesetzt, n ist mindestens 2. Andernfalls (also wenn n=1 ist) setzt man n! hart auf 1. Vorteil: Viele Mathematiker und Informatiker finden das elegant, kommt mit wenig Code aus; Nachteil: Braucht deutlich mehr Speicherplatz, weil die Funktion sich selbst immer wieder aufruft; schwieriger zu verstehen.

    Iterativer Lösungsvorschlag:

    function fakultät(n)
      { var r=1;

    for (var i=2; i<=n; i++)     // bei 1 beginnen ist sinnlos, 1*1 bleibt 1
           r *= i;
        return (r);
      }

    Rekursiver Lösungsvorschlag:

    function fakultät(n)
      { return (n>1 ? n*fakultät(n-1) : 1);
      }

    Das ist jetzt erstmal alles ohne Plausibilitätskontrolle, also ohne Überprüfung, ob das Argument ganzzahlig, positiv, und nicht 0 ist. Einfach nach dem GIGO-Prinzip: Garbage In, Garbage Out, d.h. wer ungültige Werte eingibt, bekommt auch Unsinn raus.

    Der Rest ist eine Frage der Implementierung von HTML und Javascript. Bist du mit HTML-Formularen vertraut? Das wäre eine perfekte Anwendung dafür:

    <form action="" onsubmit="this.ergebnis=fakultät(this.argument); return false;">
     <fieldset>
     <label>Argument</label>
     <input type="text" name="argument">
     <label>Ergebnis</label>
     <input type="text" name="ergebnis" readonly>
     <input type="submit" value="Berechnen">
     </fieldset>
     </form>

    Die Ausschmückung überlasse ich dir; ich gebe dir allerdings den guten Rat, auf document.write() zu verzichten.

    So long,
     Martin

    --
    Zwei Stammtischbrüder:
    Hier steht, dass laut Statistik über 60 Prozent aller Ehefrauen fremdgehen.
    Was soll ich mit dieser Information? Ich brauche Namen, Fotos, Telefonnummern ... !
    1. Hallo,

      <form action="" onsubmit="this.ergebnis=fakultät(this.argument); return false;">

      da sollten wir nachbessern:

      <form action="" onsubmit="this.ergebnis.value=fakultät(this.argument.value); return false;">

      Ciao,
       Martin

      --
      Man ist so alt, wie man sich fühlt.
      Aber niemals so wichtig.
    2. @@Der Martin:

      nuqneH

      also ohne Überprüfung, ob das Argument ganzzahlig, positiv, und nicht 0 ist.

      Auch da sollten wir nachbessern: Das Argument darf 0 sein: 0! = 1.

      Qapla'

      --
      Volumen einer Pizza mit Radius z und Dicke a: pi z z a
    3. Mahlzeit Der Martin,

      Einfach nach dem GIGO-Prinzip: Garbage In, Garbage Out, d.h. wer ungültige Werte eingibt, bekommt auch Unsinn raus.

      Das kannte ich bisher nur unter dem Namen BIBO-Prinzip: Bullshit In, Bullshit Out.

      Mittlerweile müssen auch die Kollegen schmunzeln, wenn sie als Antwort auf Fragen wie "Wieso haben wir in derundder Kundenliste so komische/falsche/unvollständige Daten?" nur noch "BIBO!" hören ... und akzeptieren, dass das meistens ihre eigene Schuld ist. :-)

      MfG,
      EKKi

      --
      sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
      1. Hallo,

        Einfach nach dem GIGO-Prinzip: Garbage In, Garbage Out, d.h. wer ungültige Werte eingibt, bekommt auch Unsinn raus.
        Das kannte ich bisher nur unter dem Namen BIBO-Prinzip: Bullshit In, Bullshit Out.

        siehste, man lernt nie aus! :-)
        BIBO kannte *ich* noch nicht; GIGO war mir dagegen schon als C64-Programmierer in den 80er-Jahren ein Begriff.

        Mittlerweile müssen auch die Kollegen schmunzeln, wenn sie als Antwort auf Fragen wie "Wieso haben wir in derundder Kundenliste so komische/falsche/unvollständige Daten?" nur noch "BIBO!" hören ... und akzeptieren, dass das meistens ihre eigene Schuld ist. :-)

        Schön. "BIBO" klingt aber auch weniger gemein als "Was haste wieder für'n Blödsinn eingetragen".

        Ciao,
         Martin

        --
        Drei Sachen vergesse ich immer wieder: Telefonnummern, Geburtstage und ... äääh ...