Sat, 26 Jun 1999 02:52:11 +0200
|
W. Wesley Groleau x4923 wrote:
> > How do you swap two values of two seperate variables without declaring a
> > temp variable?
>
> 1. Write a Stack package.
>
> 2. Push first variable on the stack.
>
> 3. Assign second variable to first variable.
>
> 4. Pop first variable off the stack.
Nah, that's cheating. If the variables are modular or unsigned, use the
the very old fashioned:
with Ada.Text_IO;
procedure Show_It is
type DWORD is mod 2 ** 32;
procedure Swap (A, B : in out DWORD) is
begin
A := A xor B;
B := B xor A;
A := A xor B;
end Swap;
A : DWORD := 5;
B : DWORD := 10;
begin
Ada.Text_IO.Put_Line ( "A =" & DWORD'Image (A) &
", B =" & DWORD'Image (B));
Swap (A, B);
Ada.Text_IO.Put_Line ( "A =" & DWORD'Image (A) &
", B =" & DWORD'Image (B));
end Show_It;
:-) :-)
--
-- Jerry van Dijk | Leiden, Holland
-- Team Ada | [log in to unmask]
-- see http://stad.dsl.nl/~jvandyk
|
|
|