И еще чуть более "продвинутый" вариант. Здесь программа зациклена и прерывается, если введен 0:
Код:
VAR
Dec_Num, Ex_code:LongInt;
n, i:INTEGER;
BEGIN
REPEAT
Write('Enter the decimal number, "0" to exit: ');
ReadLn(Dec_Num);
Ex_code:=Dec_Num;
If Ex_code>0 then
begin
n:=TRUNC(Ln(1.0*Dec_Num)/Ln(2.0));
Write('Binary number: ');
For i:=n downto 0 do
begin
Write((Dec_Num div ROUND(Exp(i*Ln(2.0)))));
Dec_Num:=Dec_Num mod ROUND(Exp(i*Ln(2.0)));
end;
WriteLn;
WriteLn;
end;
UNTIL Ex_code=0;
END.