5.2.20
12/07/19
Last Modified 06/30/19 by Walter Tasin
AlgoDat_A5 Reload Page

Algorithmen und Datenstrukturen

Zusatzaufgabe

W. Tasin, M.Sc.


Implementierung

  • Stellen Sie den Algorithmus dar, mit dem Sie eine beliebige Zahl von 1-3999 in eine römische Zahl umwandeln können.
Folgende Lookup-Tabelle steht Ihnen dafür zur Verfügung:
Index Wertigkeit Zeichen(folge)
0 1000 M
1 900 CM
2 500 D
3 400 CD
4 100 C
5 90 XC
6 50 L
7 40 XL
8 10 X
9 9 IX
10 5 V
11 4 IV
12 1 I
Hinweis: Durchlaufen Sie die Tabelle pro Iteration von oben nach unten. Sollte der Zahlenwert größer oder gleich der Wertigkeit sein, dann geben Sie das korrispondierende Zeichen bzw. die korrispondierende Zeichenfolge aus.

  • Definieren Sie ein Makro mit dem Namen ANZAHL, das die Größe der Arrays angibt.
  • Legen Sie in main 2 Arrays an. Ein Array beinhaltet die Wertigkeiten (int wertigkeit[ANZAHL]) und initialisieren Sie das Array geeignet; das zweite Array wird wie folgt definiert const char *zeichenfolge[ANZAHL] und wird mit den korrispondierenden Zeichenfolgen initialisiert.


  • In main soll als erstes nach dem umzuwandelnden Zahlenwert gefragt.


  • Sollte keine Zahl eingegeben worden sein, dann ist das Programm zu beenden.
  • Sollte die Zahl nicht zwischen 1 und 3999 liegen, dann ist das Programm mit einer Fehlermeldung zu beenden.


  • Wenn die Eingabeüberprüfung erfolgreich war, dann soll die korrispondierende römische Zahl ausgegeben werden.
    • Entwickeln Sie ein Struktogramm (Nassi-Shneiderman) und implementieren Sie das Programm in ANSI-C 89/90

Links

Uebungen Algorithmen und Datenstrukturen
Unterlagen Algorithmen und Datenstrukturen
Praktikum Algorithmen und Datenstrukturen
Zur Hauptseite