Dem Zufall auf der Spur: Unterschied zwischen den Versionen
(→20px|Icon Materialien) |
|||
(159 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
== [[Datei:Icon_story.png|20px|Icon]] Den Zufall kann man vielleicht auch berechnen ... == | == [[Datei:Icon_story.png|20px|Icon]] Den Zufall kann man vielleicht auch berechnen ... == | ||
− | [[Datei:kopf_zahl.jpg|right| | + | [[Datei:kopf_zahl.jpg|right|600px]] |
− | Maria behauptet: Wenn man eine Münze oft genug wirft, dann kommen immer gleich viele Kopf- und | + | Maria behauptet: Wenn man eine Münze oft genug wirft, dann kommen immer gleich viele Kopf- und Zahlergebnisse. |
− | Das würde bedeuten: Wirft man 100 mal | + | Das würde bedeuten: Wirft man 100-mal, dann kommen in der Gesamtrechnung immer 50 Kopf- und 50 Zahlergebnisse? |
− | + | * Ist das exakt immer so? | |
− | + | * Ist das meistens so? | |
− | + | * Könnte es auch 10 zu 90 ausgehen? | |
− | |||
− | Am besten | + | Am besten du testest einmal mit einigen Würfen einer Münze – versuche einmal 10 Würfe: |
− | Lege dir eine Tabelle an, | + | Lege dir eine Tabelle an, in die du die Ergebnisse einträgst. |
− | |||
− | |||
+ | [[Datei:Tabelle zufall1.jpg|50%]] | ||
== [[Datei:Icon_gluehbirne.png|20px|Icon]] Aufgabenstellung == | == [[Datei:Icon_gluehbirne.png|20px|Icon]] Aufgabenstellung == | ||
− | Mit dem | + | 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) | ||
== [[Datei:icon_material.png|20px|Icon]] Materialien == | == [[Datei:icon_material.png|20px|Icon]] Materialien == | ||
− | + | * 1 Münze | |
− | + | * 1 Blatt Papier | |
− | * | + | * BBC micro:bit |
− | |||
− | |||
== [[Datei:icon_sanduhr.png|20px|Icon]] Zeitaufwand == | == [[Datei:icon_sanduhr.png|20px|Icon]] Zeitaufwand == | ||
Zeile 37: | Zeile 38: | ||
== [[Datei:Icon_puzzle3.png|20px|Icon]] Schwierigkeitsgrad == | == [[Datei:Icon_puzzle3.png|20px|Icon]] Schwierigkeitsgrad == | ||
− | [[Datei: | + | [[Datei:SternGelb.png|30px|borderless]][[Datei:SternLeer.png|30px|borderless]][[Datei:SternLeer.png|30px|borderless]] |
− | [[Datei: | + | |
+ | == [[Datei:Icon_brain.png|20px|Icon]] Kompetenzen == | ||
+ | |||
+ | [[Datei:IMG_5764_(1).png|right]] | ||
+ | Du solltest bereits können: | ||
+ | * Einen Prozentanteil schätzen können (Mathematik) | ||
+ | * Eine Wertetabelle anlegen und auswerten können (Mathematik) | ||
+ | * Programmbefehle zu Tastefunktionen A und B zuordnen können (Informatik) | ||
− | + | Du lernst, ... | |
− | + | * wie du [[Variablen]] verwenden kannst | |
− | * | + | * [[Operatoren]] zu verwenden |
− | + | * den [[Zufallsgenerator]] zu nutzen | |
− | * den Zufallsgenerator zu | + | * [[Bedingungen]] zu verwenden |
− | |||
− | |||
− | |||
− | |||
− | |||
− | * | ||
− | [[ | ||
== [[Datei:Icon faecher.png|20px|Icon]] Unterrichtsfächer == | == [[Datei:Icon faecher.png|20px|Icon]] Unterrichtsfächer == | ||
Zeile 59: | Zeile 60: | ||
* Mathematik | * Mathematik | ||
* Informatik | * Informatik | ||
− | * Deutsch | + | * Deutsch |
== [[Datei:Icon_hilfe.png|20px|Icon]] Tipps und Hilfestellungen == | == [[Datei:Icon_hilfe.png|20px|Icon]] 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 ==== | ||
+ | * "'''W'''ahr bedeutet Kopf" und "Falsch bedeutet '''Z'''ahl" | ||
− | [[ | + | [[Datei:kopf.png|200px ]] ... [[Datei:zahl.png|200px ]] |
− | === | + | ==== 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 <spoiler text="Block"> | ||
+ | <pre id="pre01"> | ||
+ | input.onGesture(Gesture.Shake, function () { | ||
+ | if (true) { | ||
+ | |||
+ | } else { | ||
+ | |||
+ | } | ||
+ | }) | ||
+ | </pre> | ||
+ | </spoiler> | ||
+ | * Bestimmte Tastenereignisse für Taste A, B und A+B - müssen Daten anzeigen <spoiler text="Block"> | ||
+ | <pre id="pre02"> | ||
+ | input.onButtonPressed(Button.A, function () { | ||
+ | }) | ||
+ | input.onButtonPressed(Button.AB, function () { | ||
+ | |||
+ | }) | ||
+ | input.onButtonPressed(Button.B, function () { | ||
+ | |||
+ | }) | ||
+ | </pre> | ||
+ | </spoiler> | ||
+ | * Daten müssen angezeigt werden <spoiler text="Block"> | ||
+ | <pre id="pre03"> | ||
+ | basic.showNumber(0) | ||
+ | </pre> | ||
+ | </spoiler> | ||
+ | * Bei Programmstart durchzuführen <spoiler text="Block"> <pre id="pre01"> | ||
+ | basic.showNumber(0) | ||
+ | </pre></spoiler> | ||
+ | * Variablen müssen angelegt und initialisiert werden <spoiler text="Block"><pre id="pre03"> | ||
+ | let anzahl_kopf = 0 | ||
+ | let anzahl_zahl = 0 | ||
+ | </pre></spoiler> | ||
+ | * Die Variablen müssen hochgezählt werden <spoiler text="Block"><pre id="pre03"> | ||
+ | anzahl_zahl += 1 | ||
+ | anzahl_kopf += 1 | ||
+ | </pre></spoiler> | ||
+ | * Die Variablen müssen addiert werden <spoiler text="Block"><pre id="pre03"> | ||
+ | let varx = anzahl_zahl + 1 | ||
− | + | </pre></spoiler> | |
− | + | === Eckpfeiler zur Umsetzung === | |
− | * Wenn Taster A | + | * 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. | * 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" | * 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 | ||
− | [[ | + | ===[[Lösung_zufall|Schritt für Schritt zur Lösung]]=== |
+ | :Hinweise zur Lösungsfindung und auch eine mögliche, komplette Lösung findest du auf der [[Lösung_zufall|Lösungsseite zu diesem Beispiel]] | ||
+ | ==[[Datei:presentation.png|20px|Icon]] 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. | ||
− | [[Datei: | + | ==[[Datei:icon_plus.png|20px|Icon]] 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:'''<br> | ||
− | = | + | * Was stellt dieser Programmcode dar? |
+ | <pre id=01"> | ||
+ | input.onButtonPressed(Button.A, function () { | ||
+ | basic.showNumber(k) | ||
+ | }) | ||
+ | input.onButtonPressed(Button.B, function () { | ||
+ | basic.showNumber(z) | ||
+ | }) | ||
+ | let z = 0 | ||
+ | let k = 0 | ||
+ | basic.showArrow(ArrowNames.West) | ||
+ | k = 0 | ||
+ | z = 0 | ||
+ | for (let index = 0; index < 10000; index++) { | ||
+ | if (Math.randomBoolean()) { | ||
+ | k += 1 | ||
+ | } else { | ||
+ | z += 1 | ||
+ | } | ||
+ | } | ||
+ | basic.showString("Fertig!") | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | </pre> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Dieses Programm ist hier aufrufbar: | |
+ | [https://makecode.microbit.org/#pub:_U0cakeHKX2sF Link] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | <htmlet>makecode_embed</htmlet> | |
− | |||
− | |||
− | |||
− |
Aktuelle Version vom 16. Mai 2022, 07:56 Uhr
Inhaltsverzeichnis
Den Zufall kann man vielleicht auch berechnen ...
Maria behauptet: Wenn man eine Münze oft genug wirft, dann kommen immer gleich viele Kopf- und Zahlergebnisse.
Das würde bedeuten: Wirft man 100-mal, dann kommen in der Gesamtrechnung immer 50 Kopf- und 50 Zahlergebnisse?
- Ist das exakt immer so?
- Ist das meistens so?
- Könnte es auch 10 zu 90 ausgehen?
Am besten du testest einmal mit einigen Würfen einer Münze – versuche einmal 10 Würfe: Lege dir eine Tabelle an, in die du die Ergebnisse einträgst.
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
- 1 Münze
- 1 Blatt Papier
- BBC micro:bit
Zeitaufwand
- 1 Unterrichtseinheit
Schwierigkeitsgrad
Kompetenzen
Du solltest bereits können:
- Einen Prozentanteil schätzen können (Mathematik)
- Eine Wertetabelle anlegen und auswerten können (Mathematik)
- Programmbefehle zu Tastefunktionen A und B zuordnen können (Informatik)
Du lernst, ...
- wie du Variablen verwenden kannst
- Operatoren zu verwenden
- den Zufallsgenerator zu nutzen
- Bedingungen zu verwenden
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 Block
- Bestimmte Tastenereignisse für Taste A, B und A+B - müssen Daten anzeigen Block
- Daten müssen angezeigt werden Block
- Bei Programmstart durchzuführen Block
- Variablen müssen angelegt und initialisiert werden Block
- Die Variablen müssen hochgezählt werden Block
- Die Variablen müssen addiert werden Block
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?
input.onButtonPressed(Button.A, function () { basic.showNumber(k) }) input.onButtonPressed(Button.B, function () { basic.showNumber(z) }) let z = 0 let k = 0 basic.showArrow(ArrowNames.West) k = 0 z = 0 for (let index = 0; index < 10000; index++) { if (Math.randomBoolean()) { k += 1 } else { z += 1 } } basic.showString("Fertig!")
Dieses Programm ist hier aufrufbar: Link