** Эгоист **
Знаток
(483)
1 месяц назад
program DecimalToAnyBase;
uses SysUtils;
function DecimalToBase(num: Real; base: Integer): String;
var
intPart: Integer;
fracPart: Real;
result: String;
temp: String;
begin
result := '';
// Отделяем целую и дробную часть
intPart := Trunc(num);
fracPart := num - intPart;
// Перевод целой части
while intPart > 0 do
begin
temp := IntToStr(intPart mod base);
result := temp + result;
intPart := intPart div base;
end;
// Если целая часть 0, добавляем "0"
if result = '' then
result := '0';
// Добавляем точку для дробной части
result := result + '.';
// Перевод дробной части
while fracPart > 0 do
begin
fracPart := fracPart * base;
intPart := Trunc(fracPart);
result := result + IntToStr(intPart);
fracPart := fracPart - intPart;
// Ограничиваем количество цифр после запятой (например, 5)
if Length(result) > 20 then
break;
end;
DecimalToBase := result;
end;
var
number: Real;
base: Integer;
begin
Write('Введите положительное действительное число: ');
ReadLn(numbe