Home » Tipps & Tricks » Mathematik » Zahlen und Zahlensysteme » Integerzahlen in römische Zahlen umwandeln
Integerzahlen in römische Zahlen umwandeln
Römische Zahlen verwenden kein Stellenwertsystem, wie wir es z.B. im Dezimalsystem tun. Folgende Funktion wandelt Integer-Zahlen in ihr römisches Äquivalent um:
function DecToRoman(ADecimal: LongInt): string; const Romans: array[1..13] of string = ( 'I', 'IV', 'V', 'IX', 'X', 'XL','L', 'XC', 'C', 'CD', 'D', 'CM', 'M' ); Arabics: array[1..13] of Integer = ( 1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000 ); var i: Integer; begin for i := 13 downto 1 do while (ADecimal >= Arabics[i]) do begin ADecimal := ADecimal - Arabics[i]; Result := Result + Romans[i]; end; end;
So kann die Funktion beispielsweise aufgerufen werden:
procedure TForm1.Button1Click(Sender: TObject); begin Edit2.Text := DecToRoman(StrToInt(Edit1.Text)); end;