Lernpfad:Das Dualsystem/4
Du kennst vielleicht noch die visuelle Programmierumgebung Scratch. Mit Ihr lassen sich auch Programme zur Umrechnung von Dualzahlen erstellen. Dazu findest Du hier einige Hinweise, die Dir bei der Entwicklung helfen.
Du solltest schon einmal mit Scratch gearbeitet haben und die folgenden Konzepte kennen, damit Du die Programme erfolgreich umsetzen kannst:
- Ich kenne bedingte Anweisungen (
falls <> dann :: stack), - ich kenne Schleifen (
wiederhole bis <> :: stack,wiederhole () mal :: stack), - ich kenne Variablen (
(dezimal),setze (dezimal) auf (),ändere (dezimal) um ()).
Dezimalzahlen in Dualzahlen umrechnen
Um eine Dezimalzahl in eine Dualzahl umzurechnen, hast Du das Moduloverfahren kennengelernt. Dieses lässt sich relativ leicht in Scratch als Programm umsetzen.
Frische Dein Wissen über das Moduloverfahren auf und wende es auf die folgenden Beispiele an:
- [math]\displaystyle{ (65)_{10} }[/math]
- [math]\displaystyle{ (71)_{10} }[/math]
- [math]\displaystyle{ (1000)_{10} }[/math]
- [math]\displaystyle{ (65)_{10} = (1000001)_2 }[/math]
- [math]\displaystyle{ (71)_{10} = (1000111)_2 }[/math]
- [math]\displaystyle{ (1000)_{10} = (1111101000)_2 }[/math]
Beispiel zur Umrechnung:
[math]\displaystyle{ \begin{align*} 65 : 2 &= 32 \,\text{R} 1 \\ 32 : 2 &= 16 \,\text{R} 0 \\ 16 : 2 &= 8 \,\text{R} 0 \\ 8 : 2 &= 4 \,\text{R} 0 \\ 4 : 2 &= 2 \,\text{R} 0 \\ 2 : 2 &= 1 \,\text{R} 0 \\ 1 : 2 &= 0 \,\text{R} 1 \\ \end{align*} }[/math]
Also [math]\displaystyle{ (65)_{10} = (1000001)_2 }[/math]
Das Programm setzt das Verfahren genau um. Erstelle dazu ein neues Projekt in Scratch und wähle die Figur der Scratch-Katze aus. Erstelle folgendes Grundgerüst des Programms:
Wenn diese Figur angeklickt wird :: events hat frage [Gib eine Dezimalzahl ein.] und warte setze [dezimal v] auf (Antwort) setze [binaer v] auf ( ) // füge hier weitere Blöcke ein sage (binaer)
Die Blöcke für die Variablen (dezimal) und (binaer) müsst Ihr dazu zunächst im Bereich Variablen erstellen.
Vervollständige das Programm zur Umrechnung von Dezimalzahlen in Dualzahlen mittels des Moduloverfahrens.
Du kannst versuchen, selber eine Lösung zu finden, oder die folgenden Tipps verwenden. Sobald das Programm funktioniert, kannst Du Deine Lösung mit der Musterlösung vergleichen.
Um das Programm zu vervollständigen, reichen die folgenden Blöcke:
wiederhole bis < ><(dezimal) = (0)>setze [ v] auf ( )setze [ v] auf ( )(verbinde ( ) und ( ) :: operators)(( ) mod ( ))(die Modulo-Operation, also teilen mit Rest)([abrunden v] von ( )(( ) / (2))
Wenn diese Figur angeklickt wird :: events hat frage [Gib eine Dezimalzahl ein.] und warte setze [dezimal v] auf (Antwort) setze [binaer v] auf ( ) wiederhole bis <(dezimal) = (0)> setze [binear v] auf (verbinde ((dezimal) mod (2)) und (binear) :: operators) setze [dezimal v] auf ([abrunden v] von ((dezimal) / (2))) end sage (binaer)