Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > Очередная трудноразрешимая задача..


Автор: IwantToBeProgrammer 1.10.2007, 16:53
Задача заключается в следующем: перевести дробные числа из троичной с/с в двоичную. вероятно нужно сначала перевести дробные троичной в десятичную - впринципе не сложно алгоритм этой части приблизительно знаком, но из десятичной в двоичную при этом дробные  - никак((

Автор: volvo877 1.10.2007, 17:17
Цитата(IwantToBeProgrammer @  1.10.2007,  15:53 Найти цитируемый пост)
но из десятичной в двоичную при этом дробные  - никак(( 

В чем проблема? Алгоритм не понятен? Вот тут прочти: http://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B_%D1%81%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F#.D0.9F.D0.B5.D1.80.D0.B5.D0.B2.D0.BE.D0.B4_.D0.B8.D0.B7_.D0.B4.D0.B5.D1.81.D1.8F.D1.82.D0.B8.D1.87.D0.BD.D0.BE.D0.B9_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D1.8B_.D0.B2_.D0.BF.D1.80.D0.BE.D0.B8.D0.B7.D0.B2.D0.BE.D0.BB.D1.8C.D0.BD.D1.83.D1.8E

Автор: IwantToBeProgrammer 1.10.2007, 17:27
не понятно как записать это в цикл на паскале, как именно..

Автор: volvo877 1.10.2007, 17:58
Вот так, например:

Код

const
  radix = 2;

var
  n: real;
  s: string;

begin
  n := 0.626;
  s := '0.';

  repeat
    n := n * radix;
    s := s + chr(ord('0') + trunc(n));
    n := frac(n);
  until (n = 0) or (length(s) > 15); { <--- 15 - это точность}
  writeln(s);
end.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)