aufgeschlossen Programmieren mit JavaScript

While - Schleifen

 Mehrzeilige Ausgabe        Inhalt         Funktionen mit Wertübergabe


while - Schleife

Der größte gemeinsame Teiler von zwei natürlichen Zahlen soll bestimmt werden (Euklidischer Algorithmus)
Beispiel
Zahlen für a und b eingeben, und der ggT wird bestimmt.

a = und b =

ggT =


Sie können die Funktionsweise hier testen, indem Sie die Zahlen ändern und dann auf "Berechne" klicken.

oder

"ggt.html"als neue Seite öffnen
Quelltext
<html> <head> <title>ggT - Berechnung </title>
<script language="JavaScript"> 
siehe unten
</script>
</head><body>
Zahlen für a und b eingeben, und der ggT wird bestimmt.
<BR><HR WIDTH="95%" ALIGN=CENTER><P>
<form name="ggTFormular">
a = <input type="text"  size="6"  name="a">
und b = <input type="text"  size="6"  name="b"> <P>
<input type="BUTTON" value="Berechne" onclick="bearbeite()"><P>
ggT = <input type="text"  size="20"  name="ggT">
</form><P> <HR WIDTH="95%" ALIGN=CENTER>
</body> </html>
Javascript-
Funktion
  function bearbeite() {
    var e, f;
    e = parseInt(document.ggTFormular.a.value);
    f = parseInt(document.ggTFormular.b.value);
parseInt erzwingt, dass der Datentyp "Ganze Zahl" eingestellt wird.
     while (Math.abs(e - f) > 0) {
Solange die Bedingung (in runden Klammern) erfüllt ist,
wird der Schleifenkörper ausgeführt.
Math.abs ( ) berechnet den Betrag
        if ( e < f )
             f = f - e
        else
             e = e - f
     }
Wenn die Bedingung oben nicht mehr erfüllt ist,
also e = f, hat man den ggT gefunden
     document.ggTFormular.ggT.value=e;
 }// Ende der Funktion
Syntax Syntax der while - Schleife in Javascript:
while ( Bedingung ) { Anweisungsblock }

Die Bedingung gibt an, wie lange weitergemacht werden soll;
die Überprüfung erfolgt vor Ausführung des Anweisungsblocks.
Der Programmierer muss sicherstellen, dass die Bedingung irgendwann nicht mehr erfüllt ist. (Bei einer Endlosschleife gibt der Browser irgendwann eine Fehlermeldung.)
do - while - Schleife

Wir testen, ob eine eingegebene Zahl eine Primzahl ist.
Beispiel
Ist eine Primzahl
Sie können die Funktionsweise hier testen, indem Sie die Zahl ändern und dann auf "?" klicken.

oder

"primzahl.html"als neue Seite öffnen
Quelltext
mit
Javascript
<html> <head> <title>Primzahl - Test </title>
<script language="JavaScript">
  function PZTest() {
    var Z = parseInt(document.PZFormular.Zahl.value)
    var PZ = "Ja";
Solange wir keinen Teiler finden,
handelt es sich um eine Primzahl.
    var Teiler = 2;

    do {
Hier beginnt der Anweisungsblock.
        if (Z % Teiler == 0) PZ = "Nein";
Wenn beim Teilen kein Rest bleibt,
haben wir einen Teiler gefunden.
        Teiler++;
Wir probieren die nächst größere Zahl;
nötig auch,damit die Bedingung hinter while
irgendwann nicht mehr erfüllt wird.
    } while (Teiler <= Z/2);
Bis zur Wurzel würde auch schon reichen.
    document.PZFormular.Antwort.value = PZ
}
</script>
</head><body>
<form name="PZFormular">
Ist <input type="Text" name="Zahl" size="10" > eine Primzahl
<input type="button" value="?" onclick="PZTest()">
<input type="Text" name="Antwort" size="10">
</form>
</body> </html>
Syntax Syntax der do - while - Schleife in Javascript:
do { Anweisungsblock } while ( Bedingung );

Die Bedingung gibt an, wie lange weitergemacht werden soll;
die Überprüfung erfolgt hier erst nach der Ausführung des Anweisungsblocks.
Der Programmierer muss sicherstellen, dass die Bedingung irgendwann nicht mehr erfüllt ist. (Bei einer Endlosschleife gibt der Browser irgendwann eine Fehlermeldung.)
Aufgabe 1 Zerlegung in Primfaktoren:
Eine Zahl wird eingegeben (z. B. 60); Teiler hat zuerst den Wert 2. Wenn die Zahl teilbar ist, notiert man den Teiler und ersetzt die Zahl durch den Quotienten Zahl/Teiler; wenn sie nicht teilbar ist, erhöht man den Teiler um 1; das geht weiter, solange der Teiler kleiner ist als "Zahl".
Aufgabe 2 Rückzahlung einer Hypothek:
Von einer festen Jahresrate werden zunächst die Zinsen auf die jeweilige Schuld bezahlt, der Rest der Rate wird als Tilgung von der Schuld abgezogen.
Die Ausgabe soll Jahr für Jahr in einer Textarea erfolgen und stoppen, wenn die Schuld vollständig zurückgezahlt ist. (Vorsicht : Endlosschleifen bei zu kleiner Rate )
Aufgabe 3 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) ?
Aufgabe 4 In einem Teich leben 50 Forellen, doch ist Futter und Platz für 350 vorhanden. Die Forellen vermehren sich jährlich um 6 % der Differenz zwischen Höchstbestand und aktuellem Bestand. Wie entwickelt sich die Population
a) ohne äußere Einwirkungen,
b) wenn am Ende jedes Jahres 15 % der Forellen entnommen werden ?
  Mehrzeilige Ausgabe      Seitenanfang      Funktionen (Wertübergabe)