Rss
Виртуальный кабинет МАТЕМАТИКУС
Популярное
Календарь
«    Декабрь 2025    »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
293031 
Журнал "Математика"
Математика
Счетчик посещений
счетчик посещений
Flag Counter

Опросы
Оцените работу сайта

Интернет с пользой
Интернет с пользой
Знаток » Информатика » Алгоритмы: 2 уровень(ОЛИМП) » Перевод чисел в двоичную систему на Pascal
  • Опуликовал: admin
  • |
  • Коментариев: 0
  • |
  • Просмотров: 602
  • Сообщить о ошибке
Разбор задачи:
Вы можете более подробно прочитать про позиционные системы счисления, а также про алгоритм перевода чисел из десятичной системы в двоичную.

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

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

Таким образом, число 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 для сохранения остатков от деления в массив.

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

Облако Тегов

{links}