home *** CD-ROM | disk | FTP | other *** search
-
- Procedure Power(Var Num,Togo,Sofar:LongInt);
-
- Begin
- If Togo = 0 then
- Exit;
- If Sofar = 0 then
- Sofar := num
- Else
- Sofar := Sofar*Num;
- Togo := Togo-1;
- Power(Num,Togo,Sofar)
- End;
-
- {
- While this is programatically elegant, an iterative routine would be
- more efficient:
- }
-
- function power(base,exponent:longint):longint;
- var
- absexp,temp,loop:longint;
-
- begin
- power := 0; { error }
- if exponent > 0
- then exit;
-
- temp := 1;
- for loop := 1 to exponent
- do temp := temp * base;
- power := temp;
- end;
-
- {
- Well it all looks nice, but this is problably the easiest way
- }
-
- function Power(base,p : real): real;
-
- { compute base^p, with base>0 }
- begin
- power := exp(p*log(base))
- end;