home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol064 / power.pas < prev    next >
Pascal/Delphi Source File  |  1984-04-29  |  749b  |  56 lines

  1. PROGRAM POWERX; {$P,C-,M-,F-}
  2. {$I+}
  3. TYPE
  4. BYTE = 0..255;
  5. VAR
  6. RAISE:BYTE;
  7. NUMBER:REAL;
  8.  
  9. {function to raise a number "x" to a power "y"...x must be real and y must be
  10. an integer...greater than zero.  This corresponds to the BASIC arithematic
  11. command ** as in A = x**2 .}
  12.  
  13.  
  14. FUNCTION POWER (X:REAL; Y:BYTE):REAL;
  15. LABEL 1;
  16. VAR
  17. I:INTEGER;
  18. CALC:REAL;
  19.  
  20. BEGIN
  21.     CALC:=1.0;
  22.  
  23.     IF Y < 0 THEN GOTO 1;
  24.     
  25.     CASE Y OF
  26.     1: BEGIN
  27.         CALC:=X;
  28.         GOTO 1;
  29.        END;
  30.     
  31.     0: GOTO 1;
  32.  
  33.         end; {of case}
  34.  
  35. IF X = 1.0 THEN
  36.         BEGIN
  37.         CALC:=X*Y;
  38.         GOTO 1;
  39.         END;
  40.  
  41. IF X = 0.0 THEN
  42.         BEGIN
  43.         CALC:=0.0;
  44.         GOTO 1;
  45.         END;
  46.  
  47.  
  48.  
  49. IF (Y > 1) AND ( X <> 1.0) THEN 
  50.         for  I:= 1 TO Y DO  CALC:=CALC*X;  
  51. 1:
  52. POWER:=CALC;
  53. END;
  54.  
  55. BEGIN
  56. END.