AG Inge Schwank: Startseite Projekte

Registermaschine [RM]: RM-Software

Die RM-Software erlaubt das Erstellen von RM-Programmen. Sie funktioniert mit eingeschaltetem JavaScript in den meisten modernen Browsern.

Weitere Informationen von Inge Schwank zur Einführung in algorithmisches Denken auf
- formal-symbolischer Ebene: Registermaschine
- enaktiv-haptischer / ikonisch-dynamischer Ebene: Dynamische Labyrinthe


Implementation im Austausch mit Inge Schwank: Steffen Vogel
Feedback: Inge Schwank



Navigation



Definition: Baukasten RM-Programme

Sei i ∈ ℕ, i > 0. Seien weiter:
Ri die Bezeichnung für das Register i der Registermaschine;
[Ri] die Bezeichnung für den Inhalt des Registers i, dieser kann eine beliebige natürliche Zahl sein.

Syntax

Semantik


Strukturierung in Teilprobleme --- Definition: RM-Unterprogramm

Syntax

Semantik


Komplexitätsmaß --- Rechenschrittzahl-Funktion

Wird eine Funktion f durch ein RM-Programm Pf berechnet, so kann mit der Rechenschrittzahlfunktion RSPf angeben werden, welcher Aufwand zur Berechung notwendig ist. In die Aufwandsberechung gehen alle ausgeführten Elementarbefehle ein, also alle zur Berechnung notwendigen Fälle der Ausführung von Ai und Si ein.
Beispiel:
Mit Pa: (1S1A2) ist die Funktion a(x1,x2)=x1+x2 berechenbar.
Der Berechungsaufwand hängt in diesem Fall nur von x1, nicht aber von x2 ab.
Zu Pa ergibt sich die Rechenschrittzahl-Funktion:
RSPa(x1)=2x1  

Schnellstart

Es sind zwei Modi zu unterscheiden: Um zwischen diesen beiden Modi zu wechseln, muss ein (syntaktisch) korrektes RM-Programm in dem bis auf einen schwarzen Punkt freien, rechteckigen, weißen Eingabefeld eingegeben sein. Ob das RM-Programm inklusive RM-Unterprogramme lauffähig ist, zeigen die Häkchen bzw. Kreuzchen neben den jeweiligen Eingabefeldern.
Der Wechsel erfolgt mittels des Umschalt-Buttons "Programm initialisieren" / "Programm bearbeiten", der links oben, direkt unter der Überschrift "RM-Programm" platziert ist.


RM-App

Register


Das Hauptprogramm benötigt mehr Register als angelegt wurden.
R1:
R2:
R3:
R4:
Registerwerte setzen auf:

RM-Programm

.

RM-Unterprogramme

Standardprogramme beim Initialisieren laden

Programmverlauf

(mit Rekursionskeller)

Rechenschritte: 0

Das Programm könnte in einer Endlosschleife gefangen sein, da viele Änderungen am Rekursionskeller vorgenommen werden, ohne dass Ai oder Si aufgerufen werden. Bitte überprüfen Sie das Programm und, wenn Sie es weiter ausführen lassen möchten, klicken Sie erneut einen der Schritte-Buttons.

Das Programm versucht, ein Unterprogramm aufzurufen, das nicht definiert wurde. Bitte wechseln Sie in den "Programm bearbeiten"-Modus und definieren Sie das Unterprogramm.

Steuerung

Optionen

Anzahl der Rechenschritte anzeigen
Programmverlauf anzeigen

Programme speichern und laden

vordefinierte Unterprogramme ausgeben, falls sie beim Initialisieren geladen werden
speichern:
laden:

Selbstdefinierte RM-Unterprogramme

Selbstdefinierte RM-Unterprogramme beginnen z.B. mit Pi<j>=, wobei der Großbuchstabe bis auf A und S frei wählbar ist. Der Index gibt das Zielregister an und in den spitzen Klammern stehen die Register, in denen die lokalen Eingabewerte zu finden sind. Nach dem Gleichheitszeichen muss ein gültiges RM-Programm stehen.

Vordefinierte RM-Unterprogramme

In der Regel stehen in den Klammern die Register, in denen lokale Eingabewerte stehen, und im Index das Zielregister. Bitte beachten Sie, dass diese vordefinierten RM-Unterprogramme mit eigenen Definitionen überschrieben werden können.

Aufruf RM-Programm Bedeutung
Li<i> (iSi). Löschen
Ti<j> (jSjAi). Transportieren
Ki<j> (jSjAiAh)(hShAj). Kopieren
Ae<i,j> Ke<i>Ke<j>. normiertes Addieren
Me<i,j> Kh<i>(hShKe<j>). normiertes Multiplizieren

Anleitung


Beispiele: Screencasts

Beispielvideo: RM-Programm zur Berechnung der Funktion f(x1) = x1 + 1


Letzte Änderung: 10. Mai 2023.
Copyright: Universität zu Köln
Datenschutzerklärung; Impressum