19.11.2007, 23:16
общий
это ответ
Здравствуйте, ЗВЕРЬ!
Для начала ознакомтесь с теорией <a href=http://www.tstu.edu.ua/irex/Informatyka/1_4.html>Арифметические основы компьютеров</a>, рассмотрите алгоритм перевода дробных чисел из десятичной системы в двоичную.
Непосредственно программная реализация:
<code><b>var</b> dc:real;
v,eps:integer;
b0,b1:<b>string</b>;
<b>begin</b>
<b>write</b>(<font color=blue>‘Input DEC=‘</font>);<b>read</b>(dc); <font color=green>{вводим десятичное дробное число}</font>
<b>write</b>(<font color=blue>‘Input EPS=‘</font>);<b>read</b>(eps); <font color=green>{точность вычислений (до скольки знаков после запятой) - целое число}</font>
b0:=<font color=blue>‘‘</font>; b1:=<font color=blue>‘‘</font>;
v:=trunc(dc); <font color=green>{выделяем целую часть исходного числа}</font>
<b>while</b> v > <font color=purple>0</font> <b>do</b> <font color=green>{цикл преобразования целой части}</font>
<b>begin</b>
<b>case</b> v <b>mod</b> <font color=purple>2</font> <b>of</b>
<font color=purple>0</font>: b0:=<font color=blue>‘0‘</font>+b0;
<font color=purple>1</font>: b0:=<font color=blue>‘1‘</font>+b0;
<b>end</b>;
v:=v <b>div</b> <font color=purple>2</font>;
<b>end</b>;
dc:=frac(dc); <font color=green>{выделяем дробную часть исходного числа}</font>
<b>while</b> (eps > <font color=purple>0</font>) <b>and</b> (dc <> <font color=purple>0</font>) <b>do</b> <font color=green>{цикл преобразования дробной части}</font>
<b>begin</b>
<b>case</b> trunc(<font color=purple>2</font>*dc) <b>of</b>
<font color=purple>0</font>: b1:=b1+<font color=blue>‘0‘</font>;
<font color=purple>1</font>: b1:=b1+<font color=blue>‘1‘</font>;
<b>end</b>;
dc:=frac(<font color=purple>2</font>*dc);
dec(eps);
<b>end</b>;
b0:=b0+<font color=blue>‘.‘</font>+b1;
writeln(<font color=blue>‘BIN=‘</font>,b0); <font color=green>{выводим результат на экран}</font>
<b>end</b>.</code>
Good Luck!!!