====== PHP-Programmierkurs [6] - for-Schleife ====== Falls sich innerhalb eines Programms einzelne Anweisungen oder Blöcke von **Anweisungen wiederholen**, werden Schleifen verwendet.\\ \\ Wir verwenden die for-Schleife, wenn dir die **Anzahl der Wiederholungen bekannt** ist oder diese sich eindeutig im Verlauf des Programms vor der Schleife ergibt (Zählschleife). Ein Beispiel für eine for-Schleife in PHP: "; } ?> Kopiere den Beispiel-Code und teste ihn auf [[http://www.writephponline.com/]]! ---- 1 mal|2 mal|3 mal|4 mal|5 mal \\ \\ ---- Ein komplexeres Anwendungsbeispiel für eine for-Schleife ist dieser [[https://herr-pfeiffer.de/notenpunkte-rechner/|Notenpunkte-Rechner]]. In PHP sieht unser Beispiel so aus: "; } ?> \\ Das Beispiel sieht als Programmablaufplan: {{:informatik:php:php-programmierkurs:for-schleife.jpg?218|}} \\ Der Programmablaufplan (PAP) ist eine grafische Darstellung zur Umsetzung eines Algorithmus in einem Programm.\\ Hier soll er uns die Schleife veranschaulichen. **Ein weiteres Beispiel; diesmal Schritt für Schritt erklärt:**\\ \\ **Browserausgabe:** Hello! 0 Hello! 1 Hello! 2 Die Zählschleife beginnt mit dem Schlüsselwort **for**. Zur Steuerung der Schleife folgen in den runden Klammern drei **Ausdrücke**: * Beim erstmaligen Ausführen dieser Anweisung erhält die **Schleifenvariable** $i den **Initialwert** 0 ($i=0). * Danach wird die **Laufbedingung** $i<3 überprüft; nur wenn diese Bedingung erfüllt ist, wird die Schleife durchlaufen. Da 0 kleiner 3 ist, werden die Schleifenanweisungen (hier: echo "Hello! $i";) abgearbeitet. * Nachdem die Schleife durchlaufen wurde, erhält die Schleifenvariable einen neuen Wert (Re-Initialisierung). In unserem Fall wird $i um eins erhöht (siehe: $i++), erhält als den Wert 1. Danach wird erneut die Laufbedingung geprüft; da 1 kleiner 3 ist, erfolgt ein weiterer Schleifendurchlauf, an dessen Ende $i auf 2 erhöht wird. * Dieser Vorgang wiederholt sich so lange, bis $i den Wert 3 erhält. Da nun die Laufbedingung nicht mehr erfüllt ist (3 ist nicht kleiner 3), endet die Schleife und das Programm wird nach der schließenden, geschweiften Klammer fortgesetzt. ... {{url>https://learningapps.org/watch?v=p3ub2dgon18 80%,600px|iFrame not installed}} Schreibe eine for-Schleife, die Zahlen von 1 bis 10 ausgibt. \\ \\ Nutze hierzu [[ http://www.writephponline.com/]]! \\ Wenn deine Ausgabe folgendes zeigt, weißt du, ob du es richtig gemachst hast ;) 1 2 3 4 5 6 7 8 9 10 Mit ''
'' in einer echo-Anweisung erzwingst du einen Zeilenumbruch.
Schreibe eine for-Schleife, die Zahlen von 1000 bis 5000 in Tausenderschritten ausgibt. \\ \\ Nutze hierzu [[ http://www.writephponline.com/]]! \\ Wenn deine Ausgabe folgendes zeigt, weißt du, ob du es richtig gemachst hast ;) 1000 2000 3000 4000 5000 Re-Initialisierung: Statt ''$i++'' kannst du auch ''$i=$i+1'' schreiben. Ein klassisches Beispiel zur gezählten Wiederholung lieferte der 9-jährige Carl Friedrich Gauss: Der Mathematiklehrer gab der Klasse die Aufgabe, die Summe aller Zahlen von 1 bis 100 zu bilden.\\ \\ **Ermittle die Summe** mit PHP!\\ \\ Nutze hierzu [[ http://www.writephponline.com/]]! \\ Schreibe ein PHP-Programm, das alle natürlichen Zahlen von 1 beginnend bis zu einer vorgebenen Zahl n summiert. Eine derartige Summe nennt man auch (endliche) Reihe.\\ \\ Ermittle die Summe mit PHP!\\ \\ Nutze hierzu [[ http://www.writephponline.com/]]! \\ **Linearer Notenschlüsselrechner**\\ Schreibe ein PHP-Programm, das den linearen Notenschlüssel für Verrechnungspunkte abbildet.\\ Beim linearen Notenschlüssel verteilen sich Punkte und Noten gleichmäßig auf der Skala.\\ \\ \\ Formel: ''Note = 6 - 5 * (Erreichte Punktzahl / maximale Punktzahl)'' \\ \\ **Beispiel**\\ Es gibt in einer Klassenarbeit maximal 20 Verrechnungspunkte:\\ \\ Verrechnungspunkte maximal 20 VP 20 <--> Note 1 VP 19.5 <--> Note 1.1 VP 19 <--> Note 1.3 VP 18.5 <--> Note 1.4 VP 18 <--> Note 1.5 VP 17.5 <--> Note 1.6 VP 17 <--> Note 1.8 VP 16.5 <--> Note 1.9 VP 16 <--> Note 2 VP 15.5 <--> Note 2.1 VP 15 <--> Note 2.3 usw. \\ \\ Mit der Funktion ''round'' kannst du Werte in PHP runden: http://php.net/manual/de/function.round.php \\ \\ Nutze hierzu [[ http://www.writephponline.com/]]! \\ \\ Ein erweiterte Aufgabenstellung findest du hier: [[unterricht:arbeitsauftraege:notenschluessel-linear-a|PHP-Arbeitsauftrag Linearer Notenschlüssel]] \\ Noch mehr Aufgaben zur for-Schleife:\\ [[https://www.w3resource.com/php-exercises/php-for-loop-exercises.php]]
{{tag>[informatik thema php php-programmierkurs html lernpfad schleife]}}