home *** CD-ROM | disk | FTP | other *** search
/ Share Gallery 1 / share_gal_1.zip / share_gal_1 / GR / GR038.ZIP / MENU-SYS.ARC / TRIG.ORG < prev    next >
Lisp/Scheme  |  1987-08-01  |  2KB  |  73 lines

  1. ;; (c)1987                R&J Computer Service
  2. ;                            RR #3  Box 183
  3. ;                          Albion, IN  46701
  4. ;  Phone:                Voice  (219) 636-2460
  5. ;                         Data  (219) 636-3153
  6. ;                   24hrs 2400, 1200, 300 Baud 8-N-1
  7. ;   Trig.LSP figures Triangles given any 2 variables (except 2 angles)
  8. ;                        Written by John Kitt
  9. ; We are NOT responsable for the performance or accuracy of this LISP routine
  10. ;  You are encouraged to copy and distribute this LISP routine
  11. ;  provided this header section IS NOT REMOVED.  For continued
  12. ;  support and new LISP routines you are asked to mail a Registration
  13. ;  fee of $15.00 to the above address.  Thank You!!!
  14. (defun c:trig ()
  15. (command "vslide" "trig")
  16. (setq A 90.0
  17.       B(getreal "Enter Angle B: ")
  18.       C(getreal "Enter Angle C: ")
  19.       sa(getreal "Enter Side a: ")
  20.       sb(getreal "Enter Side b: ")
  21.       sc(getreal "Enter Side c: "))
  22. (if (/= B nil) (setq C (- A B)))
  23. (if (/= C nil) (setq B (- A C)))
  24. (if (/= C nil) (progn
  25. (if (/= sc nil) (progn
  26. (if (= sa nil) (progn
  27. (setq sa (/ sc (sin (/ (* C pi) 180))))
  28. ))))))
  29. (if (/= B nil) (progn
  30. (if (/= sb nil) (progn
  31. (if (= sa nil) (progn
  32. (setq sa (/ sb (sin (/ (* B pi) 180))))
  33. ))))))
  34. (if (/= C nil) (progn
  35. (if (/= sa nil) (progn
  36. (if (= sc nil) (progn
  37. (setq sc (* sa (sin (/ (* C pi) 180))))
  38. ))))))
  39. (if (/= sc nil) (progn
  40. (if (/= sb nil) (progn
  41. (if (= sa nil) (progn
  42. (setq sa (sqrt (+ (* sc sc) (* sb sb))))
  43. ))))))
  44. (if (/= sc nil) (progn
  45. (if (/= sa nil) (progn
  46. (if (= sb nil) (progn
  47. (setq sb (sqrt (- (* sa sa) (* sc sc))))
  48. ))))))
  49. (if (/= sb nil) (progn
  50. (if (/= sa nil) (progn
  51. (if (= sc nil) (progn
  52. (setq sc (sqrt (- (* sa sa) (* sb sb))))
  53. ))))))
  54. (if (= C nil) (progn
  55. (setq C (/ (atan (/ sc sb)) (/ pi 180)))
  56. (setq B (- A C))
  57. ))
  58. (setq AA (angtos (* pi (/ A 180.0)) 1 4))
  59. (setq BA (angtos (* pi (/ B 180.0)) 1 4))
  60. (setq CA (angtos (* pi (/ C 180.0)) 1 4))
  61. (setq saa (rtos sa 2 4))
  62. (setq sba (rtos sb 2 4))
  63. (setq sca (rtos sc 2 4))
  64. (terpri)
  65. (prompt "Angle A = ") (prin1 AA)
  66. (prompt "      Angle B = ") (prin1 BA)
  67. (prompt "     Angle C = ") (prin1 CA)
  68. (terpri)
  69. (prompt " Side a = ") (prin1 saa)
  70. (prompt "        Side b = ") (prin1 sba)
  71. (prompt "        Side c = ") sca
  72. )
  73.