Stabmaschine

Repräsentation der natürlichen Zahlen

Tastatursteuerung

  • oder D: Nächsten Stab fokussieren
  • oder A: Vorherigen Stab fokussieren
  • oder W: Scheibe zu aktivem Stab hinzufügen
  • oder S: Scheibe von aktivem Stab entfernen
  • +: Stab hinzufügen
  • Delete, Backspace oder -: Ausgewählten Stab löschen
  • Ctrl und R: Algorithmus ausführen
  • Ctrl und + mit Fokus im Editor: Schriftgröße erhöhen
  • Ctrl und - mit Fokus im Editor: Schriftgröße verringern

Semantik

Die Stabmaschine erlaubt drei Befehle:
  • add(index) - fügt dem Stab mit Nummer index (beginnend bei 1) eine Scheibe hinzu.
  • remove(index) - entfernt eine Scheibe von dem Stab mit Nummer index (beginnend bei 1).
  • isEmpty?(index) - gibt true zurück, wenn der Stab mit Nummer index leer ist, und false andernfalls.

Syntax

  • Die Nummerierung der Stäbe beginnt bei eins.
  • Die für Algorithmen verwendete Syntax orientiert sich an Java.
  • Es gibt while-Schleifen und if-Verzweigungen (mit else if und else). Die Bedingung wird hierbei mit runden, der Rumpf mit geschweiften Klammern umschlossen.
  • for-Schleifen und gesonderte Variablen stehen bei der Stabmaschine nicht zur Verfügung.
  • Die Negation eines Wahrheitswertes lässt sich durch !BOOLEAN bzw. not BOOLEAN darstellen.
  • Mehrere Wahrheitswerte können durch and und or bzw. && und || verknüpft werden.
  • Strichpunkte können verwendet werden, sind aber nicht zwingend notwendig.

Beispielalgorithmus

Zur Verdeutlichung der Regeln hier ein sehr einfacher Beispielalgorithmus:

{{ index + 1 }}