1 Funktionen | 2 Variablen | 3 Bedingungen | 4 Schleifen |
---|---|---|---|
A1 Grundgerüst | A1 Quadrat | A1 BMI(1) | A1 Fakultät |
A2 JavaScript | A2 Kubik | A1 BMI(2) | A1 Gauß |
A3 MwSt | A1 BMI(3) | A2 Zinseszins | |
A4 Rechnung | A1 BMI(4) | A2 Zielwert | |
A3 Kredit | |||
A3 Laufzeit | |||
A3 Laufzeit[j:m] | |||
A4 Konsole |
Zur Berechnung der Fakultät gibt es aufseiten des HTML keine Neuerungen zu den vorangegangenen Aufgaben.
Die Aufgabe Fakultät teilt sich mit der nächsten Aufgabe - der Gaußschen Summenformel - das Einstiegsbeispiel zum Gebrauch von Schleifen. Hast du die Aufgabe verstanden, solltest du die zweite im Anschluss einmal komplett selber versuchen.
Das Besondere dieser Art von Aufgaben ist, dass ein und dieselbe Anweisung ständig
wiederholt werden muss: 1 mal 2, das Ergenis wieder mal 3, das Ergebnis wieder mal 4, usw.
Da es nun erstens nicht sinnvoll ist, ständig dieselbe Programmanweisung zu schreiben und
du zweitens auch nicht weist, wie oft du das Ganze wiederholen sollst - der Benutzer bestimmt
das mit seiner Eingabe - gibt es als Lösung das Hilfsmittel Schleife.
Innerhalb einer Schleife wird eine Anweisung eine bstimmte
Anzahl mal wiederholt. Schleifen sind wie auch die Bedingungen das Grundwerkzeug jeder
Programmiersprache. Schauen wir dazu auf die Aufgabe Fakultät, Zeile 10.
Die for Schleife funktionier so: for/für( soundsooft ) { mache etwas }.
Dabei wird das "soundsooft" in einer for-Schleife meist wie folgt umgesetzt: Man definiert eine Variable var i, sagt wo sie anfängt var i = 1, wo sie aufhört i < fakultaetBis und zuletzt noch wie sie hochgezählt werden soll i++. Dabei ist i++ eine Kurzschreibweise für i = i + 1 und heißt, i wird jedesmal um 1 erhöht. i ist also 1, dann 2, dann 3, usw. Den Wert der Variable fakultaetBis hat der Benutzer zuvor durch seine Eingabe bestimmt.
Programmablauf: Berechnung der Fakultät bis 5
for( 1; 1 <= 5?; ) { produkt = 1 * 1;} | podukt = 1
Aufgabe | Lösung |
---|---|
Was passiert wenn in der for-Schleife das i nicht Schrittweise um 1 erhöht wird sondern um 2: i = i + 2;? |
Lösung
for( 1; 1 <= 5?; ) { produkt = 1 * 1;} | podukt = 1
for( 3; 3 <= 5?; ) { produkt = 1 * 3;} | podukt = 3 for( 5; 5 <= 5?; ) { produkt = 3 * 5;} | podukt = 15 for( 7; 7 <= 5?) NEIN - Ergebnis ist 15 |
Was geschieht wenn die Schleife so abgeändert würde: for( i = 0; i < fakultaetBis; i++) { ... }? |
Lösung
for( 0; 0 < 5?; ) { produkt = 1 * 0;} | podukt = 0
for( 1; 1 < 5?; ) { produkt = 0 * 1;} | podukt = 0 for( 2; 2 < 5?; ) { produkt = 0 * 2;} | podukt = 0 ... for( 6; 6 < 5?) NEIN - Ergebnis ist 0 Zwar wird die Schleife korrekt 5 mal durchlaufen. Da jedoch mit der Variable aus der Schleife multipliziert wird, ist das Produkt beim ersten Mal Null und jede weitere Multiplikation mit Null bleibt Null. |