Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Technische Informatik (http://www.informatikerboard.de/board/board.php?boardid=7)
--- Assembler: Römische Zahlen in dezimal Wert konvertieren (http://www.informatikerboard.de/board/thread.php?threadid=74)


Geschrieben von asm_user am 18.11.2006 um 22:49:

  Assembler: Römische Zahlen in dezimal Wert konvertieren

hi,

ich wollt ein programm schreiben, welches eine römische Zahl zB "MCMXCIX" -> "1999" in den richtigen dezimal wert konvertiert.

ich habe bereits die ascii werte für die römischen ziffern herausgesucht.
zB:
I -> 73
V -> 86
usw.

Nun, wie kann ich das problem lösen, dass wenn der User zB "V" eintippt, ich den wert "5" erhalte und ausgeben kann?

danke im voraus.



Geschrieben von Crotaphytus am 19.11.2006 um 17:15:

 

Warum willst du das ausgerechnet in Assembler machen? Das Problem ist schließlich nicht gerade trivial, da die Bedeutung eines Zeichens unter Umständen von den Nachfolgenden abhängt... Gibt es einen guten Grund dafür, nicht einfach ne höhere Programmiersprache zu nehmen?



Geschrieben von asm_user am 19.11.2006 um 23:37:

 

naja es ist die vorgabe die vorschreibt, dass ich asm verwenden soll.

du hast recht, dass es ziemlich komplex is zu lösen ... aber es ist interessant großes Grinsen

ich möchte nur herausfinden wie ich zB den ASCII Wert von "V" in den richtigen dezimal wert herausfiltern kann,



Geschrieben von ed209 am 20.11.2006 um 08:02:

 

Schreib dir den Algorithmus erstmal als Pseudocode auf, wie du ihn in einer Hochsprache lösen würdet. Dann kannst du Dir einfach überlegen wie du aus den Schleifen und Bedingungen Sprungbefehle usw. machen kannst.

Das ist das einfachste und übersichtlichste smile

Gruss,
ED209



Geschrieben von kurellajunior am 20.11.2006 um 10:23:

 

Und als Weg dahin:

Als erstes eine Zuordnung jedes Zeichens zu seinem Zahlenwert.
Dann die Zuordnung eines jeden Zeichens zu seinem Zahlenwert in Abhängigkeit seines Nachfolgers.

Und dann Addition aller auftretenden Zeichen. Das Mapping Zeichen -> Zahlenwert kannst Du im Zweifel hard eintragen Augenzwinkern


Forensoftware: Burning Board, entwickelt von WoltLab GmbH