Laden...

Konvertierung von römischen Zahlen in ihren Wert

Erstellt von Keyroi vor 8 Jahren Letzter Beitrag vor 8 Jahren 1.651 Views
K
Keyroi Themenstarter:in
9 Beiträge seit 2016
vor 8 Jahren
Konvertierung von römischen Zahlen in ihren Wert

Hallo Community!

Wir haben in der Schule eine Aufgabe bekommen bei der wir Römische Zahlen eingeben müssen und das Programm uns den Wert dieser Zahlen ausgibt.

Allerdings habe ich dabei Probleme da wir bisher nicht gelernt haben wie wir das umsetzen können, wir sollen uns das wissen im Internet aneignen. Daher bitte ich um Hilfe!

danke im Vorraus!

2.207 Beiträge seit 2011
vor 8 Jahren

Hallo Keyroi,

na, das ist doch eine coole Aufgabe für den Anfang. Was hast du denn bisher probiert? Zeig mal ein wenig Code.

Gruss

Coffeebean

K
Keyroi Themenstarter:in
9 Beiträge seit 2016
vor 8 Jahren

Momentan stehe ich noch am Ansatz ^^

zuerst dachte ich das ich die Römische Buchstaben mit ihren jeweiligen Werten in ein Array packe. Dann mit string.length die länge bzw. Anzahl an eingegebenen Buchstaben auslesen.. und dann hört mein wissen auch schon auf ^^

2.207 Beiträge seit 2011
vor 8 Jahren

Hallo Keyroi,

geh erstmal vom Code weg.

Römische Zahlschrift

sagt dir, dass römische Zahlen, die mit einem Buchstaben präsentiert werden, einen Wert haben. Deine Aufgabe besteht nun darin die Buchstaben in die Zahlen umzuwandeln. Die Zweite Aufgabe wird sein, dass du diese Zahlen dann addierst.

Somit:

Lies einen Eingabestring aus der Console
Gehe diesen Zeichen für Zeichen durch --> Schleife
Hole dir für jeden Buchstaben den Wert des Buchstabens
Addiere den jeweils auf dein Ergebnis auf

Prüfung nach Subtraktionsregel/Sonderfällen nicht vergessen, da du eventuell subtrahieren musst.

Am Ende gibst du das Ergebnis aus.

(Das ist eine mögliche Lösung von hunderten und nur das, was mir gerade einfällt. Sind sicher noch Sonderfälle drin)

So...nun zeig mal etwas Code, den du programmiert hast.

Wenn du mal [FAQ] Wie finde ich den Einstieg in C#? und [Hinweis] Bitte schau in die SDK-/MSDN-Doku gelesen hast, wird dir sicher schnell klar, wie sowas funktioniert.

Gruss

Coffeebean

K
Keyroi Themenstarter:in
9 Beiträge seit 2016
vor 8 Jahren

zuerst sollte ich erwähnen das wir nicht in der Konsole sondern mit windows forms arbeiten und zweitens würde das doch nicht funktionieren wenn ich z.b. IV eingeben würde da das ja nach römischen zahlen 4 ergibt aber das programm würde so doch 6 ausgeben oder?

2.207 Beiträge seit 2011
vor 8 Jahren

Hallo Keyroi,

richtig, stimmt, das habe ich nicht bedacht!!! Gut, das ändert aber an der grundsätzlichen Vorgehensweise nicht viel. Das kannst du ja prüfen.

Steht in dem Wiki-Link unter "Subtraktionsregel". (Habs mal oben editiert)

Gruss

Coffeebean

16.807 Beiträge seit 2008
vor 8 Jahren

Hast Du denn überhaupt schon mal gegoogelt, um einen Ansatz zu bekommen?
Roman numbers to integers

Google sollte immer zusammen mit Forensuchen der erste Anlaufspunkt sein...

K
Keyroi Themenstarter:in
9 Beiträge seit 2016
vor 8 Jahren

Okay Sorry jetzt bin ich hinter gestiegen.. ^^

ich versuchs mal

2.207 Beiträge seit 2011
vor 8 Jahren

Hallo Keyroi,

auch wenn Abt dir die Lösung jetzt gegoogelt hat: Versuch es selber zu implementieren oder, wenn du es schon kopierst, zu verstehen (am Besten durch nachimplementieren). Dann lernst du am Meisten.

Ich bin mir sicher, dass dein Lehrer auch googlen kann 😉

Gruss

Coffeebean

16.807 Beiträge seit 2008
vor 8 Jahren

Es war eher ein Hinweis, dass man sich nicht den Ansatz von einem Forum vor machen lassen soll.
Zu den Lösungen steht i.d.R. der Grund der Implementierung, mit dessen Gedankenstütze man es dann selbst implementieren sollte.
Schließlich ist nicht jede Lösung gleich gut.

Wenn er jetzt den Code kopiert, dann wird er a) nichts, aber auch gar nichts lernen und b) hoffentlich von seinem Lehrer gerüffelt.
Von daher würde es sich damit nur selbst schaden 😃

K
Keyroi Themenstarter:in
9 Beiträge seit 2016
vor 8 Jahren

Hab jetzt ein Dicitionary erstellt (nachdem ich mir das beigebracht habe:D)

wie kann ich jetzt auf die werte zugreifen wenn ich den inhalt einer textbox in eine Variable tue?

Hinweis von Coffeebean vor 8 Jahren

Keine externen Filehoster. [Hinweis] Wie poste ich richtig? Punkt 6.1

16.807 Beiträge seit 2008
vor 8 Jahren

Du hast Dir das Dictionary abgeschaut, aber nicht angeschaut.
Ansonsten wüsstest Du, wie man auf die entsprechenden Werte zugreift.

Schau in die Doku; da steht es.

3.003 Beiträge seit 2006
vor 8 Jahren

Du solltest die Literale in dein Dictionary aufnehmen, NICHT (nur) die einzelnen Buchstaben.

Als Literale gelten alle einzelnen Buchstaben, und dazu die Konstrukte, bei denen man etwas abziehen muss:
IV (Wert 4)
IX (Wert 9)
XL (Wert 40)
XC (Wert 90)
CD (Wert 400)
CM (Wert 900)

Jetzt gehst du durch die römische Zahl durch, suchst der Reihen nach von links nach rechts alle Literale und addierst deren Wert. Fertig.

LaTino
Standardvorgehen für jeden Parser: die "Sprache" in ihre Grundbestandteile zerlegen und anhand der den Grundbestandteilen - Literalen - zugeordneten Werte den Inhalt ermitteln. Ich finde es allerdings ausgesprochen seltsam, dass man das als Aufgabe mit dem Hinweis "schaut im Internet, wie" bekommt.

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

3.170 Beiträge seit 2006
vor 8 Jahren

Hallo,

vielleicht kann Dir Zommi's Lösung hier als Anschauungsmaterial dienen: Das Programmier-Spiel: nette Übungsaufgaben für zwischendurch

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca