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 для сохранения остатков от деления в массив.
В конце программы выводим массив в обратном порядке (это принципиально).