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.

 
Arbeitsauftrag

Frische Dein Wissen über das Moduloverfahren auf und wende es auf die folgenden Beispiele an:

  1. [math]\displaystyle{ (65)_{10} }[/math]
  2. [math]\displaystyle{ (71)_{10} }[/math]
  3. [math]\displaystyle{ (1000)_{10} }[/math]
Lösung
  1. [math]\displaystyle{ (65)_{10} = (1000001)_2 }[/math]
  2. [math]\displaystyle{ (71)_{10} = (1000111)_2 }[/math]
  3. [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.

 
Arbeitsauftrag

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.

Tipp

Um das Programm zu vervollständigen, reichen die folgenden Blöcke:

  • wiederhole bis < >
  • <( ) = (0)>
  • setze [ v] auf ( )
  • setze [ v] auf ( )
  • (verbinde ( ) und ( ) :: operators)
  • (( ) mod ( )) (die Modulo-Operation, also teilen mit Rest)
  • ([abrunden v] von ( )
  • (( ) / (2))
  • (dezimal)
  • (dezimal)
  • (dezimal)
  • (binaer)
Lösung
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)


Dualzahlen in Dezimalzahlen umrechnen