Die Programmierung des micro:bit-Computers in "JavaScript Blocks"
Website: | BBSI Technik Kaiserslautern |
Kurs: | TG13 GK IV (Wehner) |
Buch: | Die Programmierung des micro:bit-Computers in "JavaScript Blocks" |
Gedruckt von: | Gast |
Datum: | Freitag, 4. April 2025, 17:39 |
Inhaltsverzeichnis
- 1. Die visuelle Ausgabe
- 1.1. Die Ausgabe von Symbolen: "show_icon"/"zeige Symbol"
- 1.2. Eigene Symbole erstellen mit "show leds"/"Zeige Leds"
- 1.3. Ausgabe von Text: "show string"/"Zeige Zeichenfolge"
- 1.4. Ausgaben von Zahlen mit "show number ..."
- 1.5. Balkenanzeige mit "plot bar graph of ... up to ..."
- 1.6. Das Löschen des Bildschirms mit "clear screen"
- 2. Die akustische Ausgabe
- 3. Den Programmablauf für eine bestimmte Dauer anhalten: "pause ... (ms)
- 4. Die "Prozedurale Programmierung"
- 5. Konstanten und Variablen
- 6. Zufallszahlen
- 7. Einfache Berechnungen
- 8. Eingabe
- 9. Auswahlstrukturen
- 10. Schleifen
- 11. Das Konzept der ereignisorientierten Programmierung
- 12. Die Erweiterungsanschlüsse des micro:bit
- 13. Sensoren
- 14. Bluetooth-Funkverbindungen zwischen den micro:bits hestellen
- 15. Das Versuchsbrett
- 16. Elektrische Widerstände
- 17. Leuchtdioden
- 18. Der Programmablaufplan
- 18.1. Die grundlegenden Elemente des Programmablaufplans (PAP) nach DIN66001
- 18.2. Regeln für die Erstellung von Programmablaufplänen
- 18.3. Beispiel für ein Programmablaufplan
- 18.4. Der lineare Programmablauf (Sequenz) in einem Programmablaufplan
- 18.5. Die Verzweigung (bedingte Auswahl, Entscheidung) in einem Programmablaufplan
- 18.6. Die Schleife (Wiederholungsstruktur) in einem Programmablaufplan
- 18.7. Die Funktion in einem Programmablaufplan
- 19. Das Nassi-Shneiderman-Diagramm nach DIN66261
1. Die visuelle Ausgabe
Der micro:bit verfügt über insgesamt 25 rote
Leuchtdioden (kurz: LED *1), welche auf
dessen Vorderseite in einer 5x5 Punkte großen
Matrix angeordnet sind.
In Bild 1 wurden alle Leuchtdioden zu Demon-
stationszwecken eingeschaltet.
Über diese Anzeige ist der micro:bit in der Lage
einfache Symbole, eigene Grafiken, sowie Zahlen
und Text anzuzeigen.
1.1. Die Ausgabe von Symbolen: "show_icon"/"zeige Symbol"
Der Befehlsblock "show icon" befindet sich im blauen Auswahlmenü "Basic"/"Grundlagen".
Durch Anklicken des kleinen Dreiecks in der rechten oberen Ecke kann aus einer Reihe von
vorgegebenen Symbolen ein für uns geeignetes Symbol ausgewählt werden.
Beim Überstreichen der angeobtenen Symbole mit der Maus, zeigt die Entwicklungsumgebung
die jeweilige Bedeutung des Symbols an.
Ist das von uns gewünschte Symbol nicht dabei, so können wir uns jederzeit ein eigenes
Symbol erstellen. Lesen wir hierzu das nächste Unterkapitel.
1.2. Eigene Symbole erstellen mit "show leds"/"Zeige Leds"
Der Befehlsblock "show leds"/Zeige Leds" befindet sich im blauen Auswahlmenü "Basic"/"Grundlagen".
Angenommen der micro:bit-Computer kommt als Anzeige im Innern eines Fahrstuhls zum Einsatz. Nun
soll ein eigener Pfeil gestaltet werden, der den Fahrgästen anzeigt, dass sich die Fahrgastzelle gerade
nach unten bewegt.
Zu diesem Zweck bräuchten wir nach dem Einbau des Befehlsblocks "show leds" nur mit der Maus die
einzelnen LEDs auszuwählen, welche wir für unseren Pfeil benötigen.
1.3. Ausgabe von Text: "show string"/"Zeige Zeichenfolge"
Der Befehlsblock "show-string ..." ist im Menü "Basic" zu finden und enthält die voreingestellte
Zeichenkette "Hello!".
Da das Display des micro:bit-Computers nur insgesamt 25 Leuchtdioden enthält, ist es zu klein um
den vollen Text auf einmal anzuzeigen.
Der hier im Befehlsblock angegebene Text "Hello!" wird daher in Form einer Laufschrift dargestellt,
welche sich von rechts nach links über den Bildschirm bewegt.
Angabe eines eigenen Textes:
Um eine eigene Zeichenkette auszugeben, kann die Textvorgabe nach dem Anklicken mit der linken
Maustaste einfach überschrieben werden.
Professioneller ist es allerdings einen Textblock , welcher die auszugebende Zeichenkette
enthält, in den Befehlsblock "show string" einzufügen.
Die Vorlage für solche Textblöke finden wir im Menü "Advenced" (Fortgeschritten) im Untermenü "Text".
Die perfekte Variante einer Textausgabe würde also wie folgt aussehen:
Erklärung:
Tatsächlich handelt es sich bei diesem Textblock um eine sogenannte Konstante von Datentyp "String".
Näheres zu diesem Thema enthält das Kapitel "Konstanten und Variablen".
1.4. Ausgaben von Zahlen mit "show number ..."
fdgdsg
1.5. Balkenanzeige mit "plot bar graph of ... up to ..."
Mit dem Befehlsblock "plot bar graph ... up to ..." ist es mäglich auf einfachste Weise eine vertikale
Balkenanzeige zu erstellen.
Der Befehlsblock "plot bar graph ... up to ..." befindet sich im Menü "LED".
Die obere Zahl gibt hierbei den als Balkenhöhe anzuzeigenden Wert an, wobei die untere Zahl die
maximale Höhe der Balkenanzeige repräsentiert.
Beispiel 1: Mögliche Umsetzung einer Anzeige in Prozent (x von 100)
Bild 1.1: kleinster Wert 0% Bild 1.2: 20% (20 von 100) Bild 1.3: 50% (50 von 100)
(0 von 100)
Bild 1.4: 80% (80 von 100) Bild 1.5: 100% (100 von 100)
Beispiel 2:
Der in Bild 2.1 dargestellte Programmcode zeigt eine Temperaturmessung und die
Ausgabe des Messwerts in Form einer Balkenanzeige.
Bild 2.1: Programmcode Bild 2.2: Dispayanzeige
Der Maximalwert der Balkenanzeige liegt entsprechend dem Programmcode bei 40°C,
weswegen Temperaturen von 40°C und höher mit einem Vollausschlag (Alle LEDs des
Displays leuchten.) dargestellt werden.
Externe Quellen:
1. https://makecode.microbit.org/reference/led/plot-bar-graph
1.6. Das Löschen des Bildschirms mit "clear screen"
Der Befehlsblock "clear screen" befindet sich im Menü "Basic" unter "more".
Bei der Ausführung werden alle LEDs der Anzeigematrix auf der Leiterplatte des micro:bit-Computers
ausgeschaltet.
2. Die akustische Ausgabe
Als akustische Ausgabe wird die Ausgabe von Geräuschen, Tönen , Klängen oder Musik bezeichnet.
Für eine akustische Ausgabe wird daher immer ein Schallwandler (Lautsprecher, Summer, usw.) benötigt.
Der micro:bit-Computer ist in der Lage Geräusche, Töne, Klänge und Musik über den Anschluss "Pin 0"
abzuspielen.
Wichtig !!!
Zu beachten ist, dass sich auf der Hauptplatine des micro:bit-Computers kein Schallwandler befindet und
damit in seiner Grundform eine akustische Ausgabe nicht möglich ist.
Abhilfe bietet hier unsere zweite Leiterplatte, welche auf der Rückseite des micro:bit-Computers monitiert
ist. Auf dieser befindet sich neben der Batterie zur Stromversorgung auch ein kleiner Schallwandler, der
an Pin 0 des micro:bit-Computer angeschlossen ist.
2.1. Die Ausgabe von Musik mit "start melody ... repeating ...""
Der Befehlsblock "start melody ... repeating ..." befindet sich im Menü "Music".
Zur Auswahl stehen insgesamt 20 Melodien, die per Mausklick ausgewählt werden können.
Die Option repeating hält insgesamt 4 Einstellungen zur Auswahl bereit.
Einstellung:
"once" ............. Die Melodie wird nur einmal wiederholt. Das Programm wird erst nach dem vollständigen
Ablauf der Melodie fortgesetzt.
"forever" ......... Die Melodie wird ständig wiederholt. Das Programm läuft zeitgleich (*1) weiter, wobei die einzelnen
Befehle mit geringerer Priorität ausgeführt werden.
"once in background" / "forever in background" (*1)
Der micro:bit-Computer verfügt über einen multitaskingfähigen Mikrocontroller. Die Melodie wird mit geringerer
Priorität als Hintergrundprozess abgespielt.
Hinweis *1:
Beim Mulitasking werden mehrere Prozesse quasi gleichzeitig ausgeführt, so dass beispielsweise die Bildschirmaus-
gabe in Form laufendes Spiels von einer Musik begleitet wird.
2.2. Die Ausgabe mit "play tone ... for ..."
Der Befehlsblock "play tone ... for ..." befindet sich im orangefarbenen Block "Music".
Mit diesem ist es möglich einen Ton unter Angabe der Tonhöhe und der Wiedergabedauer
abzuspeilen.
Beispiel 1: Tonhöhe "Low C", Wiedergabedauer "1/8 beat"
Die Tonhöhe und die Widergabedauer können hierbei durch einfaches Anklicken der Werte
ausgewählt werden.
Beispiel 2: Angabe der Tonhöhe in Hz (Hertz) und der Widergabedauer in ms (Millisekunden)
Zur Verwendung der technischen Einheiten Hz ("Hertz") für die Tonhöhe und s ("Sekunde") für die
Wiedergabezeit muss bei der Programmierung des micro:bit-Computers auf die Verwendung von
Konstanten zurückgegriffen werden.
Zu diesem Zweck wird die jeweilige Konstante einfach an die Position für die Tonhöhe oder an die der
Wiedergabedauer eingefügt.
Wichtig!
Hierbei ist wieder zu beachten, dass der micro:bit-Computer alle Zeitangaben in der Einheit ms
("Millisekunden") erwartet.
In diesem Beispiel wird also ein Ton mit der Tonhöhe 1000Hz und der Spielzeit von 500ms=0,5s,
also einer halben Sekunde, abgespielt.
3. Den Programmablauf für eine bestimmte Dauer anhalten: "pause ... (ms)
Mit dem Befehlsblock "pause ...(ms)"/"Pausieren ... (ms)" lässt sich der Programmablauf
für die angegebene Dauer anhalten.
Hierbei ist stets zu beachten, dass die Angabe der Zeit hier in "ms" (Millisekunden) erfolgt.
Im Beispiel wird der Programmablauf als um 5000ms, also um 5s angehalten.
Merke:
- Eine Sekunde beihaltet 1000ms (1s=1000ms), so wie 1 Meter sich aus 1000 Millimetern zusammensetzt.
- Umgekehrt ist 1ms (Millisekunde) der tausendste Teil einer Sekunde: \( 1ms= \frac{1}{1000} \cdot{s} =0.001s \)
4. Die "Prozedurale Programmierung"
Der Begriff "Prozedurale Programmerung" ...
... bezeichnet einen fundamentalen Programmierstil, nach welchem Computerprogramme entwickelt werden.
Die Idee der prozeduralen Programmierung besteht darin, die aufeinanderfolgenden Befehle eines Algorithmus
in überschaubare Teile zu zerlegen und Codewiederholungen zu vermeiden.
Der Verzicht auf Codewiderholungen bringt neben der Übersichtlichkeit eines kürzeren Programms auch den Vorteil
der Speicherersparnis.
Weiter sieht das Konzept der prozeduralen Programmierung die Verwendung von sogenannten lokalen Variablen
und globalen Variablen vor.
Diese sind insbesondere für die Übergabe von Daten an Funktionen und Unterprogrammen und für die Rückgabe
von Ergebnissen durch Funktionen von besonderer Bedeutung.
Die 4 grundsätzlichen Programmstrukturen in der prozeduralen Programmierung:
1. Die Sequenz (linearer Programmablauf)
- Bei einer Sequenz werden die einzelnen Programmanweisungen nacheinander von oben nach unten ausgeführt.
2. Die Verzweigung (Auswahlstruktur)
- Bei einer Verzweigung handelt es sich um eine Kontrollstruktur in Form einer bedingten Anweisung, infolge der
ein Programmausschnitt nur im Falle einer erfüllten Bedingung ausgeführt wird.
- Eine Verzweigung legt fest, welcher von mehreren möglichen Programmausschnitten in Abhängigkeit dieser
Bedingung auszuführen ist.
3. Die Schleife (Wiederholungsstruktur, Iteration)
- Eine Schleife ist eine Kontrollstruktur, welche in Abhängigkeit einer Schleifenbedingung (Laufbedingung) einen
Programmausschnitt im sogenannten Schleifenrumpf (Schleifenkörper) solange wiederholt, wie die Schleifen-
bedingung erfüllt ist.
- Kommt es niemals zu einem Abbruch, da die Schleifenbedingung immer erfüllt ist, liegt eine sogenannte Endlos-
schleife vor.
4. Das Unterprogramm und die Funktion
- Ein Unterprogramm ist ein Teil eines Computerprogramms, welches eine bestimmte Funktion bereitstellt und über
einen eigenen Bezeichner oder Namen verfügt.
- Ein Unterprogramm kann aus dem Hauptprogramm oder jedem anderen Programm über seinen Bezeichner aufgerufen
werden.
- Nach dessen Beendigung wird die Programmabarbeitung wieder nach der aufrufenden Stelle im aufrufenden Programm
fortgesetzt.
- Eine Funktion ist lediglich eine spezielle Variante eines Unterprogramms.
- Funktionen sind im Gegensatz zu Unterprogrammen in der Lage ein Ergebnis an das aufrufende Hauptprogramm zurück-
zuliefern.
5. Konstanten und Variablen
Als Konstante wird in der Informatik eine Zahl oder eine Datenconainer bezeichnet,
dessen Wert sich vom Start des Programms bis zu dessen Ende nicht ändert.
Als Variablen hingegen werden Datencontainer bezeichnet, die während der Laufzeit des
Programms ständig ihren Inhalt ändern können.
Näheres erfahren wir in den folgenden Abschnitten .
5.1. Konstanten
Die Softwareentwicklungsumgebung "JavaScript Blocks" unterscheidet die beiden folgenden Arten von Konstanten:
1. Ganze Zahlen (Integer Numbers): (Hier am Beispiel der Zahl 42.)
Das zugehörige Element befindet sich im Menü "Math".
2. Zeichenketten (Strings): (Hier am Beispiel des Texts "Hallo".)
Das zugehörige Element befindet sich im Menü "Advanced" im Untermenü "Text".
Merke: Konstanten sind während der Laufzeit des Programms unveränderlich.
Beispiel:
Nach einem Kaltstart oder einem Warmstart des micro:bit-Computers wird zuerst die Zeichenkette und in Folge
die Zahl 42 auf dem Display ausgegeben. Bei beiden handelt es sich um Konstanten, da der Anwender den
Inhalt der Bildschirmausgabe nicht abändern kann.
Ausblick:
Werden Datencontainer benötigt, die ihren Wert während der Laufzeit des Programm ändern können, so greift der
Programmierer auf sogenannte "Variablen" zurück.
5.2. Variablen
Als "Variable" ...
wird in der Computertechnik ein Container verstanden, der Daten in Form von Zahlen, Buchstaben oder Text
aufnehmen kann.
Eine Variable verfügt über einen Namen und einen Inhalt, also den in ihr gespeichertem Datum.
Über den Namen kann die Variable angesprochen und ihr Inhalt abgerufen werden.
Die Software-Entwicklungsumgebung "javaScript Blocks"-Editor unterscheidet bei Variablen grundsätzlich
die beiden Datentypen "Zahl" und "Text".
Beispiel 1:
Das Beispiel zeigt ein Variable mit dem Variablennamen "Number" vom Typ "Zahl", welche gerade mit der
Zahl 100 belegt wird.
Mit dem Befehlsblock "set Variablenname to ..." dient dem Beschreiben einer Variablen vom Typ "Zahl".
Der Wert, mit welchem die Variable belegt werden soll, ist stets rechts daneben anzuführen.
6. Zufallszahlen
Die Entwicklungsumgebung "JavaScript Blocks" stellt den Befehlsblock "pick random 0 to ..." zur
Erzeugung zufälliger ganzer Zahlen zur verfügung.
Dieser befindet sich, wie unschwer an seiner violetten Farbgebung zu erkennen ist, im Menü "Math".
Dieser Befehlsblock liefert eine ganzzahlige Zufallszahl zwischen 0 und einem vom Programmierer vorgebbaren
Höchstwert.
Diese Zufallszahl kann auf unterschiedliche Weisen verwertet werden:
Beispiel 1:
Die Zufallszahl wird direkt der Bildschirmausgabe ("show number ...") zugeleitet.
Beispiel 2:
Die Zufallszahl wird direkt in die Variable mit dem Namen "zufZahl" geschrieben.
Beispiel 3:
Die von "pick random 0 to ... 4" erzeugte Zufallszahl wird zunächst einer Rechnung zugeführt.
Im zweiten Schritt wird das Ergebnis der Berechnung auf dem Bildschirm ("show number ...") ausgegeben.
Die sich aus der Berechnung ergebenden Zahlen sind somit selbst zufällig, liegen aber im Bereich zwischen
dem Minimalwert 6 und dem Maximalwert 10.
7. Einfache Berechnungen
Die Entwicklungsumgebung "JavaScript Blocks" stellt im Menü "Math" einen Befehlsblock bereit, mit
welchem sich auf einfache Weise die 4 Grundrechenarten (+, -, *, /) realisieren lassen.
Die Art der Rechenoperation (+, -, *, /,**) lässt sich hierbei leicht mit der Maus durch Anklicken auswählen.
Hinweis:
Bei dern beiden Zeichen "**" handelt es sich die in der Computeretchnik übliche Darstellung für den Potenz-
operator. Näheres finden wir hierzu im letzten Beispiel.
Für die Praxis ist zu beachten, dass das Ergebnis der Rechenoperation gleich aufgefangen oder weiter
verarbeitet werden muss.
Beispiel 1:
Das Rechenergbnis der Addition der beiden Konstanten 12 und 3 wird in die Variable "Ergebnis" geschrieben.
Beispiel 2:
Das Rechenergbnis der Subtraktion aus 12 und 3 wird direkt auf dem Display ("show number ...") des micro:bit-
Computers ausgegeben.
Beispiel 3:
Dass das Ergebnis einer Division kann prinzipiell ganzzahlig ausfällt (12/3=4), ist eher selten.
Beispiel 4:
Viel häufiger kommt es vor, dass das Ergebnis einer Division eine Kommazahl (12/5=2,4) ist.
Da der micro:bit-Computer jedoch keine Kommazahlen verarbeiten kann, werden die Nach-
kommastellen jedoch einfach abgeschnitten , so dass in diesem Fall das Ergebnis 2 angezeigt
wird.
Beispiel 5:
Berechnung und Anzeige der Anzahl der Leuchtdioden auf dem Display des micro:bit-Computers.
Das Display des micro:bit-Computers verfügt über 5x5=5²=25 Leuuchtdioden.
Die Schreibweise 5**2 ersetzt in der Computertechnik bei sehr vielen Programmiersprachen die
mathematische Schreibweise 5².
8. Eingabe
Grundsätzlich gibt es zwei Möglichkeiten in der Programmiertechnik zu ermitteln, ob gerade eine Taste gedrückt
wird oder nicht.
1. Möglichkeit: Die übliche Methode
Innerhalb eines Programms wird mit einem geeigneten Befehl überprüft, ob aktuell die jeweilige Taste genau
zum Zeitpunkt dieses Abfragebefehls die Taste gedrückt ist.
Nachteil: Ist die Taste nicht genau zu dem Zeitpunkt betätigt, zu welchem der Abfragebefehl ausgeführt wird,
so bleibt das Drücken der Taste vom Computer unerkannt.
Vorteil: Außer dem Hauptprogramm wird keine weitere Programmstruktur benötigt, mit welcher ein Daten-
austausch stattfinden müsste.
2. Möglichkeit: Die ereignisorientierte Programmierung
Das Drücken einer Taste ist ein sogenanntes Ereignis, welches den Start eines vom Hauptprogramm losgelösten
und unabhängigen Programmschnipsels startet.
Vorteil: Das Ereignis der Betätigung einer Taste wird immer erkannt. Das Hauptprogramm wird vor der Ausführung
der Ereignisroutine (vom Hauptprogramm unabhängiger Programmschnipsel) angehalten und danach
wieder fortgesetzt.
Nachteil: Ein Datenaustausch zwischen der Ereignisroutine und dem Hauptprogramm bringt viele zu lösende
Probleme mit sich.
8.1. Die Abfrage der Tasten: "button ... is pressed"
Der Befehlsblock "button ... is pressed" befindet sich im Menü "Input".
Bei diesem Befehl handelt es sich um eine sogenannte "Aussage", die tatsächlich "wahr" (Englisch: "true") oder
"falsch" (Englisch: "false") sein kann.
Die Aussage ist "wahr", wenn die Taste "A" (button "A") gedrückt wurde.
Die Aussage ist "falsch", wenn die Taste "A" (button "A") nicht gedrückt wurde.
Durch einen Mausklick auf die Tastenbezeichnung kann ausgewählt werden, welche Taste abgefragt werden soll.
Bei der Auswahl "A+B" müssen beide Tasten gleichzeitig gedrückt werden, um eine "wahre" Aussage zu erhalten.
Wichtige Hinweise zur Anwendung:
Wie an der Form des Befehlsblocks "button ... is pressed" leicht zu erkennen ist, kann dieser nicht eigenständig ein-
gesetzt werden!
Dieser Befehlsblock wird üblicherweise in Kombination mit einer Auswahlstruktur , z.B. einer einseitigen Auswahl, ein-
gesetzt.
Beispiel: Einsatz der einseitigen Auswahl zur Überprüfung, ob gerade die Taste "A" gedrückt wird.
Wird die Taste A gedrückt, so ist die Aussage "button A is pressed" wahr und es erfolgt die Ausgabe des Buchstaben "A"
auf dem Bildschirm des micro:bit-Computers.
9. Auswahlstrukturen
Auswahlstrukturen werden in der Programmiertechnik immer dann eingesetzt, wenn
verschiedene Fälle zu unterscheiden sind.
9.1. Vergleiche
Der Befehlsblock für Vergleiche "comparison" ist im Menü "Logic" zu finden.Zum Vergleich von Zahlen stehen grundsätzlich
die folgenden 6 Vergleichsoperatoren zur Verfügung:
1. "=" Prüfung auf Gleichheit
2. "≠" Prüfung auf Ungleichheit
3. "<" Prüfung, ob der linke Wert kleiner als der rechte Wert ist.
4. "≤" Prüfung, ob der linke Wert kleiner oder gleich dem rechten Wert ist.
5. ">" Prüfung, ob der linke Wert größer als der rechte Wert ist.
6. "≥" Prüfung, ob der linke Wert größer oder gleich dem rechten Wert ist.
In der Praxis werden nur in Ausnahmefällen 2 Konstanten miteinander verglichen.
Bild 1:
Das Ergebnis eines Vergleichs ist ein sogenannter Boolescher Wert.
Es gibt nur die beiden Boolesche Werte "true" und "false".
"true" steht hierbei für eine wahre Aussage, während "false" eine falsche Aussage repräsentiert.
Meist wird einer der beiden Werte durch eine Variable vorgegeben.
Im Falle von Bild 2 wird geprüft, ob der Inhalt der Variable "Zahl"
größer als 2 ist.
Bild 2:
9.2. Die einseitige Auswahl: "if ... then ..."
Mit Hilfe einer einseitigen Auswahl kann entschieden werden, ob ein bestimmter Programmabschnitt
ausgeführt oder nicht ausgeführt werden soll.
Bild 1: "if ... then ..."-Befehlsblock mit Bedingung und Programmcode
Hierzu ist immer eine sogenannte "Bedingung" notwendig, welche immer rechts oben in den
"if ... then ..."-Befehlsblock einzufügen ist (siehe Bild 1).
In dem "if ... then ..."-Befehlsblock eingeklammerten Bereich, ist der Programmcode einzufügen, welcher
in Abhängigkeit der Bedingung auszuführen ist (siehe Bild 1).
Beispiel 1:
Das nachfolgende Programm erstellt eine Zufallszahl, die entweder "0" oder "1" sein kann und legt
diese in der Variable "Wert" ab.
Betrachtungen:
1. Die erste einseitige Auswahl:
Ist die Zahl in der Variablen "Wert" gleich "0", so wird ein trauriger Smiley auf dem Display
des micro:bit-Computers dargestellt.
2. Die zweite einseitige Auswahl:
Ist die Zahl in der Variablen "Wert" gleich "1", so wird ein fröhlicher Smiley auf dem Display
des micro:bit-Computers dargestellt.
3. In beiden Strukturen der einseitigen Auswahl wird eine Prüfung auf Gleichheit als Bedingung
verwendet, welche darüber entscheidet, ob der jeweilige Code zur Darstellung des passenden
Smileys ausgeführt wird.
9.3. Die zweiseitige Auswahl: "if ... then ... else ..."
Die zweiseitige Auswahl ergänzt die einseitge Auswahl, um einen Block "else", welcher eine Befehlssequenz
startet, wenn Bedingung hinter "if" nicht erfüllt ist.
Bild 1: "if ... then ... else ..."-Befehlsblock mit Bedingung und Programmcode
Eine Suwahlstruktur mit diesem Befehlsblock erlaubt eine echte Fallunterscheidung.
- Der Programmcode in Bild 1 im Fall, dass in der Variable "Wert" die Zahl "0" steht, einen traurigen
Smiley dar.
- Im Fall, dass dass in der Variable "Wert" nicht die Zahl "0" steht, einen lächelnden Smiley dar.
Beispiel 1:
Betrachten wir uns an dieser Stelle ein Program, welchen ein gleichwertiges Gegenstück zu Beispiel 1
der einseitigen Auswahl darstellt.
Es erzeugt ebenfalls eine Zufallszahl, die entweder "0" oder "1" sein kann und legt diese in der
Variable "Wert" ab.
Dieses Programm ist jedoch durch die Verwendung einer einzigen zweiseitigen Auswahl anstelle
von 2 einseitigen Auswahlstrukturen wesentlich kürzer.
9.4. Die mehrseitige Auswahl: "if ... then ... else if ... then ... else if ... then ... else ..."
Hier ist eine Baustelle. 8,-(9.5. Die endlose Wiederholung von Programmcode mit "forever"/"dauerhaft"
Die forever-Schleife wird in der Praxis gerne als Hauptprogramm eingesetzt, wenn dieses solange laufen
soll, bis der micro:bit-Computer ausgeschaltet wird.
Zu beachten ist, dass der micro:bit immer zuerst mit dem Programmcode im "on start"-Block beginnt. Erst
wenn der Mikrocontrollerdieser des micro:bit hiermt fertig ist, wird der Programmcode in der forever-Schleife
von oben nach unten abgearbeitet.
Betrachtung des vorliegenden Beispiels:
1. Die Programmabarbeitung beginnt im Block "on start"
a. Es wird ein großes Herz auf dem Display angezeigt.
b. Die Programmabarbeitung wird für 5 Sekunden angehalten.
2. Der micro:bit setzt die Programmabarbeitung im Block der forever-Scheife fort.
a. Es wird ein lächelnder Smily angezeigt.
b. Die Programmabarbeitung wird für 1 Sekunde angehalten.
c. Es wird ein trauriger Smily angezeigt.
d. Die Programmabarbeitung wird für 1 Sekunde angehalten.
e. Die Programmabarbeitung beginnt wieder bei 2.a und läuft bis zum Ausschalten
des micro:bit.
Kurzfassung:
- Nach dem Einschalten des micro:bit wird für die Dauer von 5 Sekunden ein großes Herz
angezeigt.
- Danach wird mittels der forver-Schleife im 1-Sekundentakt ein großes und ein kleines
Herz solange dargestellt, bis der micro:bit ausgeschaltet wird.
10. Schleifen
Als "Schleife" wird eine Programmstruktur bezeichnet, die wiederholt abläuft, wobei der sich wiederholende
Programmcode aber nur einmal vom Programmierer geschrieben werden muss.
Schleifen werden fachlich auch als "Wiederholungsstrukturen" bezeichnet und sind ein sehr effizientes Mittel
in der Programmiertechnik.
1. Die Endlos-Schleife
Die Entwicklungsumgebung "JavaScript Blocks" bietet im Bereich "Grundlagen" das Element "dauerhaft"
(engl. "forever") an. Der darin enthaltene Programmcode wird unendlich oft ausgeführt.
=> Siehe auch "Die Schleife (Wiederholungsstruktur) im Programmablaufplan"
=> Siehe auch "Die 'Prozedurale Programmierung'"
11. Das Konzept der ereignisorientierten Programmierung
In der Praxis wird zwischen der "prozeduralen Programmierung" und dererst mit Eintritt dieses Ereignisses, zum Beispiel dem Drücken einer Taste, gestartet
und abgearbeitet wird.
Speicher) mit dem Hauptprogramm kommunizieren müssen.
11.1. Übersicht über die verschiedenen Ereignisse
1. Das Einschalten des micro:bit-Computers
2. Abfrage der Tasten "A" und "B"
3. Abfrage von Lage und Bewegung
Schütteln
Das Logo zeigt nach oben Das Logo zeigt nach unten
Die LED-Anzeige zeigt nach oben. Die LED-Anzeige ziegt nach unten.
Der micro:bit wird nach links gekippt. Der micro:bit wird nach rechts gekippt.
Der micro:bit ist im freien Fall (Erdbeschleunigung: 0g).
Auf den micro:bit wirkt die Auf den micro:bit wirkt die Auf den micro:bit wirkt die
3-fache Erdbeschleunigung. 6-fache Erdbeschleunigung. 8-fache Erdbeschleunigung.
4. Abfrage der einzelnen Pins an der Anschlussleiste des micro:bit-Computers
Mit der Maus kan der jeweilige abzufragende Anschluss (Pin) durch einfaches Anklicken ausgewählt
werden.
Weiter ist auszuwählen, ob der Programmcode ausgeführt werden soll, wenn am jeweiligen Anschluss ein
high-Pegel (hohe Spannung, +3V) oder ein low-Pegel (niedrige Spannung, 0V) anliegt.
11.2. Das Ereignis "on start"
Das Element "on start" befindet sich im Menü "Basic" des "JavaScript Blocks"-Editors.
Das Ereignis "on start" bezeichnet den Kaltstart oder den Warmstart des micro:bit-Computers.
Der vom Block "on start" umklammerte Programmcode wird also immer dann ausgeführt, wenn der
micro:bit-Computer eingeschaltet wird oder die Reset-Taste auf seiner Rückseite betätigt wird.
11.3. Die Abfrage der Tasten mittels der ereignisorientierten Programmierung: "on Button ... pressed"
Das Element "on Button ... is pressed" ist im Menü "Input" zu finden.
Der Programmcode innerhalb dieses Strukturelements wird gestartet, sobald das Ereignis "Die Taste 'A'
wurde gedrückt" eintritt.
EIn möglicherweise noch laufender anderer Programmcode, zum Beispiel eine Hauptprogramm wird für die
Bearbeitung dieses Programmcodes unterbrochen und nach Abschluss der Bearbeitung dieses Programm-
codes wieder fortgesetzt.
Beispiel:
Erklärung:
- In diesem Beispiel werden 3 verschiedene Ereignisse mit jeweils einem eigenen Programmcode abgefangen.
- Das Drücken der Taste "A" bewirkt die Ausgabe des Buchstabens "A" auf dem Bildschirm des micro:bit-Computers.
- Das Drücken der Taste "B" bewirkt die Ausgabe des Buchstaben "B" auf dem Bildschirm des micro:bit-Computers.
- Durch das gleichzeitige Drücken beider Tasten "A" und "B" wird der Bildschirm gelöscht.
11.4. Das Ereignis: Änderung eines Logikwerts an einem Pin einlesen mit "on pin ... pressed"
Der Befehlsblock "on pin ... pressed" befindet sich im rosafarbenen Auswahlmenü "Input".
Bild 1:
Dieser Befehlsblock erlaubt die Ausführung von Programmcode, für den Fall, dass der Logikwert
eines Eingabepins von logisch "0" auf logisch "1" übergeht, also für den Fall, dass die Spannung
an diesem Pin von 0V (logisch "0", GND) auf 3V (logisch "1") übergeht.
Zur Auswahl stehen hier nur die 3 Pins 0, 1 und 2 der micro:bit-Erweiterungsanschlüsse .
Beispiel:Wir möchten den micro:bit-
Mikrocomputer um einen
zusätzlichen Taster nach
dem Schaltplan in Bild 2 er-
weitern.
So müssen wir nichts weiter
tun, als einen Taster (S1)
zwischen einen Pin unserer
Wahl (hier Pin 1) und dem
0V-Anschluss Masse (GND:
ground) zu schalten.
Der Widerstand R1 befindet
sich bereits auf der micro:bit-
Leiterplatte und muss nicht zu-
sätzlich eingebaut werden.
Ist der Taster nicht betätigt, so erhält der Pin 1 über den Widerstand R1 eine Spannung 3V, welche entsprechend
vom micro:bit als logisch "1" interpretiert wird.
Wird der Taster betätigt, so wird der Pin 1 mit GND, also mit 0V verbunden, was der micro:bit als logisch "0"
interpretiert.
Beim Loslassen des Tasters springt also der Wert am Pin 1 von logisch "0" nach logisch "1", also von 0V nach 3V.
Dieser Zustandswechsel des Signals von 0 nach 1, also das Loslassen des Tasters S1, kann mit dem Befehlsblock
"on pin P1 pressed" erfasst werden.
Passend hierzu könnte ein Programm also wie folgt aussehen:
Das Drücken (eigentlich der Vorgang des Loslassens) des externen Tasters S1 an Pin 1 erzeugt einen lächelnden
Smiley auf dem Display des micro:bit.
Die Taster A und B auf der Leiterplatte des micro:bit erzeugen hingegen einen traurigen oder neutral schauenden
Smiley.
12. Die Erweiterungsanschlüsse des micro:bit
Der micro:bit-Mikrocomputer verfügt über insgesamt 25 externe Anschlüsse (siehe Bild 1).
Über diese sogenannten Pins ist der micro:bit in der Lage andere elektrische Betriebsmittel zu
steuern, Daten von Eingabeelementen und Sensoren zu lesen, oder sogar mit anderen komplexen
Betriebsmitteln bidirektional zu kommunizieren.
Bild 1: Quelle "https://makecode.microbit.org/device/pins"
12.1. Einen Logikwert auf einem Pin ausgeben mit "digital write ... pin ..."
Der Befehlsblock "digital writepin" befindet sich im Bereich "Advanced" (Fortgeschritten) unter "Pins".
Mit diesem Befehlsblock ist es möglich eine logische "0" oder eine logische "1" auf den angegebenen
Pin des micro:bit-Mikrocomputers auszugeben.
Eine logische "0" repräsentiert dabei die Spannung "0V" und eine logische "1" eine Spannung in Höhe
von "3V".
Am Beispiel:
Dieser Befehlsblock bewirkt die Ausgabe einer logischen "1" am Pin 8 des micro:bit.
Nach Ausführung dieses Kommandos steht am Pin 8 des micro:bit eine Spannung in Höhe von "3V" an,
welche gegen GND (Masse, 0V) gemessen werden kann.
Ein an Pin 8 geeignet angeschlossene Anzeige, z.B. eine Leuchtdiode mit Vorwiderstand, würde in diesem
Fall aufleuchten.
12.2. Einen Logikwert von einem Pin einlesen
Der Befehlsblock "digital readpin" befindet sich im Bereich "Advanced" (Fortgeschritten) unter "Pins".
Mit diesem Befehlsblock ist es möglich einen logischen Wert "0" ODER "1", welcher von einem an den
micro:bit angeschlossenen Taster oder einem Sensor bereitgestellt wird, einzulesen.
Eine logische "0" repräsentiert dabei die Spannung "0V" und eine logische "1" eine Spannung in Höhe
von "3V".
Am Beispiel:
Dieser Befehlsblock bewirkt das Einlesen eine logischen Werts vom Pin 0 des micro:bit.
Das Kommando "digital read pin ..." kann dabei nie alleine stehen, da der eingelesene
Wert immer von einer Variable aufgefangen und gespeichert werden muss.
In unserem Beispiel ist dies die Variable "wert".
Die Wertzuweisung zur Variable erfolgt dabei mit dem Kommando "set ... to ...".
13. Sensoren
Der micro:bit-Computer beherbergt auf seiner Leiterplatte die folgenden Sensoren:
1. Temperatursensor
2. Kompass
3. Helligkeitssensor
4. Beschleunigungssensor
13.1. Der Temperatursensor
Der Mikrocontroller "nRF51822" auf der Leiterplatte des micro:bit-Computers verfügt über einen
internen Temperatursensor.
Grundlagenwissen zum Mikrocontroller und Prozessoren:
Allgemein gilt: "Je mehr ein Mikrocontroller oder ein Prozessor zu tun hat, desto stärker er-
wärmt er sich."
Die eigentliche Aufgabe des integrierten Temperatursensors ist die Überwachung des Chiptemperatur
des Mikrocontollers, um seine Zerstörung durch Überhitzung infolge zu hoher Rechenleistung und zu
hoher Umgebungstemperatur zu verhindern.
Anwendung des Temperatursensors als digitales Thermometer:
1. Wird der Mikrocontroller des micro:bit-Computer nur wenig in Anspruch genommen, so entspricht seine
Eigentemperatur weitgehend der Umgebungstemperatur. Die Abweichung beträgt in diesem Fall ca. 3°C,
um welche die Chiptemperatur des Mikrocontrollers auf dem micro:bit höher ligt als die umgebende Raum-
temperatur.
2. Die Entwicklungsumgebung "JavaScript Blocks"-Editor bietet mit dem Element "temperature (°C)" eine
einfache Möglichkeit den vom Tmperatursensor des Mikrocontollers "nRF51822" gelieferten Wert in °C
auszulesen.
Das Element "temperature (°C)" befindet sich im Menü "Input":
3. Die Abweichung zur Raumtemperatur lässt sich mit Hilfe einer einfachen Berechnung korrigieren.
Externe Informationsquellen:
1. https://www.microbit.co.uk/functions/temperature
2. https://makecode.microbit.org/reference/input/temperature
13.2. Der Helligkeitssensor
Der micro:bit-Computer verwendet laut Dokumentation des Herstellers einige der Leuchtdioden des
Displays als Sensor für die Helligkeitsmessung.
Hintergrundwissen:
Beim Betrieb einer Leuchtdiode sind grundsätzlich 2 Betriebsarten nach ihrer Art des Anschlusses
zu unterscheiden.
Bild 1: Leuchtdiode im Durchlassbetrieb Bild 2: Leuchtdiode im Sperrbetrieb
1. Der Durchlassbetrieb
In der Schaltung in Bild 1 wird die Leuchtdiode P1 in "Durchlassrichtung" am micro:bit-Computer
betrieben.
Aufgrund der Programmierung der beiden Pins x und y ist die Ausgangsspannung positiv und beträgt
insgesamt 3V. Es kommt zu einem elektrischen Strom IF (ca. 2mA) , welcher die Leuchtdiode P1 auf-
leuchten lässt.
2. Der Sperrbetrieb
Die in Bild 2 dargestellte Schaltung zeigt die in "Sperrrichtung" geschaltete Leuchtdiode P1.
Aufgrund der Programmierung der beiden Pins x und y beträgt die Ausgangsspannung zwar
immer noch 3V, ist jetzt aber negativ.
Bei dieser Polung der Ausgangsspannung bleibt die Leuchtdiode immer dunkel.
Der sich einstellende Strom IR ist extrem klein, aber lichtabhängig.
Je mehr Licht auf die Leuchtdiode fällt, desto größer wird dieser sogenannte Sperrstrom IR.
Das Prinzip der Helligkeitsmessung beim micro:bit-Computer:
Beim Messen der Helligkeit mit dem Befehlsblock "light level" werden mehrere der Leuchtdioden auf dem
Display kurzzeitig in Sperrrichtung betrieben und deren Sperrstrom IR gemessen.
Aufgrund des sehr kleinen Sperrstroms einer einzelnen Leuchtdiode, wir durch die Verwendung mehrer Leucht-
dioden die Empfindlichkeit der Lichtmessung wesentlich erhöht.
Der gemessene Sperrstrom IR wird anschließend im micro:bit-Computer mittels eines Analog-Digital-Wandlers in
eine ganze Zahl zwischen 0 und 255 umgesetzt.
- Die Zahl 0 ergibt sich aus einem sehr kleinen Sperrstrom und steht damit sehr vereinfacht für "dunkel".
- Die Zahl 255 ergibt sich aus einem sehr großen Sperrstrom und steht damit sehr vereinfacht für "hell".
Externe Quellen:
1. https://makecode.microbit.org/reference/input/light-level
14. Bluetooth-Funkverbindungen zwischen den micro:bits hestellen
Alle notwendigen Befehlsblöcke für die Kommunikation über Funk sind in der rosafarbenen
Rubrik "Radio" zu finden.
Aufbau einer Bluetooth-Funkverbindung:
Beider Schritte erfolgen üblicherweise direkt im Befehlsblock "on start".
Schritt 1: Einstellen der Radiogruppen-ID
Alle micro:bits, die miteinander kommunizieren sollen, müssen über dieselbe Radiogruppen-ID
verfügen. Eine zulässige Angaben liegt hier im Wertebereich zwischen 0 und 255.
Schritt 2: Einstellen der Sendeleistung des Senders
Senden von Zahlen:
Empfangen und Weiterverarbeiten von Zahlen:
Mit dem Befehlsblock "on radio received" können Zahlen empfangen werden.
Bei dem Bezeichner "receivedNumber" handelt es sich hier eine Variable, in welche die empfangene
Zahl für deren weitere Verarbeitung zwischengespeichert wird.
Die weitere Verarbeitung besteht im vorliegenden Beispiel in der Ausgaben der empfangenen Zahl
auf dem Display des micro:bit-Mikrocomputers.
15. Das Versuchsbrett
Für Elektronikprojekte mit dem micro:bit-Mikrocomputer wird das folgende Versuchsbrett
zur Verfügung gestellt.
Auf diesem sind ein micro:bit-Mikrocomputer, ein Batteriepack, der breakout-Adapter
"pin:bit" und ein breadboard vormontiert.
Das breadboard verfügt über zahlreiche kleine Anschlussbuchsen, in welche die Anschlüsse
elektronischer Bauteile und starre Verbindungsleitungen (Y-Draht) aufnehmen können.
Die roten Linien im Bild verdeutlichen diese leitenden Verbindungen innerhalb des bread-
boards.
Bild 1: Das Versuchsbrett
16. Elektrische Widerstände
Erklärung:
Elektrische Widerstände werden allgemein in elektronischen Schaltungen eingesetzt um den elektrischen
Stromfluss zu verringern.
Die folgende Abbildung zeigt einen solchen elektrischen Widerstand.
Bild 1: Foto eines elektrischen Widerstands
Mechanischer Aufbau und elektrische Eigenschaften:
Elektrische Widerstände haben 2 elektrische Anschlüsse und keine Polung.
Da elektrische Widerstände in beiden Richtungen die gleichen elektrischen Eigenschaft haben, ist
es ist daher egal, "wie herum" ein solcher Widerstand in eine elektrische Schaltung eingebaut wird.
Die Größe eines elektrischen Widerstands wird in der physikalischen Einheit "Ohm" angegeben,
welche mit dem griechischen Buchstaben Ω ("Omega") abgekürzt wird.
Farbcode von elektrischen Widerständen:
Der elektrische Widerstand in Bild 1 hat einen Wert von genau 33Ω. Dies ist für den Fachmann an
seiner Farbcodierung, welche in Form von Farbringen aufgebracht ist, leicht zu erkennen.
Die ersten 3 Ringe geben den Widerstandswert als Sollwert an.
Der letzte Ring benennt die Fertigungstoleranz und gibt damit an wie genau die Widerstände aus dieser
Reihe gefertigt wurden.
Mit Hilfe der Tabelle "Farbcodierung von elektrischen Widerständen" können wir selbst den Widerstandswert
von beliebigen Widerständen bestimmen.
Beispiel: orange orange schwarz gold
3 3 0 5%-Fertigungstoleranz
=> 33•100Ω = 33•1Ω = 33Ω
Zur Fertigungstoleranz: 5% von 33Ω sind 1,65Ω!
===> 33Ω - 1,65Ω = 31,35Ω (kleinster Wert)
===> 33Ω + 1,65Ω = 34,65Ω (größter Wert)
Ein Widerstand dieser Baureihe hat also nur im Idealfall 33Ω. Sein tatsächlicher Wert liegt irgendwo
zwischen 31,35Ω und 34,65Ω. Das ist jedoch für die meisten Schaltungen ausreichend genau.
16.1. Tabelle: Farbkodierung von elektrischen Widerständen
17. Leuchtdioden
Leuchtdioden und ihre Anwendungsgebiete:
Leuchtdioden gibt es in zahlreichen Ausführungen und verbreiten sich in zunehmenden Maße
in unserem Alltag.
Leuchtdioden wurden lange Zeit nur als Leuchten in Anzeigen und Displays eingesetzt. Durch
die konsequente Weiterentwicklung der Technik dienen Sie mittlerweile als Energiesparleuchten
zur Erhellung von Wohnräumen und kommen sogar als KFZ-Signalleuchten und KFZ-Scheinwerfer
zum Einsatz.
2mm-"low current"-LEDs als Signalleuchte
Um unseren micro:bit-Mikrocomputer mit elektronischen
Erweiterungen zu versehen, stehen uns 2mm-low-current-Leds
in den Farben Rot, Gelb und Grünzur Verfügung (siehe Bild 1).
Bild 1: Leuchtdioden
Die Bezeichnung "low current" (geringer Strom) weist daraufhin, dass diese Leuchtdioden nur
einen sehr geringen Betriebsstrom von 2-5mA benötigen, dass diese bereits mit erheblicher
Helligkeit leuchten.
Die Betriebsspannung einer roten, gelben oder grünen Leuchtdioden beträgt ungegfähr 2V.
Beim Anschluss von Leuchtdioden gibt es einiges zu beachten!
Lesen wir deshalb den nächsten Abschnitt "Anschluss und Betrieb von Leuchtdioden"!
17.1. Anschluss und Betrieb von Leuchtdioden
Damit unsere Projekte auf Anhieb funktionieren und keine elektrischen Betriebsmittel
zerstört werden, müssen wir folgende Punkte beim Anschluss von Leuchtdioden
besachten.
1. Leuchtdioden haben eine Polarität!
Eine Leuchtdiode lässt den elektrischen Strom nur in einer
Richtung hindurch.
Der längere Anschluss ist der positiven Polarität der Betriebs-
spannung zuzuwenden.
Der kürzere Anschluss ist der negativen Polarität der Betriebs-
spannung oder der Masse (GND = ground, 0V-Anschluss) zuzu-
wenden.
Was passiert, wenn die LED versehentlich falsch herum eingebaut wird?
In diesem Fall leuchtet sie einfach nicht. Bei den von uns verwendeten geringen Spannungen
wird die Leuchtdiode auch nicht zerstört.
2. Leuchtdioden sind immer mit einem Vorwiderstand zu betreiben!
Dabei wird der Vorwiderstand immer in Reihe zur Leuchtdiode geschaltet!
Betrachten wir uns hierzu den folgenden Schaltplan für eine micro:bit-Betriebsanzeige
mittels der Leuchtdiode P1 und dem Vorwiderstand R1.
Mit dem Widerstand R1 wird der richtige Betriebsstrom für die Leuchtdiode P1 eingestellt.
Was passiert, wenn die LED ohne Vorwiderstand angeschlossen wird?
1. Das Gerät, in diesem Fall unser micro:bit-Mikrocomputer, an welchem die Leuchtdiode
angeschlossen ist, wird zerstört.
2. Die Leuchtdiode selbst wird zerstört.
18. Der Programmablaufplan
Fachbegriff: "Programmablaufplan"
Ein Programmablaufplan (kurz: PAP" ist eine allgemeine, programmiersprachenunabhängige
grafische Darstellung für ein Computerprogramm, welches den Ablauf der einzelnen Elemente
des zugrundeliegenden Algorithmus visualisiert.
Anstelle
von "Programmablaufplan" (kurz: PAP) sind auch die gleichbedeutenden Begriffe
"Flussdiagramm" (engl. "flowchart") oder "Programmstrukturplan" in der Literatur
zu finden.
Weiter Informationen zur Erstellung von Programmablaufplänen finden Sie hier:
1. Die grundlegenden Elemente von Programmablaufplänen
2. Regeln für die Erstellung von Programmablaufplänen
3. Beispiel für ein Programmablaufplan
4. Der lineare Programmablauf (Sequenz) in einem Programmablaufplan
5. Die Verzweigung (Entscheidung) in einem Programmablaufplan
6. Die Schleife (Wiederholungsstruktur) in einem Programmablaufplan
7. Die Funktion in einem Programmablaufplan
18.1. Die grundlegenden Elemente des Programmablaufplans (PAP) nach DIN66001
Die grundlegenden Elemente in einem Programmablaufplan sind:
1. Terminatoren
=> Darstellung als Ovale oder Rechtecke mit gerundeten Ende
- Es gibt nur die beiden Terminatoren "Start" und "Stopp".
- Sie kennzeichnen den Start und das Ende des Algorithmus und kommen daher nur einmal in einem
Pap vor.
2. Ablauflinien
=> Darstellung als Pfeile
- Pfeile sind die wohl wichtigsten Elemente eines PAPs.
- Sie geben die Richtung des Algorithmus bei der Abarbeitung der Elemente vor.
- Mittels Pfeile lassen sich Einsprungstellen und Schleifen
visualisieren.
3. Ein- und Ausgabeelemente
=> Darstellung als Parallelogramme
- Eingaben und Ausgaben werden mittels Parallelogrammen dargestellt.
- Dabei werden feste Textausgaben in Gänsefüßchen gesetzt und Variablen ohne
Anführungszeichen notiert.
4. Verarbeitungblöcke (Operationsblöcke)
=> Darstellung als Rechtecke
- Berechnungen und Wertzuweisungen zu Variablen sind typische Prozessschritte
für Verarbeitungsblöcke.
5. Funktionen oder Unterprogrammaufrufe
=> Darstellung als Rechteck mit doppelten vertikalen Linien
- Die Innenbeschriftung führt den Namen der Funktion bzw. des Unterprogramms.
- Dabei werden in der Regel auch die Übergabeparameter und Rückgabeparameter genannt.
- Der Algorithmus der Funktion wird an einer anderen Stelle im Struktogramm dokumentiert.
6. Verzweigungen (Entscheidungen)
=> Darstellung als Rauten
- Verzweigungen beinhalten grundsätzlich innerhalb der Raute die sogenannte Bedingung, welche
immer mit einem Fragezeichen abschließt.
- Die Rauten werden immer nach rechts und links, nach unten und rechts oder nach unten und links
verlassen.
- Die Ausgänge sind immer mit "ja" und "nein" zu beschriften, wobei "ja" für zutreffende Aussage in
der Bedingung steht.
7. Verbinder (Verbindungsstellen)
=> Darstellung als Kreise mit Nummern
- Verbinder sind sehr nützliche Elemente.
- Sie werden als Schnittstellen für besonders umfangreiche PAPs verwendet, die wegen ihrer Größe
mehrere Seiten einnehmen.
- Sie können jedoch auch auf einseitgen PAPs eingesetzt werden, um bei der Darstellung komplexer
Programmstrukturen die Anzahl der Überschneidungen der Pfeile zu minimieren.
- Verbinder treten immer paarwweise auf. Zugehörige Paare werden mit der gleichen Nummer beschriftet.
8. Kommentare
=> Darstellung mittels geschweifter Klammern
- Kommentare dienen zur Erläuterung einzelner Elemente und werden immer auf der rechten Seite des zu
erklärenden Elements notiert.
Externe Quellen:
- Programmablaufplan (Wikipedia)
- DIN66001: Datenflussdiagramme (https://www.cabeweb.de/html/din66001.htm)
- PAP-Designer (https://papdesigner.de.softonic.com/): Software für MS-Windows zur Erstellung von PAP
18.2. Regeln für die Erstellung von Programmablaufplänen
Regeln für die Erstellung übersichtlicher Programmablaufpläne:
(1) Das Start-Element ist immer ganz oben und das Stopp-Element immer ganz unten im PAP.
(2) Alle Elemente werden grundsätzlich von oben betreten.
(3) Elemente werden grundsätzlich nach unten verlassen, mit Ausnahme der Verzweigungen, die
auch nach rechts und links verlassen werden dürfen.
(4) Pfeile verlaufen immer waagerecht und senkrecht.
(5) Zur Darstellung von Schleifen werden Pfeile eingesetzt, die von unten nach oben aufsteigen und
den Ausgang tiefer gelegener Elemente mit dem Eingang höher gelegener Elemente verbinden.
18.3. Beispiel für ein Programmablaufplan
Gegeben ist der in Bild 1 dargestellte Programmablaufplan (PAP).
Analyse des Algorithmus:
- Der Programablaufplan verdeutlicht die Struktur eines Programms, welches eine ganzzahlige Zufallszahl im
Wertebereich von 0 bis 100 generiert und zuächst in der Variable "Zufallszahl" speichert.
- Danach wird der Inhalt der Variablen "Zufallszahl" analysiert.
- Hierzu kommen 2 zweiseitige Auswahlstrukturen (Kontrollstrukturen) zum Einsatz. Diese sind ineinander
verschachtelt.
- Ist die Zufallszahl größer 0 , so muss die Zufallszahl positiv sein.
Ist die Zufallszahl nicht positiv, so kann sie immer noch kleiner oder gleich 0 sein.
- Ist die Zufallszahl nicht größer Null und kleiner 0, so muss die Zufallszahl negativ sein, ansonsten ist sie genau 0.
Der Programmablaufplan stellt den Algorithmus in leicht lesbarer Form und unabhängig von einer Programmier-
sprache dar.
Der Programmierer hat mit dem Programmablaufplan eine detaillierte Beschreibung des Algorithmus und kann
sich nun für eine beliebige Programmiersprache entscheiden, in welcher er das Programm schreiben möchte.
Die nachfolgenden Abbildungen 2 bis 4 zeigen die Umsetzung desselben Algorithmus in 3 verschiedenen
Programmiersprachen auf dem micro:bit.
Umsetzung des Algorithmus in ein gleichwertiges Programm:
1. Program im JavaScript-Block-Editor


Blid 3: Programm in JavaScript

Blid 4: Programm in MicroPython
18.4. Der lineare Programmablauf (Sequenz) in einem Programmablaufplan
Beim linearen Programmablauf werden die alle Befehle in einem Programm der Reihe nach von oben nach unten abgearbeitet.
Beispiel: Programmablaufplan für eine Sequenz
Eine Sequenz enthält daher niemals eine Verzweigung (Entscheidung) oder eine Schleife (Wiederholung).
18.5. Die Verzweigung (bedingte Auswahl, Entscheidung) in einem Programmablaufplan
Verzweigungen (bedingte Auswahl, Entscheidungen) sind wohl die wichtigsten Elemente der prozeduralen Programmierung.Sie ermöglichen die Ausführung oder Unterdrückung von Programmcode in Abhängigkeit einer Bedingung.
1. Die einseitige Auswahl
Bei der einseitigen Auswahl enthält entweder der "nein"-Zweig oder der "ja"-Zweig kein Befehl oder Anweisung.
Beispiel 1 : Einseitige Auswahl mit "nein"-Zweig ohne Anweisung:


Bild 1.1: Programmablaufplan Bild 1.2: Realisierung in "JavaScript Blocks" mit dem micro:bit
Beispiel 2 : Einseitige Auswahl mit "ja"-Zweig ohne Befehl oder Anweisung:
Die einseitge Auswahl ohne Befehl im "ja"-Zweig muss in den meisten Programmiersprachen jedoch mit Hilfe der zweiseitigen Auswahl
umgesetzt werden. Dabei bleibt der entsprechende Bereich ("dann"-Bereich in Bild 1.4) leer, also ohne Befehl.


Bild 1.3: Programmablaufplan Bild 1.4: Realisierung in "JavaScript Blocks" mit dem micro:bit
2. Die zweiseitige Auswahl


18.6. Die Schleife (Wiederholungsstruktur) in einem Programmablaufplan
Eine Schleife oder Wiederholungsstruktur liegt vor, wenn eine Folge von Befehlen oder AnweisungenIm Programmablaufplan sind Schleifen sehr gut an aufsteigenden Ablauflinien (Pfeilen) zu erkennen,
welche zu vorangegangenen Befehl oder Anweisungen führen.
1. Die Endlos-Schleife
Der nachfolgende Programmablaufplan in Bild 1.1 zeigt eine sogenannte Endlos-Schleife.
Bild 1.2 zeigt die gleichwertige Umsetzung in "JavaScript-Blocks" mit dem micro:bit.


Bild 1.1: Programmablaufplan Bild 1.2: Realisierung in "JavaScript Blocks" mit dem micro:bit
2. Die bedingungsgesteuerte Schleife
Eine bedingungsgesteuerte Schleife verfügt im Gegensatz zu einer Endlosschleife über eine sogenannte Laufbdedingung oder
über eine Abbruchbedingung.


Bild 2.1 Programmablaufplan Bild 2.2.: Realisierung in "JavaScript Blocks" mit dem micro:bit
3. Die Zählschleife
- Zählschleifen sind äußert praktische Steuerungselemente in der Informatik.
- Sie kommen immer dann zum Einsatz, wenn ein Programmierer die Anzahl an Wiederholungen von einem Programmcode festlegen möchte.
- Hierfür benötigt eine Zählschleife immer eine sogenannte "Laufvariable".
Diese wird im ersten Schritt, der sogenannten "Initialisierung", noch vor Eintritt in die Schleife mit einem Zahlenwert vorbelegt.
In der sogenannten "Laufbedingung" oder "Abbruchbedingung" der Schleife wird diese Laufvariable auf das Erreichen eines Zielwerts hin überprüft.
ihrem Zielwert näher zu bringen. Die Reinitialisierung ist üblicherweise die letzte Anweisung innerhalb des Schleifenrumpfes.
Betrachten wir uns hierzu das folgende Beispiel in den Abbildungen 3.1 und 3.2.


Bild 3.1 Programmablaufplan Bild 3.2.: Realisierung in "JavaScript Blocks" mit dem micro:bit
18.7. Die Funktion in einem Programmablaufplan
leicht zu wartende Module zerlegt.
durch einen einfachen Bezeichner zu ersetzen.
Hierdurch wird das eigentliche Hauptprogramm übersichtlicher und leichter lesbar.
immer wieder benötigt wird.
Der Einsatz von Funktionen erleichtert hier die Wiederverwendung des selben Programmcodes, da dieser
nur einmal geschrieben von Programmierer geschrieben werden muss.
Funktionen erleichtern die Fehlersuche und die Fehlerkorrektur im Programmcodes beim Programmieren.
ohne dass das Hauptprogramm angepast werden muss.
Funktionen werden immer über Ihren Bezeichner aufgerufen. Entsprechend erhält das aufrufende Element im
Programmablaufplan ein eigenes Symbol, welches sich vom Anweisungsblock durch 2 zusätzliche senkrechte
Linien auszeichnet.

Bild 1: Aufruf-Element für eine Funktion


Nach Ablauf der Funktion wird die Programmabarbeitung wieder nach dem Aufruf-Element (siehe Bild 1) im aufrufenden
Algorithmus fortgesetzt.
Beispiel für eine Funktion:


Bild 5: Hauptprogramm und Funktion im Block-Code
19. Das Nassi-Shneiderman-Diagramm nach DIN66261
Hier ist eine Baustelle. 8,-(