Arbeitsblatt 13 - while-Schleife - Deckblatt

while-Schleife
Arbeitsblatt 13

In diesen Unterrichtseinheiten bearbeiten bearbeiten die Schüler zunächst das Kapitel „Alarmanlage“ und das Arbeitsblatt 13 - ‚While-Schleife‘. Sie beschäftigen sich in drei Lerneinheiten mit dem Konzept der While-Schleife als Struktur zur wiederholten Durchführung und lernen Endlosschleifen und das Konzept von break-Anweisungen kennen.
Die SuS lernen die Kontrollstruktur while-Schleife kennen: Diese wird verwendet, um einen bestimmten Programmteil mehrfach zu wiederholen. Sie ermöglicht, dass in Abhängigkeit von einer Bedingung bestimmte Anweisungen solange immer wieder ausgeführt werden, bis die Bedingung nicht mehr erfüllt ist. Die Bedingung wird am Anfang der Schleife, also vor dem ersten Durchlauf geprüft. Falls die Bedingung schon bei der ersten Prüfung falsch ist, wird die Schleife gar nicht ausgeführt.
Eine while-Schleife dient zur wiederholten Durchführung
while-true-break Die Schüler lernen, dass eine while-Schleife auch als Endlosschleife verwendet werden kann und verstehen anhand eines Programmierbeispiels mit einem Warnblinklicht, wie sie diese programmieren können und wann dieses Konstrukt nützlich ist. Sobald der Alarm ausgelöst wurde (Bedingung in Zeile 5 erfüllt), startet ein Warnblinklicht mit den weissen Bauch-Leds in einer Endlosschleife! Macht das Sinn? Ja, denn wenn der Alarm einmal ausgelöst wurde, dann soll Bob blinken und nicht mehr aufhören!
Die break-Anweisung Im zweiten Teil des Arbeitsblatts lernen die Schüler die break-Anweisung kennen, die nicht nur bei while-Schleifen sondern auch in anderen Schleifen verwendet werden kann. Die break- Anweisung steht irgendwo innerhalb der Schleife und wird meistens in Kombination mit einer if-Abfrage verwendet. Sobald ein bestimmter Zustand eintritt und der Compiler bei der break- Anweisung ankommt, wird die Schleife abgebrochen.
Anhand des Programmierbeispiels ‚Alarmanlage‘ vertiefen die Schüler das neu erlernte Konzept der while-Schleife zur wiederholten Durchführung. Die zu programmierende Alarmanlage startet in einer einfachen Version, die in den anschließenden Einheiten immer weiter, bis hin zu einer Alarmanlage mit einer Reset-Funktion, ausgebaut wird: Die Schüler programmieren BOB3 so, dass er mit seinem IR-Sensor auf Objekte aufpassen kann und sofort bemerkt, wenn eine Hand die Objekte klaut. Im ersten Beispiel prüft die while- Schleife den Ausdruck 1 == 1, was immer true ergibt, weil es stimmt. Daher werden jetzt als Endlosschleife die Zeilen 8 bis 11 ausgeführt, bei BOB3 blinken jetzt für immer die beiden Bauch-Leds!
Macht das Sinn? Die Schüler diskutieren die Sinnhaftigkeit der Aufgabenstellung und kommen zu dem Ergebnis, dass ein einmal ausgelöster Alarm nicht von selber wieder aufhören soll! Im dritten Teil der Lerneinheit erweitern die SuS ihr Programm um eine Profi-Reset-Funktion, damit der jeweilige Besitzer der Objekte z.B. bei einem Fehlalarm den Bob in die Ausgangslage zurücksetzen kann. Hierbei wiederholen die SuS ihr Wissen über logische Operatoren.
In der dritten Ausbaustufe des Programms bauen die Schüler eine Reset-Funktion ein, damit der Alarm bei Bedarf wieder neu gestartet werden kann. Nach Auslösung des Alarms blinkt BOB3 mit allen LEDs. Sobald dann beide Arme gleichzeitig berührt werden, wird das Blinken sofort ausgeschaltet. Nach einer zweisekündigen Pause wird der Alarm automatisch wieder scharfgeschaltet und Bob wartet auf den nächsten Dieb:
Die Schüler lösen folgende Aufgabe: Falls Arm 1 und Arm 2 gleichzeitig berührt werden, dann soll das Blinken stoppen, die while-Schleife soll mittels einer break-Anweisung verlassen werden und anschließend soll Bob wieder in die Ausgangsposition zurückgesetzt werden. In der Umsetzung arbeiten die SuS mit einer &&-Verknüpfung der beiden Sensor-Abfragen: Anschließend bearbeiten die Schüler die Aufgaben 1-6 des Arbeitsblatts und besprechen ihre Lösungen. Die Aufgaben eins bis vier thematisieren die Anzahl der Durchläufe verschiedener while-Schleifen. In der fünften Aufgabe wird ein konkretes Programm mit einer break-Anweisung dargestellt. Die SuS haben die Aufgabe zu entscheiden, welche Zeile nach dieser break-Anweisung ausgeführt wird. Die sechste Aufgabe des Arbeitsblatts thematisiert ein Anwendungsbeispiel. Die SuS sollen überlegen, was das Programm macht: ‚Betrachte das folgende Programm. Für welchen Zweck könnte man es verwenden? Schreibe deine Ideen auf!‘

Im zweiten Teil vertiefen die Schülerinnen und Schüler die erlernten Konzepte mit dem „Photo-Flash“-Kapitel, das als Anwendungsbeispiel ausgelegt ist: Die Schüler programmieren BOB3 so, dass er den Selbstauslöser und das Blitzlicht eines Fotoapparats simuliert. Sobald beide Armsensoren gleichzeitig berührt werden, startet der Selbstauslöser gefolgt von einem Blitzlicht. Anhand dieses Beispiels aus der Erlebniswelt der Schüler werden die Programmierstrukturen ‚if-else Verzweigungen‘, ‚for-Schleifen‘, Arbeiten mit Variablen, mit Funktionen und Rückgabewerten vertieft. Zusätzlich wiederholen die SuS die Verwendung von logischen Operatoren und Bedingungsprüfungen.
In den folgenden Lerneinheiten entwickeln die Schüler stufenweise das Programm: Zunächst wird die Berührung von Armsensor 1 abgefragt und die Schüler speichern den Rückgabewert in einer Integer Variablen. Als Anzeige für Berührung/keine Berührung wird das Auge 1 ein- bzw. ausgeschaltet. Dies implementieren die Schüler mit einer if-else-Abfrage. Anschließend programmieren die Schüler selbstständig die Anzeige für Berührungen an Armsensor 2 und verwenden erneut die gelernten Programmierstrukturen. Den Selbstauslöser implementieren die SuS mittels einer if-else-Verzweigung und der Verwendung von Vergleichsoperatoren und des logischen UND- Operators. Zur Vertiefung des Wissens zur Verwendung von Operatoren bearbeiten die Schüler anschließend eine passende Wissensabfrageeinheit.
Im vierten Teil wird das Programm um ein Aktivierungs-Blinken ergänzt, um anzuzeigen, dass der Selbstauslöser gestartet wurde. In der fünften und letzten Lerneinheit erweitern die SuS ihr Programm um eine neue Funktion zur Simulation des Blitzlichts. Die Funktion blitz() wird mit den LEDs umgesetzt, die gleichzeitig weiß aufblitzen.



zurück zum Modul 3...