Integerzahlen in römische Zahlen umwandeln |
|
| System | Win9x, WinNT, Win2000, WinXP, Vista, Win7 |
|---|---|
| Ab Delphi-Version | Delphi 1 |
| Letzte Änderung | 28.09.2010 |
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;