LU05.A04: Römische Zahlzeichen

Lösen Sie die Aufgabe mit BlockPy oder Codingrooms

Laden Sie einen Screenshot ihres Blockly-Ablaufs hoch.

Römische Zahlen

https://de.wikipedia.org/wiki/R%C3%B6mische_Zahlschrift

Das römische Zahlensystem basiert ausschliesslich auf der Addition 1) der Symbole. Dabei werden immer möglichst wenige Symbole verwendet, um die Zahl zu notieren.

Römische Zahlzeichen

I 1
V 5
X 10
L 50
C 100
D 500
M 1000

Beispiele

DCCXIIII

500 + 100 + 100 + 10 + 1 + 1 + 1 + 1 = 714

MMXXII

1000 + 1000 + 10 + 10 + 1 + 1 = 2022

Auftrag

Erstellen Sie ein Programm mit Blockly, das eine beliebige positive Zahl in römische Zahlzeichen umwandelt.

Hinweise zu den Variablen

  1. numerals: Eine Liste mit den römischen Zahlzeichen. Fügen Sie die Zahlzeichen nach absteigendem Wert ein.
  2. decimals: Eine Liste mit den entsprechenden Zahlenwerten (absteigend sortiert).
  3. count: Ein Zähler für die Position innerhalb der beiden Listen.
  4. result: Eine Variable um das Resultat zu speichern.

Programmlogik

1. Setze count gleich 0
2. Der Benutzer gibt eine natürliche Zahl ein => number
3. Solange number grösser als 0 ist
  3.1. Falls number grösser oder gleich decimals[count] ist
    3.1.1. Füge das Zeichen aus numerals[count] zum result hinzu.
    3.1.2. Subtrahiere decimals[count] von number
  3.2. Sonst
    3.3. Erhöhe den Wert von count um 1
4. Gib das result aus

Tests

Input Erwartetes Resultat
714 DCCXIIII
2022 MMXXII
9 VIIII

Marcel Suter

1)
Die Subtraktionsregel, dass man maximal 3 identische Symbole schreiben darf, stammt aus dem Mittelalter.