Morse
Übertragen von Geheimcode
Hallo, ich bin Robi-x01 und ich möchte mich mit meiner Freundin unterhalten können, ohne dass dies jemand anderer versteht. Dazu verwenden wir ein Geheimsprache namens Morse. Diese Sprache hat genauso 2 Zeichen, einen Punkt und einen Strich. Wie soll das klappen?
Eine erste Begrüßung an dich: Wenn man Geheimpsrache vereinbart, dann muss der Sender und der Empfänger genau diesselbe Verschlüsselung und Entschlüsselung verwenden. Dazu gibt es immer Tabellen die diese Schlüssel angeben. Übrigends hatte der Morsecode serh große Bedeutung in der Nachrichtenübertragung. Viele Informationen zum Morsecode findest du in Wikipedia Morsecode{:target="_blank"}.
[<a href="https://de.wikipedia.org/wiki/Morsecode" target="_blank"> Morsecode</a>]
Wir werden den Micro:bit verwenden, um die Sprache zu übertragen.
Aufgabenstellung
Mit dem BBC micro:bit kannst du dies noch bequemer testen – du benützt den Zufallsgenerator des micro:bit. Entwickle ein Programm, mit dem man das Werfen der Münzen simulieren kann. Der Vorteil des Computers, sehr viele Würfe zu produzieren, sollte dabei ebenfalls zum Tragen kommen.
- Das Schütteln des micro:bit sollte den Zufallsgenerator aufrufen: Dieser soll Kopf oder Zahl produzieren.
- Taste A sollte die Anzahl der "Kopfwürfe" darstellen
- Taste B sollte die Anzahl der "Zahlwürfe" darstellen
- Taste A+B sollten die Gesamtanzahl der Versuche darstellen
- Neustart mit "Reset"-Taste (Erweiterung)
Materialien
- Eine Münze
- Ein Blatt Papier
- micro:bit
Zeitaufwand
- 1 Unterrichtseinheit
Schwierigkeitsgrad
Kompetenzen
Du solltest bereits
- einen Prozentanteil schätzen können
- eine Wertetabelle anlegen und auswerten können
Beim Programmieren lernst bzw. übst du
- Variablen zu verwenden
- Operatoren zu verwenden
- den Zufallsgenerator zu nutzen
- Bedingungen zu verwenden
Bei dieser Aufgabe lernst du auch
- ein NEUES Programm zu lesen und es zu interpretieren
Unterrichtsfächer
- Mathematik
- Informatik
- Deutsch
Tipps und Hilfestellungen
Erforderliche Programmierblöcke
Ziel
- Der Zufallsgenerator sollte 2 Zustände darstellen: wahr oder falsch
- Diese Zustände entsprechen den 2 Möglichkeiten beim Münzwurf
- Es sollte jeweils die Anzahl der Treffer für "wahr" und für "falsch" gezählt werden.
Vereinbarung
- "Wahr bedeutet Kopf" und "Falsch bedeutet Zahl"
Blöcke
- Anstelle des Münzwurfs sollte der Zufallsgenerator "wahr" oder "falsch" liefern
- Der Zufallsgenerator sollte durch Schütteln des micro:bit aufgerufen werden
- Je nach Bedingung "wahr" oder "falsch" sollten verschiedene Aktionen stattfinden
input.onGesture(Gesture.Shake, function () { if (true) { } else { } })
- Bestimmte Tastenereignisse für Taste A, B und A+B - müssen Daten anzeigen <spoiler text="Block">
input.onButtonPressed(Button.A, function () { }) input.onButtonPressed(Button.AB, function () { }) input.onButtonPressed(Button.B, function () { })
</spoiler>
- Daten müssen angezeigt werden <spoiler text="Block">
basic.showNumber(0)
</spoiler>
- Bei Programmstart durchzuführen <spoiler text="Block">
basic.showNumber(0)
</spoiler>
- Variablen müssen angelegt und initialisiert werden <spoiler text="Block">
let anzahl_kopf = 0 let anzahl_zahl = 0
</spoiler>
- Variablen müssen hochgezählt werden <spoiler text="Block">
anzahl_zahl += 1 anzahl_kopf += 1
</spoiler>
- Variablen müssen addiert werden <spoiler text="Block">
let varx = anzahl_zahl + 1
</spoiler>
Eckpfeiler zur Umsetzung
- Programmiere den micro:bit-Zufallsgenerator so, dass durch Schütteln ein Wert "wahr" oder "falsch" ermittelt wird (= Kopf oder Zahl)
- Wenn Taster "A" gedrückt wird, soll die Anzahl Kopfwürfe gezeigt werden
- Wenn Taster "B" gedrückt wird, soll die Anzahl Zahlwürfe gezeigt werden
- Wenn Taster "A+B" gedrückt werden, soll die Summe der Würfe dargestellt werden
- Zufallswerte erhält man aus dem Menü Mathematik "Wähle zufälligen Wahr- und Falsch-Wert"
- Wird Wahr ermittelt, so soll der Buchstabe "K" für Kopf erscheinen, andernfalls "Z" für Zahl.
- Hier benötigt man die logische Verzweigung "Wenn ... dann ... sonst"
- Das System sollte über zwei Variablen protokollieren, wie oft Kopf und wie oft Zahl geworfen wurde
Schritt für Schritt zur Lösung
- Hinweise zur Lösungsfindung und auch eine mögliche, komplette Lösung findest du auf der Lösungsseite zu diesem Beispiel
Präsentation und Reflexion
Allgemein
- Stelle dein Ergebnis vor! Was kann dein Produkt?
- Was hat dir bei der Entwicklung deines Produkts gefallen?
- Welche Schwierigkeiten hattest? Wie konntest du diese lösen?
- Erläutere, wie du dein Produkt programmiert hast!
- Was war bei dieser Aufgabe interessant für dich?
Projektspezifisch
- Welche Regeln wurden für Kopf und Zahl festgelegt? Welche andere Regeln für "Kopf oder Zahl" gäbe es noch?
- Welche Diskussionspunkte ergaben sich während des Spiels?
- Wo wird im Alltag der Wirtschaft mit Zufallsgenerator gearbeitet?
- Wo braucht man bei einem Computerspiel den Zufallsgenerator.
- Wo war bei diesem Beispiel der Vorteil des Computers zu sehen, wo war er eher ein Nachteil?
- Bei welcher Erweiterungsstufe war es am schwierigsten, einen Programmcode zu erstellen.
Weiterentwicklung
- Schleife: Du kannst mit einer Schleife nicht nur jeweils einen Wurf produzieren, sondern gleich 100 oder gar 1000 Würfe
- Das bedeutet: Wenn einmal geschüttelt wird, werden gleich 1000 Würfe simuliert
- Nütze dabei den Vorteil des Computers – er kann sehr schnell rechnen
Noch eine Erweiterungsaufgabe
Analyse eines fremden Programmcodes:
- Was stellt dieser Programmcode dar?
Dieses Programm ist hier aufrufbar: Link