====== LU05.A04: Römische Zahlzeichen ======
Lösen Sie die Aufgabe mit [[https://think.cs.vt.edu/blockpy/blockpy/|BlockPy]] oder [[https://www.codingrooms.com/compiler/python-block|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
((Die Subtraktionsregel, dass man maximal 3 identische Symbole schreiben darf, stammt aus dem Mittelalter.)) 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'': Eine ''Liste'' mit den römischen Zahlzeichen. Fügen Sie die Zahlzeichen nach absteigendem Wert ein.
- ''decimals'': Eine ''Liste'' mit 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 ====
^ Input ^ Erwartetes Resultat ^
| 714 | DCCXIIII |
| 2022 | MMXXII |
| 9 | VIIII |
----
{{tag>319-C1G 319-C1F 319-C1E}}
[[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] Marcel Suter