Перевод целых чисел в двоичный код:
function f(x:integer):string := x>0 ? f(x div 2) + x mod 2 : ''; function ToBinaryCode(Self:integer; n:byte:=8):string; extensionmethod; begin Result := if Self = 0 then '0' else f((Self or Trunc(2**n)) and Trunc(2**n-1)).PadLeft(n, Self>0 ? '0':'1')end; begin ReadInteger.ToBinaryCode.Print; end.Перевод целых чисел в двоичную систему счисления:
function f(x:integer):string := x>0 ? f(x div 2) + x mod 2 : '';function Bin(x:integer):string := x=0 ? '0' : x>0 ? f(x) : '-' + f(Abs(x));begin Print('x₂:', Bin(ReadInteger('x₁₀:')))end.Пример работы:
1.
var
a: integer;
begin
readln(a);
if ((a mod 10) mod 2 = 0) and ((a mod 100) mod 2 = 0) then writeln('да')
else writeln('нет');
end.
2.
var
a, max: integer;
begin
readln(a);
max : = -1;
while a < > 0 do
begin
if ((a mod 10) mod 2 = 0) and ((a mod 10) mod 2 > max) then max : = (a mod 10) mod 2;
a : = a div 10;
end;
if max < > -1 then writeln(max)
else writeln('');
end.
3.
var
mas: array[0..19] of integer;
sum, i: integer;
begin
randomize;
sum : = 0;
for i : = 0 to 19 do
begin
mas[i] : = -45 + random(1 + 45 + 55);
if (mas[i] mod 2 = 0) and (mas[i] > 0) then sum += mas[i];
end;
writeln(sum);
end.
program des_v_dvoich;
uses crt;
var
x,i: integer;
s:String;
begin
write('Введите десятичное число>>');
read(x);
write('Двоичное число>>');
if x<0 then begin
write('-');
x:=abs(x);
end;
if x=0 then
write ('0')
else
begin
while x<>0 do begin
if x mod 2 =1 then
s:=s+'1'
else
s:=s+'0';
x:=x div 2
end;
for i:=length(s) downto 1 do
write(s[i])
end;
end.
Объяснение:
Скрины выполнения прикреплены