Von der Idee zum Programm

Die meisten Programme werden nicht einfach drauflos geschrieben, sondern sind das Ergebnis eines langen, sowohl kreativen als auch sorgfältig dokumentierten Entwicklungsprozesses. Am Beispiel der Binärzahlen werden wir heute dieses Prinzip nachstellen.
Binärzahlen verwenden nur die Symbole 0 und 1, um Ganzzahlen zu repräsentieren. Dabei wird als Index angegeben, ob es sich um eine Binärzahl (12) oder Dezimalzahl (110) handelt.
Für die Umrechung in eine Dezimalzahl wird die letzte Stelle mit 1, die vorletzte mit 2, die vorvorletzte Stelle mit 4 malgenommen und dann addiert (kurz: n-te Stelle von hinten mit 2n-1 malnehmen)
Alternativ kannst Du auch eine Tabelle verwenden (siehe rechts).
Zuordnung bin/dez
010 = 0002
110 = 0012
210 = 0102
310 = 0112
410 = 1002
510 = 1012
610 = 1102
710 = 1112
Beispiele:
112 = 1 * 2 + 1 * 1 = 310
1102 = 0 * 1 + 1 * 2 + 1 * 4 = 610
Vorüberlegungen / Entwurf
- Die Eingabe werden wir vereinfacht über die Belegung einer Variablen vor Programmstart vornehmen (wenn Du schnell mit der Hauptaufgabe fertig bist, wäre das Erstellen einer Tasterbasierten Eingabe eine lohnende Aufgabe um zu zeigen, was Du kannst).
- Die Ausgabe soll über LEDs gelöst werden, die der Reihe nach abgelesen werden (siehe unten).
- Entwirf einen möglichen Arduino-Aufbau, der das zielgerichtete Ein- und Ausschalten von 4 LEDs ermöglicht.
https://www.tutory.de/entdecken/dokument/programmierung-unplugged
Vergleiche Deinen Entwurf mit diesem Vorschlag. Prüfe, ob Dein Entwurf die folgenden Kriterien erfüllt:
* 4 LEDs verbaut
* 4 Widerstände an den LEDs verbaut
* Jede LED ist an einem separaten PIN angeschlossen, damit sie separat ansteuerbar ist
* Alle Stromkreise treffen sich auf dem Breadboard und werden gemeinsam zum GND-PIN geschlossen
* Alle Stromkreise sind geschlossen
Hinweis: Die Schaltung muss nicht genauso aussehen wie auf dem Bild, solange sie die genannten Kriterien erfüllt.
Algorithmus
Bevor Du versuchst, ein Programm zu schreiben, solltest Du einen Plan für den Ablauf machen und diesen testen. Es gibt verschiedene Wege, um Dezimalzahlen in Binärzahlen umzuwandeln; zwei davon stelle ich Dir kurz vor:
Einzelfall-Identifikation
Prüfe, ob die umzuwandelnde Zahl 0 ist, 1 ist, 2 ist, ... und hinterlege für jede denkbare Dezimalzahl bis 7 die passenden HIGH/LOW-Werte für die LED-Pins.
Achtung: Das ist zwar einfach, aber nicht gut zu erweitern.
Division mit Rest
Teile die Eingabe durch 2; der Divisionsrest ist die letzte Stelle der Binärzahl. Das ganzzahlige Ergebnis der Division ist die neue Zahl. Diese wird durch 2 geteilt, der Divisionsrest gibt die vorletzte Stelle der Binärzahl an (usw., bis der ganzzahlige Rest 0 ist).
Beispiel:
5 : 2 = 2 Rest 1
2 : 2 = 1 Rest 0
1 : 2 = 0 Rest 1
-> Ergebnis: 1012
- Beginne mit
SPEICHERE Zahl ALS Eingabe
. - Verwende ausschließlich die folgenden Textbausteine: WENN (Bedingung) DANN Anweisung (ggf: ANSONSTEN Anweisung), MERKE Wert ALS Eingabe, ist gleich / ist ungleich, Zahlen, Rechenoperationen \+ - * DIV MOD, PIN Nummer, STROM EIN/AUS AN Pin..., WIEDERHOLE BIS / n-mal
- Hinweis: MOD liefert den Divisionsrest (5 MOD 2 = 1)
- Hinweis: DIV ersetzt das Geteiltzeichen, gibt aber nur den Ganzzahligen Anteil des Ergebnisses an (5 DIV 2 = 2)
- Achtung: Nicht alle diese Bausteine werden notwendigerweise benötigt!
https://www.tutory.de/entdecken/dokument/programmierung-unplugged
Testen / Simulieren des Algorithmus

Jetzt soll getestet werden. Dabei übernehmen Mitschüler*innen die Rollen der beteiligten Komponenten (der LEDs, der Recheneinheit, der Kontrolleinheit, der Variablen).
Rollenbeschreibungen
Du liest Schritt für Schritt die Anweisungen vor - NICHT INTERPRETIEREN, sonst werden Fehler nicht gefunden.
Wenn Du eine Rechnung durchführen oder eine Bedingung überprüfen lassen möchtest, beauftragst Du die Recheneinheit, das Merken/Wiedergeben von Zahlenwerten übernimmt die Variable.
Du wirst von der Kontrolleinheit beauftragt, entweder Rechnungen durchzuführen (dann meldest Du das Ergebnis zurück) oder Bedingungen zu prüfen (dann melde WAHR oder FALSCH zurück).
Beachte: Es ist wichtig, dass Du genau das Gefragte und NUR das Gefragte lieferst.
Du bildest mit den anderen LEDs eine Ausgabereihe. Es ist wichtig, dass Du Deine PIN-Nummer kennst. Wenn an Deinem PIN der Strom eingeschaltet wird, stehst Du auf und bleibst stehen, bis der Strom an Deinem PIN wieder ausgeschaltet wird. Du startest im Zustand kein Strom
.
Eingabe
Du merkst Dir Zahlenwerte, die Dir die Kontrolleinheit übergibt. Wenn Kontrolleinheit oder Recheneinheit einen Variablenwert abfragen, gibst Du ihn an.
Beachte: Auch wenn die Variable Eingabe
heißt, kann sich der Wert im Verlauf der Ausführung des Algorithmus ändern.
Testlauf
Endlich: Umsetzung
https://www.tutory.de/entdecken/dokument/programmierung-unplugged


