Перевести числа из 10 системы счисления в троичную систему счисления — Pascal(Паскаль)

uses crt;
const zn:string[3]='012';
function DecToTryTrunc(n:longint):string;{перевод целой части}
var s:string;
begin
s:='';
repeat
  s:=zn[n mod 3+1]+s;
  n:=n div 3;
until n=0;
DecToTryTrunc:=s;
end;
function DecToTryFrac(x:real;t:byte):string;{перевод дробной части}
var s:string;
    a:integer;
begin
x:=frac(x);{на всякий случай}
s:='.';//здесь было s:='0.';
repeat
  x:=x*3;
  a:=trunc(x);
  s:=s+zn[a+1];
  x:=x-a;
until length(s)-2=t;
DecToTryFrac:=s;
end;
var n,f:real;{число и его дробная часть}
    c:longint;{целая часть}
    t:byte;{точность, сколько знаков после запятой}
begin
clrscr;
write('Число в системе 10=');
readln(n);
write('Количество знаков в дробной части t=');
readln(t);
c:=trunc(n);
f:=frac(n);
write('      в системе  3 =',DecToTryTrunc(c),DecToTryFrac(f,t));
readln
end.

Leave a Comment

− 4 = 1