Перевод чисел в двоичную систему на Pascal

Программирование Программирование на Pascal Перевод чисел в двоичную систему на Pascal

В этой теме 0 ответов, 1 участник, последнее обновление  Васильев Владимир Сергеевич 8 мес. назад.

Просмотр 1 сообщения - с 1 по 1 (всего 1)
  • Автор
    Сообщения
  • #4300

    Условие задачи:

    С клавиатуры вводится натуральное число N (в десятичной системе счисления), требуется вывести это число в двоичной системе счисления.

    Разбор задачи:
    Вы можете более подробно прочитать про позиционные системы счисления, а также про алгоритм перевода чисел из десятичной системы в двоичную.

    Мы знаем, что для перевода числа в другую систему счисления его нужно делить на основание системы (основание двоичной системы счисления — 2 , десятичной — 10 и т.д). Делить число нужно до тех пор пока неполное частное больше или равно основанию. Когда неполное частное становится меньше основания, начинаем выписывать остатки от деления с конца (начинать с последнего неполного частного).

    Пример:

    Таким образом, число 17 в двоичной системе счисления будет выглядеть так : 10001.

    Теперь, когда мы вспомнили как переводить числа в другую систему счисления, можем перейти к реализации алгоритма в виде кода программы:

    program dec2bin;
    uses crt;
    var
    a: array[1..100] of byte;
    n,i,c:integer;
    begin
      readln(n);
      c:= 0;
       
      repeat
        c:= c + 1;
        a[c]:= n mod 2;
        n:= n div 2; 
      until n = 0;
       
      for i:= c downto 1 do
        write(a[i]);
      
      writeln();
    end.

    В начале программы объявляем массив, в котором мы будем хранить остатки от деления. Размерность данного массива зависит от того , какие числа мы будем переводить. Например для перевода небольших чисел хватит 100 ячеек. Если вы рассчитываете на более большие числа, то можете увеличить размерность массива.

    Так как значения элементов массива будут колебаться в промежутке от 0 до 1 , то использовать мы будем тип данных byte.

    Нам понадобятся ещё три переменные n, i, c. Как обычно переменная i играет роль счетчика цикла. Переменная n хранит в себе число , которое будем переводить в двоичную систему счисления. Переменная c нужна для добавления остатков от деления в массив.

    Далее в программе мы используем цикл repeat для сохранения остатков от деления в массив.

    В конце программы выводим массив в обратном порядке (это принципиально).

    Вложения:
    Вы должны войти для просмотра вложений.
Просмотр 1 сообщения - с 1 по 1 (всего 1)

Для ответа в этой теме необходимо авторизоваться.