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
numerals: EineListemit den römischen Zahlzeichen. Fügen Sie die Zahlzeichen nach absteigendem Wert ein.decimals: EineListemit den entsprechenden Zahlenwerten (absteigend sortiert).count: Ein Zähler für die Position innerhalb der beiden Listen.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
1)
Die Subtraktionsregel, dass man maximal 3 identische Symbole schreiben darf, stammt aus dem Mittelalter.
