Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Положительное действительной число с дробной частью из десятичной системы счисления перевести в любую другую.(PascalABC)

Brah Ученик (101), на голосовании 6 дней назад
Голосование за лучший ответ
** Эгоист ** Знаток (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
Похожие вопросы