Dies ist eine alte Version des Dokuments!
Erste Schritte in der Programmierung mit Python
Ein Algorithmus - was ist das?
Drei Aufgaben zum Einsteigen:
Bearbeiten Sie die verschiedenen Aufgaben:
Aufgabe A
Führen Sie die folgende Rechenanleitung durch … ohne Taschenrechner;-)
- Wählen Sie eine Zahl zwischen 1 und 9.
- Verdoppeln Sie die Zahl.
- Addieren Sie 2.
- Multiplizieren Sie die Zahl mit 100.
- Halbieren Sie das Resultat.
- Wenn Sie bereits Geburtstag hatten, addieren Sie das aktuelle Jahr und subtrahieren 2100. (Falls das Geburtsdatum vor dem Jahr 2000 ist, so wäre dies nicht 2100 sondern 2000)
- Wenn Sie noch nicht Geburtstag hatten, addieren Sie das aktuelle Jahr und subtrahieren 2101. (Falls das Geburtsdatum vor dem Jahr 2000 ist, so wäre dies 2001 und nicht 2001)
- Subtrahieren Sie die letzten beiden Zahlen Ihres Jahrganges (z.B. bei 1991 subtrahieren Sie 91).
- Ihre Zahl sollte dreistellig sein. Die erste Ziffer besteht aus der Zahl, welche Sie sich am Anfang gemerkt haben, die letzten beiden Ziffern sind Ihr Alter in Jahren. Verblüffend, nicht?
Aufgabe B
- Folgen Sie der Faltanleitung und falten Sie! Blätter sind bei der Lehrperson vorhanden!
- Öffnen Sie ein Worddokument oder eine OneNote-Seite und notieren Sie den Ablauf des Faltens ganz genau. Vergleichen Sie Ihren Text mit einem Text einer bzw. eines Lernenden. Was fällt auf? Wo hat Ihr Text Lücken und Schwächen? Was ist schwierig, am Verfassen dieses Textes und warum?
Aufgabe C
Im Film ist ein Muffinsrezept und was dieses mit Algorithmen zu tun hat, kurz erklärt. Schauen Sie sich das Video an, machen Sie sich Notizen, (auch das abgebildete Diagramm!)
Aufgabe D
Beantworten Sie anschliessend folgende Fragen:
- Was haben die Aufgaben gemeinsam?
- Finden sich überall Algorithmen?
- Warum bzw. warum nicht? Was genau ist der Algorithmus, den ersten beiden Aufgaben?
Was ist ein Algorithmus?
Das EVA-Prinzip
Grundlage für einen Algorithmus ist das EVA-Prinzip.
E steht für Eingabe. Eingaben können über von Benutzern die Tasten, die Maus oder den Touchbildschirm direkt gemacht werden. Es können aber auch Eingaben über Sensoren oder andere Computersysteme erfolgen. Kurz kann eine Eingabe über Nutzerinteraktion, externe Informationen oder Sensoreingaben erfolgen.
V steht für Verarbeitung. Die Eingaben werden verarbeitet, meist durchlaufen Sie ein Programm. Das Programm ist oft ein in Computersprache niedergeschriebener Algorithmus.
A für Ausgabe: Die Ausgaben erfolgen über den Bildschirm, einen Drucker oder das Senden der Ausgabeinformation an ein anderes System.
In diesem Kontext sollte nun eine Definition und die Eigenschaften eines Algorithmus folgen.
Definition:
Ein Algorithmus ist eine Folge von Schritten oder Anweisungen, mit der eine Aufgabe ausgeführt oder ein Problem gelöst wird. Oft enthält ein Algorithmus sich wiederholende Schritte, Entscheidungen zwischen zwei Schritten oder nach geordneten Schritten, oder auch Schritte, die sich auf den Algorithmus beziehen oder Teilaufgaben erledigen bzw. Teilprobleme lösen. (Quelle: Programmieren ganz einfach, Die Basics für Einsteiger Schritt für Schritt, dk-Verlag, Deutsche Ausgabe 2020 München)
Eigenschaften eines Algorithmus
Damit Algorithmen befolgt (oder auch programmiert) werden können, müssen sie die folgenden Eigenschaften aufweisen:
Eindeutigkeit. Ein Algorithmus darf keine widersprüchliche Beschreibung haben. Diese muss eindeutig sein. Im Muffinsrezept müssen die Mengenangaben genau (nummerisch, in Gramm o.ä.) sein. Dies ist eine Schwierigkeit bei der Faltaufgabe. Der Text muss eindeutig sein.
Ausführbarkeit. Es darf im Algorithmus nie eine Stelle geben, die nicht ausführbar ist (durchlaufen werden kann). Der nächste Backschritt-, Faltschritt oder Rechenschritt muss klar definiert und „bearbeitbar“ (also ausführbar) sein.
Terminierung. Der Algorithmus muss ein Ende haben. Es darf lange dauern, aber es muss endlich sein, da sonst eine vollständige Bearbeitung (ein vollständiges Durchlaufen der Arbeitsanweisungen nicht möglich ist.)
Determiniertheit(Bedingtheit). Dies bedeutet in unserem Zusammenhang, dass ein Algorithmus bei gleichen Voraussetzungen stets das gleiche Ergebnis liefern muss. Er kann somit nicht einfach mit der gleichen Eingabe zwei verschiedene Ergebnisse ausgeben. Die Faltanleitung muss immer (mehr oder weniger genau) das gleiche Faltergebnis liefern.
Determinismus (Bestimmtheit). Es muss zu jedem Zeitpunkt während der Ausführung des Algorithmus nur eine Möglichkeit bestehen, den Algorithmus fortzusetzen. Als Leser bzw. ausführende Person (oder auch eine Maschine) eines Algorithmus darf man somit nie vor einer Wahl stehen.
Aufgabe E Diskutieren Sie anhand dieser Definition zu zweit, ob die folgenden Aussagen wahr oder falsch sind.
- Aussage: „Algorithmen sind allgegenwärtig, sogar beim Wählen des Waschprogramms der Waschmaschine.“
- Aussage: „Ein Algorithmus sagt uns genau, wie wir etwas in welcher Reihenfolge ausführen sollen. Der Algorithmus ist so klar, dass wir nie selber entscheiden müssen.“
- Aussage: „Für viele Herausforderungen oder Probleme könnte ein guter und passender Algorithmus die Lösung sein.“
Aufgabe F
Untersuchen Sie die drei Beispiele (Aufgabe A bis C), wie sie die oben aufgelisteten Eigenschaften erfüllt werden oder wo nicht.
Aufgabe G
Gegeben ist das folgende Diagramm (ein sogenanntes Aktivitätsdiagramm). Eine Spielfigur steht beim Pfeilsymbol im Labyrinth (Startposition).
- Auf welchem Weg verlässt die Figur das Labyrinth, wenn Sie diesen Algorithmus nutzt? (Papierversionen des Labyrinths liegen bereit). Arbeiten Sie zu zweit.
- Wie muss das Labyrinth oder die Startposition oder beides verändert werden, damit dieser Algorithmus nicht mehr zum Ausgang führt? Hierbei darf der Ausgang des Labyrinths nicht aufgehoben werden, was die triviale Antwort auf die Frage wäre.
Aufgabe H
Erstellen Sie ein Aktivitätsdiagramm für die Aufgabe A). Eine Übersicht der Elemente finden Sie auf dem Spickzettel.
Spickzettel
Zusatzaufgabe I
- Zwei bekannte Algorithmen sind der PageRank-Algorithmus oder der Dijkstra-Algorithmus. Informieren Sie sich, welche Aufgaben diese Algorithmen übernehmen bzw. welche Probleme diese lösen.
- Was haben Algorithmen mit personalisierter Werbung oder Chatbots zu tun? Erklären Sie!
Python - die oft genutzte Programmiersprache
Im Grundlagenfach Informatik werden Sie die zwei Programmiersprachen Python und die JavaScript kennenlernen. Als Erinnerung, HTML ist keine Programmiersprache.
Python zeichnet sich durch die Einfachheit und Lesbarkeit, sowie der vielseitigen Anwendung in vielen Berufsfeldern, bei Forschern gleichwohl wie bei (Software-) Entwicklern.
Nice to know
Der niederländische Entwickler Guido van Rossum hat 1989 die Programmiersprache Python entwickelt, um eine Lernumgebung für Programmiersprachen mit einfacher Syntax und Lesbarkeit zu haben. Die durch diese Sprache geschulten Programmier-Kompetenzen sollten gleichzeitig auf andere Sprachen übertragen werden können.
Guido van Rossum war ein Fan der britischen Komikertruppe Monty Python, daher der Name „Python“, weit weg von der gleichnamigen Schlage…
Weitere Informationen hier.
Micro:bit - Ein kleiner Computer
Um erste Erfahrungen mit der Programmiersprache Python zu machen, gibt es viele Möglichkeiten.
Wir werden dies mithilfe des Micro:bits (BBC micro:bits) tun. Dies ist eine Art Minicomputer, ein so genannter Einplatinencomputer, welcher 2015 von BBC (British Broadcasting Corporation) entwickelt wurde, um die Werkzeuge für eine bessere Schulbildung im Bereich der Informationstechnik bereitzustellen. Der Micro:bit kann über verschiedener Entwicklungsumgebungen programmiert werden.
Die Hardware
Sie halten einen Micro:bit in den Händen, doch was genau ist dieses kleine Ding und was kann es alles?
Hier eine Übersicht der Hardwarekomponenten.
Auftrag: Micro:bit kennenlernen Finden Sie auf Ihrem Microbit die einige der unten aufgelisteten Komponenten und informieren Sie sich HIER über Funktionen, Eigenschaften und Besonderheiten des Micro:bits.
- Prozessor
- Lautsprecher, Mikrophon
- Beschleunigungssensor
- LEDs (vorne und hinten)
- Logo
- Pins (inklusive Masse)
- Weitere Hardwarekomponenten…
Weitere technische Details dazu unter Hardwareinformationen
Micro:bit mit dem Computer verbinden
Mit dem Micro:bit kann mit verschiedenen Editoren gearbetiet werden. Wir werden mit dem Micro:bit Classroom Editor arbeiten, denn hier gibt es eine ziemlich nütliche API*, die Verbindung zum Microbit funktioniert gut und der Editor ist einfach zu bedienen.
* API heisst Application Programming Interface und ist eine Sammlung von Befehlen, Funktionen, vieles mehr, die zum Programmieren verwendet werden können.
Bevor wir mit dem Programmieren eines Microbits starten können ist eine Verbindung zwischen dem Computer und dem Micro:bit nötig. Im folgenden Auftrag ist beschrieben, wie dies gemacht werden soll.
Der Micro:bit-Classroom-Editor
https://classroom.microbit.org/ entweder über den Chrome- oder den Edge-Browser nutzen!
Auftrag: Micro:bit anschliessen
- Schliessen Sie den Microbit per USB-Kabel an Ihrem Computer an.
- Öffnen Sie https://classroom.microbit.org/ entweder über den Chrome- oder den Edge-Browser, um den Microbit direkt über den Browser ansteuern zu können. Flashing (direktes Übertragen der Programmzeilen) auf den Micro:bit ist mit diesen Browsern möglich. Weitere Informationen zum Editor:
- Grundsätzlich kann auch ein anderer Browser ihrer Wahl genutzt werden, dann muss über ein Download und ein manuelles „Drag-and-Drop“ auf den Micro:bit (wie das Kopieren einer heruntergeladenen Datei von Ihrem Computer auf einen USB-Speicherstick) genutzt werden.
Die folgenden Aufgaben sind der Schwierigkeit nach chronologisch geordnet, die Pflichtaufgaben und die Zusatzaufgaben sind jeweils als solche markiert. Die Aufgaben sollten so durchgearbeitet werden, dass auch die Lernfragen dazu umfassend beantwortet werden können. Ihre Lösungen zu den Aufgaben sollten Sie auch immer herunterladen und in einem dazu vorgesehenen Ordner speichern, um so nichts an Arbeit zu verlieren. Die kleinen Theorieblöcke bei den Aufgaben sollten jeweils aufmerksam durchlesen und während des Aufgabenlösens verarbeitet werden.
Teil 1, Scrollen von Text und Bild
Ziele dieses Teils ist es, erste Erfahrungen im Programmieren in Python gemeinsam mit dem wichtigen Grundwissen zu den elementaren Programmierkonzepten zu machen. Es geht somit darum, nicht nur „auszuprobieren“, sondern die genannten Konzepte zu erkennen und selbst auch in einfacheren Beispielen zu verwenden.
Programmierkonzept - Variablen
Variablen haben in der Programmierung grosse Nützlichkeit, doch was genau ist eine Variable und wie kann diese genau verwendet werden?
Eine Variable ist wie ein Behälter, in dem Daten gespeichert werden können. Man kann sich eine Kiste vorstellen, in der etwas aufbewahrt werden kann und der Wert der Variable wäre somit der aufbewahrte Inhalt der Kiste.
kiste = 100
Der Wert wird einer Variablen durch das Gleichsetzen zugewiesen. Eine Zuweisung eines Werts an die Variable ist, wie wenn man einen Gegenstand in die Kiste legt.
Dies ist sehr unterschiedlich zur Mathematik. Das
= ist nicht ein ist gleich sondern eher ein Wert einer Variablen zuweisen.
Im Beispiel ist eine Variable mit dem Namen kiste erstellt worden und in dieser Variablen wird der Wert 100 gespeichert. Jedes Mal, wenn nun die Variable kiste im Programm aufgerufen wird, ersetzt das Programm kiste durch 100.
Beispiel
kiste = 100 kiste = 50 kiste = 50 + kiste
Im obigen Beispiel eines kurzen Programms, welches von oben links zeilenweise nach unten rechts durchlaufen wird, werden der Variablen kiste verschiedene Werte zugewiesen:
- Zuerst wird der Variablen kiste den Wert 100 zugewiesen,
- Dann wird die Variable kiste auf 50 gesetzt, der Wert 100 wird überschrieben und geht somit verloren.
- Die Variable kiste wird um 50 erhöht. Das ist so zu lesen, dass der neue Wert kiste gleich 50 plus dem alten Wert von kiste ist.
Wer beim Arbeiten mit dem Micro:bit Variablen verwendet möchte, kann dies auf ganz verschiedene Arten tun. Beispielsweise kann das folgende Programm ähnlich wie das Kisten-Beispiel für den Micro:bit programmiert werden:
- kiste.py
from microbit import * kiste=2 kiste=kiste * 3 display.scroll('KISTE=') display.show(kiste)
In diesem Beispiel ist die Variable kiste zuerst auf 2 gesetzt, dieser Wert wird aber direkt in der nächsten Zeile verdreifacht und anschliessend auch angezeigt.
1. Programmieraufgabe:
- Studieren Sie das kurze Programm unten. Diskutieren Sie zu zweit, was hier programmiert wurde. Halten Sie dies kurz schriftlich fest.
- Schliessen Sie den Micro:bit an, kopieren Sie das Programm in Ihren Editor (mico:bit classroom). Senden Sie dies dann an den Micro:bit und überprüfen Sie so die angestellten Vermutungen und Überlegungen von Aufgabe 1.
- Identifizieren Sie alle Variablen und Variablenwerte dieses Programms und markieren Sie diese, indem Sie den Code in ein Textdokument kopieren und kommentieren.
Kommentare können mit einem # direkt im Programm notiert werden.
- Erweitern bzw. verändern Sie den Rechner1 so, dass auch andere Operationen (Grundoperationen) durchgeführt werden.
- Rechner1.py
#Rechner 1 from microbit import * from math import * #Variablen definieren und einen Wert zuweisen a=3 b=5 #Display.scroll dient zum Anzeigen von Werten oder Text display.scroll('a=') display.scroll(a) display.scroll('b=') display.scroll(b) display.scroll('a+b') display.scroll(a+b)
Importieren von Python-Modulen
Sicher haben Sie sich auch schon gefragt, warum die beiden Zeile microbit import * und math import * nötig sind oder was genau import * bedeutet.
In Python gibt es vordefinierte Bibliotheken (eine Sammlung von Dateien, sogenannten Modulen), die von jedem Programmierer genutzt werden kann, es muss somit keine Erweiterung installiert werden, die benötigten „Befehls- und Begriffspakete“ können durch die Zeile from microbit import …dazu geladen werden. Dadurch können die Funktionen, Methoden, vordefinierte Werte und andere Definitionen dieses Moduls zum Programmieren genutzt werden.
Grundsätzlich können für die ersten Schritte mit dem Micro:bit die folgenden (oder ähnliche) Importbefehle nützlich sein:
| Befehl | Bedeutung |
|---|---|
import * | Importiert alle Python-Module, nicht spezifisch auf das Problem zugeschnittenes Laden von Modulen (Bausteinen). Das * bedeutet, alle Module. |
from microbit import * | Importiert alle Microbit-Module, nicht spezifisch auf das Problem zugeschnittenes Laden von Modulen |
from math import * | Importiert alle math-Module, hier die Auflistung der Befehle und Funktionen. |
from microbit import display | Hier wird nur spezifisch das display-Modul und nicht die gesamte Micro:bit-Bibliothek (micro:bit-library) geladen. |
2. Programmieraufgabe
- Gegeben ist das untenstehende Programm. Schliessen Sie den Micro:bit an, laden Sie das Programm auf den Micro:bit und führen Sie das Programm aus. Was genau wurde programmiert?
- Verändern Sie das Programm so, dass mit dem Satz des Pythagoras die Hypotenuse c mithilfe der beiden Katheten a und b berechnet werden kann. Dabei sollen nach wie vor die Variablen und ihre Werte, sowie das Ergebnis mit dem Variablennamen c dargestellt werden. Optional kann auch noch 'Pythagoras' als Scroll angezeigt werden.
- Schreiben Sie ein neues Programm, welches das Volumen einer Kugel berechnet, dabei sollte der Radius als Variable festgelegt werden.
- Beantworten Sie die drei Lernfragen schriftlich in Ihr OneNote:
- Wo sind die Variablen?
- Wo liegt der Fehler?
- Was passiert, wenn das Import fehlt?
- Erweitern Sie diesen Reichner mit weiteren Funktionalitäten und schreiben Sie dazu ein kurzes passendes Programm.
- Rechner2.py
#Aufgabe 1, Mathematische Formeln from microbit import * from math import * #Variablen definieren und einen Wert zuweisen a=3 b=5 #Display.scroll dient zum Anzeigen der Funktionen display.scroll('a=') display.scroll(a) display.scroll('b=') display.scroll(b) display.scroll('a+b') display.scroll(a+b)
3.Programmieraufgabe
Was genau macht das untenstehende Programm? Schreiben Sie für jede Zeile einen Kommentar, was diese Zeile bzw. die Befehle und Methoden dieser Zeile genau bewirken. Wo gibt es eine Variable? Verändern Sie das Programm so, dass es das Doppelte des Knopfdruckwertes zurückgibt.
- Programm1.py
#Programm 1 from microbit import * display.scroll('Press A') sleep(3000) knopfdruck=button_a.get_presses() display.scroll(knopfdruck)
mögliche Lösungen
Teil 2 Display und die while-Schleife
Beispiel:
- Programm1_1.py
#Programm 1 from microbit import * display.scroll('Press A') #Text wird angezeigt. sleep(3000) #3000ms Zeit,in welcher der Benutzer den Knopf A einige Male drücken muss. knopfdruck=button_a.get_presses() #Es wird gezählt, wie oft der Knopf gedrückt wurde. display.scroll(knopfdruck) #Es wird die Anzahl Betätigungen angezeigt.
Durch dieses kleine Programm1_1 wird gezählt, wie oft der Knopf A gedrückt in 3000ms gedrückt wird. Es wird neben der vordefinierten Methode display.scroll auch button_a.get_presses genutzt, jene gibt zurück, wie oft der Knopf a gedrückt wird.
Das EVA-Prinzip ist hier klar erkennbar, die Eingabe ist das Drücken des Knopfes und die Ausgabe, das Anzeigen der Anzahl Knopfbetätigungen.
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.
Beispiel:
- Programm2.py
#Programm 2 from microbit import * display.scroll('Press A') #Erster Durchlauf sleep(3000) knopfdruck=button_a.get_presses() display.scroll(knopfdruck) sleep(2000) display.scroll('Repress A') #Zweiter Durchlauf sleep(3000) knopfdruck=button_a.get_presses() display.scroll(knopfdruck) sleep(2000) display.scroll('Repress A') #Dritter Durchlauf sleep(3000) knopfdruck=button_a.get_presses() display.scroll(knopfdruck)
Beim Programm 2 wird die Programmzeilen dreimal wiederholen. Der Code-Block ist viel länger. Wie kann dieses Wiederholen besser programmiert werden, sodass das Programmieren effizient ist und das Programm ästhetisch und gut leserlich wirkt? Wie kann durch eine kleine Änderung im Programm erreicht werden, dass das Programm nicht dreimal hintereinander zählt, sondern zwanzigmal?
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: Die while-Schleife und die for-Schleife. Wir beschränken uns im ersten Jahr auf die while-Schleife, da diese keine Listen benötigt. Listen und die for-Schleife wird im zweiten Jahr behandelt.
while-Schleife
Eine while-Schleife wird unter anderem dann verwendet, wenn:
- …man nicht weiss, wie oft eine Wiederholung einiger Programmzeilen ausgeführt werden muss, man kennt somit die Anzahl der Wiederholungen nicht.
- …. die Anzahl Wiederholungen bekannt ist und eine Zähl-Variable vorhanden ist.
Jede Schleife hat eine Bedingung (eine „Schleifenfrage“), die entweder wahr (True) oder falsch (False) ist. Die Wiederholungen werden nur so lange ausgeführt, wie die Bedingung erfüllt ist, bzw. die Schleifenfrage mit Ja - Wahr- True beantworte werden kann. Sobald die Bedingung nicht mehr erfüllt ist (false), dann wird das Programm nach der Schleife weiter abgearbeitet und die Wiederholungen werden abgebrochen.
Bei der Schleife wird der Body (die Programmzeile, die wiederholt wird) eingerückt, ansonsten erkennt Python dies nicht. Auch ist am Ende der while-Zeile unbedingt ein Doppelpunkt nötig, um anzuzeigen, dass nun die sich wiederholenden Programmzeilen folgen.
Beispiel:
- Programm3.py
#Programm 3 from microbit import * zaehler=1 #ein Zähler ist nötig, um eine Bedingung, ein Stop-Kriterium zu definieren while (zaehler<4): display.scroll('Press A') sleep(3000) knopfdruck=button_a.get_presses() display.scroll(knopfdruck) zaehler=zaehler+1 #Der Zähler muss um eins erhöht werden!
Hier ist ein Zähler nötig, denn dadurch kann die Anzahl Wiederholungen durch das Erhöhen in jedem Durchlauf (zaehler = zaehler+1)gezählt und somit auch festgelegt werden. Die while-Bedingung ist genau dreimal erfüllt.
4. Programmieraufgabe
Für diese Aufgabe orientieren Sie sich am Programm Rechner 1 von weiter oben (1.Programmieraufgabe). Schreiben Sie ein Programm mit folgenden Eigenschaften:
- Der Variablenwert von a soll durch die Anzahl Bedienungen des Knopfs A bestimmbar sein. Dieser Wert soll per Scroll angezeigt werden.
- Gleiches für den Variablenwert b.
- Danach soll das Produkt der beiden Werte angezeigt werden.
Die Endlosschleife
Die while-Schleife kann auch als endlose Schleife genutzt werden. (Erinnern Sie sich bei Scratch: „wiederhole fortlaufend“)
Um diese Endlosschleife zu programmieren, kann
while (True=True):
oder vereinfacht
while True:
genutzt werden.
Diese Schleife wird während immer ausgeführt, solange das Programm ausgeführt wird. Es gibt somit keine Stopp-Bedingung. Diese spezielle Schleifenart wird oft verwendet, um eine Methode immer überprüfen zu lassen, ob ein Knopf gedrückt oder ein Sensor aktiviert wird oder ähnlich. Dies ist die grosse Stärke einer while-Schleife.
6. Programmieraufgabe
Verändern Sie das Programm 3 so, dass es eine Endlosschleife enthält und nicht nach 3 Wiederholungen stoppt.
7. Programmieraufgabe
Ein Programm wurde geschrieben und sieht bei der Ausführung wie folgt aus:
Schreiben Sie dieses Programm, dabei sollte eine while-Schleife verwendet werden.
8. Programmieraufgabe
- 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!
- Nutzen Sie nun eine
while TrueSchleife, um immer zwischen dem Smiley und dem zweiten Symbol abzuwechseln, dabei sollte die Stärke der LED-Leuchtkraft des Smilies soll langsam zunehmen und dann löschen.
Lernfragen
Beantworten Sie die drei Lernfragen:
- Was ist der Unterschied zwischen
scrollunddisplay? - Was genau macht die Schleife
while True? - Warum sind Variablen nötig?
- Worauf muss geachtet werden, wenn eine sich endlich wiederholende
while-Schleife programmiert werden soll. - Was passiert, wenn auf das Einrücken in der
while-Schleife verzichtet wird?
mögliche Lösungen
from microbit import * import music
startwert=20 zaehler=1 while (startwert >0):
display.scroll('Press A')
sleep(3000)
knopfdruck=button_a.get_presses()
startwert=startwert-knopfdruck
display.scroll(startwert)
music.play(music.BA_DING)
from microbit import *
number = 0 while number < 10:
display.scroll(number) number = number + 2
display.scroll('stop')
from microbit import *
while True:
display.show(Image.HEART)
sleep(1000)
display.show(Image('00300:'
'03630:'
'36963:'
'03630:'
'00300'))
sleep(1000)
</code>
Teil 3, Knöpfe, Sensoren und 'if'-Entscheidungen
Beispiel
Ein Beispiel zum Starten, hierbei ist zu bemerken, dass ein Beschleunigungssensor, um Neigungen und Bewegungen zu erfassen genutzt werden kann.
- beschleunigung1.py
#beschleunigung 1 from microbit import * #Akzelerometer (Beschleunigungssensor, um Gesten und Bewegungen zu erkennen) while True: if accelerometer.was_gesture('left'): display.show(Image.CONFUSED) sleep(200) else: display.show(Image.HAPPY)
In diesem kurzen Programm wird durch eine Endlosschleife immer wieder über den Akzelerometer überprüft, ob dieser nach links geneigt wurde.
Falls dies der Fall ist, wird ein „verwirrtes“ Emoji angezeigt. Durch das if, bzw. das wenn, kann eine Bedingung mit zwei oder mehr Ausgangsmöglichkeiten implementiert werden.
Dadurch verzweig sich das Programm in zwei oder mehrere Äste. Ein einzelner Programmteil wird nur dann ausgeführt, falls die Bedingung als True (wahr) gilt, ansonsten wird dieser Teil des Programms nicht ausgeführt.
Falls es nur ein if - else-Selektion ist, dann wird es nur eine Verzweigung des Programms in 2 Programmäste geben, falls es ein if - elif -…- else -Selektion ist, dann in 3 oder mehr Teile.
9. Programmieraufgabe
- 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“ anzeigt.
- 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.
- beschleunigung2.py
while True: if button_a.was_pressed(): display.scroll('A') sleep(400) display.clear()
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!
Programm:
Es soll den jeweiligen Pulsschlag pro Minute von zwei Personen nacheinander anzeigen, dazu soll eine while-Schleife verwendet werden.
Der Puls soll wie auf dem Foto abgebildet,
am eigenen Handgelenk gefühlt werden.
Der Mico:bit wird auf den Tisch neben das Handgelenk gelegt und bei jedem Pulsschlag wird auf den Knopf A bzw. auf den Knopf B - für die zweite Person - gerückt.
Um die gleiche Zeitspanne (beispielsweise 15 Sekunden) als Messperiode zu haben, ist ein akustisches Start- und Stoppsignal (ein Beep) nötig.
Der jeweils gemessene Puls wird in einer Variablen gespeichert. Die beiden Nutzer sollen auch mit Texten und Symbolen durch die Messung geleitet werden.
Tipps:
- Die Bedingung
button_a.is_pressed()= Truekönnte für Person A für die Verzweigung nötig sein. - 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.
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 'if'-Selektion verwendet wird?
- Welches sind die wichtigsten Erkenntnisse der Programmieraufgaben 1 bis 10? Notieren Sie dies kurz!
Mögliche Lösungen aller Programmieraufgaben
from microbit import * import music import radio zaehler=1 puls1=0 puls2=0 while (zaehler<3): display.show(Image.HEART) if (button_a.is_pressed()= True): display.show('Puls A') sleep(200) music.play(music.BA_DING) sleep(15000) puls1= button_a.get_presses()*4 music.play(music.BA_DING) display.show('Puls A') display.scroll(puls1) zaehler =zaehler+1 elif (button_b.is_pressed()): display.show('Puls B') sleep(200) music.play(music.BA_DING) sleep(15000) puls2= button_b.get_presses()*4 music.play(music.BA_DING) display.show('Puls B') display.scroll(puls2*4) zaehler =zaehler+1 #senden von Informationen #Der Sender - Micro:bit radio.config(group=1) radio.on() radio.send("Puls A") radio.send(str(puls1)) radio.send("Puls B") radio.send(str(puls2))







