Помощь - Поиск - Пользователи - Календарь
Полная версия: перевод дробного числа из 10-ой системы счисления
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
lizard
Видел примерно такую же в Delphi но в паскале не видел плз хэлп!
Задача вот:

Написать программу по переводу дробного числа из 10-ой системы счисления в N систему счисления (N<10)

мне б это к 25.10.2006 надо бы




ещё раз ПЛЗЗ ХЭЛП
klem4
Цитата
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...

Цитата
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!


SuperMozg
const
   precision = 20;  {точность (кол-во знаков)}
type
   Massiv = array[1..precision] of integer;
   Osnov  = 2..9;
var
   num: double;        {число в десятичной системе}
   osn: Osnov;          {основание}

   TruncMas,
   FracMas: Massiv;  {массивы для целой и дробной частей}

   count: integer;     {кол-во цифр в целой части}
   i: integer;

   {переводит целую часть и возвращает ответ в виде массива}
   procedure TruncConvert(n10:longint; osn: Osnov;
                              var TruncMas: Massiv; var count: integer);
   begin
     count:= 0;
     repeat
       Inc(count);
       TruncMas[count]:= n10 mod osn;
       n10:= n10 div osn;
     until n10 = 0;
   end;

   {переводит дробную часть}
   procedure FracConvert(n10: double; osn: Osnov;
                                     var FracMas: Massiv);
   var
     i: integer;
   begin
     for i:= 1 to precision do
     begin
       FracMas[i]:= Trunc(n10*osn);
       n10:= Frac(n10*osn)
     end;
   end;


begin
   WriteLn('Vvedite chislo i osnovanie:');
   ReadLn(num, osn);
   TruncConvert(Trunc(num), osn, TruncMas, count);
   FracConvert(Frac(num), osn, FracMas);
   WriteLn('Chislo v sisteme s osnovaniem ', osn, ':');
   for i:= count downto 1 do
     Write(TruncMas[i]);
   Write ('.');
   for i:= 1 to precision do
     Write(FracMas[i]);
   ReadLn;
end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.