Арабские <=> Римские цифры

  1. Const
  2. R: Array[1..13] of String[2] =
  3.  ('I','IV','V','IX','X','XL','L','XC','C','CD','D','CM','M');
  4. A: Array[1..13] of Integer=
  5.  (1,4,5,9,10,40,50,90,100,400,500,900,1000);
  6.  
  7. //..............
  8.  
  9. Function RomanToArabic(S : String) : Integer; //Римские в арабские
  10. var
  11.   i, p : Integer;
  12. begin
  13.   Result := 0;
  14.   i := 13;
  15.   p := 1;
  16.   While p <=Length(S) do
  17.   begin
  18.     While Copy(S, p, Length(R[i])) <>R[i] do
  19.     begin
  20.       Dec(i);
  21.       If i = 0 then Exit;
  22.     end;
  23.     Result := Result + A[i];
  24.     p := p + Length(R[i]);
  25.   end;
  26. end;
  27.  
  28. Function ArabicToRoman(N : Integer) : String; //Арабские в римские
  29. Var
  30.    i : Integer;
  31. begin
  32.  Result := '';
  33.  i := 13;
  34.  While N >0 do
  35.  begin
  36.    While A[i] >N do Dec(i);
  37.    Result := Result + R[i];
  38.    Dec(N, A[i]);
  39.  end;
  40. end;
Быть может, кому пригодится...

  • +4
  • views 1055
  • XakepPRO XakepPRO
  • comments 4

Реклама

Мы в соцсетях

tw tg yt gt