home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / forth / compiler / fpc / source / p4_6dc.seq < prev    next >
Text File  |  1990-04-11  |  770b  |  33 lines

  1. \ Problem 4.6 by Dickson Cheng   04/11/90 15:09:19.85
  2.  
  3.  
  4. \ This version is faster because it doesn't need so much stack rotation,
  5. \ and doesn't have to keep track where the sides are.
  6.  
  7.  
  8. : XNEW          ( n xold -- n xnew )
  9.         2DUP / + 2/ ;
  10.  
  11. : SQRT          ( n -- root )
  12.         DUP 0< IF ABORT" Illegal argument" THEN
  13.         DUP 1 >
  14.         IF DUP 2/
  15.            10 0 DO XNEW LOOP NIP
  16.         THEN ;
  17.  
  18.  
  19. VARIABLE A
  20. VARIABLE B
  21. VARIABLE C
  22.  
  23.  
  24. : TRI_AREA1     ( a b c -- area )
  25.         DEPTH 3 = NOT IF ABORT" Usage: side1 side2 side3 TRI_AREA" EXIT THEN
  26.         2 PICK 2 PICK 2 PICK C ! B ! A !     \ store sides A B C
  27.         + + 2/ DUP >R                        \ store S
  28.         A @ -    R@ B @ -   R@ C @ -  R>
  29.         * * * SQRT ;
  30.  
  31.  
  32.  
  33.