Entwickler-Ecke

Sonstiges (Delphi) - römische Zahlen in Dezimalzahlen umwandeln


KV-Liha - Do 11.10.07 17:16
Titel: römische Zahlen in Dezimalzahlen umwandeln
Hallo,

hab mal wieder ein großes Problem bei meiner Hausaufgabe und zwar sollen wir römische Zahlen in Dezimalzahlen umwandeln. Im Anhang befindet sich die genaue Aufgabe. Die zweite sollen wir auch machen, hier weiß ich jedoch gar keinen Lösungsweg...
Mein Versuch:
Ich bin für jeden Verbesserungsvorschlag und kleinsten Hinweis DANKBAR!
PS: die ganzen Zahlen sollten eigendlich für eine Fehlermeldung bei falscher Eingabe dienen, weiß jedoch auch nicht wie das geht.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
procedure TForm1.Button1Click(Sender: TObject);
var
q,w,e,r,t,z,u,o,p,ü,a,s,d,f,g,h,j,k,l,ö,ä,y,x,c,v,b,n,m,dzahl: extended;
ZKette,ausgabe: string; i:integer;
begin

ZKette:=(Form1.Edit1.Text);
for
i:=1 to length(ZKette) do
 case (ZKette[i]) of
 'm':dzahl:=dzahl+1000;
 'd':dzahl:=dzahl+500;
 'c':dzahl:=dzahl+100;
 'l':dzahl:=dzahl+50;
 'x':dzahl:=dzahl+10;
 'v':dzahl:=dzahl+5;
 'i':dzahl:=dzahl+1;   end;

Str(dzahl:10:2,ausgabe);
Form1.Edit2.Text:=ausgabe;


 end;

end.


Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Moderiert von user profile iconNarses: 2. identischen Anhang gelöscht


Narses - Do 11.10.07 17:28
Titel: Re: römische Zahlen in Dezimalzahlen umwandeln
Moin und :welcome: im Forum!

user profile iconKV-Liha hat folgendes geschrieben:
römische Zahlen in Dezimalzahlen umwandeln.
Schau mal hier [http://www.delphi-library.de/topic_roemische+Zahlen+umwandeln_116.html], dazu haben wir was in der FAQ. ;)

user profile iconKV-Liha hat folgendes geschrieben:
Die zweite sollen wir auch machen, hier weiß ich jedoch gar keinen Lösungsweg...
Bitte nur ein Thema pro Thread!

cu
Narses


Leuchtturm - Do 11.10.07 17:54
Titel: Re: römische Zahlen in Dezimalzahlen umwandeln
user profile iconNarses hat folgendes geschrieben:

user profile iconKV-Liha hat folgendes geschrieben:
römische Zahlen in Dezimalzahlen umwandeln.
Schau mal hier [http://www.delphi-library.de/topic_roemische+Zahlen+umwandeln_116.html], dazu haben wir was in der FAQ. ;)


user profile iconKV-Liha hat folgendes geschrieben:

hab mal wieder ein großes Problem bei meiner Hausaufgabe


Ich glaube kaum das er/sie eine fertige Funktion verwenden darf :wink:
Inspirationen könnte man sich aber abholen :mrgreen:


Delete - Fr 12.10.07 20:39

wenn ich mich recht erinnere, gibt's hierfür eine fertige funktion in delphi ... mal die OH verwenden, sollte weiterhelfen.


Jann1k - Sa 13.10.07 16:26

Also zum einfachen-hausaufgaben-römisch-dezimal-umrechnen würde ich folgendes Verfahren vorschlagen:

Du gehst die römische Zahl von vorn nach hinten(links nach rechts) durch. Bei jeder Zahl überprüfst du ob im restlichen String (also rechts von der Zahl) eine größere römische Ziffer existiert. Wenn ja, wird der wert der aktuellen röm. Ziffer von dzahl abgezogen, wenn nicht wird der Wert addiert. So hast du am Ende eine relativ einfache (und leicht verständliche) Umrechnung, die man auch nachvollziehbar erklären kann, solange man selber weiß wie röm. Zahlen aufgebaut sind.

MfG
Basti

P.S: Es findet sich im Anhang keine Aufgabe, nur dein Quelltext :nixweiss: