Akteure und Durchführung
Der einfache Murmelrechner
Neben dem Speicher, der durch die durchnummerierten Gefäße abgebildet wird, gibt es drei Akteure:
- Rechenkünstler / Rechenkünstlerin (ist für die Ausführung der Rechenbefehle und des Testbefehls zuständig)
- Laufbursche / Überbringerin (ist für den Transport von Murmeln zwischen Speicher und Rechenkünstler zuständig)
- Steuermann / Steuerfrau (ist für die Ausführung von Murmelprogrammen und die Steuerung der Akteure zuständig)
Der Rechenkünstler
Hilfsmittel: Murmelvorrat, Gefäß als Akkumulator
Der Rechenkünstler verfügt über ein Speichergefäß, in dem mit Murmeln einfache Rechenoperationen durchgeführt werden können. Dieses Speichergefäß wird Akkumulator (kurz: Akku) genannt.
Der Rechenkünstler kennt die Befehle inc
, dec
und tst
.
Wenn er den Befehl inc
erhält, legt er eine Murmel aus seinem Vorrat in den Akkumulator.
Um den Befehl dec
auszuführen, nimmt er eine Murmel aus dem Akkumulator und legt sie zurück
in den Vorrat. Ist keine Murmel im Akku, so meldet er einen Fehler.
Beim Befehl tst
prüft er, ob der Akkumulator Murmeln enthält und ruft dem Steuermann
die Antwort "ja" oder "nein" zu.
Der Laufbursche
Hilfsmittel: Gefäß zum Transport von Murmeln.
Der Laufbursche hat als einziger Zugriff auf die Inhalte der Speichergefäße. Er darf - nach Aufforderung durch den Steuermann - den Inhalt eines Speichergefäßes in sein Transportgefäß umfüllen (den Speicher auslesen) und zum Rechenkünstler bringen, oder er darf die Murmeln aus dem Akkugefäß zum Speicher transportieren und in ein vom Steuermann zu benennende Speichergefäß einfüllen (den Speicher beschreiben).
Der Steuermann
Hilfsmittel: Notiertes Murmelprogramm
Der Steuermann koordiniert alle Abläufe. Er weiß genau, wie die Befehle auszuführen sind und gibt den anderen Akteuren durch Zurufen die entsprechenden Anweisungen.
Der Steuermann weiß zudem genau, welcher Befehl des Murmelprogramms als nächstes auszuführen ist. Diesen Befehl kann er sich mit einem Zeigestock merken. Evtl. kann er die Verwaltung des nächsten auszuführenden Befehls auch an einen weiteren Akteur deligieren.
Aufgabe 1
Spielt das oben auf dem Zettel angegebene Murmelprogramm einmal komplett durch.
Aufgabe 2
Im Speichergefäß 0 befindet sich eine beliebige Anzahl von Murmeln. Mit einem Murmelprogramm soll das Speichergefäß 0 geleert werden. Entwickelt ein passendes Programm und spielt es mit den Akteuren - einmal mit einem nichleeren und einmal mit einem leeren Speichergefäß - durch.
Aufgabe 3
In den Speichergefäßen 0 und 1 befindet sich jeweils eine beliebige Anzahl von Murmeln. Mit einem Murmelprogramm soll die Differenz der Murmelanzahlen ermittelt werden. Entwickelt eine Idee und ein entsprechendes Murmelprogramm. Spielt es zum Testen mit verschiedenen Ausgangsbelegungen des Speichers durch.