home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / cpm / basic / math.ark / CRAMERS3.BAS < prev    next >
Encoding:
BASIC Source File  |  1986-12-21  |  1.9 KB  |  85 lines

  1. REM this is Program CRAMERS3.BAS, A program to calculate the
  2. REM solutions to 3 simultaneous linear equations in 3 unknowns 
  3. REM using Cramer's Rule of substitution to form 3X3 Determinates
  4. REM
  5. REM THIS PROGRAM WAS WRITEN BY MICHAEL P. FINERTY 10/18/84
  6. REM ************************************************************
  7. 10  REM 
  8. REM A(N)*X1 + B(N)*X2 + C(N)*X3 = D IS AN EQUATION IN 3 UNKNOWNS
  9. VAR DET, DET0, DET1, DET2, DET3  = REAL.DOUBLE
  10. VAR A$ = STRING
  11. VAR N = INTEGER
  12. REM
  13. DIM COM REAL.DOUBLE   A(3) B(3) C(3) D(3) X(3) Y(3) Z(3)
  14. REM
  15. REM READ IN VALUES OF A,B,C&D FOR EACH OF THE EQUATIONS
  16. REM
  17. FOR N = 1 TO 3
  18.     PRINT "PLEASE INPUT A(";N;")"
  19.     INPUT A(N)
  20.     PRINT "PLEASE INPUT B(";N;")"
  21.     INPUT B(N)
  22.     PRINT "PLEASE INPUT C(";N;")"
  23.     INPUT C(N)
  24.     PRINT "PLEASE INPUT D(";N;")"
  25.     INPUT D(N)
  26. NEXT N
  27.     FOR N = 1 TO 3
  28.         X(N) = A(N)
  29.         Y(N) = B(N) 
  30.         Z(N) = C(N)
  31.     NEXT N
  32. REM
  33. GOSUB 100
  34. REM
  35.    DET0 = DET
  36. IF DET0 = 0 THEN PRINT "INCONSISTANT EQUATIONS, NO SOLUTION"
  37. IF DET0 = 0 THEN 200
  38.    FOR N = 1 TO 3
  39.       X(N) = D(N)
  40.       Y(N) = B(N)
  41.       Z(N) = C(N)
  42.    NEXT N
  43. REM
  44. GOSUB 100
  45. REM
  46.      DET1 = DET
  47. PRINT "X1 = "; DET1/DET0
  48. REM
  49.     FOR N = 1 TO 3
  50.        X(N) = A(N)
  51.        Y(N) = D(N)
  52.        Z(N) = C(N)
  53.     NEXT N
  54. REM     
  55. GOSUB 100
  56. REM
  57.     DET2 = DET
  58. PRINT "X2 =";DET2/DET0
  59. REM
  60.      FOR N = 1 TO 3
  61.        X(N) = A(N)
  62.        Y(N) = B(N)
  63.        Z(N) = D(N)
  64.     NEXT N
  65. REM
  66. GOSUB 100
  67. REM
  68.      DET3 = DET
  69. REM
  70. PRINT "X3 = ";DET3/DET0
  71. REM
  72. 200 REM
  73. PRINT "DO YOU WISH TO SOLVE ANOTHER SET OF EQUATIONS? Y/N?"
  74. INPUT A$ 
  75. IF A$ = "y" OR A$ = "Y" THEN 10
  76. END
  77. 100 REM SUBROUTINE TO CALCULATE DETERMINATES FROM X(N),Y(N) AND
  78. REM Z(N)
  79. REM
  80.     DET = X(1)*Y(2)*Z(3) + X(2)*Y(3)*Z(1) + X(3)*Y(1)*Z(2)
  81.     DET = DET - X(3)*Y(2)*Z(1) - X(1)*Y(3)*Z(2) - X(2)*Y(1)*Z(3)
  82. RETURN
  83.  
  84.               X(N) = A(N)
  85.         Y(N) =