Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| gf1:programmieren5 [2023/05/10 09:13] – marroc | gf1:programmieren5 [2025/04/24 10:53] (aktuell) – marroc | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | < | ||
| ===== Selektion oder ' | ===== Selektion oder ' | ||
| + | {{ : | ||
| + | **Was ist eine Selektion? | ||
| + | |||
| + | In Python wird die Selektion mit den Anweisungen '' | ||
| + | Die **Anweisung if prüft eine Bedingung**, | ||
| + | Oft wird somit bei der Selektion ein Teil des Programms nicht oder zumindest nicht immer ausgeführt. | ||
| === Beispiel === | === Beispiel === | ||
| - | Ein Beispiel zum Starten, hierbei ist zu bemerken, dass ein Beschleunigungssensor, | + | |
| + | {{ : | ||
| + | Ein Beispiel zum Starten, hierbei ist zu bemerken, dass ein Beschleunigungssensor, | ||
| + | |||
| <code python beschleunigung1.py> | <code python beschleunigung1.py> | ||
| - | # | ||
| from microbit import * | from microbit import * | ||
| # | # | ||
| + | |||
| while True: | while True: | ||
| - | | + | if accelerometer.was_gesture(' |
| - | display.show(Image.CONFUSED) | + | display.show(Image.CONFUSED) |
| - | sleep(200) | + | sleep(3000) |
| - | else: | + | else: display.show(Image.HAPPY) |
| - | | + | </ |
| - | </ | ||
| - | {{ : | ||
| In diesem kurzen Programm wird durch eine Endlosschleife immer wieder über den Akzelerometer überprüft, | In diesem kurzen Programm wird durch eine Endlosschleife immer wieder über den Akzelerometer überprüft, | ||
| Falls dies der Fall ist, wird ein " | Falls dies der Fall ist, wird ein " | ||
| Zeile 29: | Zeile 35: | ||
| Falls es nur ein '' | Falls es nur ein '' | ||
| + | \\ | ||
| - | < | + | < |
| - | **9. Programmieraufgabe** | + | **Aufgabe 11**{{ : |
| + | - Schliessen Sie die Ampel so wie auf dem Bild an den Micro:bit an. Achten Sie darauf, dass die Masse (Erdung GRN) mit 0V verbunden ist. | ||
| - Untersuchen Sie das untenstehende unvollständige Programm. Was genau passiert? Beschreiben Sie kurz. | - Untersuchen Sie das untenstehende unvollständige Programm. Was genau passiert? Beschreiben Sie kurz. | ||
| - | - Erweitern Sie das Programm so, dass beim Drücken von Knopf B ein kurzer Ton erzeugt wird und das Display "Bitte Knopf A drücken" | ||
| - | - Verändern Sie das Programm weiter, sodass wenn beide Knöpfe gleichzeitig gedrückt werden, ein Symbol Ihrer Wahl angezeigt wird und eine Folge von absteigenden Tönen erzeugt wird. | ||
| - | - Erweitern Sie das Programm weiter, dass wenn der Micro:bit mit dem Logo nach unten gehalten wird, die aktuelle Raumtemperatur gemessen wird und diese auf dem Display auch per scroll angezeigt wird, gefolgt von einer kleinen Pause von einer Sekunde. | ||
| - | </ | ||
| - | {{ : | ||
| - | <code python beschleunigung2.py> | ||
| - | |||
| - | while True: | ||
| - | if button_a.was_pressed(): | ||
| - | display.scroll(' | ||
| - | sleep(400) | ||
| - | display.clear() | ||
| - | </ | ||
| - | |||
| - | <WRAP center round todo 80%> | ||
| - | **10. Programmieraufgabe** | ||
| - | - Zeichnen Sie das Aktivitätsdiagramm des unten beschriebenen Programms, diskutieren Sie zu zweit. | ||
| - | - Schreiben Sie das Programm, welches die beiden Pulse misst. | ||
| - | - Ergänzen Sie das Programm, sodass die Werte von einem Micro:bit zum anderen gesendet werden! | ||
| - | <WRAP center round box 100%> | ||
| - | // | ||
| - | Es soll den jeweiligen Pulsschlag pro Minute von zwei Personen nacheinander anzeigen, dazu soll eine '' | ||
| - | Der Puls soll wie auf dem Foto abgebildet, {{ : | ||
| - | </ | ||
| - | |||
| - | Tipps: | ||
| - | * Die Bedingung '' | ||
| - | * Die 2.Programmieraufgabe könnte helfen | ||
| - | * Ein Zähler ist nötig. | ||
| - | * Die gemessenen Pulsschläge sind mit einem geeigneten Faktor proportional auf eine Zeitspanne von 60 Sekunden zu rechnen. | ||
| - | * Das Menü Radio hilft für Teilaufgabe C. | ||
| - | * {{ : | ||
| - | |||
| - | </ | ||
| - | |||
| - | <WRAP center round todo 60%> | ||
| - | **Lernfragen**\\ | ||
| - | - Wie kann erreicht werden, dass ein Teil eines Programms nur in bestimmten Fällen ausgeführt wird? | ||
| - | - Warum ist das Verzweigen (Entscheiden) des Programms überhaupt nötig? | ||
| - | - Worauf muss geachtet werden, wenn eine ' | ||
| - | - Welches sind die wichtigsten Erkenntnisse der Programmieraufgaben 1 bis 10? Notieren Sie dies kurz! | ||
| - | </ | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | ===== Unendliche Schleifen und eine erste Selektion ===== | ||
| - | **Schleifen** sind sogenannte Wiederholungen von Code-Blöcken. Dabei geht es darum, einen Block von Befehlen mehrmals zu wiederholen. Es gibt dabei die sogenannten **While-Schleifen**, | ||
| - | Im folgenden Beispiel benützen Sie die While-Schleife, | ||
| - | <WRAP center round todo 100%> | ||
| - | **Aufgabe 10: Schleifen, Selektion und Eingaben: | ||
| - | [[+tab|https:// | ||
| - | * Im folgenden Code-Beispiel wird ein Stück Code auf dem Microbit sozusagen " | ||
| - | * Kopieren Sie den folgenden Code und führen Sie diesen auf dem MicroBit aus! | ||
| - | * Überlegen Sie sich, was die folgenden Code-Elemente bewirken: | ||
| - | * "while True:" | ||
| - | * sleep(2000) | ||
| - | * Image.HAPPY & Image.SAD | ||
| - | |||
| - | Beachten Sie: "while True:" beginnt eine sogenannte Schleife. Alles was nach diesem Code eingerückt (4 Abstände von der linken Seite entfernt) ist, wird sozusagen unendlich lange immer wieder ausgeführt.\\ | ||
| <code python> | <code python> | ||
| - | # Microbit-Modul wird importiert | + | # Imports go at the top |
| from microbit import * | from microbit import * | ||
| - | |||
| - | # Wiederhole unendlich lange | ||
| - | while True: | ||
| - | display.show(Image.HAPPY) | ||
| - | sleep(2000) | ||
| - | display.show(Image.SAD) | ||
| - | sleep(2000) | ||
| - | </ | ||
| - | * Wir wollen nun dieses Programm etwas verändern und zwar dahingehend, | ||
| - | * Falls a gedrückt wurde, soll ein glückliches Smiley erscheinen, | ||
| - | * Falls b gedrückt wurde, soll ein trauriges Smiley erscheinen. | ||
| - | Dabei können wir über die Selektion **if button_a.is_pressed(): | ||
| - | Beachten Sie, dass alle Befehle, die auf **if button_a.is_pressed(): | ||
| - | <code python> | ||
| - | # Microbit-Modul wird importiert | ||
| - | from microbit import * | ||
| - | |||
| - | # Wiederhole unendlich lange | ||
| - | while True: | ||
| - | if button_a.is_pressed(): | ||
| - | ... | ||
| - | </ | ||
| - | * **Programm auf dem eigenen Computer speichern: | ||
| - | * Überlegen Sie sich, welche " | ||
| - | * Wenn wir nun die Anzeige der Smileys nur noch über die Knöpfe steuern, sollten Sie den Befehl ' | ||
| - | |||
| - | <WRAP center round important 60%> | ||
| - | Sie sollen Ihre neuen Erkenntnisse aus dieser Aufgabe (unendliche Schleife, Selektion und Eingabe durch Buttons) in Ihrem Cheatsheet in OneNote kurz einfügen und erörtern! | ||
| - | </ | ||
| - | |||
| - | < | ||
| - | <panel type=" | ||
| - | Lösung: | ||
| - | <code python> | ||
| - | # Microbit-Modul wird importiert | ||
| - | from microbit import * | ||
| - | |||
| - | # Wiederhole unendlich lange | ||
| while True: | while True: | ||
| - | | + | |
| - | | + | pin0.write_digital(1) |
| - | if button_b.is_pressed(): | + | |
| - | | + | if button_a.was_pressed(): |
| - | </code> | + | |
| - | </ | + | pin1.write_digital(1) |
| - | </ | + | |
| + | </ | ||
| - | </ | + | - Erweitern Sie das Programm so, dass beim Drücken von Knopf A die Ampel für einige Zeit auf Gelb und dann auf Grün wechselt und anschliessend wieder zurück auf Rot. |
| + | - Erweitern Sie das Programm nun weiter, so dass bei Grün ein kurzer Ton erzeugt wird und das Display " | ||
| + | - Erweitern Sie das Programm, dass beim Drücken von Knopf B das gelbe Licht 10 mal blinkt. | ||
| + | - Verändern Sie das Programm weiter, sodass wenn beide Knöpfe gleichzeitig gedrückt werden, ein Symbol Ihrer Wahl angezeigt wird und eine Folge von absteigenden Tönen erzeugt wird und gleichzeitig alle drei Lichter blinken. | ||
| - | <WRAP center round todo 100%> | ||
| - | **Aufgabe 11: Einen Schrittezähler programmieren und testen**\\ | ||
| - | [[+tab|https:// | ||
| - | Ziel dieser Übung ist es mit Hilfe von Schleifen, Selektion, Eingaben und Variablen einen einfachen Schrittezähler mit dem Microbit zu programmieren und zu testen. Erstellen Sie folgendes Programm: | ||
| - | * Einee Variable " | ||
| - | * Danach soll sich für immer wiederholen: | ||
| - | * Wenn der Microbit geschüttelt wurde, wird die Vartiable " | ||
| - | * Wenn der Knopf a gedrückt wurde, sollen die Anzahl Schritte auf dem Display gezeigt werden | ||
| - | * Verwenden Sie dafür die Funktion %%display.scroll%% anstatt %%display.show%%, | ||
| - | * Wenn der Knopf b gedrückt wurde, soll der Schrittezähler wieder bei 0 beginnen zu zählen (er wird zurückgesetzt) | ||
| - | {{: | ||
| - | |||
| - | <WRAP center round tip 90%> | ||
| - | **Tipp:**\\ | ||
| - | Um herauszufinden, | ||
| - | Damit das Programm nicht nur einmal durchläuft, | ||
| </ | </ | ||
| - | * Testen Sie nun Ihr Programm: | ||
| - | * Lösen Sie den Microbit vom USB-Kabel | ||
| - | * Verbinden Sie das Batteriefach mit dem Microbit, so dass dieser weiterhin Strom hat und das Programm startet | ||
| - | * Befestigen Sie den Microbit mit dem Batteriefach an Ihrem Schuh (an Fussgelenk). Seien Sie bitte vorsichtig | ||
| - | * Gehen Sie einige Schritte und testen Sie, wie gut der Schrittezähler funktioniert. Verwenden Sie ebenfalls Treppen, um das Programm zu testen! | ||
| - | * Sobald Sie fertig sind und Ihr Programm auch erfolgreich getestet haben, speichern Sie dieses wiederum als Datei (Aufgabe_11_Schrittezaehler) in Ihrem Informatik-Ordner! | ||
| - | < | ||
| - | <panel type=" | ||
| - | Lösung: | ||
| - | <code python> | ||
| - | from microbit import * | ||
| - | schritte=0 | + | < |
| - | while True: | + | <panel title ="mögliche Lösungen"> |
| - | if accelerometer.was_gesture(' | + | |
| - | schritte = schritte+1 | + | |
| - | if button_a.is_pressed(): | + | |
| - | display.scroll(schritte) | + | |
| - | if button_b.is_pressed(): | + | |
| - | schritte = 0 | + | |
| - | display.scroll(schritte) | + | |
| - | </ | + | |
| - | </ | + | |
| - | </accordion> | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | + | ||
| - | <WRAP center round todo 100%> | + | |
| - | **Aufgabe 12: Accelerometer-Richtung**\\ | + | |
| - | [[+tab|https:// | + | |
| - | Ziel dieser Übung ist es nochmals den Einsatz von Schleifen, Selektion, Eingaben und Variablen mit dem Microbit zu übern und zu testen. Erstellen Sie folgendes Programm: | + | |
| - | * Es soll sich für immer wiederholen: | + | |
| - | * Wenn der Miicrobit nach oben bewegt wird (accelerometer.was_gesture(" | + | |
| - | * Wenn sich der Microbit nach rechts bewegt, soll der Pfeil für genau 1 Sekunde in Richtung rechts (Ost) zeigen | + | |
| - | * Wenn sich der Microbit nach unten bewegt, soll der Pfeil für genau 1 Sekunde in Richtung rechts (Süd) zeigen | + | |
| - | * Wenn sich der Microbit nach links bewegt, soll der Pfeil für genau 1 Sekunde in Richtung rechts (West) zeigen | + | |
| - | + | ||
| - | + | ||
| - | <WRAP center round tip 90%> | + | |
| - | **Tipps: | + | |
| - | * Wenn Sie einen Pfeil anzeigen lassen wollen, können Sie den Befehl '' | + | |
| - | * Um das Display nach 1 Sekunde zurückzusetzen, | + | |
| - | </ | + | |
| - | * Testen Sie nun Ihr Programm: | + | |
| - | * Zeichnen Sie für diesen Algorithmus ein Flowchart-Diagramm auf Papier oder in OneNote mit den korrekten Diagrammelementen! | + | |
| - | + | ||
| - | <WRAP center round important 60%> | + | |
| - | Sie sollen Ihre neuen Erkenntnisse aus dieser Aufgabe (z.B. das Zurücksetzen des Bildschirms) in Ihrem Cheatsheet in OneNote kurz einfügen und erörtern! | + | |
| - | </ | + | |
| - | + | ||
| - | + | ||
| - | < | + | |
| - | < | + | |
| - | Lösung: | + | |
| <code python> | <code python> | ||
| - | # Microbit-Modul wird importiert | ||
| - | from microbit import * | ||
| - | |||
| - | # Wiederhole unendlich lange | ||
| - | while True: | ||
| - | if accelerometer.was_gesture(" | ||
| - | display.show(Image.ARROW_N) | ||
| - | sleep(1000) | ||
| - | display.clear() | ||
| - | if accelerometer.was_gesture(" | ||
| - | display.show(Image.ARROW_E) | ||
| - | sleep(1000) | ||
| - | display.clear() | ||
| - | if accelerometer.was_gesture(" | ||
| - | display.show(Image.ARROW_S) | ||
| - | sleep(1000) | ||
| - | display.clear() | ||
| - | if accelerometer.was_gesture(" | ||
| - | display.show(Image.ARROW_W) | ||
| - | sleep(1000) | ||
| - | display.clear() | ||
| - | </ | ||
| - | </ | ||
| - | </ | ||
| - | |||
| - | </ | ||
| - | ===== Endliche Schleifen mit while und Bedingungen ===== | ||
| - | Sie haben sich vielleicht schon die Frage gestellt, ob es auch möglich ist, Schleifen endlich zu programmieren, | ||
| - | - Zum Einen kann man über den Schlüsselbegriff '' | ||
| - | - Zum Anderen kann man im Schleifenkopf nach dem '' | ||
| - | ==== Schleifen beenden mit '' | ||
| - | Hierzu studieren wir einmal das folgende kleine Programm. Kopieren Sie dieses in den Editor und laufen Sie es auf dem Microbit laufen. Ihnen fällt vielleicht auf, dass es sich um eine Art Metronom handelt, das 120 mal Pro Minute einen Ton ausgibt.\\ | ||
| - | Über den Befehl '' | ||
| - | Falls man nun das Programm beenden möchte, muss man die Knöpfe A und B gleichzeitig gedrückt halten. Das '' | ||
| - | < | ||
| # Imports go at the top | # Imports go at the top | ||
| from microbit import * | from microbit import * | ||
| - | import music | + | import music |
| - | # define variable anzahlBPM | ||
| - | anzahlBPM = 120 | ||
| - | # Code in a 'while True:' loop repeats forever | ||
| while True: | while True: | ||
| - | | + | |
| - | | + | pin0.write_digital(1) |
| - | if button_a.is_pressed() and button_b.is_pressed(): | + | |
| - | | + | if button_a.was_pressed(): |
| - | </ | + | pin0.write_digital(0) |
| - | {{:wiki: | + | pin1.write_digital(1) |
| + | | ||
| + | pin0.write_digital(0) | ||
| + | pin1.write_digital(0) | ||
| + | pin2.write_digital(1) | ||
| + | sleep(2000) | ||
| + | speaker.off() | ||
| + | pin0.write_digital(0) | ||
| + | pin1.write_digital(0) | ||
| + | pin2.write_digital(0) | ||
| + | sleep(2000) | ||
| + | if button_b.was_pressed(): | ||
| + | | ||
| + | | ||
| + | | ||
| + | pin1.write_digital(1) | ||
| + | sleep(500) | ||
| + | pin1.write_digital(0) | ||
| + | sleep(500) | ||
| + | counter=counter+1 | ||
| - | <WRAP center round todo 100%> | + | |
| - | **Aufgabe 13: Ein Metronom programmieren mit variablen BPM**\\ | + | |
| - | Studieren Sie oben das Unterkapitel " | + | |
| - | Kopieren Sie das obige Programm in den Editor. Sie sollen dieses nun so erweitern, dass man mit dem Knopfdruck auf B das Tempo '' | + | |
| - | Tipp: Über den Reset-Button auf der Rückseite des Microbit kann man das Programm immer wieder von vorne starten lassen.\\ | + | |
| - | Speichern Sie das Programm anschliessend wieder in Ihrem Informatik-Ordner auf Ihrem Computer als Datei! | + | |
| - | <WRAP center round important 60%> | ||
| - | Sie sollen Ihre neuen Erkenntnisse aus dieser Aufgabe (Schleifen beenden durch '' | ||
| - | </ | ||
| - | < | ||
| - | < | ||
| - | <panel type=" | ||
| - | Lösung: | ||
| - | <code python> | ||
| - | # Imports go at the top | ||
| - | from microbit import * | ||
| - | import music | ||
| - | |||
| - | anzahlBPM = 120 | ||
| - | |||
| - | # Code in a 'while True:' loop repeats forever | ||
| - | while True: | ||
| - | music.set_tempo(bpm=anzahlBPM) | ||
| - | music.play([' | ||
| - | if button_a.is_pressed(): | ||
| - | anzahlBPM = anzahlBPM-10 | ||
| - | if button_b.is_pressed(): | ||
| - | anzahlBPM = anzahlBPM+10 | ||
| - | if button_a.is_pressed() and button_b.is_pressed(): | ||
| - | break | ||
| </ | </ | ||
| </ | </ | ||
| </ | </ | ||
| - | </hidden> | + | < |
| + | <WRAP nicebox green> | ||
| + | **Aufgabe 12** | ||
| + | - Zeichnen Sie das Aktivitätsdiagramm des unten beschriebenen Programms, diskutieren Sie zu zweit. | ||
| + | - Schreiben Sie das Programm, welches die beiden Pulse misst. | ||
| + | - Ergänzen Sie das Programm, sodass die Werte von einem Micro:bit zum anderen gesendet werden! | ||
| + | <WRAP center round box 60%> | ||
| + | // | ||
| + | Es soll den jeweiligen Pulsschlag pro Minute von zwei Personen nacheinander anzeigen, dazu soll eine '' | ||
| + | Der Puls soll wie auf dem Foto abgebildet, | ||
| + | {{ : | ||
| </ | </ | ||
| - | ==== Schleifen mit Schleifen-Bedingung ==== | ||
| - | Es ist möglich, eine while-Schleife nur genau solange ausführen zu lassen, wie eine bestimmte Bedingung eintrifft. Hierfür kann (ähnlcih wie nach dem '' | ||
| - | < | ||
| - | # Import | ||
| - | from microbit import * | ||
| - | # Variable i wird auf 0 gesetzt | + | Tipps: |
| - | i=0 | + | * Die Bedingung '' |
| - | # solange i kleiner als 10 ist | + | * Die 2.Programmieraufgabe könnte helfen |
| - | while i<10: | + | * Ein Zähler |
| - | | + | * Die gemessenen Pulsschläge sind mit einem geeigneten Faktor proportional auf eine Zeitspanne von 60 Sekunden zu rechnen. |
| - | sleep(500) | + | * Das Menü Radio hilft für Teilaufgabe C. |
| - | i=i+1 # ganz wichtig: innerhalb des Schleifenkörpers muss i erhöht | + | * {{ : |
| - | display.scroll(" | ||
| - | </ | ||
| - | |||
| - | {{: | ||
| - | |||
| - | <WRAP center round todo 100%> | ||
| - | **Aufgabe 14: **\\ | ||
| - | Ein Programm wurde geschrieben und sieht bei der Ausführung wie folgt aus: | ||
| - | {{youtube> | ||
| - | |||
| - | * Schreiben Sie dieses Programm, dabei sollte eine '' | ||
| - | <WRAP center round info 90%> | ||
| - | **Tipp:** Wenn Sie wollen, dass die While-Schleife nicht unendlich lange läuft, sondern nur, solange eine bestimmte Variable, z.B. '' | ||
| </ | </ | ||
| - | + | < | |
| - | <WRAP center round important 60%> | + | <panel title=" |
| - | Sie sollen Ihre neuen Erkenntnisse aus dieser Aufgabe (Schleifen mit Bedingung) in Ihrem Cheatsheet in OneNote kurz einfügen und erklären! | + | Aufgabe 10 |
| - | </ | + | |
| - | + | ||
| - | < | + | |
| - | < | + | |
| - | < | + | |
| - | Lösung: | + | |
| <code python> | <code python> | ||
| + | while True: | ||
| + | |||
| + | pin0.write_digital(1) | ||
| + | |||
| + | if button_a.was_pressed(): | ||
| + | pin0.write_digital(0) | ||
| + | pin1.write_digital(1) | ||
| + | sleep(500) | ||
| + | pin1.write_digital(0) | ||
| + | pin2.write_digital(1) | ||
| + | sleep(2000) | ||
| + | pin2.write_digital(0) | ||
| + | if button_b.was_pressed(): | ||
| + | pin0.write_digital(0) | ||
| + | counter=0 | ||
| + | while(counter< | ||
| + | pin1.write_digital(1) | ||
| + | sleep(500) | ||
| + | pin1.write_digital(0) | ||
| + | sleep(500) | ||
| + | counter=counter+1 | ||
| </ | </ | ||
| </ | </ | ||
| </ | </ | ||
| + | <WRAP nicebox green> | ||
| + | **Aufgabe 13 - Lernfragen**\\ | ||
| + | Bearbeiten Sie die folgenden Lernfragen. | ||
| + | - Wie kann erreicht werden, dass ein Teil eines Programms nur in bestimmten Fällen ausgeführt wird? | ||
| + | - Warum ist das Verzweigen (Entscheiden) des Programms überhaupt nötig? | ||
| + | - Worauf muss geachtet werden, wenn eine ' | ||
| + | - Welches sind die wichtigsten Erkenntnisse der Programmieraufgaben 1 bis 10? Notieren Sie dies kurz! | ||
| + | - Formulieren Sie eine eigene Lernfrage | ||
| + | </ | ||
| </ | </ | ||
| - | </ | ||
| - | ====== | + | [[gf1: |
| - | Die folgenden Lernziele dienen der Prüfungsvorbereitung und beziehen sich nur auf das aktuelle Unterkapitel | + | |
| - | * Ich kann in meinen eigenen Worten erklären, was ein Algorithmus ist, kann Beispiele aus dem Alltag nennen und erklären | ||
| - | * Ich kann anhand eines einfachen Algorithmus die wichtigsten Eigenschaften von diesem erklären (z.B: Kockrezept oder Faltanleitung): | ||
| - | * Eindeutigkeit | ||
| - | * Ausführbarkeit | ||
| - | * Terminierung | ||
| - | * Determiniertheit | ||
| - | * Determinismus | ||
| - | * Ich verstehe das Prinzip des sequenziellen Ausführens eines Programmes (Algorithmus für den Computer), kann dies erklären | ||
| - | * Ich kann ein Aktivitätsdiagramm (Flowchart) zu einem Algorithmus erfolgreich lesen und verstehe die Schritte | ||
| - | * Ich kann ein Aktivitätsdiagramm zu einem einfachen Ablauf (z.B. ein Koch/ | ||
| - | * Ich kann das Prinzip von EVA (Eingabe, Verarbeitung und Ausgabe) bei Programmen erläutern | ||
| - | * Ich kann in Python Werte und Texte im Display des Microbits ausgeben | ||
| - | * Ich kann in einem Programm Variablen definieren, einsetzen und ausgeben mit dem Microbit | ||
| - | * Ich weiss, wie gültige Variablen genannt werden müssen | ||
| - | * Ich kenne die folgenden Operatoren und weiss, wie ich sie mit Python einsetzen kann: | ||
| - | * Addition | ||
| - | * Subtraktion | ||
| - | * Multiplikation | ||
| - | * Division | ||
| - | * Exponentiation (Hoch rechnen) | ||
| - | * Wurzel | ||
| - | * Ich kann die vorgestellten Python-Module (microbit und math) in einem Programm importieren und erläutern wofür diese notwendig sind | ||
| - | * Ich kann den Import-Befehl von Modulen in einem Python-Programm erläutern | ||
| - | * Ich kann in Python eine Endlosschleife einsetzen (programmieren) | ||
| - | * Ich kann in Python eine einfache Selektion (if ...) einsetzen | ||
| - | * Ich kann in die Knöpfe (Eingaben) des Microbits in einer Selektion überprüfen (wurde ein Knopf a oder b gedrückt?) | ||
| - | * Ich kann in Python endliche Schleifen programmieren, | ||
| - | * Ich kann Schleifen-Bedingungen einsetzen, um das Ausführen einer Schleife zu kontrollieren | ||
| - | * Ich kann den Schlüsselbegriff //break// in Schleifen einsetzen, um diese an einem bestimmten Punkt zu beenden | ||
| - | ====== Übungsaufgaben ====== | ||
| - | Die folgenden Übungsaufgaben dienen der Vertiefung und Erweiterung Ihrer bisher erlernten Kentnissen und Fähigkeiten in der Programmierung mit Python und dem BBC: | ||
| - | |||
| - | |||
| - | |||
| - | <WRAP center round todo 100%> | ||
| - | **Aufgabe 15: **\\ | ||
| - | a) Erstellen Sie ein Programm, das die Summe aller Zahlen von 1 bis 100 berechnet und ausgibt. Dazu sollen Sie zwei Variablen '' | ||
| - | < | ||
| - | from microbit import * | ||
| - | i = 0 | ||
| - | summe = 0 | ||
| - | </ | ||
| - | Speichern Sie Ihr Programm anschliessend!\\ | ||
| - | < | ||
| - | <panel type=" | ||
| - | Lösung: | ||
| - | <code python> | ||
| - | from microbit import * | ||
| - | i = 0 | ||
| - | summe = 0 | ||
| - | |||
| - | while i<=100: | ||
| - | summe = summe+i | ||
| - | i = i+1 | ||
| - | |||
| - | display.scroll(" | ||
| - | display.scroll(summe) | ||
| - | </ | ||
| - | </ | ||
| - | </ | ||
| - | b) Erstellen Sie ein weiteres Programm, das nicht die Summe sondern das Produkt der ersten 10 Zahlen (1 bis 10) berechnet und ausgibt. Dazu sollen Sie zwei Variablen '' | ||
| - | Speichern Sie Ihr Programm anschliessend!\\ | ||
| - | < | ||
| - | <panel type=" | ||
| - | Lösung: | ||
| - | <code python> | ||
| - | from microbit import * | ||
| - | i = 1 | ||
| - | produkt = 1 | ||
| - | |||
| - | while i<=10: | ||
| - | produkt = produkt*i | ||
| - | i = i+1 | ||
| - | |||
| - | display.scroll(" | ||
| - | display.scroll(produkt) | ||
| - | </ | ||
| - | </ | ||
| - | </ | ||
| - | c) Freiwillig (knifflig): Erstellen Sie ein Programm, das die zehnte [[+tab|https:// | ||
| - | < | ||
| - | <panel type=" | ||
| - | Lösung: | ||
| - | <code python> | ||
| - | from microbit import * | ||
| - | f0 = 1 | ||
| - | f1 = 1 | ||
| - | fn = 2 | ||
| - | i=3 | ||
| - | # wir beginnen bei 3, weil die ersten 2 Zahlen schon da sind (1,1, ...) | ||
| - | while i<=10: | ||
| - | fn=f0+f1 | ||
| - | f0=f1 | ||
| - | f1=fn | ||
| - | i=i+1 | ||
| - | display.scroll(" | ||
| - | display.scroll(fn) | ||
| - | </ | ||
| - | </ | ||
| - | </ | ||
| - | </ | ||
| - | |||
| - | <WRAP center round todo 100%> | ||
| - | **Aufgabe 16**\\ | ||
| - | Beantworten Sie die drei Lernfragen: | ||
| - | - Welche Ausgabemöglichkeiten haben wir beim Microbit bisher kennengelernt? | ||
| - | - Was ist der Unterschied zwischen '' | ||
| - | - Was genau macht die Schleife '' | ||
| - | - Was macht die Schleife '' | ||
| - | - Wofür sind Variablen nützlich? Was ist der Unterschied zwischen '' | ||
| - | - Worauf muss geachtet werden, wenn eine sich endlich wiederholende '' | ||
| - | - Wie lässt sich eine Schleife stoppen? | ||
| - | - Was passiert, wenn auf das Einrücken in der '' | ||
| - | - Welche Eingabemöglichkeiten haben wir bisher kennengelernt? | ||
| - | </ | ||
| - | </ | ||