Var
a,b:integer;
begin
a:=50; b:=-20; { начальное присванивание }
Writeln('Исходные значения: a=',a,', b=',b);
a:=a+b; b:=a-b; a:=a-b;
Writeln('Обмен после "арифметического" способа: a=',a,', b=',b);
a:=50; b:=-20; { начальное присванивание }
a:=a xor b; b:=a xor b; a:=a xor b;
Writeln('Обмен после "логического" способа: a=',a,', b=',b)
end.
Результат выполнения программы:
Исходные значения: a=50, b=-20
Обмен после "арифметического" способа: a=-20, b=50
Обмен после "логического" способа: a=-20, b=50