PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Javascript: Programm komme nicht weiter!


WarSlash
2005-04-12, 22:05:23
Ich arbeite an diesem Script nur leider funktioniert nicht so, wie ich es mir vorstelle:

Es sollen die Jahre heraus ommen jedoch funktioniert das mit den Jahren nicht.
Die Berechnung der Bevölkerung zb. Variable China muss ja noch hoch der Jahre genommen werden, nur leider bekomme ich das nicht hin im Bezug auf die Schleife! (Der script soll einen Schleife enthalten, bzw muss es auch!

Hoffe, dass mir einer helfen kann!

<html>
<head>
<title>Wachstumsentwicklung</title>
<script language="JavaScript" type="text/javascript">
<!--
function Wachstum() {
var jahr, chinaP, indienP, chinaBev, indienBev, Indien, China;

jahr = document.Wachstumsberechnung.Jahre.value;
chinaP = document.Wachstumsberechnung.ChinaP.value;
indienP = document.Wachstumsberechnung.IndienP.value;
chinaBev = document.Wachstumsberechnung.ChinaBev.value;
indienBev = document.Wachstumsberechnung.IndienBev.value;

Indien = indienBev*((indienP/100)+1);
China = chinaBev*((chinaP/100)+1);

while (China >= Indien){
Indien = indienBev*((indienP/100)+1);
China = chinaBev*((chinaP/100)+1);

if (Indien <= China) {
break;
}
}
document.Wachstumsberechnung.zahl.value= jahr++

}
//-->
</script>
</head>
<body>
<table border="0" width="443" height="419" align="center">
<tr>
<td height="120" width="437" colspan="2">
<p>Aufgabe</p>
<p>Im Jahr 1987 hatte Indien 700 Milionen Einwohner, China dagegen 900 Millionen.
Das Bevölkerungswachstum betrug in Indien 2,1 %, in China 1,4 % pro Jahr.
Wann hat Indiens Einwohnerzahl die von China überholt (unter der Annahme gleichbleibender Wachstumsraten) ?
</p>
</tr>
<tr>
<td height="293" width="144" valign="top">
<p>Startjahr</p>
<p>Wachstumsrate China</p>
<p>Wachstumsrate Indien</p>
<p>Bevölkerung China</p>
<p>Bevölkerung Indien</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Indiens Bev&ouml;lkerung &gt; als Chinas</p>
</td>
<td height="293" width="288" valign="top">
<form name="Wachstumsberechnung">
<p><input type="text" name="Jahre" value="1987" size="10"></p>
<p><input type="text" name="ChinaP" value="1.4" size="10"></p>
<p><input type="text" name="IndienP" value="2.1" size="10"></p>
<p><input type="text" name="ChinaBev" value="900" size="10"></p>
<p><input type="text" name="IndienBev" value="700" size="10"></p>
<p><input type="button" value="Berechne" onclick="Wachstum()"></p>
<p>&nbsp;</p>
<p><input type="text" name="zahl" ></p>
</form>
</td>
</tr>
</table>
</body>
</html>

Sephiroth
2005-04-12, 23:34:16
Ich arbeite an diesem Script nur leider funktioniert nicht so, wie ich es mir vorstelle:

Es sollen die Jahre heraus ommen jedoch funktioniert das mit den Jahren nicht.
Die Berechnung der Bevölkerung zb. Variable China muss ja noch hoch der Jahre genommen werden, nur leider bekomme ich das nicht hin im Bezug auf die Schleife! (Der script soll einen Schleife enthalten, bzw muss es auch!

Hoffe, dass mir einer helfen kann!

***
function Wachstum() {
var jahr, chinaP, indienP, chinaBev, indienBev, Indien, China;

jahr = document.Wachstumsberechnung.Jahre.value;
chinaP = document.Wachstumsberechnung.ChinaP.value;
indienP = document.Wachstumsberechnung.IndienP.value;
chinaBev = document.Wachstumsberechnung.ChinaBev.value;
indienBev = document.Wachstumsberechnung.IndienBev.value;

document.Wachstumsberechnung.zahl.value = jahr;

Indien = indienBev;
China = chinaBev;

while (China >= Indien){
Indien = Indien*((indienP/100)+1);
China = China*((chinaP/100)+1);
document.Wachstumsberechnung.zahl.value= ++jahr; //jahr++ würede bedeuten, daß du erst das alte jahr zuweist und dann jahr um eins erhöhst
}
}

1. war dein Inkrement der Jahreszahl außerhalb der While-Schleife
2. war die If-Bedingung unnötigt (dafür hast du ja die Bedingung der While-Schleife)
3. war der break darin auch noch absolut fehlplaziert (die While-Schleife brach stets sofort ab, da bisher immer Indien <= China galt)
4. wurde deine Bevölkerungszahlen nur das erste mal erhöht

p.s.
HTML und CODE Tags sind was feines ;)

/edit:
die startwerte für china und indien stimmten nicht und das jahr wurde auch falsch hochgezählt.

WarSlash
2005-04-12, 23:51:32
Ich danke dir vielmals! Ich war schon am verzweifeln!

Sephiroth
2005-04-12, 23:56:14
Ich danke dir vielmals! Ich war schon am verzweifeln!
hab grad noch zwei fehlrer gefunden, hab es oben editiert.

WarSlash
2005-04-13, 00:07:48
Ist mir auch aufgefallen, da nach Excel das vorbestimmte Jahr 2023 hätten sein müssen. Danke nochmal.

Kennst du ein paar gute Homepages wo Javascript richtig gut erklärt wird und wo noch auf sehr viel Detail eingegangen wird?

Selfhtml 8.1 Javascript-Part habe ich schon durch gelesen, nur ich verstehe teilweise nicht, was ich nach der Schleife schreiben muss: (Die Anweisung in {})