Erläuterungen zum Quelltext für das Formular
Das Formular wird wiederum mittels einer Tabelle strukturiert.
Methoden
In diesem Fall wird die Methode doppelkap(kap.value,zs.value) aufgerufen. Hierbei handelt es
sich wiederum um eine JavaScript-Prozedur.
Die Ausgabe der Werte erfolgt wieder über eine Listbox erg.
<form name = "doppel" action = ""> <table border="1"> <tr> <td>Kapital: <input type = "text" name = "kap" value="" size="6"></input></td> <td>Zinssatz: <input type = "text" name = "zs" value="" size="6"></input></td> <td><input type = "button" name = "berechne" value = "Berechne" onclick = "doppelkap(kap.value,zs.value)"></input></td> <td><textarea name = "erg" rows="10" cols="30"></textarea></td> </tr> <tr> <td colspan="4"> Es hat also <input type = "text" name = "zeit" value="" size="6"></input> Jahre gedauert, bis sich das Anfangskapital verdoppelt hat. </td> </tr> <tr> <td colspan="4"> <input type = "reset" name = "loeschen" value = "Löschen"></input> </td> </tr> </table> </form>
Erläuterungen zum Quelltext für JavaScript
Das Problem wurde mit Hilfe einer anfangsgeprüften Wiederholschleife gelöst. Die Grundform dieser Schleife lautet:
while (Bedingung) {Aktionen}
Unser Beispiel:
while (k <= 2 * ak) {...};
Bedeutung der Syntax:
Solange die Bedingung erfüllt ist, wiederhole die Aktionen.
Erklärungen zu den einzelnen Zeilen:
1. Zeile: Befehlswort function, Name doppelkap, Werteparameter kapital, zinssatz.
Die Parameter bekommen ihre Wert-Inhalte von den formalen Parametern kap.value, zs.value im Textformat geliefert.
2. bis 6. Zeile: Variablendefinitionen
7. bis 13. Zeile: Ermittlung des Ergebnisses und Erzeugung der Ausgabeliste in der Listbox erg.
15. Zeile: Übergabe des Wertes i (Anzahl der Jahre) an das Ausgabefeld zeit.
<script type="text/javascript"> 1 function doppelkap(kapital,zinssatz){ 2 var k = parseFloat(kapital); //Kapital 3 var zs = parseFloat(zinssatz); //Zinssatz 4 var i = 0; //Jahreszähler 5 var z = 0; //Zinsen 6 var ak = k; //Anfangskapital sichern 7 while (k <= 2 * ak) 8 { i = i + 1; 9 z = k * zs / 100; 10 z = Math.round(100*z)/100; 11 k = k + z; 12 k = Math.round(100*k)/100; 13 document.doppel.erg.value 14 = document.doppel.erg.value +i+".: "+z+" EUR "+k+" EUR"+"\n";} 15 document.doppel.zeit.value = i;} </script>