uses crt;
var a : real;
z,k,q : integer;
s,m : string;
c : char;
begin
repeat
write ('Введите дробное число по основанию 10 : ');
readln(a);
write ('Введите новое основание : ');
readln(q);
write ('Введите количество знаков после запятой : ');
readln(z);
k:=0;
s:='0,';
m:='';
a:=a-trunc(a);
while (a>0)and(k<z) do
begin
k:=k+1;
a:=a*q;
str(trunc(a),m);
if q=16 then
begin
if m='10' then m:='A';
if m='11' then m:='B';
if m='12' then m:='C';
if m='13' then m:='D';
if m='14' then m:='E';
if m='15' then m:='F';
end;
s:=s+m;
a:=a-trunc(a);
end;
writeln ('Число по основанию ',q,' : ',s);
writeln('Будем считать еще? (Д/Н)');
writeln;
c:=readkey;
until (c='y')or(c='Y');
end.