Консультация № 110177
19.11.2007, 16:18
0.00 руб.
0 1 1
Здравствуй эксп. помогите пожалуйста написать две программы на языке ПАСКАЛЬ! Первая о переведении числе с 2-ой у 8-ой систему исчисления, а вторая о переведении д_р_о_б_н_ы_х чисел с 10-ой в 2-ую!!! так как я студент 1 курса, прошу вас писать (если можно) не сильно заумно, с помощью простых операций DIV MOD и с объяснениями!!! ПОМОГИТЕ ПОЖАЛУЙСТА, НА ВАС ВСЯ НАДЕЖДА!!!

Обсуждение

Неизвестный
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!!!
Форма ответа