var sr,sf,ss:string;
function BinAdd(s1,s2:string):string;
var s:string; l,i,d,carry:byte;
begin
{выравнивание строк по длине}
if length(s1)>length(s2) then while length(s2)<length(s1) do s2:='0'+s2
else while length(s1)<length(s2) do s1:='0'+s1;
l:=length(s1);
s:=''; carry:=0;
for i:=l downto 1 do begin
d := (ord(s1[i])-ord('0')) + (ord(s2[i])-ord('0')) + carry;
carry := d div 2;
d:=d mod 2;
s:=char(d+ord('0')) + s;
end;
if carry<>0 then s:='1'+s;
BinAdd:=s;
end;
begin
writeln('введите 1-е двоичное число:');
readln(sf);
writeln('введите 2-е двоичное число:');
readln(ss);
sr:=BinAdd(sf,ss);
writeln('результат сложения = ',sr);
end.