feihung

systemy liczbowe

Jan 19th, 2015
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.40 KB | None | 0 0
  1. program numeralSystems;
  2. uses
  3.     crt,DOS,sysutils;
  4.  
  5. const outputString = '0123456789ABCDEFGHIJKLMNOPRSTQWXYZ';
  6.  
  7. function convertFromDecimal( number : integer; system : byte ) : string;
  8. begin
  9.     result := '';
  10.     if ( number = 0 ) then
  11.     begin
  12.         result := '0';
  13.         exit;
  14.     end;
  15.     while ( number > 0 ) do
  16.     begin
  17.         result := outputString[ ( number mod system ) + 1 ] + result;
  18.         number := number div system;
  19.     end;
  20. end;
  21.  
  22. function convertToDecimal( number : string; system : byte ) : integer;
  23. var
  24.     i, j, singleChar, powerOf : integer;
  25. begin
  26.     result := 0;
  27.     powerOf := 1;
  28.  
  29.     if ( number[1] = '0' ) then
  30.     begin
  31.         result := 0;
  32.         exit;
  33.     end;
  34.  
  35.     for i := length( number ) downto 1 do
  36.     begin
  37.         for j := 1 to system do
  38.         begin
  39.             if ( UpperCase( number[i] ) = outputString[j] ) then
  40.             begin
  41.                 singleChar := j - 1;
  42.                 break;
  43.             end;
  44.         end;
  45.         result := result + ( singleChar * powerOf );
  46.         powerOf := powerOf * system;
  47.     end;
  48.  
  49. end;
  50. var
  51.     sourceSystem, destSystem : byte;
  52.     number, result : string;
  53. begin
  54.     writeln('Podaj system wejsciowy');
  55.     readln( sourceSystem );
  56.  
  57.     writeln('Podaj system wyjsciowy');
  58.     readln( destSystem );
  59.  
  60.     writeln('Podaj liczbe');
  61.     readln( number );
  62.     writeln;
  63.  
  64.     result := convertFromDecimal( convertToDecimal( number, sourceSystem ), destSystem );
  65.     writeln(  'Liczba ' , uppercase(number) , ' (' , sourceSystem , ') to ' , result , ' (' , destSystem , ')'  );
  66.  
  67.     readln;
  68. end.
Advertisement
Add Comment
Please, Sign In to add comment