procedure change(var a,b:integer)
Begin
asm
mov eax, a
push eax
mov eax, b
push eax
pop eax
mov a, eax
pop eax
mov b, eax
end;
end;
Поменять местами значения(Delphi)
Условие
Даны два числа - a и b. Например, a=2; b=3. Им присваиваются некоторые значения. Необходимо поменять местами эти числа (то есть a=3, b=2). НО не используя операцию присваивания.
Нам дали подсказку, что можно обойтись только операциями сложения и вычитания.
Язык: Delphi 7.[/SIZE]
b:= 3
a:= a+b // a = 5
b:= a-b // b = 2
a:= a-b // a = 3
a := a xor b
b := b xor a
a := a xor b
А можно сделать вставку на asm ; )
Цитата: netw00rk
a:= 2
b:= 3
a:= a+b // a = 5
b:= a-b // b = 2
a:= a-b // a = 3
b:= 3
a:= a+b // a = 5
b:= a-b // b = 2
a:= a-b // a = 3
Спасибо огромное.
- не знаю как в Дельфи, но в Си
У меня Делфи.