Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| gf1:programmieren4 [2023/06/14 10:57] – marroc | gf1:programmieren4 [2025/04/24 10:37] (aktuell) – marroc | ||
|---|---|---|---|
| Zeile 13: | Zeile 13: | ||
| Durch dieses kleine Programm 1 wird gezählt, wie oft der Knopf A gedrückt in 3000ms gedrückt wird. Es wird neben der vordefinierten Methode '' | Durch dieses kleine Programm 1 wird gezählt, wie oft der Knopf A gedrückt in 3000ms gedrückt wird. Es wird neben der vordefinierten Methode '' | ||
| - | + | < | |
| - | :!: **Das <color # | + | <panel title=" |
| - | **\\ | + | Das **<color # |
| + | \\ | ||
| Das Programm ist sehr kurz und es fällt auf, dass es nur einen Durchlauf gibt. Durch ein erneutes Starten des Programms (die Stop- und Starttaste bei der Simulation oder dem Aus- und Einschalten des Micro:bits) kann ein weiteres Mal gezählt werden, wie oft A gedrückt wird. | Das Programm ist sehr kurz und es fällt auf, dass es nur einen Durchlauf gibt. Durch ein erneutes Starten des Programms (die Stop- und Starttaste bei der Simulation oder dem Aus- und Einschalten des Micro:bits) kann ein weiteres Mal gezählt werden, wie oft A gedrückt wird. | ||
| Das Programm kann natürlich auch wie folgt erweitert werden. | Das Programm kann natürlich auch wie folgt erweitert werden. | ||
| + | \\ | ||
| + | <WRAP nicebox grey> | ||
| + | **Erinnerung**: | ||
| + | |||
| + | == Das EVA-Prinzip == | ||
| + | |||
| + | Grundlage für einen Algorithmus ist das <color # | ||
| + | {{ eva.png? | ||
| + | |||
| + | **<color # | ||
| + | |||
| + | **<color # | ||
| + | |||
| + | **<color # | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| <code python countB.py> | <code python countB.py> | ||
| Zeile 39: | Zeile 57: | ||
| </ | </ | ||
| - | Beim Programm | + | Im obigen |
| - | Wie kann dieses Wiederholen besser programmiert | + | Um das Programmieren |
| - | Neben den Variablen ist ein zweites wichtiges Programmierkonzept die Schleifen. Eine Schleife ist dann nötig, wenn ein Programmteil (Code-Block) sich mehrfach wiederholt. **Durch das Verwenden einer Schleife muss die Programmzeile nicht immer wiederholt im Programm notiert werden.** Somit ist dies genau das, was Programm 2 verbessern würde. | ||
| - | |||
| - | Es gibt grundsätzlich zwei Schleifentypen: | ||
| + | <WRAP nicebox grey> | ||
| ===while-Schleife=== | ===while-Schleife=== | ||
| - | + | | |
| - | Eine while-Schleife wird unter anderem dann verwendet, wenn: | + | * <color # |
| - | | + | * <color # |
| - | * .... die Anzahl Wiederholungen bekannt | + | * ...man nicht weiss, wie oft eine Wiederholung einiger Programmzeilen ausgeführt werden muss und von einer Bedingung abhängt, die während der Ausführung überprüft wird. |
| - | + | * ...die Anzahl Wiederholungen bekannt ist und eine **Zähl-Variable** vorhanden ist. | |
| - | Jede Schleife hat eine **Bedingung** (eine " | + | * ... die Schleife auf Benutzereingaben wartet, z.B. in einem Programm, das Benutzereingaben verarbeitet, |
| - | + | ||
| - | Bei der Schleife wird der Body (die Programmzeile, | + | </ |
| {{: | {{: | ||
| Zeile 72: | Zeile 88: | ||
| Hier ist ein Zähler nötig, denn dadurch kann die Anzahl Wiederholungen durch das Erhöhen in jedem Durchlauf ('' | Hier ist ein Zähler nötig, denn dadurch kann die Anzahl Wiederholungen durch das Erhöhen in jedem Durchlauf ('' | ||
| - | + | < | |
| - | < | + | < |
| **Aufgabe 6**\\ | **Aufgabe 6**\\ | ||
| Für diese Aufgabe orientieren Sie sich am Programm Rechner 1 (wie Aufgabe 5). Schreiben Sie ein Programm mit folgenden Eigenschaften: | Für diese Aufgabe orientieren Sie sich am Programm Rechner 1 (wie Aufgabe 5). Schreiben Sie ein Programm mit folgenden Eigenschaften: | ||
| Zeile 79: | Zeile 95: | ||
| * Gleiches für den Variablenwert b. | * Gleiches für den Variablenwert b. | ||
| * Danach soll das Produkt der beiden Werte angezeigt werden. | * Danach soll das Produkt der beiden Werte angezeigt werden. | ||
| + | |||
| <code python> | <code python> | ||
| from microbit import * | from microbit import * | ||
| Zeile 97: | Zeile 114: | ||
| </ | </ | ||
| - | < | + | < |
| **Aufgabe 7**\\ | **Aufgabe 7**\\ | ||
| {{ : | {{ : | ||
| Verändern Sie das Programm 3 so, dass der Knopfdruckwert von Startwert 20 subtrahiert wird, bei jedem Durchlauf der Wiederholung dann von diesem Zwischenresultat weiter subtrahiert wird. Wenn durch diese Subtraktion 0 erreicht wird, soll ein Ton abgespielt. | Verändern Sie das Programm 3 so, dass der Knopfdruckwert von Startwert 20 subtrahiert wird, bei jedem Durchlauf der Wiederholung dann von diesem Zwischenresultat weiter subtrahiert wird. Wenn durch diese Subtraktion 0 erreicht wird, soll ein Ton abgespielt. | ||
| </ | </ | ||
| + | </ | ||
| === Die Endlosschleife === | === Die Endlosschleife === | ||
| - | {{ : | + | < |
| Die '' | Die '' | ||
| - | Um diese Endlosschleife zu programmieren, | + | Um diese Endlosschleife zu programmieren, |
| + | '' | ||
| Diese Schleife wird während immer ausgeführt, | Diese Schleife wird während immer ausgeführt, | ||
| - | < | + | < |
| + | < | ||
| **Aufgabe 8**\\ | **Aufgabe 8**\\ | ||
| Verändern Sie das Programm 3 so, dass es eine Endlosschleife enthält und nicht nach 3 Wiederholungen stoppt. | Verändern Sie das Programm 3 so, dass es eine Endlosschleife enthält und nicht nach 3 Wiederholungen stoppt. | ||
| </ | </ | ||
| - | + | </ | |
| - | < | + | < |
| **Aufgabe 9**\\ | **Aufgabe 9**\\ | ||
| Ein Programm wurde geschrieben und sieht bei der Ausführung wie folgt aus: | Ein Programm wurde geschrieben und sieht bei der Ausführung wie folgt aus: | ||
| Zeile 121: | Zeile 140: | ||
| </ | </ | ||
| - | < | + | < |
| **Aufgabe 10**\\ | **Aufgabe 10**\\ | ||
| - Lassen Sie den Micro:bit ein zufriedenes Smiley anzeigen. Hier hilft Ihnen das Menü Display. {{ : | - Lassen Sie den Micro:bit ein zufriedenes Smiley anzeigen. Hier hilft Ihnen das Menü Display. {{ : | ||
| - Verändern Sie Ihr kleines Programm so, dass zuerst das Smiley und danach ein anderes Symbol leuchtet, dabei sollten die LEDs nicht alle mit der selben Leuchtkraft leuchten und zwischen den beiden Elementen sollte es eine kurze Pause geben! | - Verändern Sie Ihr kleines Programm so, dass zuerst das Smiley und danach ein anderes Symbol leuchtet, dabei sollten die LEDs nicht alle mit der selben Leuchtkraft leuchten und zwischen den beiden Elementen sollte es eine kurze Pause geben! | ||
| - Nutzen Sie nun eine '' | - Nutzen Sie nun eine '' | ||
| + | |||
| </ | </ | ||
| + | < | ||
| <WRAP nicebox blue> | <WRAP nicebox blue> | ||
| **Lernfragen**\\ | **Lernfragen**\\ | ||
| Zeile 138: | Zeile 158: | ||
| - Was passiert, wenn auf das Einrücken in der '' | - Was passiert, wenn auf das Einrücken in der '' | ||
| </ | </ | ||
| - | + | </ | |
| + | [[gf1: | ||
| ---- | ---- | ||
| + | |||
| < | < | ||
| <panel title=" | <panel title=" | ||
| + | < | ||
| Aufgabe 6 | Aufgabe 6 | ||
| <code python> | <code python> | ||
| - | from microbit import * | + | from microbit import * |
| from math import * | from math import * | ||
| Zeile 169: | Zeile 191: | ||
| </ | </ | ||
| oder anstelle von einer endlosen Schleife auch möglich mit der Schleife und mehreren Durchläufen. | oder anstelle von einer endlosen Schleife auch möglich mit der Schleife und mehreren Durchläufen. | ||
| - | < | + | < |
| from microbit import * | from microbit import * | ||
| from math import * | from math import * | ||
| Zeile 195: | Zeile 217: | ||
| zaehler=zaehler+1 | zaehler=zaehler+1 | ||
| </ | </ | ||
| + | |||
| Aufgabe 7 | Aufgabe 7 | ||
| - | < | + | < |
| from microbit import * | from microbit import * | ||
| + | import music | ||
| + | |||
| zaehler=20 #ein Zähler ist nötig, um eine Bedingung, ein Stop-Kriterium zu definieren | zaehler=20 #ein Zähler ist nötig, um eine Bedingung, ein Stop-Kriterium zu definieren | ||
| while (zaehler> | while (zaehler> | ||
| Zeile 207: | Zeile 231: | ||
| zaehler=zaehler-knopfdruck #hier wird vom aktuellen Wert der Knopfdruckwert abgezogen wird. | zaehler=zaehler-knopfdruck #hier wird vom aktuellen Wert der Knopfdruckwert abgezogen wird. | ||
| display.scroll(zaehler) | display.scroll(zaehler) | ||
| - | | + | music.play(music.BA_DING) |
| </ | </ | ||
| - | < | + | Aufgabe 8 |
| + | < | ||
| + | from microbit import * | ||
| + | zaehler=1 #ein Zähler ist nötig, um eine Bedingung, ein Stop-Kriterium zu definieren | ||
| + | while True: | ||
| + | display.scroll(' | ||
| + | sleep(3000) | ||
| + | knopfdruck=button_a.get_presses() | ||
| + | display.scroll(knopfdruck) | ||
| + | </ | ||
| + | </ | ||
| + | Aufgabe 9 | ||
| + | <code python> | ||
| + | from microbit import * | ||
| + | |||
| + | zaehler=1 #ein Zähler ist nötig, um eine Bedingung, ein Stop-Kriterium zu definieren | ||
| + | while (zaehler< | ||
| + | display.scroll(2*zaehler) | ||
| + | zaehler=zaehler+1 | ||
| + | display.scroll(' | ||
| + | </ | ||
| + | Aufgabe 10 | ||
| + | <code python> | ||
| + | from microbit import * | ||
| + | |||
| + | |||
| + | |||
| + | while True: | ||
| + | display.set_pixel(1, | ||
| + | display.set_pixel(3, | ||
| + | display.set_pixel(4, | ||
| + | display.set_pixel(0, | ||
| + | display.set_pixel(1, | ||
| + | display.set_pixel(3, | ||
| + | display.set_pixel(3, | ||
| + | display.set_pixel(2, | ||
| + | display.set_pixel(1, | ||
| + | sleep(400) | ||
| + | display.show(Image.HAPPY) | ||
| + | sleep(400) | ||
| + | display.clear() | ||
| </ | </ | ||
| </ | </ | ||