Der Murmelrechner- Subtraktion?

Erste Frage Aufrufe: 60     Aktiv: 21.02.2021 um 22:22

0

Hallo, an sich habe ich das Prinzip des Murmelrechners ganz gut verstanden, ich hänge jedoch an einer Aufgabe über die Subtraktion.

Schreibe ein Murmelprogramm, dass Speicherzelle 1 und Speicherzelle 0 abzieht (also 0-1). Das Ergebnis dieser Rechnung kann in Speicherzelle 0 oder 1 verbleiben. Allerdings soll in Speicherzelle 2 noch vermerkt werden, ob das Ergebnis positiv (0) oder negativ (1) ist.

Ich wäre sehr dankbar um Ihre Hilfe! Vielen Dank im Voraus!

Diese Frage melden
gefragt

Punkte: 12

 

Kommentar schreiben

1 Antwort
1

Ich persönlich kannte den Murmelrechner nicht, aber ich kann dir allgemein sagen, wie man das Problem lösen könnte: Du musst solange in Speicherzelle 1 UND Speicherzelle 0 eine Murmel drin ist, von beiden Speicherzellen eine Murmel entfernen. Am Ende sind entweder beide Speicherzellen leer, das Ergebnis ist also 0, oder eine der beiden Speicherzellen enthält noch n Kugeln. Da Speicherzelle 0 minus Speicherzelle 1 gerechnet werden soll, ist das Ergebnis positiv, wenn in Speicherzelle 0 noch Kugeln übrig sind, andernfalls ist das Ergebnis negativ, wenn nur noch in Speicherzelle 1 Kugeln übrig sind.

Pseudocode-Mäßig könnte das so aussehen:

Prüfe, ob in Speicherzelle 0 noch eine Murmel vorhanden ist:
 Wenn ja, dann:
      Prüfe, ob in Speicherzelle 1 noch eine Murmel vorhanden ist:
           Wenn ja, dann entferne eine Murmel aus Speicherzelle 0 und eine Murmel aus Speicherzelle 1 und beginne wieder am Anfang
           Wenn nein, dann beende den Vorgang
 Wenn nein, dann prüfe, ob in Speicherzelle 1 noch eine Murmel vorhanden ist:
      Wenn ja, dann lege eine Murmel in Speicherzelle 2
      Wenn nein, dann beende den Vorgang

Ich habe jetzt einfach definiert, dass eine Murmel in Speicherzelle 2 bedeutet, dass das Ergebnis negativ ist, keine Murmel bedeutet dementsprechend, das Ergebnis ist positiv. Ist das Ergebnis 0, dann wird die Zahl positiv gewertet, daher die letzte Abfrage.

Diese Antwort melden
geantwortet

Schüler, Punkte: 360
 

Kommentar schreiben