Einzelnen Beitrag anzeigen

Daniel B
(Gast)

n/a Beiträge
 
#5

Re: Dezimalzahlen in Römische Zahlen umwandeln und umgekehrt

  Alt 12. Jul 2003, 23:06
Hallo,

noch eine Lösung von mir.
Delphi-Quellcode:
function RomanToDec4(Roman: String): LongInt;
const
  Arabics: Array[1..16] of Integer = (1000000, 100000, 10000, 1000, 900, 500, 400, 100, 90, 50, 40,
                                     10, 9, 5, 4, 1);
  Romans: Array[1..16] of String = ('{M}', '[M]', '(M)', 'M', 'CM', 'D', 'CD', 'C', 'XC', 'L',
                                   'XL', 'X', 'IX', 'V', 'IV', 'I');
var
  iFor, iLen: Integer;
  sTemp: String;
begin
  Result := 0;
  for iFor := 1 to 16 do
  begin
    iLen := Length(Romans[iFor]);
    sTemp := Copy(Roman, 1, iLen);
    while ((Length(Roman) > 0) and (sTemp = Romans[iFor])) do
    begin
      Roman := Copy(Roman, 1 +iLen, Length(Roman) -1);
      Result := Result +Arabics[iFor];
      sTemp := Copy(Roman, 1, iLen);
    end;
  end;
end;
Grüsse, Daniel
  Mit Zitat antworten Zitat