Нужно со строковыми данными...
Кой-чего я уже написал:
Код
program BinMinus;
type massiv=array[1..20] of string;
var a,b,k,x,i,BOL,BTL:integer;BO,BT:string;BOm,BTm,BThm:massiv;
begin
writeln('---------------------------------------------------');
write('Введите первое число в двоичной системе счисления: ');
readln(BO);
write('Введите второе число в двоичной системе счисления: ');
readln(BT);
for i:=1 to 20 do
BOm[i]:=BO[i];
for i:=1 to 20 do
BTm[i]:=BT[i];
for i:=20 downto 1 do
begin
if (BOm[i]='0') and ((BTm[i]='0') or (BTm[i]=' ')) then BThm[i]:='0';
if (BOm[i]='1') and ((BTm[i]='0') or (BTm[i]=' ')) then BThm[i]:='1';
if (BOm[i]='1') and (BTm[i]='1') then BThm[i]:='0';
if (BOm[i]='1') and (BTm[i]='') then BThm[i]:='1';
if (BOm[i]='0') and (BTm[i]='1') then
begin
BThm[i]:='1';k:=i-1;
repeat
if BOm[k]='1' then
begin
BOm[k]:='0';x:=0;
end
else begin BOm[k]:='1';k:=k-1 end;
until x=0;
end;
end;
write('Результат равен: ');
for i:=1 to 20 do
write(BThm[i]);
end.
Но получилось запутанно и работает "не совсем" :-/
Можно ли проще?