Archiv verlassen und diese Seite im Standarddesign anzeigen : Simple JavaScript Frage von Schüler (While Schleife)
BLACKWATER 09-06-2010, 17:19 Hallo,
bin Schüler der 12ten Klasse und habe ein wohl einfaches, aber für mich gerade nicht lösbares Problem mit einer while-Schleife :motz:
Das Problem ist, dass die Quadratzahlen zwischen 1 und n mit der while-Schleife zu addieren sind.
Mein Programm sieht derzeit so aus:
<script language ="JavaScript">
<!--
var n, s;
function eingabe_n(){
n=prompt("Geben sie die Obergrenze n ein" , " ");
return n;
}
function sum_1_to_n_quadrat(n) {
i=1;
while (i<=n) {
document.write("<tr><td>" + i*i +"</td></tr>");
i++;
}
//-->
</script>:::::::edit So richtig ? :)
Wie ihr sicher wisst, werden jetzt allerdings nur die einzelnen Quadratzahlen angegeben.
Sieht dann so aus: (Bsp. n=5)
1 4 9 16 25
Die Summe wäre 55, aber wie kann ich diese per while-Schleife berechnen lassen ?!
schonmal thx
mfG
Blackwater
AmicaNoctis 09-06-2010, 17:30 Hallo und willkommen im Forum,
bitte ändere deinen Beitrag und verwende die Code-Tags, dann bekommst du die Antwort.
Gruß,
Amica
BLACKWATER 09-06-2010, 17:44 Hallo und willkommen im Forum,
bitte ändere deinen Beitrag und verwende die Code-Tags, dann bekommst du die Antwort.
Gruß,
Amica
Kein Problem :) habe die Aufgabe schon mit einer for-Schleife hinbekommen. Aber hier steh ich grad aufm Schlauch -.-
AmicaNoctis 09-06-2010, 19:57 Sorry, ich war bis eben weg, dachte aber, dass sich jmd. anderes um dich kümmert…
In der Funktion brauchst du noch eine Variable, welche die Summe sammelt, z. B. sum:
var sum = 0;
Innerhalb der Schleife addierst du darin die Quadratzahlen auf:
sum += i * i;
Am Ende der Funktion gibst du diese Summe mit return zurück:
return sum;
Im Ganzen (mit Zwischenergebnis in i2, um die erneute Berechnung zu vermeiden):
function sum_1_to_n_quadrat(n) {
var sum = 0, i2 = 0;
for (var i = 1; i <= n; i++) {
i2 = i * i;
document.write("<tr><td>" + i2 +"</td></tr>");
sum += i2;
}
return sum;
}
Hast du dir das selbst beigebracht oder hatte da ein Lehrer die Finger drin?
BLACKWATER 09-06-2010, 21:45 function sum_1_to_n_quadrat(n) {
var sum = 0, i2 = 0;
for (var i = 1; i <= n; i++) {
i2 = i * i;
document.write("<tr><td>" + i2 +"</td></tr>");
sum += i2;
}
return sum;
}
Hast du dir das selbst beigebracht oder hatte da ein Lehrer die Finger drin?[/QUOTE]
thx :) gilt doch aber eigentlich nicht als while-Schleife oder?
Wir haben vom Lehrer nur die Anleitung bekommen wie die For bzw while Schleife aufgebaut ist. Den Rest sollten wir selber entwickeln. Und mit der 2ten Variable wär ich wohl nich mehr draufgekommen da wir sowas einfach noch nich hatten^^
BLACKWATER 10-06-2010, 18:49 hi,
habe jetzt weiter an meiner while-Schleife gemacht.
Sieht im Ganzen so aus:
<html>
<head><title>Quadratzahlen von 1 bis n addieren: (while-Schleife)</title>
<script language ="JavaScript">
<!--
var n, s;
function eingabe_n(){
n=prompt("Geben sie die Obergrenze n ein" , " ");
return n;
}
function sum_1_to_n_quadrat(n) {
var n, s;
i=1;
s=0;
while (i<=n) {
s=s+i*i;
i++;
document.write("Die Summe der Quadratzahlen von 1 bis " + n + " ist gleich " + s + ".<br>");
}
}
//-->
</script>
</head>
<body>
<script language="JavaScript">
n=eingabe_n();
s=sum_1_to_n_quadrat(n);
</script>
</body>
</html>
Als Ergebnis bekomme ich jedoch nicht:
Die Summe der Quadratzahlen von 1 bis 5 ist gleich 55.
sondern
Die Summe der Quadratzahlen von 1 bis 5 ist gleich 1.
Die Summe der Quadratzahlen von 1 bis 5 ist gleich 5.
Die Summe der Quadratzahlen von 1 bis 5 ist gleich 14.
Die Summe der Quadratzahlen von 1 bis 5 ist gleich 30.
Die Summe der Quadratzahlen von 1 bis 5 ist gleich 55.
heißt ich habe immer noch iwo einen ärgerlichen Fehler :goth:
bitte helfen :):P
mfg
AmicaNoctis 10-06-2010, 18:55 Was macht denn eine Schleife meistens so? Richtig: etwas wiederholen.
Du willst nicht, dass etwas wiederholt wird? Dann pack es nicht mit in die Schleife, sondern entweder davor oder danach – je nachdem, ob es auf Ergebnisse/Effekte aus der Schleife angewiesen ist. In deinem Fall ist es das, also: danach.
BLACKWATER 10-06-2010, 19:26 Was macht denn eine Schleife meistens so? Richtig: etwas wiederholen.
Du willst nicht, dass etwas wiederholt wird? Dann pack es nicht mit in die Schleife, sondern entweder davor oder danach – je nachdem, ob es auf Ergebnisse/Effekte aus der Schleife angewiesen ist. In deinem Fall ist es das, also: danach.
woohoo ich habs gepackt :)
einfach noch eine Funktion "ausgabe"
thx kann geclosed werden :)
TOP FORUM :)
|
|