Römische Zahlen - Spezifikation

Benutzeravatar
m_stoica
Kernelcompilierer
Kernelcompilierer
Beiträge: 473
Registriert: 5. Dez 2008 20:19
Wohnort: Zuhause

Römische Zahlen - Spezifikation

Beitrag von m_stoica »

Hi,

Laut Spezifikation der Aufgabe, würde auch etwas wie IXI oder CMC als gültige römische Zahl durchgehen.
Für die 14 könnte man dann auch IXV statt XIV schreiben.
Ist es folglich okay, wenn wir das auch so implementieren?

Gruß,
Michael

Daniel Mäurer
Mausschubser
Mausschubser
Beiträge: 57
Registriert: 12. Okt 2009 14:18

Re: Römische Zahlen - Spezifikation

Beitrag von Daniel Mäurer »

Die Spezifikation ist an dieser Stelle nicht genau genug!

Wird ein kleineres Zeichen einem größeren vorangestellt, also subtrahiert, darf es im Anschluss natürlich nicht wieder addiert werden. IXI oder CMC sind also nicht gültig.

"Für die 14 könnte man dann auch IXV statt XIV schreiben."
Auch das ist von uns nicht eindeutig spezifiziert. Ein "vierer" wird immer aus einer -1+5 gebildet, also duch Subtraktion von der nächst größeren Ziffer. IXV ist also ungültig.

Vielen Dank für den Hinweis.

Benutzeravatar
m_stoica
Kernelcompilierer
Kernelcompilierer
Beiträge: 473
Registriert: 5. Dez 2008 20:19
Wohnort: Zuhause

Re: Römische Zahlen - Spezifikation

Beitrag von m_stoica »

Habe ich es also Richtig verstanden, dass es Falsch ist, wenn wir das ganze also so wie auf dem Aufgabenblatt implementiert haben?
Das fände ich ziemlich ärgerlich...

Benutzeravatar
jan_k
Mausschubser
Mausschubser
Beiträge: 66
Registriert: 7. Jul 2009 15:39
Kontaktdaten:

Re: Römische Zahlen - Spezifikation

Beitrag von jan_k »

Vorallem wird der Gültigkeitscheck langsam etwas zu komplex :shock:

Daniel Mäurer
Mausschubser
Mausschubser
Beiträge: 57
Registriert: 12. Okt 2009 14:18

Re: Römische Zahlen - Spezifikation

Beitrag von Daniel Mäurer »

@m_stoica: Ihre Implementierung ist sicherlich nicht "falsch". Da sie ja selber die Zweideutigkeit der Spezifikation erkannt haben, müssten Sie nach der Aufgabenstellung die andere (richtige) Darstellung auch können. Es ist außerdem davon auszugehen, dass der Tutor sie nicht durchfallen lässt, wenn ihr Programm im Allgemeinen das Richtige tut und sie ihm plausibel erklären können, warum ihre Lösung an dieser Stelle von möglichen Testfällen abweicht.

Falls es noch niemandem aufgefallen ist: 3999 = MMMCMXCIX ist die größte darstellbare Zahl und nicht 3888 wie auf dem Aufgabenblatt angegeben...

Benutzeravatar
m_stoica
Kernelcompilierer
Kernelcompilierer
Beiträge: 473
Registriert: 5. Dez 2008 20:19
Wohnort: Zuhause

Re: Römische Zahlen - Spezifikation

Beitrag von m_stoica »

Nach der aktuellen Spezifikation kann man die Zahl 140 auch als XCL statt CXL schreiben. Ist das denn richtig?
Edit: soweit ich das sehe, haben wir auch noch keine Regel um etwas wie IXX statt XIX zu verbieten
Zuletzt geändert von m_stoica am 5. Nov 2009 07:54, insgesamt 1-mal geändert.

Benutzeravatar
Mergian
Mausschubser
Mausschubser
Beiträge: 48
Registriert: 7. Feb 2008 11:41

Re: Römische Zahlen - Spezifikation

Beitrag von Mergian »

Nach der richtigen Definition her nicht.

http://www.diaware.de/html/roemzahl.html

Regel 9 besagt:
"Rechts neben einer SK dürfen nur RZ folgen, welche GZ und/oder HZ enthalten, die eine niedere Wertigkeit besitzen, als der linke Bestandteil der besagten SK."

SK ist in dem fall das XC und das L ein HZ (Hilfszahl). Da L höher als X ist, gehts nicht.

Benutzeravatar
m_stoica
Kernelcompilierer
Kernelcompilierer
Beiträge: 473
Registriert: 5. Dez 2008 20:19
Wohnort: Zuhause

Re: Römische Zahlen - Spezifikation

Beitrag von m_stoica »

naja, die Sache ist die, dass es keine einheitlichen Regeln gibt, deshalb hätte ich gerne vom Veranstalter die Regeln nach denen ich mich richten soll.
Ab und zu sieht man auch IM als römische Zahl, aber bei uns ist das nicht erlaubt.

