Консультация № 109759
16.11.2007, 22:19
0.00 руб.
0 2 2
Уважаемые эксп. помогите с написанием программы на Паскаль для переведения дробный чисел с DEC в BIN (если можна через ф. DIV и MOD и описанием). Пожалуйста!!!

Обсуждение

Неизвестный
16.11.2007, 22:50
общий
это ответ
Здравствуйте, БАБУИН!

Вот код программы с комментариями:
<code><b>program</b> dec2bin;
<b>var</b> dec:integer;
    bin,b0:<b>string</b>;
<b>begin</b>
  <b>write</b>(<font color=blue>‘DEC=‘</font>);<b>read</b>(dec); <font color=green>{вводим исходное десятичное число}</font>
  bin:=<font color=blue>‘‘</font>; <font color=green>{переменная в которой будем "собирать" двоичное число}</font>
  <b>while</b> dec > <font color=purple>0</font> <b>do</b>
  <b>begin</b>
    str(dec <b>mod</b> <font color=purple>2,</font> b0); <font color=green>{находим остаток от деления числа DEC на 2, и преобразовываем остаток в строку}</font>
    dec:=dec <b>div</b> <font color=purple>2</font>; <font color=green>{уменьшаем разряд числа DEC}</font>
    bin:=b0+bin; <font color=green>{собираем число из остатков от деления}</font>
  <b>end</b>;
  writeln(<font color=blue>‘BIN=‘</font>,bin); <font color=green>{выводим результат}</font>
  readln;
<b>end</b>.</code>

Чтобы понять работу данного алгоритма (который является классикой) достаточно его просчитать вручную, либо найти описание в интернете .

Good Luck!!!
Неизвестный
17.11.2007, 10:34
общий
это ответ
Здравствуйте, БАБУИН!
Для перевода числа в двоичную систему счисления из десятичной осуществляется последовательное деление числа на 2 и записываются остатки в обратном порядке
function DecToBin(InDec: integer): string;
var
TempString: string;
begin
while InDec > 0 do
begin
TempString := StrToInt(InDec mod 2) + TempString; //записываем очередной остаток от деления на 2
InDec := InDec div 2; // уменьшаем само число
end;
DecToBin;
end;
Форма ответа