Benutzeravatar
m_stoica
Kernelcompilierer
Kernelcompilierer
Beiträge: 473
Registriert: 5. Dez 2008 20:19
Wohnort: Zuhause

Re: Römische Zahlen - Spezifikation

Beitrag von m_stoica »

Anbei: Unter dem Satz den du zitiert hast steht: "Bei der Beachtung der besonderen Regel 7, gilt diese Regel 9 nicht. "
Bei uns gilt ja gerade diese Regel 7, also würde laut dieser Seite die Regel 9 für uns garnicht gelten.

Benutzeravatar
martin-t
Erstie
Erstie
Beiträge: 21
Registriert: 5. Nov 2009 02:38
Kontaktdaten:

Re: Römische Zahlen - Spezifikation

Beitrag von martin-t »

Laut Aufgabenstellung sind auch römische Zahlen à la XXXXIIII nicht ausgeschlossen. Wenn IXV ungültig ist, ist dann auch XCL ungültig?
Wenn die Interpretation der Aufgabenstellung und das Hinzudichten von Spezifikationen mehr Zeit in Anspruch nimmt als die eigentliche Aufgabe, dann ist das unschön. Da die Fehler ja erkannt wurden, wäre es möglich, eine vollständige Spezifikation anzugeben, wie sie wohl auch den Verantwortlichen für die Testatsaufgaben vorliegt?
Oder ist es erlaubt, eine wohl begründete gültige Spezifikation (z.B. http://www.diaware.de/html/roemzahl.html) zu verwenden, auch wenn diese von der Aufgabenstellung oder den hier im Forum genannten Anforderungen abweicht?

Daniel Mäurer
Mausschubser
Mausschubser
Beiträge: 57
Registriert: 12. Okt 2009 14:18

Re: Römische Zahlen - Spezifikation

Beitrag von Daniel Mäurer »

Da die Römische Zahlen und die Aufgabenstellung leider doch nicht so eindeutig definiert sind wie ich mir das vorgestellt hatte, werden kleinere(!) begründete(!) Abweichungen das Bestehen des Testats sicher nicht beeinflussen.

chl
Neuling
Neuling
Beiträge: 7
Registriert: 6. Okt 2008 22:40

Re: Römische Zahlen - Spezifikation

Beitrag von chl »

Kleiner Tipp am Rande, wandelt die roemischen Zahlen x in eine normale Zahl (ohne Checks) um und schmeißt die Zahl in die Funktion aus der ersten Aufgabe rein, erhaltet y und wenn x!=y wars wohl ne ungueltige Eingabe. Setzt natuerlich eine korrekte Implementierung der ersten Aufgabe voraus und dass man sowas wie strcmp() selbst implementieren kann.. aber sobald man diese Huerden genommen hat spart man sich ne menge Checks ;)

Benutzeravatar
martin-t
Erstie
Erstie
Beiträge: 21
Registriert: 5. Nov 2009 02:38
Kontaktdaten:

Re: Römische Zahlen - Spezifikation

Beitrag von martin-t »

Falls noch jemand Testfälle braucht, um toDecimal auf korrekte Funktionsweise zu prüfen, hier unsere Testzahlen (laut Spezifikation auf Aufgabenblatt & Forum müssen diese Zahlen als ungültig erkannt werden):
IXX
IC
IM
XXXXXXIIIIII
MCMMCMLXXXIII
MMCMCMXC
MMXMCMXCVII
CMC
IXI
XCX
VX
ID
IXV
XCL

Benutzeravatar
jan_k
Mausschubser
Mausschubser
Beiträge: 66
Registriert: 7. Jul 2009 15:39
Kontaktdaten:

Re: Römische Zahlen - Spezifikation

Beitrag von jan_k »

Warum sollte "XCL" nicht zulässig sein?
Ich hab noch von keiner Spezifikation gelesen, die das verbietet.
Edit: Oben stehts ja -_- Was solls.. keine Lust das auch noch abzufangen.

Benutzeravatar
John
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 167
Registriert: 12. Dez 2008 17:41
Wohnort: E-Pool

Re: Römische Zahlen - Spezifikation

Beitrag von John »

chl hat geschrieben:Kleiner Tipp am Rande, wandelt die roemischen Zahlen x in eine normale Zahl (ohne Checks) um und schmeißt die Zahl in die Funktion aus der ersten Aufgabe rein, erhaltet y und wenn x!=y wars wohl ne ungueltige Eingabe. Setzt natuerlich eine korrekte Implementierung der ersten Aufgabe voraus und dass man sowas wie strcmp() selbst implementieren kann.. aber sobald man diese Huerden genommen hat spart man sich ne menge Checks ;)
Das kommt ganz drauf an, ob die eigene Definition von "römischer Zahl" (anscheinend muss wohl jeder sich das ein bissl selbst zusammenbasteln, da die Übungsaufgabe nicht eindeutig ist) redundante Darstellungen dieser erlaubt. Z.B. könnte 900 sowohl als CM als auch DCD dargestellt werden. Oder 9 als IX oder VIV...
DON'T PANIC

Antworten

Zurück zu „Archiv“